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