/src/middleware/lua/llimits.h
C++ Header | 128 lines | 53 code | 51 blank | 24 comment | 0 complexity | 49146162c71b60bac7d70aa68ad987c9 MD5 | raw file
1/* 2** $Id: llimits.h,v 1.69.1.1 2007/12/27 13:02:25 roberto Exp $ 3** Limits, basic types, and some other `installation-dependent' definitions 4** See Copyright Notice in lua.h 5*/ 6 7#ifndef llimits_h 8#define llimits_h 9 10 11#include <limits.h> 12#include <stddef.h> 13 14 15#include "lua.h" 16 17 18typedef LUAI_UINT32 lu_int32; 19 20typedef LUAI_UMEM lu_mem; 21 22typedef LUAI_MEM l_mem; 23 24 25 26/* chars used as small naturals (so that `char' is reserved for characters) */ 27typedef unsigned char lu_byte; 28 29 30#define MAX_SIZET ((size_t)(~(size_t)0)-2) 31 32#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) 33 34 35#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */ 36 37/* 38** conversion of pointer to integer 39** this is for hashing only; there is no problem if the integer 40** cannot hold the whole pointer value 41*/ 42#define IntPoint(p) ((unsigned int)(lu_mem)(p)) 43 44 45 46/* type to ensure maximum alignment */ 47typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; 48 49 50/* result of a `usual argument conversion' over lua_Number */ 51typedef LUAI_UACNUMBER l_uacNumber; 52 53 54/* internal assertions for in-house debugging */ 55#ifdef lua_assert 56 57#define check_exp(c,e) (lua_assert(c), (e)) 58#define api_check(l,e) lua_assert(e) 59 60#else 61 62#define lua_assert(c) ((void)0) 63#define check_exp(c,e) (e) 64#define api_check luai_apicheck 65 66#endif 67 68 69#ifndef UNUSED 70#define UNUSED(x) ((void)(x)) /* to avoid warnings */ 71#endif 72 73 74#ifndef cast 75#define cast(t, exp) ((t)(exp)) 76#endif 77 78#define cast_byte(i) cast(lu_byte, (i)) 79#define cast_num(i) cast(lua_Number, (i)) 80#define cast_int(i) cast(int, (i)) 81 82 83 84/* 85** type for virtual-machine instructions 86** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) 87*/ 88typedef lu_int32 Instruction; 89 90 91 92/* maximum stack for a Lua function */ 93#define MAXSTACK 250 94 95 96 97/* minimum size for the string table (must be power of 2) */ 98#ifndef MINSTRTABSIZE 99#define MINSTRTABSIZE 32 100#endif 101 102 103/* minimum size for string buffer */ 104#ifndef LUA_MINBUFFER 105#define LUA_MINBUFFER 32 106#endif 107 108 109#ifndef lua_lock 110#define lua_lock(L) ((void) 0) 111#define lua_unlock(L) ((void) 0) 112#endif 113 114#ifndef luai_threadyield 115#define luai_threadyield(L) {lua_unlock(L); lua_lock(L);} 116#endif 117 118 119/* 120** macro to control inclusion of some hard tests on stack reallocation 121*/ 122#ifndef HARDSTACKTESTS 123#define condhardstacktests(x) ((void)0) 124#else 125#define condhardstacktests(x) x 126#endif 127 128#endif