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