xref: /freebsd/sys/contrib/openzfs/module/lua/lfunc.h (revision dd41de95a84d979615a2ef11df6850622bf6184e)
1 /* BEGIN CSTYLED */
2 /*
3 ** $Id: lfunc.h,v 2.8.1.1 2013/04/12 18:48:47 roberto Exp $
4 ** Auxiliary functions to manipulate prototypes and closures
5 ** See Copyright Notice in lua.h
6 */
7 
8 #ifndef lfunc_h
9 #define lfunc_h
10 
11 
12 #include "lobject.h"
13 
14 
15 #define sizeCclosure(n)	(cast(int, sizeof(CClosure)) + \
16                          cast(int, sizeof(TValue)*((n)-1)))
17 
18 #define sizeLclosure(n)	(cast(int, sizeof(LClosure)) + \
19                          cast(int, sizeof(TValue *)*((n)-1)))
20 
21 
22 LUAI_FUNC Proto *luaF_newproto (lua_State *L);
23 LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems);
24 LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, int nelems);
25 LUAI_FUNC UpVal *luaF_newupval (lua_State *L);
26 LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level);
27 LUAI_FUNC void luaF_close (lua_State *L, StkId level);
28 LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f);
29 LUAI_FUNC void luaF_freeupval (lua_State *L, UpVal *uv);
30 LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number,
31                                          int pc);
32 
33 
34 #endif
35 /* END CSTYLED */
36