aboutsummaryrefslogtreecommitdiff
path: root/src/keeper.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/keeper.h27
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
8struct s_Universe;
9typedef struct s_Universe Universe;
10enum eLookupMode;
11typedef enum eLookupMode LookupMode;
12
4struct s_Keeper 13struct 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};
19typedef struct s_Keeper Keeper;
10 20
11struct s_Keepers 21struct 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};
26typedef struct s_Keepers Keepers;
16 27
17void init_keepers( struct s_Universe* U, lua_State* L); 28void init_keepers( Universe* U, lua_State* L);
18void close_keepers( struct s_Universe* U, lua_State* L); 29void close_keepers( Universe* U, lua_State* L);
19 30
20struct s_Keeper* keeper_acquire( struct s_Keepers* keepers_, ptrdiff_t magic_); 31Keeper* keeper_acquire( Keepers* keepers_, ptrdiff_t magic_);
21#define KEEPER_MAGIC_SHIFT 3 32#define KEEPER_MAGIC_SHIFT 3
22void keeper_release( struct s_Keeper* K); 33void keeper_release( Keeper* K);
23void keeper_toggle_nil_sentinels( lua_State* L, int val_i_, enum eLookupMode const mode_); 34void keeper_toggle_nil_sentinels( lua_State* L, int val_i_, LookupMode const mode_);
24int keeper_push_linda_storage( struct s_Universe* U, lua_State* L, void* ptr_, ptrdiff_t magic_); 35int 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);
38int keepercall_set( lua_State* L); 49int keepercall_set( lua_State* L);
39int keepercall_count( lua_State* L); 50int keepercall_count( lua_State* L);
40 51
41int keeper_call( struct s_Universe* U, lua_State* K, keeper_api_t _func, lua_State* L, void* linda, uint_t starting_index); 52int 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