aboutsummaryrefslogtreecommitdiff
path: root/system/include/libc/limits.h
diff options
context:
space:
mode:
Diffstat (limited to 'system/include/libc/limits.h')
-rw-r--r--system/include/libc/limits.h289
1 files changed, 140 insertions, 149 deletions
diff --git a/system/include/libc/limits.h b/system/include/libc/limits.h
index 3f1def0f..54d1940b 100644
--- a/system/include/libc/limits.h
+++ b/system/include/libc/limits.h
@@ -1,155 +1,146 @@
-#ifndef _LIBC_LIMITS_H_
-# define _LIBC_LIMITS_H_ 1
-
-#include <newlib.h>
-
-# ifdef _MB_LEN_MAX
-# define MB_LEN_MAX _MB_LEN_MAX
-# else
-# define MB_LEN_MAX 1
-# endif
-
-/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS. */
-# ifndef NL_ARGMAX
-# define NL_ARGMAX 32
-# endif
-
-/* if do not have #include_next support, then we
- have to define the limits here. */
-# if 1 /* XXX Emscripten: force this !defined __GNUC__ || __GNUC__ < 2 */
-
-# ifndef _LIMITS_H
-# define _LIMITS_H 1
-
-# include <sys/config.h>
-
-/* Number of bits in a `char'. */
-# undef CHAR_BIT
-# define CHAR_BIT 8
-
-/* 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
-/* For the sake of 16 bit hosts, we may not use -32768 */
-# define SHRT_MIN (-32767-1)
-# 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__
-# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9)
-# define __LONG_MAX__ 9223372036854775807L
-# else
-# define __LONG_MAX__ 2147483647L
-# endif /* __alpha__ || sparc64 */
-# 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)
-
-# ifndef __LONG_LONG_MAX__
-# define __LONG_LONG_MAX__ 9223372036854775807LL
-# 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
-
-# if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
-/* Minimum and maximum values a `signed long long int' can hold. */
-# 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
-
-# endif /* _LIMITS_H */
-# endif /* GCC 2. */
-
-#endif /* !_LIBC_LIMITS_H_ */
-
-#if defined __GNUC__ && !defined _GCC_LIMITS_H_
-/* `_GCC_LIMITS_H_' is what GCC's file defines. */
-/* XXX Emscripten # include_next <limits.h> */
-#endif /* __GNUC__ && !_GCC_LIMITS_H_ */
-
-#ifndef _POSIX2_RE_DUP_MAX
-/* The maximum number of repeated occurrences of a regular expression
- * permitted when using the interval notation `\{M,N\}'. */
-#define _POSIX2_RE_DUP_MAX 255
-#endif /* _POSIX2_RE_DUP_MAX */
-
-#ifndef ARG_MAX
-#define ARG_MAX 4096
-#endif
+#ifndef _LIMITS_H
+#define _LIMITS_H
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
+#include <features.h>
+
+/* Most limits are system-specific */
+
+#include <bits/limits.h>
-/* XXX EMSCRIPTEN */
-#ifndef _LIBC_LIMITS2_H_
-#define _LIBC_LIMITS2_H_ 1
+/* Support signed or unsigned plain-char */
-#define _POSIX_PATH_MAX PATH_MAX
-#define PTHREAD_STACK_MIN 0
+#if '\0'-1 > 0
+#define CHAR_MIN 0
+#define CHAR_MAX 255
+#else
+#define CHAR_MIN (-128)
+#define CHAR_MAX 127
+#endif
+
+/* Some universal constants... */
+
+#define CHAR_BIT 8
+#define SCHAR_MIN (-128)
+#define SCHAR_MAX 127
+#define UCHAR_MAX 255
+#define SHRT_MIN (-1-0x7fff)
+#define SHRT_MAX 0x7fff
+#define USHRT_MAX 0xffff
+#define INT_MIN (-1-0x7fffffff)
+#define INT_MAX 0x7fffffff
+#define UINT_MAX 0xffffffffU
+#define LONG_MIN (-LONG_MAX-1)
+#define ULONG_MAX (2UL*LONG_MAX+1)
+#define LLONG_MIN (-LLONG_MAX-1)
+#define ULLONG_MAX (2ULL*LLONG_MAX+1)
+
+#define MB_LEN_MAX 4
+
+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+
+#define PIPE_BUF 4096
+#define PAGESIZE PAGE_SIZE
+#define FILESIZEBITS 64
+#define NAME_MAX 255
+#define SYMLINK_MAX 255
+#define PATH_MAX 4096
+#define NZERO 20
+#define NGROUPS_MAX 32
+#define ARG_MAX 131072
+#define IOV_MAX 1024
+#define SYMLOOP_MAX 40
+#define WORD_BIT 32
+#define SSIZE_MAX LONG_MAX
+#define TZNAME_MAX 6
+#define TTY_NAME_MAX 20
+#define HOST_NAME_MAX 255
+
+/* Implementation choices... */
+
+#define PTHREAD_KEYS_MAX 128
+#define PTHREAD_STACK_MIN 2048
+#define PTHREAD_DESTRUCTOR_ITERATIONS 4
+#define SEM_VALUE_MAX 0x7fffffff
+#define SEM_NSEMS_MAX 256
+#define DELAYTIMER_MAX 0x7fffffff
+#define MQ_PRIO_MAX 32768
+#define LOGIN_NAME_MAX 256
+
+/* Arbitrary numbers... */
+
+#define BC_BASE_MAX 99
+#define BC_DIM_MAX 2048
+#define BC_SCALE_MAX 99
+#define BC_STRING_MAX 1000
+#define CHARCLASS_NAME_MAX 14
+#define COLL_WEIGHTS_MAX 2
+#define EXPR_NEST_MAX 32
+#define LINE_MAX 4096
+#define RE_DUP_MAX 255
+
+#define NL_ARGMAX 9
+#define NL_LANGMAX 32
+#define NL_MSGMAX 32767
+#define NL_NMAX (MB_LEN_MAX*4)
+#define NL_SETMAX 255
+#define NL_TEXTMAX 2048
#endif
+/* POSIX/SUS requirements follow. These numbers come directly
+ * from SUS and have nothing to do with the host system. */
+
+#define _POSIX_AIO_LISTIO_MAX 2
+#define _POSIX_AIO_MAX 1
+#define _POSIX_ARG_MAX 4096
+#define _POSIX_CHILD_MAX 25
+#define _POSIX_CLOCKRES_MIN 20000000
+#define _POSIX_DELAYTIMER_MAX 32
+#define _POSIX_HOST_NAME_MAX 255
+#define _POSIX_LINK_MAX 8
+#define _POSIX_LOGIN_NAME_MAX 9
+#define _POSIX_MAX_CANON 255
+#define _POSIX_MAX_INPUT 255
+#define _POSIX_MQ_OPEN_MAX 8
+#define _POSIX_MQ_PRIO_MAX 32
+#define _POSIX_NAME_MAX 14
+#define _POSIX_NGROUPS_MAX 8
+#define _POSIX_OPEN_MAX 20
+#define _POSIX_PATH_MAX 256
+#define _POSIX_PIPE_BUF 512
+#define _POSIX_RE_DUP_MAX 255
+#define _POSIX_RTSIG_MAX 8
+#define _POSIX_SEM_NSEMS_MAX 256
+#define _POSIX_SEM_VALUE_MAX 32767
+#define _POSIX_SIGQUEUE_MAX 32
+#define _POSIX_SSIZE_MAX 32767
+#define _POSIX_STREAM_MAX 8
+#define _POSIX_SS_REPL_MAX 4
+#define _POSIX_SYMLINK_MAX 255
+#define _POSIX_SYMLOOP_MAX 8
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+#define _POSIX_THREAD_KEYS_MAX 128
+#define _POSIX_THREAD_THREADS_MAX 64
+#define _POSIX_TIMER_MAX 32
+#define _POSIX_TRACE_EVENT_NAME_MAX 30
+#define _POSIX_TRACE_NAME_MAX 8
+#define _POSIX_TRACE_SYS_MAX 8
+#define _POSIX_TRACE_USER_EVENT_MAX 32
+#define _POSIX_TTY_NAME_MAX 9
+#define _POSIX_TZNAME_MAX 6
+#define _POSIX2_BC_BASE_MAX 99
+#define _POSIX2_BC_DIM_MAX 2048
+#define _POSIX2_BC_SCALE_MAX 99
+#define _POSIX2_BC_STRING_MAX 1000
+#define _POSIX2_CHARCLASS_NAME_MAX 14
+#define _POSIX2_COLL_WEIGHTS_MAX 2
+#define _POSIX2_EXPR_NEST_MAX 32
+#define _POSIX2_LINE_MAX 2048
+#define _POSIX2_RE_DUP_MAX 255
+
+#define _XOPEN_IOV_MAX 16
+#define _XOPEN_NAME_MAX 255
+#define _XOPEN_PATH_MAX 1024
+
+#endif