1*c9945492SAndroid Build Coastguard Worker #ifndef _LIMITS_H 2*c9945492SAndroid Build Coastguard Worker #define _LIMITS_H 3*c9945492SAndroid Build Coastguard Worker 4*c9945492SAndroid Build Coastguard Worker #include <features.h> 5*c9945492SAndroid Build Coastguard Worker 6*c9945492SAndroid Build Coastguard Worker #include <bits/alltypes.h> /* __LONG_MAX */ 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker /* Support signed or unsigned plain-char */ 9*c9945492SAndroid Build Coastguard Worker 10*c9945492SAndroid Build Coastguard Worker #if '\xff' > 0 11*c9945492SAndroid Build Coastguard Worker #define CHAR_MIN 0 12*c9945492SAndroid Build Coastguard Worker #define CHAR_MAX 255 13*c9945492SAndroid Build Coastguard Worker #else 14*c9945492SAndroid Build Coastguard Worker #define CHAR_MIN (-128) 15*c9945492SAndroid Build Coastguard Worker #define CHAR_MAX 127 16*c9945492SAndroid Build Coastguard Worker #endif 17*c9945492SAndroid Build Coastguard Worker 18*c9945492SAndroid Build Coastguard Worker #define CHAR_BIT 8 19*c9945492SAndroid Build Coastguard Worker #define SCHAR_MIN (-128) 20*c9945492SAndroid Build Coastguard Worker #define SCHAR_MAX 127 21*c9945492SAndroid Build Coastguard Worker #define UCHAR_MAX 255 22*c9945492SAndroid Build Coastguard Worker #define SHRT_MIN (-1-0x7fff) 23*c9945492SAndroid Build Coastguard Worker #define SHRT_MAX 0x7fff 24*c9945492SAndroid Build Coastguard Worker #define USHRT_MAX 0xffff 25*c9945492SAndroid Build Coastguard Worker #define INT_MIN (-1-0x7fffffff) 26*c9945492SAndroid Build Coastguard Worker #define INT_MAX 0x7fffffff 27*c9945492SAndroid Build Coastguard Worker #define UINT_MAX 0xffffffffU 28*c9945492SAndroid Build Coastguard Worker #define LONG_MIN (-LONG_MAX-1) 29*c9945492SAndroid Build Coastguard Worker #define LONG_MAX __LONG_MAX 30*c9945492SAndroid Build Coastguard Worker #define ULONG_MAX (2UL*LONG_MAX+1) 31*c9945492SAndroid Build Coastguard Worker #define LLONG_MIN (-LLONG_MAX-1) 32*c9945492SAndroid Build Coastguard Worker #define LLONG_MAX 0x7fffffffffffffffLL 33*c9945492SAndroid Build Coastguard Worker #define ULLONG_MAX (2ULL*LLONG_MAX+1) 34*c9945492SAndroid Build Coastguard Worker 35*c9945492SAndroid Build Coastguard Worker #define MB_LEN_MAX 4 36*c9945492SAndroid Build Coastguard Worker 37*c9945492SAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 38*c9945492SAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 39*c9945492SAndroid Build Coastguard Worker 40*c9945492SAndroid Build Coastguard Worker #include <bits/limits.h> 41*c9945492SAndroid Build Coastguard Worker 42*c9945492SAndroid Build Coastguard Worker #define PIPE_BUF 4096 43*c9945492SAndroid Build Coastguard Worker #define FILESIZEBITS 64 44*c9945492SAndroid Build Coastguard Worker #ifndef NAME_MAX 45*c9945492SAndroid Build Coastguard Worker #define NAME_MAX 255 46*c9945492SAndroid Build Coastguard Worker #endif 47*c9945492SAndroid Build Coastguard Worker #define PATH_MAX 4096 48*c9945492SAndroid Build Coastguard Worker #define NGROUPS_MAX 32 49*c9945492SAndroid Build Coastguard Worker #define ARG_MAX 131072 50*c9945492SAndroid Build Coastguard Worker #define IOV_MAX 1024 51*c9945492SAndroid Build Coastguard Worker #define SYMLOOP_MAX 40 52*c9945492SAndroid Build Coastguard Worker #define WORD_BIT 32 53*c9945492SAndroid Build Coastguard Worker #define SSIZE_MAX LONG_MAX 54*c9945492SAndroid Build Coastguard Worker #define TZNAME_MAX 6 55*c9945492SAndroid Build Coastguard Worker #define TTY_NAME_MAX 32 56*c9945492SAndroid Build Coastguard Worker #define HOST_NAME_MAX 255 57*c9945492SAndroid Build Coastguard Worker 58*c9945492SAndroid Build Coastguard Worker #if LONG_MAX == 0x7fffffffL 59*c9945492SAndroid Build Coastguard Worker #define LONG_BIT 32 60*c9945492SAndroid Build Coastguard Worker #else 61*c9945492SAndroid Build Coastguard Worker #define LONG_BIT 64 62*c9945492SAndroid Build Coastguard Worker #endif 63*c9945492SAndroid Build Coastguard Worker 64*c9945492SAndroid Build Coastguard Worker /* Implementation choices... */ 65*c9945492SAndroid Build Coastguard Worker 66*c9945492SAndroid Build Coastguard Worker #define PTHREAD_KEYS_MAX 128 67*c9945492SAndroid Build Coastguard Worker #define PTHREAD_STACK_MIN 2048 68*c9945492SAndroid Build Coastguard Worker #define PTHREAD_DESTRUCTOR_ITERATIONS 4 69*c9945492SAndroid Build Coastguard Worker #define SEM_VALUE_MAX 0x7fffffff 70*c9945492SAndroid Build Coastguard Worker #define SEM_NSEMS_MAX 256 71*c9945492SAndroid Build Coastguard Worker #define DELAYTIMER_MAX 0x7fffffff 72*c9945492SAndroid Build Coastguard Worker #define MQ_PRIO_MAX 32768 73*c9945492SAndroid Build Coastguard Worker #define LOGIN_NAME_MAX 256 74*c9945492SAndroid Build Coastguard Worker 75*c9945492SAndroid Build Coastguard Worker /* Arbitrary numbers... */ 76*c9945492SAndroid Build Coastguard Worker 77*c9945492SAndroid Build Coastguard Worker #define BC_BASE_MAX 99 78*c9945492SAndroid Build Coastguard Worker #define BC_DIM_MAX 2048 79*c9945492SAndroid Build Coastguard Worker #define BC_SCALE_MAX 99 80*c9945492SAndroid Build Coastguard Worker #define BC_STRING_MAX 1000 81*c9945492SAndroid Build Coastguard Worker #define CHARCLASS_NAME_MAX 14 82*c9945492SAndroid Build Coastguard Worker #define COLL_WEIGHTS_MAX 2 83*c9945492SAndroid Build Coastguard Worker #define EXPR_NEST_MAX 32 84*c9945492SAndroid Build Coastguard Worker #define LINE_MAX 4096 85*c9945492SAndroid Build Coastguard Worker #define RE_DUP_MAX 255 86*c9945492SAndroid Build Coastguard Worker 87*c9945492SAndroid Build Coastguard Worker #define NL_ARGMAX 9 88*c9945492SAndroid Build Coastguard Worker #define NL_MSGMAX 32767 89*c9945492SAndroid Build Coastguard Worker #define NL_SETMAX 255 90*c9945492SAndroid Build Coastguard Worker #define NL_TEXTMAX 2048 91*c9945492SAndroid Build Coastguard Worker 92*c9945492SAndroid Build Coastguard Worker #endif 93*c9945492SAndroid Build Coastguard Worker 94*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE) 95*c9945492SAndroid Build Coastguard Worker 96*c9945492SAndroid Build Coastguard Worker #ifdef PAGESIZE 97*c9945492SAndroid Build Coastguard Worker #define PAGE_SIZE PAGESIZE 98*c9945492SAndroid Build Coastguard Worker #endif 99*c9945492SAndroid Build Coastguard Worker #define NZERO 20 100*c9945492SAndroid Build Coastguard Worker #define NL_LANGMAX 32 101*c9945492SAndroid Build Coastguard Worker 102*c9945492SAndroid Build Coastguard Worker #endif 103*c9945492SAndroid Build Coastguard Worker 104*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \ 105*c9945492SAndroid Build Coastguard Worker || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) 106*c9945492SAndroid Build Coastguard Worker 107*c9945492SAndroid Build Coastguard Worker #define NL_NMAX 16 108*c9945492SAndroid Build Coastguard Worker 109*c9945492SAndroid Build Coastguard Worker #endif 110*c9945492SAndroid Build Coastguard Worker 111*c9945492SAndroid Build Coastguard Worker /* POSIX/SUS requirements follow. These numbers come directly 112*c9945492SAndroid Build Coastguard Worker * from SUS and have nothing to do with the host system. */ 113*c9945492SAndroid Build Coastguard Worker 114*c9945492SAndroid Build Coastguard Worker #define _POSIX_AIO_LISTIO_MAX 2 115*c9945492SAndroid Build Coastguard Worker #define _POSIX_AIO_MAX 1 116*c9945492SAndroid Build Coastguard Worker #define _POSIX_ARG_MAX 4096 117*c9945492SAndroid Build Coastguard Worker #define _POSIX_CHILD_MAX 25 118*c9945492SAndroid Build Coastguard Worker #define _POSIX_CLOCKRES_MIN 20000000 119*c9945492SAndroid Build Coastguard Worker #define _POSIX_DELAYTIMER_MAX 32 120*c9945492SAndroid Build Coastguard Worker #define _POSIX_HOST_NAME_MAX 255 121*c9945492SAndroid Build Coastguard Worker #define _POSIX_LINK_MAX 8 122*c9945492SAndroid Build Coastguard Worker #define _POSIX_LOGIN_NAME_MAX 9 123*c9945492SAndroid Build Coastguard Worker #define _POSIX_MAX_CANON 255 124*c9945492SAndroid Build Coastguard Worker #define _POSIX_MAX_INPUT 255 125*c9945492SAndroid Build Coastguard Worker #define _POSIX_MQ_OPEN_MAX 8 126*c9945492SAndroid Build Coastguard Worker #define _POSIX_MQ_PRIO_MAX 32 127*c9945492SAndroid Build Coastguard Worker #define _POSIX_NAME_MAX 14 128*c9945492SAndroid Build Coastguard Worker #define _POSIX_NGROUPS_MAX 8 129*c9945492SAndroid Build Coastguard Worker #define _POSIX_OPEN_MAX 20 130*c9945492SAndroid Build Coastguard Worker #define _POSIX_PATH_MAX 256 131*c9945492SAndroid Build Coastguard Worker #define _POSIX_PIPE_BUF 512 132*c9945492SAndroid Build Coastguard Worker #define _POSIX_RE_DUP_MAX 255 133*c9945492SAndroid Build Coastguard Worker #define _POSIX_RTSIG_MAX 8 134*c9945492SAndroid Build Coastguard Worker #define _POSIX_SEM_NSEMS_MAX 256 135*c9945492SAndroid Build Coastguard Worker #define _POSIX_SEM_VALUE_MAX 32767 136*c9945492SAndroid Build Coastguard Worker #define _POSIX_SIGQUEUE_MAX 32 137*c9945492SAndroid Build Coastguard Worker #define _POSIX_SSIZE_MAX 32767 138*c9945492SAndroid Build Coastguard Worker #define _POSIX_STREAM_MAX 8 139*c9945492SAndroid Build Coastguard Worker #define _POSIX_SS_REPL_MAX 4 140*c9945492SAndroid Build Coastguard Worker #define _POSIX_SYMLINK_MAX 255 141*c9945492SAndroid Build Coastguard Worker #define _POSIX_SYMLOOP_MAX 8 142*c9945492SAndroid Build Coastguard Worker #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 143*c9945492SAndroid Build Coastguard Worker #define _POSIX_THREAD_KEYS_MAX 128 144*c9945492SAndroid Build Coastguard Worker #define _POSIX_THREAD_THREADS_MAX 64 145*c9945492SAndroid Build Coastguard Worker #define _POSIX_TIMER_MAX 32 146*c9945492SAndroid Build Coastguard Worker #define _POSIX_TRACE_EVENT_NAME_MAX 30 147*c9945492SAndroid Build Coastguard Worker #define _POSIX_TRACE_NAME_MAX 8 148*c9945492SAndroid Build Coastguard Worker #define _POSIX_TRACE_SYS_MAX 8 149*c9945492SAndroid Build Coastguard Worker #define _POSIX_TRACE_USER_EVENT_MAX 32 150*c9945492SAndroid Build Coastguard Worker #define _POSIX_TTY_NAME_MAX 9 151*c9945492SAndroid Build Coastguard Worker #define _POSIX_TZNAME_MAX 6 152*c9945492SAndroid Build Coastguard Worker #define _POSIX2_BC_BASE_MAX 99 153*c9945492SAndroid Build Coastguard Worker #define _POSIX2_BC_DIM_MAX 2048 154*c9945492SAndroid Build Coastguard Worker #define _POSIX2_BC_SCALE_MAX 99 155*c9945492SAndroid Build Coastguard Worker #define _POSIX2_BC_STRING_MAX 1000 156*c9945492SAndroid Build Coastguard Worker #define _POSIX2_CHARCLASS_NAME_MAX 14 157*c9945492SAndroid Build Coastguard Worker #define _POSIX2_COLL_WEIGHTS_MAX 2 158*c9945492SAndroid Build Coastguard Worker #define _POSIX2_EXPR_NEST_MAX 32 159*c9945492SAndroid Build Coastguard Worker #define _POSIX2_LINE_MAX 2048 160*c9945492SAndroid Build Coastguard Worker #define _POSIX2_RE_DUP_MAX 255 161*c9945492SAndroid Build Coastguard Worker 162*c9945492SAndroid Build Coastguard Worker #define _XOPEN_IOV_MAX 16 163*c9945492SAndroid Build Coastguard Worker #define _XOPEN_NAME_MAX 255 164*c9945492SAndroid Build Coastguard Worker #define _XOPEN_PATH_MAX 1024 165*c9945492SAndroid Build Coastguard Worker 166*c9945492SAndroid Build Coastguard Worker #endif 167