diff options
author | Mike Pall <mike> | 2023-08-21 03:18:35 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2023-08-21 03:18:35 +0200 |
commit | 2090842410e0ba6f81fad310a77bf5432488249a (patch) | |
tree | 2845b2d74f15cbb524801a53687151bb797a8e78 /src/luajit_rolling.h | |
parent | f0ff869bc2fffa17bb765c4c773457578da125a9 (diff) | |
parent | 50e0fa03c48cb9af03c3efdc3100f12687651a2e (diff) | |
download | luajit-2.1.ROLLING.tar.gz luajit-2.1.ROLLING.tar.bz2 luajit-2.1.ROLLING.zip |
Merge branch 'master' into v2.1v2.1.ROLLING
Diffstat (limited to 'src/luajit_rolling.h')
-rw-r--r-- | src/luajit_rolling.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/luajit_rolling.h b/src/luajit_rolling.h new file mode 100644 index 00000000..e564477a --- /dev/null +++ b/src/luajit_rolling.h | |||
@@ -0,0 +1,79 @@ | |||
1 | /* | ||
2 | ** LuaJIT -- a Just-In-Time Compiler for Lua. https://luajit.org/ | ||
3 | ** | ||
4 | ** Copyright (C) 2005-2023 Mike Pall. All rights reserved. | ||
5 | ** | ||
6 | ** Permission is hereby granted, free of charge, to any person obtaining | ||
7 | ** a copy of this software and associated documentation files (the | ||
8 | ** "Software"), to deal in the Software without restriction, including | ||
9 | ** without limitation the rights to use, copy, modify, merge, publish, | ||
10 | ** distribute, sublicense, and/or sell copies of the Software, and to | ||
11 | ** permit persons to whom the Software is furnished to do so, subject to | ||
12 | ** the following conditions: | ||
13 | ** | ||
14 | ** The above copyright notice and this permission notice shall be | ||
15 | ** included in all copies or substantial portions of the Software. | ||
16 | ** | ||
17 | ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
18 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
19 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||
20 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||
21 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
22 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
23 | ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
24 | ** | ||
25 | ** [ MIT license: https://www.opensource.org/licenses/mit-license.php ] | ||
26 | */ | ||
27 | |||
28 | #ifndef _LUAJIT_H | ||
29 | #define _LUAJIT_H | ||
30 | |||
31 | #include "lua.h" | ||
32 | |||
33 | #define LUAJIT_VERSION "LuaJIT 2.1.ROLLING" | ||
34 | #define LUAJIT_VERSION_NUM 20199 /* Deprecated. */ | ||
35 | #define LUAJIT_VERSION_SYM luaJIT_version_2_1_ROLLING | ||
36 | #define LUAJIT_COPYRIGHT "Copyright (C) 2005-2023 Mike Pall" | ||
37 | #define LUAJIT_URL "https://luajit.org/" | ||
38 | |||
39 | /* Modes for luaJIT_setmode. */ | ||
40 | #define LUAJIT_MODE_MASK 0x00ff | ||
41 | |||
42 | enum { | ||
43 | LUAJIT_MODE_ENGINE, /* Set mode for whole JIT engine. */ | ||
44 | LUAJIT_MODE_DEBUG, /* Set debug mode (idx = level). */ | ||
45 | |||
46 | LUAJIT_MODE_FUNC, /* Change mode for a function. */ | ||
47 | LUAJIT_MODE_ALLFUNC, /* Recurse into subroutine protos. */ | ||
48 | LUAJIT_MODE_ALLSUBFUNC, /* Change only the subroutines. */ | ||
49 | |||
50 | LUAJIT_MODE_TRACE, /* Flush a compiled trace. */ | ||
51 | |||
52 | LUAJIT_MODE_WRAPCFUNC = 0x10, /* Set wrapper mode for C function calls. */ | ||
53 | |||
54 | LUAJIT_MODE_MAX | ||
55 | }; | ||
56 | |||
57 | /* Flags or'ed in to the mode. */ | ||
58 | #define LUAJIT_MODE_OFF 0x0000 /* Turn feature off. */ | ||
59 | #define LUAJIT_MODE_ON 0x0100 /* Turn feature on. */ | ||
60 | #define LUAJIT_MODE_FLUSH 0x0200 /* Flush JIT-compiled code. */ | ||
61 | |||
62 | /* LuaJIT public C API. */ | ||
63 | |||
64 | /* Control the JIT engine. */ | ||
65 | LUA_API int luaJIT_setmode(lua_State *L, int idx, int mode); | ||
66 | |||
67 | /* Low-overhead profiling API. */ | ||
68 | typedef void (*luaJIT_profile_callback)(void *data, lua_State *L, | ||
69 | int samples, int vmstate); | ||
70 | LUA_API void luaJIT_profile_start(lua_State *L, const char *mode, | ||
71 | luaJIT_profile_callback cb, void *data); | ||
72 | LUA_API void luaJIT_profile_stop(lua_State *L); | ||
73 | LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt, | ||
74 | int depth, size_t *len); | ||
75 | |||
76 | /* Enforce (dynamic) linker error for version mismatches. Call from main. */ | ||
77 | LUA_API void LUAJIT_VERSION_SYM(void); | ||
78 | |||
79 | #endif | ||