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