xref: /haiku/headers/posix/limits.h (revision a4f6a81235ca2522c01f532de13cad9b729d4029)
1 #ifndef _LIBC_LIMITS_H_
2 #define _LIBC_LIMITS_H_
3 	// Note: The header guard is checked in gcc's limits.h.
4 
5 #include <float.h>		/* for DBL_DIG, FLT_DIG, etc */
6 
7 /* _GCC_LIMITS_H_ is defined by GCC's internal limits.h to avoid
8  * collisions with any defines in this file.
9  */
10 #if __INTEL__
11 # ifndef _GCC_LIMITS_H_
12 #  include_next <limits.h>
13 # endif
14 #else
15 
16 #define CHAR_BIT		(8)
17 
18 #define SCHAR_MIN		(-127-1)
19 #define SCHAR_MAX		(127)
20 
21 #define	UCHAR_MAX		(255U)
22 
23 #define CHAR_MIN		SCHAR_MIN
24 #define CHAR_MAX		SCHAR_MAX
25 
26 #define MB_LEN_MAX		(1)
27 
28 #define SHRT_MIN		(-32767-1)
29 #define SHRT_MAX		(32767)
30 
31 #define USHRT_MAX		(65535U)
32 
33 #define LONG_MIN		(-2147483647L-1)
34 #define LONG_MAX	  	(2147483647L)
35 
36 #define ULONG_MAX		(4294967295U)
37 
38 #define	INT_MIN			LONG_MIN
39 #define INT_MAX			LONG_MAX
40 #define UINT_MAX		ULONG_MAX
41 
42 #endif /* else not INTEL */
43 
44 #define LONGLONG_MIN    (-9223372036854775807LL - 1)  /* these are Be specific */
45 #define LONGLONG_MAX    (9223372036854775807LL)
46 #define ULONGLONG_MAX   (0xffffffffffffffffULL)
47 
48 #define	ULLONG_MAX		ULONGLONG_MAX
49 #define	LLONG_MAX		LONGLONG_MAX
50 #define	LLONG_MIN		LONGLONG_MIN
51 
52 #define OFF_MAX			LLONG_MAX
53 #define OFF_MIN			LLONG_MIN
54 
55 /* These are various BeOS implementation limits */
56 
57 #define ARG_MAX			 		(32768)
58 #define ATEXIT_MAX			 	(32)	 /* XXXdbg */
59 #define CHILD_MAX				(1024)
60 #define IOV_MAX					(256)	/* really there is no limit */
61 #define FILESIZEBITS			(64)
62 #define LINK_MAX				(1)
63 #define LOGIN_NAME_MAX			(32)	 /* XXXdbg */
64 #define MAX_CANON		   		(255)
65 #define MAX_INPUT				(255)
66 #define NAME_MAX				(256)
67 #define NGROUPS_MAX		 		(32)
68 #define OPEN_MAX				(128)
69 #define PATH_MAX				(1024)
70 #define PIPE_MAX				(512)
71 #define SSIZE_MAX		  		(2147483647L)
72 #define TTY_NAME_MAX			(256)
73 #define TZNAME_MAX		  		(32)
74 #define	SYMLINKS_MAX			(16)
75 
76 #define _POSIX_ARG_MAX	  		(32768)
77 #define _POSIX_CHILD_MAX		(1024)
78 #define _POSIX_LINK_MAX	 		(1)
79 #define _POSIX_LOGIN_NAME_MAX	(9)		/* XXXdbg */
80 #define _POSIX_MAX_CANON		(255)
81 #define _POSIX_MAX_INPUT		(255)
82 #define _POSIX_NAME_MAX	 		(255)
83 #define _POSIX_NGROUPS_MAX  	(0)
84 #define _POSIX_OPEN_MAX	 		(128)
85 #define _POSIX_PATH_MAX	 		(1024)
86 #define _POSIX_PIPE_BUF	 		(512)
87 #define _POSIX_SSIZE_MAX		(2147483647L)
88 #define _POSIX_STREAM_MAX   	(8)
89 #define _POSIX_TTY_NAME_MAX		(256)
90 #define _POSIX_TZNAME_MAX   	(3)
91 
92 #endif /* _LIBC_LIMITS_H_ */
93