/*** $Id: llimits.h,v 1.69.1.1 2007/12/27 13:02:25 roberto Exp $** Limits, basic types, and some other `installation-dependent' definitions** See Copyright Notice in lua.h*/#ifndef llimits_h#define llimits_h#include <limits.h>#include <stddef.h>#include "lua.h"typedef LUAI_UINT32 lu_int32;typedef LUAI_UMEM lu_mem;typedef LUAI_MEM l_mem;/* chars used as small naturals (so that `char' is reserved for characters) */typedef unsigned char lu_byte;#define MAX_SIZET ((size_t)(~(size_t)0)-2)#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2)#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) *//*** conversion of pointer to integer** this is for hashing only; there is no problem if the integer** cannot hold the whole pointer value*/#define IntPoint(p) ((unsigned int)(lu_mem)(p))/* type to ensure maximum alignment */typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;/* result of a `usual argument conversion' over lua_Number */typedef LUAI_UACNUMBER l_uacNumber;/* internal assertions for in-house debugging */#ifdef lua_assert#define check_exp(c,e) (lua_assert(c), (e))#define api_check(l,e) lua_assert(e)#else#define lua_assert(c) ((void)0)#define check_exp(c,e) (e)#define api_check luai_apicheck#endif#ifndef UNUSED#define UNUSED(x) ((void)(x)) /* to avoid warnings */#endif#ifndef cast#define cast(t, exp) ((t)(exp))#endif#define cast_byte(i) cast(lu_byte, (i))#define cast_num(i) cast(lua_Number, (i))#define cast_int(i) cast(int, (i))/*** type for virtual-machine instructions** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)*/typedef lu_int32 Instruction;/* maximum stack for a Lua function */#define MAXSTACK 250/* minimum size for the string table (must be power of 2) */#ifndef MINSTRTABSIZE#define MINSTRTABSIZE 32#endif/* minimum size for string buffer */#ifndef LUA_MINBUFFER#define LUA_MINBUFFER 32#endif#ifndef lua_lock#define lua_lock(L) ((void) 0)#define lua_unlock(L) ((void) 0)#endif#ifndef luai_threadyield#define luai_threadyield(L) {lua_unlock(L); lua_lock(L);}#endif/*** macro to control inclusion of some hard tests on stack reallocation*/#ifndef HARDSTACKTESTS#define condhardstacktests(x) ((void)0)#else#define condhardstacktests(x) x#endif#endif