5b38c618de3704470b1169ac85b1fae9ae5ff1ab
[olsrd.git] / lib / tas / src / lua / llimits.h
1
2 /*
3 ** $Id: llimits.h,v 1.52 2003/02/20 19:33:23 roberto Exp $
4 ** Limits, basic types, and some other `installation-dependent' definitions
5 ** See Copyright Notice in lua.h
6 */
7
8 #ifndef llimits_h
9 #define llimits_h
10
11
12 #include <limits.h>
13 #include <stddef.h>
14
15
16 #include "lua.h"
17 #include "defs.h"               /* ARM_NOWARN_ALIGN */
18
19
20 /*
21 ** try to find number of bits in an integer
22 */
23 #ifndef BITS_INT
24
25 /* avoid overflows in comparison */
26 #if INT_MAX-20 < 32760
27 #define BITS_INT        16
28 #else
29 #if INT_MAX > 2147483640L
30
31 /* machine has at least 32 bits */
32 #define BITS_INT        32
33 #else
34 #error "you must define BITS_INT with number of bits in an integer"
35 #endif
36 #endif
37 #endif
38
39
40 /*
41 ** the following types define integer types for values that may not
42 ** fit in a `small int' (16 bits), but may waste space in a
43 ** `large long' (64 bits). The current definitions should work in
44 ** any machine, but may not be optimal.
45 */
46
47 /* an unsigned integer to hold hash values */
48 typedef unsigned long int lu_hash;
49
50 /* its signed equivalent */
51 typedef int ls_hash;
52
53 /* an unsigned integer big enough to count the total memory used by Lua; */
54
55 /* it should be at least as large as size_t */
56 typedef unsigned long lu_mem;
57
58 #define MAX_LUMEM       ULONG_MAX
59
60
61 /* an integer big enough to count the number of strings in use */
62 typedef long ls_nstr;
63
64 /* chars used as small naturals (so that `char' is reserved for characters) */
65 typedef unsigned char lu_byte;
66
67
68 #define MAX_SIZET       ((size_t)(~(size_t)0)-2)
69
70
71 #define MAX_INT (INT_MAX-2)     /* maximum value of an int (-2 for safety) */
72
73 /*
74 ** conversion of pointer to integer
75 ** this is for hashing only; there is no problem if the integer
76 ** cannot hold the whole pointer value
77 */
78 #define IntPoint(p)  ((lu_hash)(p))
79
80
81
82 /* type to ensure maximum alignment */
83 #ifndef LUSER_ALIGNMENT_T
84 typedef union {
85   double u;
86   void *s;
87   long l;
88 } L_Umaxalign;
89 #else
90 typedef LUSER_ALIGNMENT_T L_Umaxalign;
91 #endif
92
93
94 /* result of `usual argument conversion' over lua_Number */
95 #ifndef LUA_UACNUMBER
96 typedef double l_uacNumber;
97 #else
98 typedef LUA_UACNUMBER l_uacNumber;
99 #endif
100
101
102 #ifndef lua_assert
103 #define lua_assert(c)           /* empty */
104 #endif
105
106
107 #ifndef check_exp
108 #define check_exp(c,e)  (e)
109 #endif
110
111
112 #ifndef UNUSED
113 #define UNUSED(x)       ((void)(x))     /* to avoid warnings */
114 #endif
115
116
117 #ifndef cast
118 #define cast(t, exp)    ((t)(exp))
119 #endif
120
121 #ifndef cast_align
122 #define cast_align(t, exp)      ((t)ARM_NOWARN_ALIGN(exp))
123 #endif
124
125
126 /*
127 ** type for virtual-machine instructions
128 ** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)
129 */
130 typedef unsigned long Instruction;
131
132
133 /* maximum depth for calls (unsigned short) */
134 #ifndef LUA_MAXCALLS
135 #define LUA_MAXCALLS        4096
136 #endif
137
138
139 /*
140 ** maximum depth for C calls (unsigned short): Not too big, or may
141 ** overflow the C stack...
142 */
143
144 #ifndef LUA_MAXCCALLS
145 #define LUA_MAXCCALLS        200
146 #endif
147
148
149 /* maximum size for the C stack */
150 #ifndef LUA_MAXCSTACK
151 #define LUA_MAXCSTACK        2048
152 #endif
153
154
155 /* maximum stack for a Lua function */
156 #define MAXSTACK        250
157
158
159 /* maximum number of variables declared in a function */
160 #ifndef MAXVARS
161 #define MAXVARS 200             /* arbitrary limit (<MAXSTACK) */
162 #endif
163
164
165 /* maximum number of upvalues per function */
166 #ifndef MAXUPVALUES
167 #define MAXUPVALUES     32
168 #endif
169
170
171 /* maximum number of parameters in a function */
172 #ifndef MAXPARAMS
173 #define MAXPARAMS 100           /* arbitrary limit (<MAXLOCALS) */
174 #endif
175
176
177 /* minimum size for the string table (must be power of 2) */
178 #ifndef MINSTRTABSIZE
179 #define MINSTRTABSIZE   32
180 #endif
181
182
183 /* minimum size for string buffer */
184 #ifndef LUA_MINBUFFER
185 #define LUA_MINBUFFER   32
186 #endif
187
188
189 /*
190 ** maximum number of syntactical nested non-terminals: Not too big,
191 ** or may overflow the C stack...
192 */
193 #ifndef LUA_MAXPARSERLEVEL
194 #define LUA_MAXPARSERLEVEL      200
195 #endif
196
197
198 #endif