128 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
** $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
 |