summaryrefslogtreecommitdiff
path: root/pkmem-types.h
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2024-10-12 00:41:13 -0400
committerJonathan Bradley <jcb@pikum.xyz>2024-10-12 00:41:51 -0400
commit0385fb79f17dc7e3b4e266049c3db07bdd86dcd6 (patch)
tree126b0c2c85cf13b60e192e8820c23acfe4380f9e /pkmem-types.h
parent7889de050105a9fba827c46eaae767490c75177c (diff)
add PK_IMPL_ALL and break-up IMPL defines
Diffstat (limited to 'pkmem-types.h')
-rw-r--r--pkmem-types.h33
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 */