/* Sizes of integer types This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will. */ #ifndef _PDCLIB_LIMITS_H #define _PDCLIB_LIMITS_H _PDCLIB_LIMITS_H #include "_PDCLIB/int.h" #include /* MSVC 2010 defines this to 5, which is enough for UTF-8 but might rule out stateful encodings (like ISO/IEC 2022). GCC 5.3 defines this to 16, which is meant to ensure future compatibility. For the same reason, we go along with GCC's definition. http://lists.gnu.org/archive/html/bug-gnulib/2015-05/msg00001.html */ #define MB_LEN_MAX 16 #define LLONG_MIN _PDCLIB_LLONG_MIN #define LLONG_MAX _PDCLIB_LLONG_MAX #define ULLONG_MAX _PDCLIB_ULLONG_MAX #define CHAR_BIT _PDCLIB_CHAR_BIT #define CHAR_MAX _PDCLIB_CHAR_MAX #define CHAR_MIN _PDCLIB_CHAR_MIN #define SCHAR_MAX _PDCLIB_SCHAR_MAX #define SCHAR_MIN _PDCLIB_SCHAR_MIN #define UCHAR_MAX _PDCLIB_UCHAR_MAX #define SHRT_MAX _PDCLIB_SHRT_MAX #define SHRT_MIN _PDCLIB_SHRT_MIN #define INT_MAX _PDCLIB_INT_MAX #define INT_MIN _PDCLIB_INT_MIN #define LONG_MAX _PDCLIB_LONG_MAX #define LONG_MIN _PDCLIB_LONG_MIN #define USHRT_MAX _PDCLIB_USHRT_MAX #define UINT_MAX _PDCLIB_UINT_MAX #define ULONG_MAX _PDCLIB_ULONG_MAX #define SSIZE_MAX _PDCLIB_INT_MAX /* POSIX runtime invariant values */ #define AIO_LISTIO_MAX _HOST_AIO_LISTIO_MAX #define AIO_MAX _HOST_AIO_MAX #define AIO_PRIO_DELTA_MAX _HOST_AIO_PRIO_DELTA_MAX #define ARG_MAX _HOST_ARG_MAX #define ATEXIT_MAX _HOST_ATEXIT_MAX #define CHILD_MAX _HOST_CHILD_MAX #define DELAYTIMER_MAX _HOST_DELAYTIMER_MAX #define HOST_NAME_MAX _HOST_HOST_NAME_MAX #define IOV_MAX _HOST_IOV_MAX #define LOGIN_NAME_MAX _HOST_LOGIN_NAME_MAX #define MQ_OPEN_MAX _HOST_MQ_OPEN_MAX #define MQ_PRIO_MAX _HOST_MQ_PRIO_MAX #define OPEN_MAX _HOST_OPEN_MAX #define PAGESIZE _HOST_PAGESIZE #define PAGE_SIZE _HOST_PAGE_SIZE #define PTHREAD_DESTRUCTOR_ITERATIONS _HOST_PTHREAD_DESTRUCTOR_ITERATIONS #define PTHREAD_KEYS_MAX _HOST_PTHREAD_KEYS_MAX #define PTHREAD_STACK_MIN _HOST_PTHREAD_STACK_MIN #define PTHREAD_THREADS_MAX _HOST_PTHREAD_THREADS_MAX #define RTSIG_MAX _HOST_RTSIG_MAX #define SEM_NSEMS_MAX _HOST_SEM_NSEMS_MAX #define SEM_VALUE_MAX _HOST_SEM_VALUE_MAX #define SIGQUEUE_MAX _HOST_SIGQUEUE_MAX #define SS_REPL_MAX _HOST_SS_REPL_MAX #define STREAM_MAX _HOST_STREAM_MAX #define SYMLOOP_MAX _HOST_SYMLOOP_MAX #define TIMER_MAX _HOST_TIMER_MAX #define TRACE_EVENT_NAME_MAX _HOST_TRACE_EVENT_NAME_MAX #define TRACE_NAME_MAX _HOST_TRACE_NAME_MAX #define TRACE_SYS_MAX _HOST_TRACE_SYS_MAX #define TRACE_USER_EVENT_MAX _HOST_TRACE_USER_EVENT_MAX #define TTY_NAME_MAX _HOST_TTY_NAME_MAX #define TZNAME_MAX _HOST_TZNAME_MAX /* POSIX pathname variable values */ #define FILESIZEBITS _HOST_FILESIZEBITS #define LINK_MAX _HOST_LINK_MAX #define MAX_CANON _HOST_MAX_CANON #define MAX_INPUT _HOST_MAX_INPUT #define NAME_MAX _HOST_NAME_MAX #define PATH_MAX _HOST_PATH_MAX #define PIPE_BUF _HOST_PIPE_BUF #define POSIX_ALLOC_SIZE_MIN _HOST_POSIX_ALLOC_SIZE_MIN #define POSIX_REC_INCR_XFER_SIZE _HOST_POSIX_REC_INCR_XFER_SIZE #define POSIX_REC_MAX_XFER_SIZE _HOST_POSIX_REC_MAX_XFER_SIZE #define POSIX_REC_MIN_XFER_SIZE _HOST_POSIX_REC_MIN_XFER_SIZE #define POSIX_REC_XFER_ALIGN _HOST_POSIX_REC_XFER_ALIGN #define SYMLINK_MAX _HOST_SYMLINK_MAX /* In the following, these exact values are required by POSIX. */ #define _POSIX_AIO_LISTIO_MAX 2 #define _POSIX_AIO_MAX 1 #define _POSIX_ARG_MAX 4 096 #define _POSIX_CHILD_MAX 25 #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 32 767 #define _POSIX_SIGQUEUE_MAX 32 #define _POSIX_SSIZE_MAX 32 767 #define _POSIX_SS_REPL_MAX 4 #define _POSIX_STREAM_MAX 8 #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