/* limits.h Copyright 1999, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. 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) /* Minimum and maximum values a `signed long long int' can hold. */ #ifndef __LONG_LONG_MAX__ #define __LONG_LONG_MAX__ 9223372036854775807LL #endif #if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__) #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 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* Minimum and maximum values a `signed long long int' can hold. */ #undef LLONG_MIN #define LLONG_MIN (-LLONG_MAX-1) #undef LLONG_MAX #define LLONG_MAX __LONG_LONG_MAX__ /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ #undef ULLONG_MAX #define ULLONG_MAX (LLONG_MAX * 2ULL + 1) #endif /* Maximum number of iovcnt in a writev (an arbitrary number) */ #undef IOV_MAX #define IOV_MAX 1024 /* Maximum size of ssize_t */ #undef SSIZE_MAX #define SSIZE_MAX (__LONG_MAX__) /* Maximum length of a path */ #define PATH_MAX 260 /* Maximum length of a path component. */ #define NAME_MAX 255 /* 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 /* Maximum number of timer expiration overruns. */ #undef TIMER_MAX #define TIMER_MAX 32 /* Maximum number of characters in a login name. */ #undef LOGIN_NAME_MAX #define LOGIN_NAME_MAX 256 /* equal to UNLEN defined in w32api/lmcons.h */ /* Maximum number of characters in a tty name. */ #undef TTY_NAME_MAX #define TTY_NAME_MAX 12 /* 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 #define _POSIX_RTSIG_MAX 8 #define _POSIX_TIMER_MAX 32 #define _POSIX_TTY_NAME_MAX 9 #define RTSIG_MAX _POSIX_RTSIG_MAX /* Used for nice and get/setpriority. */ #define NZERO 20 #endif /* _MACH_MACHLIMITS_H_ */ #endif /* _LIMITS_H___ */