blob: 85d7e8112fa6fca84029ca8040f79bff671cc620 [file] [log] [blame]
Thierry FOURNIER6f1fd482015-01-23 14:06:13 +01001#ifndef _TYPES_HLUA_H
2#define _TYPES_HLUA_H
3
4#include <lua.h>
5
Thierry FOURNIER380d0932015-01-23 14:27:52 +01006enum hlua_state {
7 HLUA_STOP = 0,
8 HLUA_RUN,
9};
10
11enum hlua_exec {
12 HLUA_E_OK = 0,
13 HLUA_E_AGAIN, /* LUA yield, must resume the stack execution later, when
14 the associatedtask is waked. */
15 HLUA_E_ERRMSG, /* LUA stack execution failed with a string error message
16 in the top of stack. */
17 HLUA_E_ERR, /* LUA stack execution failed without error message. */
18};
19
20struct hlua {
21 lua_State *T; /* The LUA stack. */
22 int Tref; /* The reference of the stack in coroutine case.
23 -1 for the main lua stack. */
24 int Mref; /* The reference of the memory context in coroutine case.
25 -1 if the memory context is not used. */
26 int nargs; /* The number of arguments in the stack at the start of execution. */
27 enum hlua_state state; /* The current execution state. */
28 struct task *task; /* The task associated with the lua stack execution.
29 We must wake this task to continue the task execution */
30 struct ebpt_node node;
31};
32
Thierry FOURNIER6f1fd482015-01-23 14:06:13 +010033#endif /* _TYPES_HLUA_H */