summaryrefslogtreecommitdiff
path: root/pkmem-types.h
diff options
context:
space:
mode:
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 */