blob: 55ad82315b39193f845a7cd512c5a689fc97471a [file] [log] [blame]
Rich Felker0b44a032011-02-12 00:22:29 -05001#ifndef _LIMITS_H
2#define _LIMITS_H
3
4/* Most limits are system-specific */
5
6#include <bits/limits.h>
7
8/* Some universal constants... */
9
10#define CHAR_BIT 8
11#define SCHAR_MIN (-128)
12#define SCHAR_MAX 127
13#define UCHAR_MAX 255
14#define CHAR_MIN (-128)
15#define CHAR_MAX 127
Rich Felker0b44a032011-02-12 00:22:29 -050016
17#define MB_LEN_MAX 4
Rich Felker80695b12011-02-14 05:10:10 -050018
19#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
20 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
21
22#define SSIZE_MAX LONG_MAX
Rich Felker0b44a032011-02-12 00:22:29 -050023#define TZNAME_MAX 6
24#define TTY_NAME_MAX 20
25#define HOST_NAME_MAX 255
26
27/* Implementation choices... */
28
29#define PTHREAD_KEYS_MAX 1024
Rich Felker1a9a2ff2011-02-13 19:58:30 -050030#define PTHREAD_STACK_MIN PAGE_SIZE
31#define PTHREAD_DESTRUCTOR_ITERATIONS 4
Rich Felker03dcc342011-03-03 18:32:26 -050032#define SEM_VALUE_MAX 0x7fffffff
Rich Felker81af5032011-03-10 21:34:19 -050033#define SEM_NSEMS_MAX 256
Rich Felker0b44a032011-02-12 00:22:29 -050034
35/* Arbitrary numbers... */
36
37#define BC_BASE_MAX 99
38#define BC_DIM_MAX 2048
39#define BC_SCALE_MAX 99
40#define BC_STRING_MAX 1000
41#define CHARCLASS_NAME_MAX 14
42#define COLL_WEIGHTS_MAX 2
43#define EXPR_NEST_MAX 32
44#define LINE_MAX 4096
45#define RE_DUP_MAX 255
46
47#define NL_ARGMAX 9
48#define NL_LANGMAX 32
49#define NL_MSGMAX 32767
50#define NL_NMAX (MB_LEN_MAX*4)
51#define NL_SETMAX 255
52#define NL_TEXTMAX 2048
53
Rich Felker74eea622011-02-14 18:41:25 -050054#endif
55
Rich Felker0b44a032011-02-12 00:22:29 -050056/* POSIX/SUS requirements follow. These numbers come directly
57 * from SUS and have nothing to do with the host system. */
58
59#define _POSIX_AIO_LISTIO_MAX 2
60#define _POSIX_AIO_MAX 1
61#define _POSIX_ARG_MAX 4096
62#define _POSIX_CHILD_MAX 25
Rich Felker74eea622011-02-14 18:41:25 -050063#define _POSIX_CLOCKRES_MIN 20000000
Rich Felker0b44a032011-02-12 00:22:29 -050064#define _POSIX_DELAYTIMER_MAX 32
65#define _POSIX_HOST_NAME_MAX 255
66#define _POSIX_LINK_MAX 8
67#define _POSIX_LOGIN_NAME_MAX 9
68#define _POSIX_MAX_CANON 255
69#define _POSIX_MAX_INPUT 255
70#define _POSIX_MQ_OPEN_MAX 8
71#define _POSIX_MQ_PRIO_MAX 32
72#define _POSIX_NAME_MAX 14
73#define _POSIX_NGROUPS_MAX 8
74#define _POSIX_OPEN_MAX 20
75#define _POSIX_PATH_MAX 256
76#define _POSIX_PIPE_BUF 512
77#define _POSIX_RE_DUP_MAX 255
78#define _POSIX_RTSIG_MAX 8
79#define _POSIX_SEM_NSEMS_MAX 256
80#define _POSIX_SEM_VALUE_MAX 32767
81#define _POSIX_SIGQUEUE_MAX 32
82#define _POSIX_SSIZE_MAX 32767
83#define _POSIX_STREAM_MAX 8
84#define _POSIX_SS_REPL_MAX 4
85#define _POSIX_SYMLINK_MAX 255
86#define _POSIX_SYMLOOP_MAX 8
87#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
88#define _POSIX_THREAD_KEYS_MAX 128
89#define _POSIX_THREAD_THREADS_MAX 64
90#define _POSIX_TIMER_MAX 32
91#define _POSIX_TRACE_EVENT_NAME_MAX 30
92#define _POSIX_TRACE_NAME_MAX 8
93#define _POSIX_TRACE_SYS_MAX 8
94#define _POSIX_TRACE_USER_EVENT_MAX 32
95#define _POSIX_TTY_NAME_MAX 9
96#define _POSIX_TZNAME_MAX 6
97#define _POSIX2_BC_BASE_MAX 99
98#define _POSIX2_BC_DIM_MAX 2048
99#define _POSIX2_BC_SCALE_MAX 99
100#define _POSIX2_BC_STRING_MAX 1000
101#define _POSIX2_CHARCLASS_NAME_MAX 14
102#define _POSIX2_COLL_WEIGHTS_MAX 2
103#define _POSIX2_EXPR_NEST_MAX 32
104#define _POSIX2_LINE_MAX 2048
105#define _POSIX2_RE_DUP_MAX 255
106
107#define _XOPEN_IOV_MAX 16
108#define _XOPEN_NAME_MAX 255
109#define _XOPEN_PATH_MAX 1024
110
111#endif