From b2548ba4ce295fcd94a50123fb543fac2ef2bc33 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Thu, 14 Nov 2024 14:46:23 -0500 Subject: add pk.h and major pkmem refactor Completely replaces the memory module with pkmem pkmem is a newer implementation of the same bucket memory structure. Also includes replacing pkstr.h with pk.h's pkstr --- src/memory-type-defs.hpp | 43 ------------------------------------------- 1 file changed, 43 deletions(-) delete mode 100644 src/memory-type-defs.hpp (limited to 'src/memory-type-defs.hpp') 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 - -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 */ -- cgit v1.2.3