forked from robertdavidgraham/masscan
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstub-lua.h
138 lines (124 loc) · 6.35 KB
/
stub-lua.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
Stub declarations, for loading Lua dynamically at runtime using
openlib() or LoadLibrary().
*/
#ifndef STUB_LUA_H
#define STUB_LUA_H
#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
/**
* Called to load the Lua dynamic library, suh as lua53.dll or lua5.3.so.0,
* and link all the function pointers. This must be called before calling any
* Lua functions, or the program will crash.
*/
int stublua_init(void);
struct lua_State;
typedef struct lua_State lua_State;
typedef long long lua_Integer;
typedef double lua_Number;
typedef unsigned long long lua_Unsigned;
typedef ptrdiff_t lua_KContext;
typedef int (*lua_KFunction) (lua_State *L, int status, lua_KContext ctx);
typedef int (*lua_CFunction) (lua_State *L);
typedef struct luaL_Reg {
const char *name;
lua_CFunction func;
} luaL_Reg;
#define LUA_MULTRET (-1)
#define LUAI_MAXSTACK 1000000
#define LUA_REGISTRYINDEX (-LUAI_MAXSTACK - 1000)
#define LUA_OK 0
#define LUA_YIELD 1
#define LUA_ERRRUN 2
#define LUA_ERRSYNTAX 3
#define LUA_ERRMEM 4
#define LUA_ERRGCMM 5
#define LUA_ERRERR 6
#define LUA_TNONE (-1)
#define LUA_TNIL 0
#define LUA_TBOOLEAN 1
#define LUA_TLIGHTUSERDATA 2
#define LUA_TNUMBER 3
#define LUA_TSTRING 4
#define LUA_TTABLE 5
#define LUA_TFUNCTION 6
#define LUA_TUSERDATA 7
#define LUA_TTHREAD 8
#define LUA_NUMTAGS 9
#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION)
#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE)
#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA)
#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL)
#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN)
#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD)
#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE)
#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0)
#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL)
#define lua_pop(L,n) lua_settop(L, -(n)-1)
#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0)
#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n)))
#define lua_tonumber(L,i) lua_tonumberx(L,(i),NULL)
#define lua_tointeger(L,i) lua_tointegerx(L,(i),NULL)
#define lua_tostring(L,i) lua_tolstring(L, (i), NULL)
#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i))
#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL)
#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL))
#define luaL_dofile(L, fn) (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
#define luaL_dostring(L, s) (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n)))
#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL)
#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL)
#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i)))
#ifndef LUAAPI
#define LUAAPI extern
#endif
LUAAPI void (*lua_close)(lua_State *L);
LUAAPI int (*lua_getfield)(lua_State *L, int idx, const char *k);
LUAAPI int (*lua_getglobal)(lua_State *L, const char *name);
LUAAPI int (*lua_geti)(lua_State *L, int idx, lua_Integer n);
LUAAPI int (*lua_gettop)(lua_State *L);
LUAAPI int (*lua_isnumber)(lua_State *L, int idx);
LUAAPI int (*lua_isstring)(lua_State *L, int idx);
LUAAPI int (*lua_iscfunction)(lua_State *L, int idx);
LUAAPI int (*lua_isinteger)(lua_State *L, int idx);
LUAAPI int (*lua_isuserdata)(lua_State *L, int idx);
LUAAPI lua_State * (*lua_newthread)(lua_State *L);
LUAAPI void * (*lua_newuserdata)(lua_State *L, size_t size);
LUAAPI int (*lua_pcallk)(lua_State *L, int nargs, int nresults, int errfunc,lua_KContext ctx,lua_KFunction k);
LUAAPI void (*lua_pushcclosure)(lua_State *L,lua_CFunction fn, int n);
LUAAPI void (*lua_pushinteger)(lua_State *L,lua_Integer n);
LUAAPI const char *(*lua_pushlstring)(lua_State *L, const char *s, size_t len);
LUAAPI void (*lua_pushnumber)(lua_State *L,lua_Number n);
LUAAPI const char *(*lua_pushstring)(lua_State *L, const char *s);
LUAAPI void (*lua_pushvalue )(lua_State *L, int idx);
LUAAPI int (*lua_resume)(lua_State *L,lua_State *from, int nargs);
LUAAPI void (*lua_setfield)(lua_State *L, int idx, const char *k);
LUAAPI void (*lua_setglobal)(lua_State *L, const char *name);
LUAAPI void (*lua_seti)(lua_State *L, int idx, lua_Integer n);
LUAAPI void (*lua_settop)(lua_State *L, int idx);
LUAAPI int (*lua_toboolean)(lua_State *L, int idx);
LUAAPI lua_Integer (*lua_tointegerx)(lua_State *L, int idx, int *pisnum);
LUAAPI const char *(*lua_tolstring)(lua_State *L, int idx, size_t *len);
LUAAPI lua_Number (*lua_tonumberx)(lua_State *L, int idx, int *pisnum);
LUAAPI int (*lua_type)(lua_State *L, int idx);
LUAAPI const char *(*lua_typename)(lua_State *L, int t);
LUAAPI const lua_Number *(*lua_version)(lua_State *L);
LUAAPI void (*lua_xmove)(lua_State *from,lua_State *to, int n);
LUAAPI int (*lua_yieldk)(lua_State *L, int nresults,lua_KContext ctx,lua_KFunction k);
LUAAPI lua_Integer (*luaL_checkinteger)(lua_State *L, int arg);
LUAAPI const char *(*luaL_checklstring)(lua_State *L, int arg, size_t *len);
LUAAPI void * (*luaL_checkudata)(lua_State *L, int ud, const char *tname);
LUAAPI lua_Integer (*luaL_len)(lua_State *L, int idx);
LUAAPI int (*luaL_loadbufferx)(lua_State *L, const char *buff, size_t size, const char *name, const char *mode);
LUAAPI int (*luaL_loadfilex)(lua_State *L, const char *filename, const char *mode);
LUAAPI int (*luaL_loadstring)(lua_State *L, const char *s);
LUAAPI int (*luaL_newmetatable)(lua_State *L, const char *tname);
LUAAPI lua_State * (*luaL_newstate)(void);
LUAAPI void (*luaL_openlibs)(lua_State *L);
LUAAPI int (*luaL_ref)(lua_State *L, int t);
LUAAPI void (*luaL_setfuncs)(lua_State *L, const luaL_Reg *l, int nup);
LUAAPI void (*luaL_setmetatable)(lua_State *L, const char *tname);
LUAAPI void (*luaL_unref)(lua_State *L, int t, int ref);
#endif