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