Subversion Repositories WoWGM

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 tristanc 1
/*
2
** $Id: llimits.h,v 1.69 2005/12/27 17:12:00 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
 
18
typedef LUAI_UINT32 lu_int32;
19
 
20
typedef LUAI_UMEM lu_mem;
21
 
22
typedef LUAI_MEM l_mem;
23
 
24
 
25
 
26
/* chars used as small naturals (so that `char' is reserved for characters) */
27
typedef 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 */
47
typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;
48
 
49
 
50
/* result of a `usual argument conversion' over lua_Number */
51
typedef 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
*/
88
typedef 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