1*dfc11533SChris Williamson /* 2*dfc11533SChris Williamson ** $Id: ldo.h,v 2.20.1.1 2013/04/12 18:48:47 roberto Exp $ 3*dfc11533SChris Williamson ** Stack and Call structure of Lua 4*dfc11533SChris Williamson ** See Copyright Notice in lua.h 5*dfc11533SChris Williamson */ 6*dfc11533SChris Williamson 7*dfc11533SChris Williamson #ifndef ldo_h 8*dfc11533SChris Williamson #define ldo_h 9*dfc11533SChris Williamson 10*dfc11533SChris Williamson 11*dfc11533SChris Williamson #include "lobject.h" 12*dfc11533SChris Williamson #include "lstate.h" 13*dfc11533SChris Williamson #include "lzio.h" 14*dfc11533SChris Williamson 15*dfc11533SChris Williamson 16*dfc11533SChris Williamson #define luaD_checkstack(L,n) if (L->stack_last - L->top <= (n)) \ 17*dfc11533SChris Williamson luaD_growstack(L, n); else condmovestack(L); 18*dfc11533SChris Williamson 19*dfc11533SChris Williamson 20*dfc11533SChris Williamson #define incr_top(L) {L->top++; luaD_checkstack(L,0);} 21*dfc11533SChris Williamson 22*dfc11533SChris Williamson #define savestack(L,p) ((char *)(p) - (char *)L->stack) 23*dfc11533SChris Williamson #define restorestack(L,n) ((TValue *)((char *)L->stack + (n))) 24*dfc11533SChris Williamson 25*dfc11533SChris Williamson 26*dfc11533SChris Williamson /* type of protected functions, to be ran by `runprotected' */ 27*dfc11533SChris Williamson typedef void (*Pfunc) (lua_State *L, void *ud); 28*dfc11533SChris Williamson 29*dfc11533SChris Williamson LUAI_FUNC int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, 30*dfc11533SChris Williamson const char *mode); 31*dfc11533SChris Williamson LUAI_FUNC void luaD_hook (lua_State *L, int event, int line); 32*dfc11533SChris Williamson LUAI_FUNC int luaD_precall (lua_State *L, StkId func, int nresults); 33*dfc11533SChris Williamson LUAI_FUNC void luaD_call (lua_State *L, StkId func, int nResults, 34*dfc11533SChris Williamson int allowyield); 35*dfc11533SChris Williamson LUAI_FUNC int luaD_pcall (lua_State *L, Pfunc func, void *u, 36*dfc11533SChris Williamson ptrdiff_t oldtop, ptrdiff_t ef); 37*dfc11533SChris Williamson LUAI_FUNC int luaD_poscall (lua_State *L, StkId firstResult); 38*dfc11533SChris Williamson LUAI_FUNC void luaD_reallocstack (lua_State *L, int newsize); 39*dfc11533SChris Williamson LUAI_FUNC void luaD_growstack (lua_State *L, int n); 40*dfc11533SChris Williamson LUAI_FUNC void luaD_shrinkstack (lua_State *L); 41*dfc11533SChris Williamson 42*dfc11533SChris Williamson LUAI_FUNC l_noret luaD_throw (lua_State *L, int errcode); 43*dfc11533SChris Williamson LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud); 44*dfc11533SChris Williamson 45*dfc11533SChris Williamson #endif 46*dfc11533SChris Williamson 47