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