1 | /* The <limits.h> header defines some basic sizes, both of the language types
|
---|
2 | * (e.g., the number of bits in an integer), and of the operating system (e.g.
|
---|
3 | * the number of characters in a file name.
|
---|
4 | */
|
---|
5 |
|
---|
6 | #ifndef _LIMITS_H
|
---|
7 | #define _LIMITS_H
|
---|
8 |
|
---|
9 | /* Definitions about chars (8 bits in MINIX, and signed). */
|
---|
10 | #define CHAR_BIT 8 /* # bits in a char */
|
---|
11 | #define CHAR_MIN -128 /* minimum value of a char */
|
---|
12 | #define CHAR_MAX 127 /* maximum value of a char */
|
---|
13 | #define SCHAR_MIN -128 /* minimum value of a signed char */
|
---|
14 | #define SCHAR_MAX 127 /* maximum value of a signed char */
|
---|
15 | #define UCHAR_MAX 255 /* maximum value of an unsigned char */
|
---|
16 | #define MB_LEN_MAX 1 /* maximum length of a multibyte char */
|
---|
17 |
|
---|
18 | /* Definitions about shorts (16 bits in MINIX). */
|
---|
19 | #define SHRT_MIN (-32767-1) /* minimum value of a short */
|
---|
20 | #define SHRT_MAX 32767 /* maximum value of a short */
|
---|
21 | #define USHRT_MAX 0xFFFF /* maximum value of unsigned short */
|
---|
22 |
|
---|
23 | /* _EM_WSIZE is a compiler-generated symbol giving the word size in bytes. */
|
---|
24 | #if _EM_WSIZE == 2
|
---|
25 | #define INT_MIN (-32767-1) /* minimum value of a 16-bit int */
|
---|
26 | #define INT_MAX 32767 /* maximum value of a 16-bit int */
|
---|
27 | #define UINT_MAX 0xFFFF /* maximum value of an unsigned 16-bit int */
|
---|
28 | #endif
|
---|
29 |
|
---|
30 | #if _EM_WSIZE == 4
|
---|
31 | #define INT_MIN (-2147483647-1) /* minimum value of a 32-bit int */
|
---|
32 | #define INT_MAX 2147483647 /* maximum value of a 32-bit int */
|
---|
33 | #define UINT_MAX 0xFFFFFFFF /* maximum value of an unsigned 32-bit int */
|
---|
34 | #endif
|
---|
35 |
|
---|
36 | /*Definitions about longs (32 bits in MINIX). */
|
---|
37 | #define LONG_MIN (-2147483647L-1)/* minimum value of a long */
|
---|
38 | #define LONG_MAX 2147483647L /* maximum value of a long */
|
---|
39 | #define ULONG_MAX 0xFFFFFFFFL /* maximum value of an unsigned long */
|
---|
40 |
|
---|
41 | #include <sys/dir.h>
|
---|
42 |
|
---|
43 | /* Minimum sizes required by the POSIX P1003.1 standard (Table 2-3). */
|
---|
44 | #ifdef _POSIX_SOURCE /* these are only visible for POSIX */
|
---|
45 | #define _POSIX_ARG_MAX 4096 /* exec() may have 4K worth of args */
|
---|
46 | #define _POSIX_CHILD_MAX 6 /* a process may have 6 children */
|
---|
47 | #define _POSIX_LINK_MAX 8 /* a file may have 8 links */
|
---|
48 | #define _POSIX_MAX_CANON 255 /* size of the canonical input queue */
|
---|
49 | #define _POSIX_MAX_INPUT 255 /* you can type 255 chars ahead */
|
---|
50 | #define _POSIX_NAME_MAX DIRSIZ /* max. file name length */
|
---|
51 | #define _POSIX_NGROUPS_MAX 0 /* supplementary group IDs are optional */
|
---|
52 | #define _POSIX_OPEN_MAX 16 /* a process may have 16 files open */
|
---|
53 | #define _POSIX_PATH_MAX 255 /* a pathname may contain 255 chars */
|
---|
54 | #define _POSIX_PIPE_BUF 512 /* pipes writes of 512 bytes must be atomic */
|
---|
55 | #define _POSIX_STREAM_MAX 8 /* at least 8 FILEs can be open at once */
|
---|
56 | #define _POSIX_TZNAME_MAX 3 /* time zone names can be at least 3 chars */
|
---|
57 | #define _POSIX_SSIZE_MAX 32767 /* read() must support 32767 byte reads */
|
---|
58 |
|
---|
59 | /* Values actually implemented by MINIX (Tables 2-4, 2-5, 2-6, and 2-7). */
|
---|
60 | /* Some of these old names had better be defined when not POSIX. */
|
---|
61 | #define _NO_LIMIT 100 /* arbitrary number; limit not enforced */
|
---|
62 |
|
---|
63 | #define NGROUPS_MAX 0 /* supplemental group IDs not available */
|
---|
64 | #if _EM_WSIZE > 2
|
---|
65 | #define ARG_MAX 16384 /* # bytes of args + environ for exec() */
|
---|
66 | #else
|
---|
67 | #define ARG_MAX 4096 /* args + environ on small machines */
|
---|
68 | #endif
|
---|
69 | #define CHILD_MAX _NO_LIMIT /* MINIX does not limit children */
|
---|
70 | #define OPEN_MAX 30 /* # open files a process may have */
|
---|
71 | #if 0 /* V1 file system */
|
---|
72 | #define LINK_MAX CHAR_MAX /* # links a file may have */
|
---|
73 | #else /* V2 or better file system */
|
---|
74 | #define LINK_MAX SHRT_MAX /* # links a file may have */
|
---|
75 | #endif
|
---|
76 | #define MAX_CANON 255 /* size of the canonical input queue */
|
---|
77 | #define MAX_INPUT 255 /* size of the type-ahead buffer */
|
---|
78 | #define NAME_MAX DIRSIZ /* # chars in a file name */
|
---|
79 | #define PATH_MAX 255 /* # chars in a path name */
|
---|
80 | #define PIPE_BUF 7168 /* # bytes in atomic write to a pipe */
|
---|
81 | #define STREAM_MAX 20 /* must be the same as FOPEN_MAX in stdio.h */
|
---|
82 | #define TZNAME_MAX 3 /* maximum bytes in a time zone name is 3 */
|
---|
83 | #define SSIZE_MAX 32767 /* max defined byte count for read() */
|
---|
84 |
|
---|
85 | #endif /* _POSIX_SOURCE */
|
---|
86 |
|
---|
87 | #endif /* _LIMITS_H */
|
---|