diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-10-12 00:41:13 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-10-12 00:41:51 -0400 |
| commit | 0385fb79f17dc7e3b4e266049c3db07bdd86dcd6 (patch) | |
| tree | 126b0c2c85cf13b60e192e8820c23acfe4380f9e /pkmem-types.h | |
| parent | 7889de050105a9fba827c46eaae767490c75177c (diff) | |
add PK_IMPL_ALL and break-up IMPL defines
Diffstat (limited to 'pkmem-types.h')
| -rw-r--r-- | pkmem-types.h | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/pkmem-types.h b/pkmem-types.h index 27f6f50..8be66f1 100644 --- a/pkmem-types.h +++ b/pkmem-types.h @@ -20,19 +20,8 @@ struct pk_handle { const struct pk_handle pk_handle_MAX = (struct pk_handle){ .bucketIndex = 0xFFFFFFFF, .itemIndex = 0xFFFFFFFF }; -static inline enum PK_HANDLE_VALIDATION -pk_handle_validate(const struct pk_handle handle, const struct pk_handle bucketHandle, const uint64_t maxItems) -{ - if (handle.bucketIndex == pk_handle_MAX.bucketIndex && handle.itemIndex == pk_handle_MAX.itemIndex) - return PK_HANDLE_VALIDATION_VALUE_MAX; - if (handle.bucketIndex > bucketHandle.bucketIndex) - return PK_HANDLE_VALIDATION_BUCKET_INDEX_TOO_HIGH; - if (handle.itemIndex > maxItems) - return PK_HANDLE_VALIDATION_ITEM_INDEX_TOO_HIGH; - if (handle.bucketIndex == bucketHandle.bucketIndex && handle.itemIndex > bucketHandle.itemIndex) - return PK_HANDLE_VALIDATION_ITEM_INDEX_TOO_HIGH; - return PK_HANDLE_VALIDATION_VALID; -} +static inline enum PK_HANDLE_VALIDATION pk_handle_validate(const struct pk_handle handle, const struct pk_handle bucketHandle, const uint64_t maxItems); + #if defined(__cplusplus) @@ -63,3 +52,21 @@ pk_handle_validate_constexpr() struct pk_membucket; #endif /* PK_MEM_TYPES_H */ + +#ifdef PK_IMPL_MEM_TYPES + +enum PK_HANDLE_VALIDATION +pk_handle_validate(const struct pk_handle handle, const struct pk_handle bucketHandle, const uint64_t maxItems) +{ + if (handle.bucketIndex == pk_handle_MAX.bucketIndex && handle.itemIndex == pk_handle_MAX.itemIndex) + return PK_HANDLE_VALIDATION_VALUE_MAX; + if (handle.bucketIndex > bucketHandle.bucketIndex) + return PK_HANDLE_VALIDATION_BUCKET_INDEX_TOO_HIGH; + if (handle.itemIndex > maxItems) + return PK_HANDLE_VALIDATION_ITEM_INDEX_TOO_HIGH; + if (handle.bucketIndex == bucketHandle.bucketIndex && handle.itemIndex > bucketHandle.itemIndex) + return PK_HANDLE_VALIDATION_ITEM_INDEX_TOO_HIGH; + return PK_HANDLE_VALIDATION_VALID; +} + +#endif /* PK_IMPL_MEM_TYPES */ |
