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