diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2014-04-02 20:46:06 +0200 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2014-04-02 20:46:06 +0200 |
commit | bfd0179042b0b02fb88748d54e56e7e208bb117f (patch) | |
tree | 42d5fd51574054caaf673420fca1ec962d62d2f2 /apps/plugins/lua/llimits.h | |
parent | 36378988ad4059982742f05f5eb50580b456840a (diff) | |
download | rockbox-bfd0179042b0b02fb88748d54e56e7e208bb117f.tar.gz rockbox-bfd0179042b0b02fb88748d54e56e7e208bb117f.zip |
Revert "Update lua plugin to 5.2.3"
FILE typedef to *void needs more work to not break sim and
application builds. I checked only a few random native builds
unfortunately. Sorry for inconvenience.
Diffstat (limited to 'apps/plugins/lua/llimits.h')
-rw-r--r-- | apps/plugins/lua/llimits.h | 221 |
1 files changed, 20 insertions, 201 deletions
diff --git a/apps/plugins/lua/llimits.h b/apps/plugins/lua/llimits.h index 152dd05515..a31ad160ad 100644 --- a/apps/plugins/lua/llimits.h +++ b/apps/plugins/lua/llimits.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: llimits.h,v 1.103.1.1 2013/04/12 18:48:47 roberto Exp $ | 2 | ** $Id$ |
3 | ** Limits, basic types, and some other `installation-dependent' definitions | 3 | ** Limits, basic types, and some other `installation-dependent' definitions |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -15,7 +15,7 @@ | |||
15 | #include "lua.h" | 15 | #include "lua.h" |
16 | 16 | ||
17 | 17 | ||
18 | typedef unsigned LUA_INT32 lu_int32; | 18 | typedef LUAI_UINT32 lu_int32; |
19 | 19 | ||
20 | typedef LUAI_UMEM lu_mem; | 20 | typedef LUAI_UMEM lu_mem; |
21 | 21 | ||
@@ -31,8 +31,6 @@ typedef unsigned char lu_byte; | |||
31 | 31 | ||
32 | #define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) | 32 | #define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) |
33 | 33 | ||
34 | #define MAX_LMEM ((l_mem) ((MAX_LUMEM >> 1) - 2)) | ||
35 | |||
36 | 34 | ||
37 | #define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */ | 35 | #define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */ |
38 | 36 | ||
@@ -46,10 +44,6 @@ typedef unsigned char lu_byte; | |||
46 | 44 | ||
47 | 45 | ||
48 | /* type to ensure maximum alignment */ | 46 | /* type to ensure maximum alignment */ |
49 | #if !defined(LUAI_USER_ALIGNMENT_T) | ||
50 | #define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; } | ||
51 | #endif | ||
52 | |||
53 | typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; | 47 | typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; |
54 | 48 | ||
55 | 49 | ||
@@ -58,75 +52,36 @@ typedef LUAI_UACNUMBER l_uacNumber; | |||
58 | 52 | ||
59 | 53 | ||
60 | /* internal assertions for in-house debugging */ | 54 | /* internal assertions for in-house debugging */ |
61 | #if defined(lua_assert) | 55 | #ifdef lua_assert |
56 | |||
62 | #define check_exp(c,e) (lua_assert(c), (e)) | 57 | #define check_exp(c,e) (lua_assert(c), (e)) |
63 | /* to avoid problems with conditions too long */ | 58 | #define api_check(l,e) lua_assert(e) |
64 | #define lua_longassert(c) { if (!(c)) lua_assert(0); } | 59 | |
65 | #else | 60 | #else |
61 | |||
66 | #define lua_assert(c) ((void)0) | 62 | #define lua_assert(c) ((void)0) |
67 | #define check_exp(c,e) (e) | 63 | #define check_exp(c,e) (e) |
68 | #define lua_longassert(c) ((void)0) | 64 | #define api_check luai_apicheck |
69 | #endif | ||
70 | 65 | ||
71 | /* | ||
72 | ** assertion for checking API calls | ||
73 | */ | ||
74 | #if !defined(luai_apicheck) | ||
75 | |||
76 | #if defined(LUA_USE_APICHECK) | ||
77 | #include <assert.h> | ||
78 | #define luai_apicheck(L,e) assert(e) | ||
79 | #else | ||
80 | #define luai_apicheck(L,e) lua_assert(e) | ||
81 | #endif | 66 | #endif |
82 | 67 | ||
83 | #endif | ||
84 | |||
85 | #define api_check(l,e,msg) luai_apicheck(l,(e) && msg) | ||
86 | |||
87 | 68 | ||
88 | #if !defined(UNUSED) | 69 | #ifndef UNUSED |
89 | #define UNUSED(x) ((void)(x)) /* to avoid warnings */ | 70 | #define UNUSED(x) ((void)(x)) /* to avoid warnings */ |
90 | #endif | 71 | #endif |
91 | 72 | ||
92 | 73 | ||
74 | #ifndef cast | ||
93 | #define cast(t, exp) ((t)(exp)) | 75 | #define cast(t, exp) ((t)(exp)) |
76 | #endif | ||
94 | 77 | ||
95 | #define cast_byte(i) cast(lu_byte, (i)) | 78 | #define cast_byte(i) cast(lu_byte, (i)) |
96 | #define cast_num(i) cast(lua_Number, (i)) | 79 | #define cast_num(i) cast(lua_Number, (i)) |
97 | #define cast_int(i) cast(int, (i)) | 80 | #define cast_int(i) cast(int, (i)) |
98 | #define cast_uchar(i) cast(unsigned char, (i)) | ||
99 | |||
100 | |||
101 | /* | ||
102 | ** non-return type | ||
103 | */ | ||
104 | #if defined(__GNUC__) | ||
105 | #define l_noret void __attribute__((noreturn)) | ||
106 | #elif defined(_MSC_VER) | ||
107 | #define l_noret void __declspec(noreturn) | ||
108 | #else | ||
109 | #define l_noret void | ||
110 | #endif | ||
111 | 81 | ||
112 | 82 | ||
113 | 83 | ||
114 | /* | 84 | /* |
115 | ** maximum depth for nested C calls and syntactical nested non-terminals | ||
116 | ** in a program. (Value must fit in an unsigned short int.) | ||
117 | */ | ||
118 | #if !defined(LUAI_MAXCCALLS) | ||
119 | #define LUAI_MAXCCALLS 200 | ||
120 | #endif | ||
121 | |||
122 | /* | ||
123 | ** maximum number of upvalues in a closure (both C and Lua). (Value | ||
124 | ** must fit in an unsigned char.) | ||
125 | */ | ||
126 | #define MAXUPVAL UCHAR_MAX | ||
127 | |||
128 | |||
129 | /* | ||
130 | ** type for virtual-machine instructions | 85 | ** type for virtual-machine instructions |
131 | ** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) | 86 | ** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) |
132 | */ | 87 | */ |
@@ -140,170 +95,34 @@ typedef lu_int32 Instruction; | |||
140 | 95 | ||
141 | 96 | ||
142 | /* minimum size for the string table (must be power of 2) */ | 97 | /* minimum size for the string table (must be power of 2) */ |
143 | #if !defined(MINSTRTABSIZE) | 98 | #ifndef MINSTRTABSIZE |
144 | #define MINSTRTABSIZE 32 | 99 | #define MINSTRTABSIZE 32 |
145 | #endif | 100 | #endif |
146 | 101 | ||
147 | 102 | ||
148 | /* minimum size for string buffer */ | 103 | /* minimum size for string buffer */ |
149 | #if !defined(LUA_MINBUFFER) | 104 | #ifndef LUA_MINBUFFER |
150 | #define LUA_MINBUFFER 32 | 105 | #define LUA_MINBUFFER 32 |
151 | #endif | 106 | #endif |
152 | 107 | ||
153 | 108 | ||
154 | #if !defined(lua_lock) | 109 | #ifndef lua_lock |
155 | #define lua_lock(L) ((void) 0) | 110 | #define lua_lock(L) ((void) 0) |
156 | #define lua_unlock(L) ((void) 0) | 111 | #define lua_unlock(L) ((void) 0) |
157 | #endif | 112 | #endif |
158 | 113 | ||
159 | #if !defined(luai_threadyield) | 114 | #ifndef luai_threadyield |
160 | #define luai_threadyield(L) {lua_unlock(L); lua_lock(L);} | 115 | #define luai_threadyield(L) {lua_unlock(L); lua_lock(L);} |
161 | #endif | 116 | #endif |
162 | 117 | ||
163 | 118 | ||
164 | /* | 119 | /* |
165 | ** these macros allow user-specific actions on threads when you defined | ||
166 | ** LUAI_EXTRASPACE and need to do something extra when a thread is | ||
167 | ** created/deleted/resumed/yielded. | ||
168 | */ | ||
169 | #if !defined(luai_userstateopen) | ||
170 | #define luai_userstateopen(L) ((void)L) | ||
171 | #endif | ||
172 | |||
173 | #if !defined(luai_userstateclose) | ||
174 | #define luai_userstateclose(L) ((void)L) | ||
175 | #endif | ||
176 | |||
177 | #if !defined(luai_userstatethread) | ||
178 | #define luai_userstatethread(L,L1) ((void)L) | ||
179 | #endif | ||
180 | |||
181 | #if !defined(luai_userstatefree) | ||
182 | #define luai_userstatefree(L,L1) ((void)L) | ||
183 | #endif | ||
184 | |||
185 | #if !defined(luai_userstateresume) | ||
186 | #define luai_userstateresume(L,n) ((void)L) | ||
187 | #endif | ||
188 | |||
189 | #if !defined(luai_userstateyield) | ||
190 | #define luai_userstateyield(L,n) ((void)L) | ||
191 | #endif | ||
192 | |||
193 | /* | ||
194 | ** lua_number2int is a macro to convert lua_Number to int. | ||
195 | ** lua_number2integer is a macro to convert lua_Number to lua_Integer. | ||
196 | ** lua_number2unsigned is a macro to convert a lua_Number to a lua_Unsigned. | ||
197 | ** lua_unsigned2number is a macro to convert a lua_Unsigned to a lua_Number. | ||
198 | ** luai_hashnum is a macro to hash a lua_Number value into an integer. | ||
199 | ** The hash must be deterministic and give reasonable values for | ||
200 | ** both small and large values (outside the range of integers). | ||
201 | */ | ||
202 | |||
203 | #if defined(MS_ASMTRICK) || defined(LUA_MSASMTRICK) /* { */ | ||
204 | /* trick with Microsoft assembler for X86 */ | ||
205 | |||
206 | #define lua_number2int(i,n) __asm {__asm fld n __asm fistp i} | ||
207 | #define lua_number2integer(i,n) lua_number2int(i, n) | ||
208 | #define lua_number2unsigned(i,n) \ | ||
209 | {__int64 l; __asm {__asm fld n __asm fistp l} i = (unsigned int)l;} | ||
210 | |||
211 | |||
212 | #elif defined(LUA_IEEE754TRICK) /* }{ */ | ||
213 | /* the next trick should work on any machine using IEEE754 with | ||
214 | a 32-bit int type */ | ||
215 | |||
216 | union luai_Cast { double l_d; LUA_INT32 l_p[2]; }; | ||
217 | |||
218 | #if !defined(LUA_IEEEENDIAN) /* { */ | ||
219 | #define LUAI_EXTRAIEEE \ | ||
220 | static const union luai_Cast ieeeendian = {-(33.0 + 6755399441055744.0)}; | ||
221 | #define LUA_IEEEENDIANLOC (ieeeendian.l_p[1] == 33) | ||
222 | #else | ||
223 | #define LUA_IEEEENDIANLOC LUA_IEEEENDIAN | ||
224 | #define LUAI_EXTRAIEEE /* empty */ | ||
225 | #endif /* } */ | ||
226 | |||
227 | #define lua_number2int32(i,n,t) \ | ||
228 | { LUAI_EXTRAIEEE \ | ||
229 | volatile union luai_Cast u; u.l_d = (n) + 6755399441055744.0; \ | ||
230 | (i) = (t)u.l_p[LUA_IEEEENDIANLOC]; } | ||
231 | |||
232 | #define luai_hashnum(i,n) \ | ||
233 | { volatile union luai_Cast u; u.l_d = (n) + 1.0; /* avoid -0 */ \ | ||
234 | (i) = u.l_p[0]; (i) += u.l_p[1]; } /* add double bits for his hash */ | ||
235 | |||
236 | #define lua_number2int(i,n) lua_number2int32(i, n, int) | ||
237 | #define lua_number2unsigned(i,n) lua_number2int32(i, n, lua_Unsigned) | ||
238 | |||
239 | /* the trick can be expanded to lua_Integer when it is a 32-bit value */ | ||
240 | #if defined(LUA_IEEELL) | ||
241 | #define lua_number2integer(i,n) lua_number2int32(i, n, lua_Integer) | ||
242 | #endif | ||
243 | |||
244 | #endif /* } */ | ||
245 | |||
246 | |||
247 | /* the following definitions always work, but may be slow */ | ||
248 | |||
249 | #if !defined(lua_number2int) | ||
250 | #define lua_number2int(i,n) ((i)=(int)(n)) | ||
251 | #endif | ||
252 | |||
253 | #if !defined(lua_number2integer) | ||
254 | #define lua_number2integer(i,n) ((i)=(lua_Integer)(n)) | ||
255 | #endif | ||
256 | |||
257 | #if !defined(lua_number2unsigned) /* { */ | ||
258 | /* the following definition assures proper modulo behavior */ | ||
259 | #if defined(LUA_NUMBER_DOUBLE) || defined(LUA_NUMBER_FLOAT) | ||
260 | #include <math.h> | ||
261 | #define SUPUNSIGNED ((lua_Number)(~(lua_Unsigned)0) + 1) | ||
262 | #define lua_number2unsigned(i,n) \ | ||
263 | ((i)=(lua_Unsigned)((n) - floor((n)/SUPUNSIGNED)*SUPUNSIGNED)) | ||
264 | #else | ||
265 | #define lua_number2unsigned(i,n) ((i)=(lua_Unsigned)(n)) | ||
266 | #endif | ||
267 | #endif /* } */ | ||
268 | |||
269 | |||
270 | #if !defined(lua_unsigned2number) | ||
271 | /* on several machines, coercion from unsigned to double is slow, | ||
272 | so it may be worth to avoid */ | ||
273 | #define lua_unsigned2number(u) \ | ||
274 | (((u) <= (lua_Unsigned)INT_MAX) ? (lua_Number)(int)(u) : (lua_Number)(u)) | ||
275 | #endif | ||
276 | |||
277 | |||
278 | |||
279 | #if defined(ltable_c) && !defined(luai_hashnum) | ||
280 | |||
281 | #include <float.h> | ||
282 | #include <math.h> | ||
283 | |||
284 | #define luai_hashnum(i,n) { int e; \ | ||
285 | n = l_mathop(frexp)(n, &e) * (lua_Number)(INT_MAX - DBL_MAX_EXP); \ | ||
286 | lua_number2int(i, n); i += e; } | ||
287 | |||
288 | #endif | ||
289 | |||
290 | |||
291 | |||
292 | /* | ||
293 | ** macro to control inclusion of some hard tests on stack reallocation | 120 | ** macro to control inclusion of some hard tests on stack reallocation |
294 | */ | 121 | */ |
295 | #if !defined(HARDSTACKTESTS) | 122 | #ifndef HARDSTACKTESTS |
296 | #define condmovestack(L) ((void)0) | 123 | #define condhardstacktests(x) ((void)0) |
297 | #else | ||
298 | /* realloc stack keeping its size */ | ||
299 | #define condmovestack(L) luaD_reallocstack((L), (L)->stacksize) | ||
300 | #endif | ||
301 | |||
302 | #if !defined(HARDMEMTESTS) | ||
303 | #define condchangemem(L) condmovestack(L) | ||
304 | #else | 124 | #else |
305 | #define condchangemem(L) \ | 125 | #define condhardstacktests(x) x |
306 | ((void)(!(G(L)->gcrunning) || (luaC_fullgc(L, 0), 1))) | ||
307 | #endif | 126 | #endif |
308 | 127 | ||
309 | #endif | 128 | #endif |