xref: /plan9-contrib/sys/include/ape/limits.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #ifndef __LIMITS
2 #define __LIMITS
3 /* 8 bit chars (signed), 16 bit shorts, 32 bit ints/longs */
4 
5 #define CHAR_BIT	8
6 #define MB_LEN_MAX	3
7 
8 #define UCHAR_MAX	0xff
9 #define USHRT_MAX	0xffff
10 #define UINT_MAX	0xffffffffU
11 #define ULONG_MAX	0xffffffffUL
12 
13 #define CHAR_MAX	SCHAR_MAX
14 #define SCHAR_MAX	0x7f
15 #define SHRT_MAX	0x7fff
16 #define INT_MAX		0x7fffffff
17 #define LONG_MAX	0x7fffffffL
18 
19 #define CHAR_MIN	SCHAR_MIN
20 #define SCHAR_MIN	(-SCHAR_MAX-1)
21 #define SHRT_MIN	(-SHRT_MAX-1)
22 #define INT_MIN		(-INT_MAX-1)
23 #define LONG_MIN	(-LONG_MAX-1)
24 
25 #ifdef _POSIX_SOURCE
26 
27 #define _POSIX_ARG_MAX		4096
28 #define _POSIX_CHILD_MAX	6
29 #define _POSIX_LINK_MAX		8
30 #define _POSIX_MAX_CANON	255
31 #define _POSIX_MAX_INPUT	255
32 #define _POSIX_NAME_MAX		14
33 #define _POSIX_NGROUPS_MAX	0
34 #define _POSIX_OPEN_MAX		16
35 #define _POSIX_PATH_MAX		255
36 #define _POSIX_PIPE_BUF		512
37 #define _POSIX_SSIZE_MAX	32767
38 #define _POSIX_STREAM_MAX	8
39 #define _POSIX_TZNAME_MAX	3
40 
41 /*#define ARG_MAX	_POSIX_ARG_MAX		/* pedagogy */
42 /*#define CHILD_MAX	_POSIX_CHILD_MAX	/* pedagogy */
43 /*#define LINK_MAX	_POSIX_LINK_MAX		/* pedagogy */
44 /*#define MAX_CANON	_POSIX_MAX_CANON	/* pedagogy */
45 /*#define MAX_INPUT	_POSIX_MAX_INPUT	/* pedagogy */
46 /*#define NAME_MAX	_POSIX_NAME_MAX		/* pedagogy */
47 #define NGROUPS_MAX	_POSIX_NGROUPS_MAX
48 /*#define OPEN_MAX	_POSIX_OPEN_MAX		/* pedagogy */
49 /*#define PATH_MAX	_POSIX_PATH_MAX		/* pedagogy */
50 /*#define PIPE_BUF	_POSIX_PIPE_BUF		/* pedagogy */
51 #define SSIZE_MAX	LONG_MAX
52 /*#define STREAM_MAX	_POSIX_STREAM_MAX	/* pedagogy */
53 #define TZNAME_MAX	_POSIX_TZNAME_MAX
54 
55 #ifdef _LIMITS_EXTENSION
56 /* some things are just too big for pedagogy (X!) */
57 #include <sys/limits.h>
58 #endif
59 #endif /* _POSIX_SOURCE */
60 
61 #endif /* __LIMITS */
62