xref: /freebsd-src/contrib/lua/src/lundump.h (revision 0495ed398c4f64013bab2327eb13a303e1f90c13)
18e3e3a7aSWarner Losh /*
2*0495ed39SKyle Evans ** $Id: lundump.h $
38e3e3a7aSWarner Losh ** load precompiled Lua chunks
48e3e3a7aSWarner Losh ** See Copyright Notice in lua.h
58e3e3a7aSWarner Losh */
68e3e3a7aSWarner Losh 
78e3e3a7aSWarner Losh #ifndef lundump_h
88e3e3a7aSWarner Losh #define lundump_h
98e3e3a7aSWarner Losh 
108e3e3a7aSWarner Losh #include "llimits.h"
118e3e3a7aSWarner Losh #include "lobject.h"
128e3e3a7aSWarner Losh #include "lzio.h"
138e3e3a7aSWarner Losh 
148e3e3a7aSWarner Losh 
158e3e3a7aSWarner Losh /* data to catch conversion errors */
168e3e3a7aSWarner Losh #define LUAC_DATA	"\x19\x93\r\n\x1a\n"
178e3e3a7aSWarner Losh 
188e3e3a7aSWarner Losh #define LUAC_INT	0x5678
198e3e3a7aSWarner Losh #define LUAC_NUM	cast_num(370.5)
208e3e3a7aSWarner Losh 
21*0495ed39SKyle Evans /*
22*0495ed39SKyle Evans ** Encode major-minor version in one byte, one nibble for each
23*0495ed39SKyle Evans */
24*0495ed39SKyle Evans #define MYINT(s)	(s[0]-'0')  /* assume one-digit numerals */
258e3e3a7aSWarner Losh #define LUAC_VERSION	(MYINT(LUA_VERSION_MAJOR)*16+MYINT(LUA_VERSION_MINOR))
26*0495ed39SKyle Evans 
278e3e3a7aSWarner Losh #define LUAC_FORMAT	0	/* this is the official format */
288e3e3a7aSWarner Losh 
298e3e3a7aSWarner Losh /* load one chunk; from lundump.c */
308e3e3a7aSWarner Losh LUAI_FUNC LClosure* luaU_undump (lua_State* L, ZIO* Z, const char* name);
318e3e3a7aSWarner Losh 
328e3e3a7aSWarner Losh /* dump one chunk; from ldump.c */
338e3e3a7aSWarner Losh LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w,
348e3e3a7aSWarner Losh                          void* data, int strip);
358e3e3a7aSWarner Losh 
368e3e3a7aSWarner Losh #endif
37