1macro-int-constant CHAR_BIT >= 8
2macro-int-constant SCHAR_MIN {promoted:signed char} <= -127
3macro-int-constant SCHAR_MAX {promoted:signed char} >= 127
4macro-int-constant UCHAR_MAX {promoted:unsigned char} >= 255
5#ifdef __CHAR_UNSIGNED__
6macro-int-constant CHAR_MIN {promoted:char} == 0
7macro-int-constant CHAR_MAX {promoted:char} == UCHAR_MAX
8#else
9macro-int-constant CHAR_MIN {promoted:char} == SCHAR_MIN
10macro-int-constant CHAR_MAX {promoted:char} == SCHAR_MAX
11#endif
12macro-int-constant MB_LEN_MAX >= 1
13macro-int-constant SHRT_MIN {promoted:short int} <= -32767
14macro-int-constant SHRT_MAX {promoted:short int} >= 32767
15macro-int-constant USHRT_MAX {promoted:unsigned short int} >= 65535
16// The ranges for int and unsigned int are from POSIX.
17macro-int-constant INT_MAX {int} >= 2147483647
18macro-int-constant INT_MIN {int} <= -2147483647
19macro-int-constant UINT_MAX {unsigned int} >= 4294967295U
20macro-int-constant LONG_MAX {long int} >= 2147483647L
21macro-int-constant LONG_MIN {long int} <= -2147483647L
22macro-int-constant ULONG_MAX {unsigned long int} >= 4294967295UL
23#if defined ISO99 || defined ISO11 || defined XOPEN2K8 || defined POSIX2008
24macro-int-constant LLONG_MIN {long long int} <= -9223372036854775807ll
25macro-int-constant LLONG_MAX {long long int} >= 9223372036854775807ll
26macro-int-constant ULLONG_MAX {unsigned long long int} >= 18446744073709551615ull
27#endif
28
29#if !defined ISO && !defined ISO99 && !defined ISO11
30// if these values exist, we should check the minimal value
31allow AIO_LISTIO_MAX
32allow AIO_MAX
33allow AIO_PRIO_DELTA_MAX
34allow ARG_MAX
35#if !defined POSIX && !defined XPG4
36allow ATEXIT_MAX
37#endif
38allow CHILD_MAX
39allow DELAYTIMER_MAX
40#if !defined POSIX && !defined POSIX2008 && !defined XPG4
41allow IOV_MAX
42#endif
43allow LOGIN_NAME_MAX
44allow MQ_OPEN_MAX
45allow MQ_PRIO_MAX
46allow OPEN_MAX
47allow PAGESIZE
48#if !defined POSIX && !defined POSIX2008
49allow PAGE_SIZE
50#endif
51allow PTHREAD_DESTRUCTOR_ITERATIONS
52allow PTHREAD_KEYS_MAX
53allow PTHREAD_STACK_MIN
54allow PTHREAD_THREADS_MAX
55allow RTSIG_MAX
56allow SEM_NSEMS_MAX
57allow SEM_VALUE_MAX
58allow SIGQUEUE_MAX
59#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
60allow SS_REPL_MAX
61#endif
62allow STREAM_MAX
63#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
64allow SYMLOOP_MAX
65#endif
66allow TIMER_MAX
67allow TTY_NAME_MAX
68allow TZNAME_MAX
69
70#if !defined POSIX && !defined XPG4 && !defined XPG42
71allow FILESIZEBITS
72#endif
73allow LINK_MAX
74allow MAX_CANON
75allow MAX_INPUT
76allow NAME_MAX
77allow PATH_MAX
78allow PIPE_BUF
79#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
80allow POSIX_ALLOC_SIZE_MIN
81allow POSIX_REC_INCR_XFER_SIZE
82allow POSIX_REC_MAX_XFER_SIZE
83allow POSIX_REC_XFER_ALIGN
84allow SYMLINK_MAX
85#endif
86
87macro-constant BC_BASE_MAX >= _POSIX2_BC_BASE_MAX
88macro-constant BC_DIM_MAX >= _POSIX2_BC_DIM_MAX
89macro-constant BC_SCALE_MAX >= _POSIX2_BC_SCALE_MAX
90macro-constant BC_STRING_MAX >= _POSIX2_BC_STRING_MAX
91#if !defined POSIX && !defined XPG4 && !defined XPG42
92macro CHARCLASS_NAME_MAX
93#endif
94macro-constant COLL_WEIGHTS_MAX >= _POSIX2_COLL_WEIGHTS_MAX
95macro-constant EXPR_NEST_MAX >= _POSIX2_EXPR_NEST_MAX
96macro-constant LINE_MAX >= _POSIX2_LINE_MAX
97constant NGROUPS_MAX >= 8
98macro-constant RE_DUP_MAX >= _POSIX2_RE_DUP_MAX
99
100constant _POSIX_CLOCKRES_MIN == 20000000
101
102constant _POSIX_AIO_LISTIO_MAX == 2
103constant _POSIX_AIO_MAX == 1
104constant _POSIX_ARG_MAX == 4096
105#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
106constant _POSIX_CHILD_MAX == 25
107#else
108constant _POSIX_CHILD_MAX == 6
109#endif
110constant _POSIX_DELAYTIMER_MAX == 32
111constant _POSIX_LINK_MAX == 8
112constant _POSIX_LOGIN_NAME_MAX == 9
113constant _POSIX_MAX_CANON == 255
114constant _POSIX_MAX_INPUT == 255
115constant _POSIX_MQ_OPEN_MAX == 8
116constant _POSIX_MQ_PRIO_MAX == 32
117constant _POSIX_NAME_MAX == 14
118#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
119constant _POSIX_NGROUPS_MAX == 8
120#else
121constant _POSIX_NGROUPS_MAX == 0
122#endif
123#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
124constant _POSIX_OPEN_MAX == 20
125#else
126constant _POSIX_OPEN_MAX == 16
127#endif
128// Value was 255, corrected to 256 following an interpretation request.
129constant _POSIX_PATH_MAX == 256
130constant _POSIX_PIPE_BUF == 512
131constant _POSIX_RTSIG_MAX == 8
132constant _POSIX_SEM_NSEMS_MAX == 256
133constant _POSIX_SEM_VALUE_MAX == 32767
134constant _POSIX_SIGQUEUE_MAX == 32
135constant _POSIX_SSIZE_MAX == 32767
136constant _POSIX_STREAM_MAX == 8
137#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
138optional-constant _POSIX_SS_REPL_MAX == 4
139optional-constant _POSIX_SYMLINK_MAX == 255
140optional-constant _POSIX_SYMLOOP_MAX == 8
141#endif
142constant _POSIX_THREAD_DESTRUCTOR_ITERATIONS == 4
143constant _POSIX_THREAD_KEYS_MAX == 128
144constant _POSIX_THREAD_THREADS_MAX == 64
145constant _POSIX_TIMER_MAX == 32
146constant _POSIX_TTY_NAME_MAX == 9
147#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
148constant _POSIX_TZNAME_MAX == 6
149#else
150constant _POSIX_TZNAME_MAX == 3
151#endif
152macro-constant _POSIX2_BC_BASE_MAX == 99
153macro-constant _POSIX2_BC_DIM_MAX == 2048
154macro-constant _POSIX2_BC_SCALE_MAX == 99
155macro-constant _POSIX2_BC_STRING_MAX == 1000
156#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
157constant _POSIX2_CHARCLASS_NAME_MAX == 14
158#endif
159macro-constant _POSIX2_COLL_WEIGHTS_MAX == 2
160macro-constant _POSIX2_EXPR_NEST_MAX == 32
161macro-constant _POSIX2_LINE_MAX == 2048
162macro-constant _POSIX2_RE_DUP_MAX == 255
163#if !defined POSIX && !defined POSIX2008 && !defined XPG4
164optional-constant _XOPEN_IOV_MAX == 16
165#endif
166
167#if !defined POSIX && !defined POSIX2008
168constant WORD_BIT >= 16
169constant LONG_BIT >= 32
170#endif
171constant SSIZE_MAX
172
173#if !defined POSIX
174optional-constant CHARCLASS_NAME_MAX >= 14
175#endif
176#if !defined POSIX
177optional-constant NL_ARGMAX >= 9
178# if !defined POSIX2008
179optional-constant NL_LANGMAX >= 14
180# endif
181optional-constant NL_MSGMAX >= 32767
182# if !defined XOPEN2K8 && !defined POSIX2008
183optional-constant NL_NMAX
184# endif
185optional-constant NL_SETMAX >= 255
186optional-constant NL_TEXTMAX
187# if !defined POSIX2008
188optional-constant NZERO >= 20
189# endif
190#endif
191#if defined XPG4 || defined XPG42 || defined UNIX98
192optional-constant TMP_MAX >= 10000
193#endif
194
195allow *_MAX
196#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
197allow *_MIN
198#endif
199allow *_t
200#endif
201