Lua 5.1.4: llimits.h
L0001 /*
L0002 ** $Id: llimits.h,v 1.69.1.1 2007年12月27日 13:02:25 roberto Exp $
L0003 ** Limits, basic types, and some other `installation-dependent' definitions
L0004 ** See Copyright Notice in lua.h
L0005 */
L0006
L0007 #ifndef llimits_h
L0008 #define llimits_h
L0009
L0010
L0011 #include <limits.h>
L0012 #include <stddef.h>
L0013
L0014
L0015 #include "lua.h"
L0016
L0017
L0018 typedef LUAI_UINT32 lu_int32;
L0019
L0020 typedef LUAI_UMEM lu_mem;
L0021
L0022 typedef LUAI_MEM l_mem;
L0023
L0024
L0025
L0026 /* chars used as small naturals (so that `char' is reserved for characters) */
L0027 typedef unsigned char lu_byte;
L0028
L0029
L0030 #define MAX_SIZET ((size_t)(~(size_t)0)-2)
L0031
L0032 #define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2)
L0033
L0034
L0035 #define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */
L0036
L0037 /*
L0038 ** conversion of pointer to integer
L0039 ** this is for hashing only; there is no problem if the integer
L0040 ** cannot hold the whole pointer value
L0041 */
L0042 #define IntPoint(p) ((unsigned int)(lu_mem)(p))
L0043
L0044
L0045
L0046 /* type to ensure maximum alignment */
L0047 typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;
L0048
L0049
L0050 /* result of a `usual argument conversion' over lua_Number */
L0051 typedef LUAI_UACNUMBER l_uacNumber;
L0052
L0053
L0054 /* internal assertions for in-house debugging */
L0055 #ifdef lua_assert
L0056
L0057 #define check_exp(c,e) (lua_assert(c), (e))
L0058 #define api_check(l,e) lua_assert(e)
L0059
L0060 #else
L0061
L0062 #define lua_assert(c) ((void)0)
L0063 #define check_exp(c,e) (e)
L0064 #define api_check luai_apicheck
L0065
L0066 #endif
L0067
L0068
L0069 #ifndef UNUSED
L0070 #define UNUSED(x) ((void)(x)) /* to avoid warnings */
L0071 #endif
L0072
L0073
L0074 #ifndef cast
L0075 #define cast(t, exp) ((t)(exp))
L0076 #endif
L0077
L0078 #define cast_byte(i) cast(lu_byte, (i))
L0079 #define cast_num(i) cast(lua_Number, (i))
L0080 #define cast_int(i) cast(int, (i))
L0081
L0082
L0083
L0084 /*
L0085 ** type for virtual-machine instructions
L0086 ** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)
L0087 */
L0088 typedef lu_int32 Instruction;
L0089
L0090
L0091
L0092 /* maximum stack for a Lua function */
L0093 #define MAXSTACK 250
Note: must fix in byte (lu_byte)--see Proto::maxstacksize.
L0094
L0095
L0096
L0097 /* minimum size for the string table (must be power of 2) */
L0098 #ifndef MINSTRTABSIZE
L0099 #define MINSTRTABSIZE 32
L0100 #endif
L0101
L0102
L0103 /* minimum size for string buffer */
L0104 #ifndef LUA_MINBUFFER
L0105 #define LUA_MINBUFFER 32
L0106 #endif
L0107
L0108
L0109 #ifndef lua_lock
L0110 #define lua_lock(L) ((void) 0)
L0111 #define lua_unlock(L) ((void) 0)
L0112 #endif
L0113
L0114 #ifndef luai_threadyield
L0115 #define luai_threadyield(L) {lua_unlock(L); lua_lock(L);}
L0116 #endif
L0117
L0118
L0119 /*
L0120 ** macro to control inclusion of some hard tests on stack reallocation
L0121 */
L0122 #ifndef HARDSTACKTESTS
L0123 #define condhardstacktests(x) ((void)0)
L0124 #else
L0125 #define condhardstacktests(x) x
L0126 #endif
L0127
L0128 #endif
Generated by
pretty.lua