diff options
Diffstat (limited to 'src/memory-type-defs.hpp')
| -rw-r--r-- | src/memory-type-defs.hpp | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/memory-type-defs.hpp b/src/memory-type-defs.hpp deleted file mode 100644 index 181b89b..0000000 --- a/src/memory-type-defs.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PKE_MEMORY_TYPE_DEFS_HPP -#define PKE_MEMORY_TYPE_DEFS_HPP - -#include <cstdint> - -using PkeHandleBucketIndex_T = uint32_t; -using PkeHandleItemIndex_T = uint32_t; - -const uint8_t PKE_HANDLE_VALIDATION_VALID = 0; -const uint8_t PKE_HANDLE_VALIDATION_BUCKET_INDEX_TOO_HIGH = 1; -const uint8_t PKE_HANDLE_VALIDATION_ITEM_INDEX_TOO_HIGH = 2; -const uint8_t PKE_HANDLE_VALIDATION_VALUE_MAX = 3; - -struct PkeHandle { - union { - struct { - PkeHandleBucketIndex_T bucketIndex; - PkeHandleItemIndex_T itemIndex; - }; - uint64_t hash = 0xFFFFFFFFFFFFFFFF; - }; -}; -constexpr PkeHandle PkeHandle_MAX = PkeHandle{}; - -constexpr bool operator==(const PkeHandle &a, const PkeHandle &b) { - return a.hash == b.hash; -} - -constexpr uint8_t ValidateHandle(PkeHandle handle, PkeHandle bucketHandle, uint64_t maxItems) { - if (handle == PkeHandle_MAX) - return PKE_HANDLE_VALIDATION_VALUE_MAX; - if (handle.bucketIndex > bucketHandle.bucketIndex) - return PKE_HANDLE_VALIDATION_BUCKET_INDEX_TOO_HIGH; - if (handle.itemIndex > maxItems) - return PKE_HANDLE_VALIDATION_ITEM_INDEX_TOO_HIGH; - if (handle.bucketIndex == bucketHandle.bucketIndex && handle.itemIndex > bucketHandle.itemIndex) - return PKE_HANDLE_VALIDATION_ITEM_INDEX_TOO_HIGH; - return PKE_HANDLE_VALIDATION_VALID; -} - -struct MemBucket; - -#endif /* PKE_MEMORY_TYPE_DEFS_HPP */ |
