1 /* 2 ** LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/ 3 ** 4 ** Copyright (C) 2005-2014 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: http://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.0.3" 34 #define LUAJIT_VERSION_NUM 20003 /* Version 2.0.3 = 02.00.03. */ 35 #define LUAJIT_VERSION_SYM luaJIT_version_2_0_3 36 #define LUAJIT_COPYRIGHT "Copyright (C) 2005-2014 Mike Pall" 37 #define LUAJIT_URL "http://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 /* Enforce (dynamic) linker error for version mismatches. Call from main. */ 68 LUA_API void LUAJIT_VERSION_SYM(void); 69 70 #endif 71