diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-11-14 14:46:23 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-11-14 14:46:23 -0500 |
| commit | b2548ba4ce295fcd94a50123fb543fac2ef2bc33 (patch) | |
| tree | 444a32abb4a094c4fa2f7bc9a95aa86963ad4110 /src/memory-type-defs.hpp | |
| parent | b1d926361b9d613ad712ad161f9a8b7ccab4551d (diff) | |
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
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 */ |
