misc/liblua/llimits.h
changeset 2812 0a24853de796
child 3697 d5b30d6373fc
equal deleted inserted replaced
2811:4cad87e11bf6 2812:0a24853de796
       
     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