diff options
Diffstat (limited to 'src/keeper.h')
-rw-r--r-- | src/keeper.h | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/keeper.h b/src/keeper.h index 7dbbc16..ac275c1 100644 --- a/src/keeper.h +++ b/src/keeper.h | |||
@@ -1,27 +1,36 @@ | |||
1 | #if !defined( __keeper_h__) | 1 | #if !defined( __keeper_h__) |
2 | #define __keeper_h__ 1 | 2 | #define __keeper_h__ 1 |
3 | 3 | ||
4 | #include "lua.h" | ||
5 | #include "threading.h" | ||
6 | |||
7 | // forwards | ||
8 | struct s_Universe; | ||
9 | typedef struct s_Universe Universe; | ||
10 | |||
4 | struct s_Keeper | 11 | struct s_Keeper |
5 | { | 12 | { |
6 | MUTEX_T keeper_cs; | 13 | MUTEX_T keeper_cs; |
7 | lua_State* L; | 14 | lua_State* L; |
8 | //int count; | 15 | //int count; |
9 | }; | 16 | }; |
17 | typedef struct s_Keeper Keeper; | ||
10 | 18 | ||
11 | struct s_Keepers | 19 | struct s_Keepers |
12 | { | 20 | { |
13 | int nb_keepers; | 21 | int nb_keepers; |
14 | struct s_Keeper keeper_array[1]; | 22 | Keeper keeper_array[1]; |
15 | }; | 23 | }; |
24 | typedef struct s_Keepers Keepers; | ||
16 | 25 | ||
17 | void init_keepers( struct s_Universe* U, lua_State* L); | 26 | void init_keepers( Universe* U, lua_State* L); |
18 | void close_keepers( struct s_Universe* U, lua_State* L); | 27 | void close_keepers( Universe* U, lua_State* L); |
19 | 28 | ||
20 | struct s_Keeper* keeper_acquire( struct s_Keepers* keepers_, ptrdiff_t magic_); | 29 | Keeper* keeper_acquire( Keepers* keepers_, ptrdiff_t magic_); |
21 | #define KEEPER_MAGIC_SHIFT 3 | 30 | #define KEEPER_MAGIC_SHIFT 3 |
22 | void keeper_release( struct s_Keeper* K); | 31 | void keeper_release( Keeper* K); |
23 | void keeper_toggle_nil_sentinels( lua_State* L, int val_i_, enum eLookupMode const mode_); | 32 | void keeper_toggle_nil_sentinels( lua_State* L, int val_i_, enum eLookupMode const mode_); |
24 | int keeper_push_linda_storage( struct s_Universe* U, lua_State* L, void* ptr_, ptrdiff_t magic_); | 33 | int keeper_push_linda_storage( Universe* U, lua_State* L, void* ptr_, ptrdiff_t magic_); |
25 | 34 | ||
26 | #define NIL_SENTINEL ((void*)keeper_toggle_nil_sentinels) | 35 | #define NIL_SENTINEL ((void*)keeper_toggle_nil_sentinels) |
27 | 36 | ||
@@ -38,6 +47,6 @@ int keepercall_get( lua_State* L); | |||
38 | int keepercall_set( lua_State* L); | 47 | int keepercall_set( lua_State* L); |
39 | int keepercall_count( lua_State* L); | 48 | int keepercall_count( lua_State* L); |
40 | 49 | ||
41 | int keeper_call( struct s_Universe* U, lua_State* K, keeper_api_t _func, lua_State* L, void* linda, uint_t starting_index); | 50 | int keeper_call( Universe* U, lua_State* K, keeper_api_t _func, lua_State* L, void* linda, uint_t starting_index); |
42 | 51 | ||
43 | #endif // __keeper_h__ \ No newline at end of file | 52 | #endif // __keeper_h__ \ No newline at end of file |