diff options
Diffstat (limited to 'src/keeper.h')
-rw-r--r-- | src/keeper.h | 7 |
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 |
18 | class Linda; | ||
18 | enum class LookupMode; | 19 | enum class LookupMode; |
19 | class Universe; | 20 | class Universe; |
20 | 21 | ||
@@ -34,18 +35,14 @@ struct Keepers | |||
34 | Keeper keeper_array[1]; | 35 | Keeper keeper_array[1]; |
35 | }; | 36 | }; |
36 | 37 | ||
37 | static 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/ |
39 | static constexpr UniqueKey NIL_SENTINEL{ 0x7EAAFA003A1D11A1ull, "linda.null" }; | 39 | static constexpr UniqueKey NIL_SENTINEL{ 0x7EAAFA003A1D11A1ull, "linda.null" }; |
40 | 40 | ||
41 | void init_keepers(Universe* U, lua_State* L); | 41 | void init_keepers(Universe* U, lua_State* L); |
42 | void close_keepers(Universe* U); | 42 | void 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_); | ||
46 | void keeper_release(Keeper* K_); | ||
47 | void keeper_toggle_nil_sentinels(lua_State* L, int val_i_, LookupMode const mode_); | 44 | void 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 | ||
50 | using keeper_api_t = lua_CFunction; | 47 | using keeper_api_t = lua_CFunction; |
51 | #define KEEPER_API(_op) keepercall_##_op | 48 | #define KEEPER_API(_op) keepercall_##_op |