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