# lstate.h File Reference

`#include "lua.h"`
`#include "lobject.h"`
`#include "ltm.h"`
`#include "lzio.h"`

Go to the source code of this file.

## Classes
struct | stringtable
struct | CallInfo
struct | global_State
struct | lua_State
union | GCObject
## Defines
#define | gt(L) (&L->l_gt)
#define | registry(L) (&G(L)->l_registry)
#define | EXTRA_STACK 5
#define | BASIC_CI_SIZE 8
#define | BASIC_STACK_SIZE (2*LUA_MINSTACK)
#define | curr_func(L) (clvalue(L->ci->func))
#define | ci_func(ci) (clvalue((ci)->func))
#define | f_isLua(ci) (!ci_func(ci)->c.isC)
#define | isLua(ci) (ttisfunction((ci)->func) && f_isLua(ci))
#define | G(L) (L->l_G)
#define | rawgco2ts(o) check_exp((o)->gch.tt == LUA_TSTRING, &((o)->ts))
#define | gco2ts(o) (&rawgco2ts(o)->tsv)
#define | rawgco2u(o) check_exp((o)->gch.tt == LUA_TUSERDATA, &((o)->u))
#define | gco2u(o) (&rawgco2u(o)->uv)
#define | gco2cl(o) check_exp((o)->gch.tt == LUA_TFUNCTION, &((o)->cl))
#define | gco2h(o) check_exp((o)->gch.tt == LUA_TTABLE, &((o)->h))
#define | gco2p(o) check_exp((o)->gch.tt == LUA_TPROTO, &((o)->p))
#define | gco2uv(o) check_exp((o)->gch.tt == LUA_TUPVAL, &((o)->uv))
#define | ngcotouv(o) check_exp((o) == NULL || (o)->gch.tt == LUA_TUPVAL, &((o)->uv))
#define | gco2th(o) check_exp((o)->gch.tt == LUA_TTHREAD, &((o)->th))
#define | obj2gco(v) (cast(GCObject *, (v)))
## Functions
LUAI_FUNC lua_State * | luaE_newthread (lua_State *L)
LUAI_FUNC void | luaE_freethread (lua_State *L, lua_State *L1)

## Define Documentation

#define BASIC_CI_SIZE 8

#define BASIC_STACK_SIZE (2*LUA_MINSTACK)

#define ci_func | ( | ci |  | ) | (clvalue((ci)->func))

#define curr_func | ( | L |  | ) | (clvalue(L->ci->func))

#define EXTRA_STACK 5

#define f_isLua | ( | ci |  | ) | (!ci_func(ci)->c.isC)

#define G | ( | L |  | ) | (L->l_G)

#define gco2cl | ( | o |  | ) | check_exp((o)->gch.tt == LUA_TFUNCTION, &((o)->cl))

#define gco2h | ( | o |  | ) | check_exp((o)->gch.tt == LUA_TTABLE, &((o)->h))

#define gco2p | ( | o |  | ) | check_exp((o)->gch.tt == LUA_TPROTO, &((o)->p))

#define gco2th | ( | o |  | ) | check_exp((o)->gch.tt == LUA_TTHREAD, &((o)->th))

#define gco2ts | ( | o |  | ) | (&rawgco2ts(o)->tsv)

#define gco2u | ( | o |  | ) | (&rawgco2u(o)->uv)

#define gco2uv | ( | o |  | ) | check_exp((o)->gch.tt == LUA_TUPVAL, &((o)->uv))

#define gt | ( | L |  | ) | (&L->l_gt)

#define isLua | ( | ci |  | ) | (ttisfunction((ci)->func) && f_isLua(ci))

#define ngcotouv | ( | o |  | ) | check_exp((o) == NULL || (o)->gch.tt == LUA_TUPVAL, &((o)->uv))

#define obj2gco | ( | v |  | ) | (cast(GCObject *, (v)))

#define rawgco2ts | ( | o |  | ) | check_exp((o)->gch.tt == LUA_TSTRING, &((o)->ts))

#define rawgco2u | ( | o |  | ) | check_exp((o)->gch.tt == LUA_TUSERDATA, &((o)->u))

#define registry | ( | L |  | ) | (&G(L)->l_registry)

## Function Documentation

LUAI_FUNC void luaE_freethread | ( | lua_State * | L,
|  | lua_State * | L1 |
| ) |  |  |

LUAI_FUNC lua_State* luaE_newthread | ( | lua_State * | L | ) |