Wuyx
2017-01-04 0ba5a82e9ec833aa36729dfbad7deffbf3ea05c6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*
** $Id: llimits.h,v 1.69.1.1 2007/12/27 13:02:25 roberto Exp $
** Limits, basic types, and some other `installation-dependent' definitions
** See Copyright Notice in lua.h
*/
 
#ifndef llimits_h
#define llimits_h
 
 
#include <limits.h>
#include <stddef.h>
 
 
#include "lua.h"
 
 
typedef LUAI_UINT32 lu_int32;
 
typedef LUAI_UMEM lu_mem;
 
typedef LUAI_MEM l_mem;
 
 
 
/* chars used as small naturals (so that `char' is reserved for characters) */
typedef unsigned char lu_byte;
 
 
#define MAX_SIZET    ((size_t)(~(size_t)0)-2)
 
#define MAX_LUMEM    ((lu_mem)(~(lu_mem)0)-2)
 
 
#define MAX_INT (INT_MAX-2)  /* maximum value of an int (-2 for safety) */
 
/*
** conversion of pointer to integer
** this is for hashing only; there is no problem if the integer
** cannot hold the whole pointer value
*/
#define IntPoint(p)  ((unsigned int)(lu_mem)(p))
 
 
 
/* type to ensure maximum alignment */
typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;
 
 
/* result of a `usual argument conversion' over lua_Number */
typedef LUAI_UACNUMBER l_uacNumber;
 
 
/* internal assertions for in-house debugging */
#ifdef lua_assert
 
#define check_exp(c,e)        (lua_assert(c), (e))
#define api_check(l,e)        lua_assert(e)
 
#else
 
#define lua_assert(c)        ((void)0)
#define check_exp(c,e)        (e)
#define api_check        luai_apicheck
 
#endif
 
 
#ifndef UNUSED
#define UNUSED(x)    ((void)(x))    /* to avoid warnings */
#endif
 
 
#ifndef cast
#define cast(t, exp)    ((t)(exp))
#endif
 
#define cast_byte(i)    cast(lu_byte, (i))
#define cast_num(i)    cast(lua_Number, (i))
#define cast_int(i)    cast(int, (i))
 
 
 
/*
** type for virtual-machine instructions
** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)
*/
typedef lu_int32 Instruction;
 
 
 
/* maximum stack for a Lua function */
#define MAXSTACK    250
 
 
 
/* minimum size for the string table (must be power of 2) */
#ifndef MINSTRTABSIZE
#define MINSTRTABSIZE    32
#endif
 
 
/* minimum size for string buffer */
#ifndef LUA_MINBUFFER
#define LUA_MINBUFFER    32
#endif
 
 
#ifndef lua_lock
#define lua_lock(L)     ((void) 0) 
#define lua_unlock(L)   ((void) 0)
#endif
 
#ifndef luai_threadyield
#define luai_threadyield(L)     {lua_unlock(L); lua_lock(L);}
#endif
 
 
/*
** macro to control inclusion of some hard tests on stack reallocation
*/ 
#ifndef HARDSTACKTESTS
#define condhardstacktests(x)    ((void)0)
#else
#define condhardstacktests(x)    x
#endif
 
#endif