/* limits.h Copyright 1999, 2000 Cygnus Solutions. This file is part of Cygwin. This software is a copyrighted work licensed under the terms of the Cygwin license. Please consult the file "CYGWIN_LICENSE" for details. */ #ifndef _LIMITS_H___ #ifndef _MACH_MACHLIMITS_H_ /* _MACH_MACHLIMITS_H_ is used on OSF/1. */ #define _LIMITS_H___ #define _MACH_MACHLIMITS_H_ /* Number of bits in a `char'. */ #undef CHAR_BIT #define CHAR_BIT 8 /* Maximum length of a multibyte character. */ #ifndef MB_LEN_MAX #define MB_LEN_MAX 1 #endif /* Minimum and maximum values a `signed char' can hold. */ #undef SCHAR_MIN #define SCHAR_MIN (-128) #undef SCHAR_MAX #define SCHAR_MAX 127 /* Maximum value an `unsigned char' can hold. (Minimum is 0). */ #undef UCHAR_MAX #define UCHAR_MAX 255 /* Minimum and maximum values a `char' can hold. */ #ifdef __CHAR_UNSIGNED__ #undef CHAR_MIN #define CHAR_MIN 0 #undef CHAR_MAX #define CHAR_MAX 255 #else #undef CHAR_MIN #define CHAR_MIN (-128) #undef CHAR_MAX #define CHAR_MAX 127 #endif /* Minimum and maximum values a `signed short int' can hold. */ #undef SHRT_MIN #define SHRT_MIN (-32768) #undef SHRT_MAX #define SHRT_MAX 32767 /* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ #undef USHRT_MAX #define USHRT_MAX 65535 /* Minimum and maximum values a `signed int' can hold. */ #ifndef __INT_MAX__ #define __INT_MAX__ 2147483647 #endif #undef INT_MIN #define INT_MIN (-INT_MAX-1) #undef INT_MAX #define INT_MAX __INT_MAX__ /* Maximum value an `unsigned int' can hold. (Minimum is 0). */ #undef UINT_MAX #define UINT_MAX (INT_MAX * 2U + 1) /* Minimum and maximum values a `signed long int' can hold. (Same as `int'). */ #ifndef __LONG_MAX__ #ifndef __alpha__ #define __LONG_MAX__ 2147483647L #else #define __LONG_MAX__ 9223372036854775807L # endif /* __alpha__ */ #endif #undef LONG_MIN #define LONG_MIN (-LONG_MAX-1) #undef LONG_MAX #define LONG_MAX __LONG_MAX__ /* Maximum value an `unsigned long int' can hold. (Minimum is 0). */ #undef ULONG_MAX #define ULONG_MAX (LONG_MAX * 2UL + 1) #if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__) /* Minimum and maximum values a `signed long long int' can hold. */ #ifndef __LONG_LONG_MAX__ #define __LONG_LONG_MAX__ 9223372036854775807LL #endif #undef LONG_LONG_MIN #define LONG_LONG_MIN (-LONG_LONG_MAX-1) #undef LONG_LONG_MAX #define LONG_LONG_MAX __LONG_LONG_MAX__ /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ #undef ULONG_LONG_MAX #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) #endif /* Maximum number of iovcnt in a writev */ #undef IOV_MAX #define IOV_MAX (__INT_MAX__-1) /* Maximum size of ssize_t */ #undef SSIZE_MAX #define SSIZE_MAX (__LONG_MAX__) /* Maximum length of a path */ #define PATH_MAX (260 - 1 /*NUL*/) /* Max num groups for a user, value taken from NT documentation */ /* Must match NGROUPS */ #define NGROUPS_MAX 16 /* WaitForMultipleObjects can't handle waiting for more than 64 objects. This limits how many children we can fork/spawn off. */ #define CHILD_MAX 63 /* # of open files per process. Actually it can be more since Cygwin grows the dtable as necessary. We define a reasonable limit here which is returned by getdtablesize(), sysconf(_SC_OPEN_MAX) and getrlimit(RLIMIT_NOFILE). */ #undef OPEN_MAX #define OPEN_MAX 256 /* # of bytes in a pipe buf. This is the max # of bytes which can be written to a pipe in one atomic operation. */ #undef PIPE_BUF #define PIPE_BUF 4096 /* POSIX values */ /* These should never vary from one system type to another */ /* They represent the minimum values that POSIX systems must support. POSIX-conforming apps must not require larger values. */ #define _POSIX_ARG_MAX 4096 #define _POSIX_CHILD_MAX 6 #define _POSIX_LINK_MAX 8 #define _POSIX_MAX_CANON 255 #define _POSIX_MAX_INPUT 255 #define _POSIX_NAME_MAX 14 #define _POSIX_NGROUPS_MAX 0 #define _POSIX_OPEN_MAX 16 #define _POSIX_PATH_MAX 255 #define _POSIX_PIPE_BUF 512 #define _POSIX_SSIZE_MAX 32767 #define _POSIX_STREAM_MAX 8 #define _POSIX_TZNAME_MAX 3 #endif /* _MACH_MACHLIMITS_H_ */ #endif /* _LIMITS_H___ */