// if these values exist, we should check the minimal value
allow AIO_LIST_MAX
allow AIO_MAX
allow AIO_PRIO_DELTA_MAX
allow ARG_MAX
allow ATEXT_MAX
allow CHILD_MAX
allow DELAYTIMER_MAX
allow IOV_MAX
allow LOGIN_NAME_MAX
allow MQ_OPEN_MAX
allow OPEN_MAX
allow PAGESIZE
#if !defined POSIX && !defined POSIX2008
allow PAGE_SIZE
#endif
allow PTHREAD_DESTRUCTOR_ITERATIONS
allow PTHREAD_KEYS_MAX
allow PTHREAD_STACK_MIN
allow PTHREAD_THREADS_MAX
allow RE_DUP_MAX
allow RTSIG_MAX
allow SEM_NSEMS_MAX
allow SEM_VALUE_MAX
allow SIGQUEUE_MAX
allow SS_REPL_MAX
allow STREAM_MAX
allow SYMLOOP_MAX
allow TIMER_MAX
allow TTY_NAME_MAX
allow TZNAME_MAX

allow FILESIZEBITS
allow LINK_MAX
allow MAX_CANON
allow MAX_INPUT
allow NAME_MAX
allow PATH_MAX
allow PIPE_BUF
allow POSIX_ALLOC_SIZE_MIN
allow POSIX_REC_INCR_XFER_SIZE
allow POSIX_REC_MAX_XFER_SIZE
allow POSIX_REC_XFER_ALIGN
allow SYMLINK_MAX

macro BC_BASE_MAX
macro BC_DIM_MAX
macro BC_SCALE_MAX
macro BC_STRING_MAX
macro CHARCLASS_NAME_MAX
macro COLL_WEIGHTS_MAX
macro EXPR_NEST_MAX
macro LINE_MAX
constant NGROUPS_MAX >= 8
macro RE_DUP_MAX

constant _POSIX_CLOCKRES_MIN <= 20000000

optional-constant _POSIX_AIO_LISTIO_MAX	2
optional-constant _POSIX_AIO_MAX 1
optional-constant _POSIX_ARG_MAX 4096
#ifdef XOPEN2K
optional-constant _POSIX_CHILD_MAX 25
#else
optional-constant _POSIX_CHILD_MAX 6
#endif
optional-constant _POSIX_DELAYTIMER_MAX 32
optional-constant _POSIX_LINK_MAX 8
optional-constant _POSIX_LOGIN_NAME_MAX 9
optional-constant _POSIX_MAX_CANON 255
optional-constant _POSIX_MAX_INPUT 255
optional-constant _POSIX_MQ_OPEN_MAX 8
optional-constant _POSIX_MQ_PRIO_MAX 32
optional-constant _POSIX_NAME_MAX 14
#ifdef XOPEN2K
optional-constant _POSIX_NGROUPS_MAX 8
#else
optional-constant _POSIX_NGROUPS_MAX 0
#endif
#ifdef XOPEN2K
optional-constant _POSIX_OPEN_MAX 20
#else
optional-constant _POSIX_OPEN_MAX 16
#endif
optional-constant _POSIX_PATH_MAX 256
optional-constant _POSIX_PIPE_BUF 512
optional-constant _POSIX2_RE_DUP_MAX 255
optional-constant _POSIX_RTSIG_MAX 8
optional-constant _POSIX_SEM_NSEMS_MAX 256
optional-constant _POSIX_SEM_VALUE_MAX 32767
optional-constant _POSIX_SIGQUEUE_MAX 32
optional-constant _POSIX_SSIZE_MAX 32767
optional-constant _POSIX_STREAM_MAX 8
optional-constant _POSIX_SS_REPL_MAX 4
optional-constant _POSIX_SYMLINK_MAX 255
optional-constant _POSIX_SYMLOOP_MAX 8
optional-constant _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
optional-constant _POSIX_THREAD_KEYS_MAX 128
optional-constant _POSIX_THREAD_THREADS_MAX 64
optional-constant _POSIX_TIMER_MAX 32
optional-constant _POSIX_TTY_NAME_MAX 9
optional-constant _POSIX_TZNAME_MAX 6
optional-constant _POSIX2_BC_BASE_MAX 99
optional-constant _POSIX2_BC_DIM_MAX 2048
optional-constant _POSIX2_BC_SCALE_MAX 99
optional-constant _POSIX2_BC_STRING_MAX 1000
optional-constant _POSIX2_CHARCLASS_NAME_MAX 14
optional-constant _POSIX2_COLL_WEIGHTS_MAX 2
optional-constant _POSIX2_EXPR_NEST_MAX 32
optional-constant _POSIX2_LINE_MAX 2048
optional-constant _POSIX2_RE_DUP_MAX 255
optional-constant _XOPEN_IOV_MAX 16

constant CHAR_BIT >= 8
constant CHAR_MAX
constant INT_MAX >= 2147483647
constant LONG_BIT >= 32
constant MB_LEN_MAX >= 1
constant LONG_MAX >= 2147483647
constant SCHAR_MAX >= 127
constant SHRT_MAX >= 32767
constant SSIZE_MAX
constant UCHAR_MAX >= 255
constant UINT_MAX >= 4294967295
constant ULONG_MAX >= 4294967295
constant USHRT_MAX >= 65535
constant WORD_BIT >= 16
constant CHAR_MIN
constant INT_MIN <= 2147483647
constant LONG_MIN <= 2147483647
constant SCHAR_MIN <= -127
constant SHRT_MIN <= -32767

optional-constant CHARCLASS_NAME_MAX >= 14
optional-constant NL_ARGMAX >= 9
#if !defined POSIX && !defined POSIX2008
optional-constant NL_LANGMAX >= 14
#endif
optional-constant NL_MSGMAX >= 32767
#if !defined XOPEN2K8 && !defined POSIX2008
optional-constant NL_NMAX
#endif
optional-constant NL_SETMAX >= 255
optional-constant NL_TEXTMAX
#if !defined POSIX && !defined POSIX2008
optional-constant NZERO >= 20
#endif
optional-constant TMP_MAX >= 10000

allow *_MAX
allow *_MIN
