root/lib/lua/llimits.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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

/* [<][>][^][v][top][bottom][index][help] */