]>
Commit | Line | Data |
---|---|---|
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 | ||
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 |