aboutsummaryrefslogtreecommitdiff
path: root/src/keeper.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/keeper.h')
-rw-r--r--src/keeper.h7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/keeper.h b/src/keeper.h
index ef86f94..4c79fd7 100644
--- a/src/keeper.h
+++ b/src/keeper.h
@@ -15,6 +15,7 @@ extern "C" {
15#include <mutex> 15#include <mutex>
16 16
17// forwards 17// forwards
18class Linda;
18enum class LookupMode; 19enum class LookupMode;
19class Universe; 20class Universe;
20 21
@@ -34,18 +35,14 @@ struct Keepers
34 Keeper keeper_array[1]; 35 Keeper keeper_array[1];
35}; 36};
36 37
37static constexpr uintptr_t KEEPER_MAGIC_SHIFT{ 3 };
38// crc64/we of string "NIL_SENTINEL" generated at http://www.nitrxgen.net/hashgen/ 38// crc64/we of string "NIL_SENTINEL" generated at http://www.nitrxgen.net/hashgen/
39static constexpr UniqueKey NIL_SENTINEL{ 0x7EAAFA003A1D11A1ull, "linda.null" }; 39static constexpr UniqueKey NIL_SENTINEL{ 0x7EAAFA003A1D11A1ull, "linda.null" };
40 40
41void init_keepers(Universe* U, lua_State* L); 41void init_keepers(Universe* U, lua_State* L);
42void close_keepers(Universe* U); 42void close_keepers(Universe* U);
43 43
44[[nodiscard]] Keeper* which_keeper(Keepers* keepers_, uintptr_t magic_);
45[[nodiscard]] Keeper* keeper_acquire(Keepers* keepers_, uintptr_t magic_);
46void keeper_release(Keeper* K_);
47void keeper_toggle_nil_sentinels(lua_State* L, int val_i_, LookupMode const mode_); 44void keeper_toggle_nil_sentinels(lua_State* L, int val_i_, LookupMode const mode_);
48[[nodiscard]] int keeper_push_linda_storage(Universe* U, DestState L, void* ptr_, uintptr_t magic_); 45[[nodiscard]] int keeper_push_linda_storage(Linda& linda_, DestState L);
49 46
50using keeper_api_t = lua_CFunction; 47using keeper_api_t = lua_CFunction;
51#define KEEPER_API(_op) keepercall_##_op 48#define KEEPER_API(_op) keepercall_##_op