1 /* limits.h 2 3 Copyright 1999, 2000 Cygnus Solutions. 4 5 This file is part of Cygwin. 6 7 This software is a copyrighted work licensed under the terms of the 8 Cygwin license. Please consult the file "CYGWIN_LICENSE" for 9 details. */ 10 11 #ifndef _LIMITS_H___ 12 #ifndef _MACH_MACHLIMITS_H_ 13 14 /* _MACH_MACHLIMITS_H_ is used on OSF/1. */ 15 #define _LIMITS_H___ 16 #define _MACH_MACHLIMITS_H_ 17 18 /* Number of bits in a `char'. */ 19 #undef CHAR_BIT 20 #define CHAR_BIT 8 21 22 /* Maximum length of a multibyte character. */ 23 #ifndef MB_LEN_MAX 24 #define MB_LEN_MAX 1 25 #endif 26 27 /* Minimum and maximum values a `signed char' can hold. */ 28 #undef SCHAR_MIN 29 #define SCHAR_MIN (-128) 30 #undef SCHAR_MAX 31 #define SCHAR_MAX 127 32 33 /* Maximum value an `unsigned char' can hold. (Minimum is 0). */ 34 #undef UCHAR_MAX 35 #define UCHAR_MAX 255 36 37 /* Minimum and maximum values a `char' can hold. */ 38 #ifdef __CHAR_UNSIGNED__ 39 #undef CHAR_MIN 40 #define CHAR_MIN 0 41 #undef CHAR_MAX 42 #define CHAR_MAX 255 43 #else 44 #undef CHAR_MIN 45 #define CHAR_MIN (-128) 46 #undef CHAR_MAX 47 #define CHAR_MAX 127 48 #endif 49 50 /* Minimum and maximum values a `signed short int' can hold. */ 51 #undef SHRT_MIN 52 #define SHRT_MIN (-32768) 53 #undef SHRT_MAX 54 #define SHRT_MAX 32767 55 56 /* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ 57 #undef USHRT_MAX 58 #define USHRT_MAX 65535 59 60 /* Minimum and maximum values a `signed int' can hold. */ 61 #ifndef __INT_MAX__ 62 #define __INT_MAX__ 2147483647 63 #endif 64 #undef INT_MIN 65 #define INT_MIN (-INT_MAX-1) 66 #undef INT_MAX 67 #define INT_MAX __INT_MAX__ 68 69 /* Maximum value an `unsigned int' can hold. (Minimum is 0). */ 70 #undef UINT_MAX 71 #define UINT_MAX (INT_MAX * 2U + 1) 72 73 /* Minimum and maximum values a `signed long int' can hold. 74 (Same as `int'). */ 75 #ifndef __LONG_MAX__ 76 #ifndef __alpha__ 77 #define __LONG_MAX__ 2147483647L 78 #else 79 #define __LONG_MAX__ 9223372036854775807L 80 # endif /* __alpha__ */ 81 #endif 82 #undef LONG_MIN 83 #define LONG_MIN (-LONG_MAX-1) 84 #undef LONG_MAX 85 #define LONG_MAX __LONG_MAX__ 86 87 /* Maximum value an `unsigned long int' can hold. (Minimum is 0). */ 88 #undef ULONG_MAX 89 #define ULONG_MAX (LONG_MAX * 2UL + 1) 90 91 #if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__) 92 /* Minimum and maximum values a `signed long long int' can hold. */ 93 #ifndef __LONG_LONG_MAX__ 94 #define __LONG_LONG_MAX__ 9223372036854775807LL 95 #endif 96 #undef LONG_LONG_MIN 97 #define LONG_LONG_MIN (-LONG_LONG_MAX-1) 98 #undef LONG_LONG_MAX 99 #define LONG_LONG_MAX __LONG_LONG_MAX__ 100 101 /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ 102 #undef ULONG_LONG_MAX 103 #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) 104 #endif 105 106 /* Maximum number of iovcnt in a writev */ 107 #undef IOV_MAX 108 #define IOV_MAX (__INT_MAX__-1) 109 110 /* Maximum size of ssize_t */ 111 #undef SSIZE_MAX 112 #define SSIZE_MAX (__LONG_MAX__) 113 114 /* Maximum length of a path */ 115 #define PATH_MAX (260 - 1 /*NUL*/) 116 117 /* Max num groups for a user, value taken from NT documentation */ 118 /* Must match <sys/param.h> NGROUPS */ 119 #define NGROUPS_MAX 16 120 121 /* WaitForMultipleObjects can't handle waiting for more than 64 objects. 122 This limits how many children we can fork/spawn off. */ 123 #define CHILD_MAX 63 124 125 /* POSIX values */ 126 /* These should never vary from one system type to another */ 127 /* They represent the minimum values that POSIX systems must support. 128 POSIX-conforming apps must not require larger values. */ 129 #define _POSIX_ARG_MAX 4096 130 #define _POSIX_CHILD_MAX 6 131 #define _POSIX_LINK_MAX 8 132 #define _POSIX_MAX_CANON 255 133 #define _POSIX_MAX_INPUT 255 134 #define _POSIX_NAME_MAX 14 135 #define _POSIX_NGROUPS_MAX 0 136 #define _POSIX_OPEN_MAX 16 137 #define _POSIX_PATH_MAX 255 138 #define _POSIX_PIPE_BUF 512 139 #define _POSIX_SSIZE_MAX 32767 140 #define _POSIX_STREAM_MAX 8 141 #define _POSIX_TZNAME_MAX 3 142 143 #endif /* _MACH_MACHLIMITS_H_ */ 144 #endif /* _LIMITS_H___ */ |