xref: /plan9/sys/include/ape/limits.h (revision e94a8e9b44de11e62dfd4566245554f8bf8e0295)
13e12c5d1SDavid du Colombier #ifndef __LIMITS
23e12c5d1SDavid du Colombier #define __LIMITS
33e12c5d1SDavid du Colombier /* 8 bit chars (signed), 16 bit shorts, 32 bit ints/longs */
43e12c5d1SDavid du Colombier 
53e12c5d1SDavid du Colombier #define CHAR_BIT	8
6*e94a8e9bSDavid du Colombier #define MB_LEN_MAX	4
73e12c5d1SDavid du Colombier 
83e12c5d1SDavid du Colombier #define UCHAR_MAX	0xff
93e12c5d1SDavid du Colombier #define USHRT_MAX	0xffff
103e12c5d1SDavid du Colombier #define UINT_MAX	0xffffffffU
113e12c5d1SDavid du Colombier #define ULONG_MAX	0xffffffffUL
123e12c5d1SDavid du Colombier 
133e12c5d1SDavid du Colombier #define CHAR_MAX	SCHAR_MAX
143e12c5d1SDavid du Colombier #define SCHAR_MAX	0x7f
153e12c5d1SDavid du Colombier #define SHRT_MAX	0x7fff
163e12c5d1SDavid du Colombier #define INT_MAX		0x7fffffff
173e12c5d1SDavid du Colombier #define LONG_MAX	0x7fffffffL
183e12c5d1SDavid du Colombier 
193e12c5d1SDavid du Colombier #define CHAR_MIN	SCHAR_MIN
203e12c5d1SDavid du Colombier #define SCHAR_MIN	(-SCHAR_MAX-1)
213e12c5d1SDavid du Colombier #define SHRT_MIN	(-SHRT_MAX-1)
223e12c5d1SDavid du Colombier #define INT_MIN		(-INT_MAX-1)
233e12c5d1SDavid du Colombier #define LONG_MIN	(-LONG_MAX-1)
243e12c5d1SDavid du Colombier 
253e12c5d1SDavid du Colombier #ifdef _POSIX_SOURCE
263e12c5d1SDavid du Colombier 
277dd7cddfSDavid du Colombier #define _POSIX_AIO_LISTIO_MAX	2
287dd7cddfSDavid du Colombier #define _POSIX_AIO_MAX			1
293e12c5d1SDavid du Colombier #define _POSIX_ARG_MAX			4096
303e12c5d1SDavid du Colombier #define _POSIX_CHILD_MAX		6
317dd7cddfSDavid du Colombier #define	_POSIX_CLOCKRES_MIN		20000000
327dd7cddfSDavid du Colombier #define	_POSIX_DELAYTIMER_MAX	32
333e12c5d1SDavid du Colombier #define _POSIX_LINK_MAX			8
343e12c5d1SDavid du Colombier #define _POSIX_MAX_CANON		255
353e12c5d1SDavid du Colombier #define _POSIX_MAX_INPUT		255
367dd7cddfSDavid du Colombier #define _POSIX_MQ_OPEN_MAX		8
377dd7cddfSDavid du Colombier #define	_POSIX_MQ_PRIO_MAX		32
383e12c5d1SDavid du Colombier #define _POSIX_NAME_MAX			14
393e12c5d1SDavid du Colombier #define _POSIX_NGROUPS_MAX		0
403e12c5d1SDavid du Colombier #define _POSIX_OPEN_MAX			16
413e12c5d1SDavid du Colombier #define _POSIX_PATH_MAX			255
423e12c5d1SDavid du Colombier #define _POSIX_PIPE_BUF			512
437dd7cddfSDavid du Colombier #define	_POSIX_RTSIG_MAX		8
447dd7cddfSDavid du Colombier #define	_POSIX_SEM_NSEMS_MAX	256
457dd7cddfSDavid du Colombier #define	_POSIX_SEM_VALUE_MAX	32767
467dd7cddfSDavid du Colombier #define	_POSIX_SIGQUEUE_MAX		32
473e12c5d1SDavid du Colombier #define _POSIX_SSIZE_MAX		32767
483e12c5d1SDavid du Colombier #define _POSIX_STREAM_MAX		8
497dd7cddfSDavid du Colombier #define	_POSIX_TIMER_MAX		32
503e12c5d1SDavid du Colombier #define _POSIX_TZNAME_MAX		3
513e12c5d1SDavid du Colombier 
52bad30d5dSDavid du Colombier 
537dd7cddfSDavid du Colombier /* pedagogy: those that standard allows omitting are commented out */
547dd7cddfSDavid du Colombier /*#define AIO_LIST_MAX _POSIX_AIO_LIST_MAX */
557dd7cddfSDavid du Colombier /*#define AIO_MAX _POSIX_AIO_MAX */
567dd7cddfSDavid du Colombier /*#define AIO_PRIO_DELTA_MAX 0 */
577dd7cddfSDavid du Colombier /*#define ARG_MAX _POSIX_ARG_MAX */
587dd7cddfSDavid du Colombier /*#define CHILD_MAX _POSIX_CHILD_MAX */
597dd7cddfSDavid du Colombier /*#define DELAYTIMER_MAX _POSIX_DELAYTIMER_MAX */
607dd7cddfSDavid du Colombier /*#define LINK_MAX _POSIX_LINK_MAX */
617dd7cddfSDavid du Colombier /*#define MAX_CANON _POSIX_MAX_CANON */
627dd7cddfSDavid du Colombier /*#define MAX_INPUT _POSIX_MAX_INPUT */
637dd7cddfSDavid du Colombier /*#define MQ_OPEN_MAX _POSIX_MQ_OPEN_MAX */
647dd7cddfSDavid du Colombier /*#define MQ_PRIO_MAX _POSIX_MQ_PRIO_MAX */
657dd7cddfSDavid du Colombier /*#define NAME_MAX _POSIX_NAME_MAX */
667dd7cddfSDavid du Colombier #define NGROUPS_MAX 10
677dd7cddfSDavid du Colombier /*#define OPEN_MAX _POSIX_OPEN_MAX */
687dd7cddfSDavid du Colombier /*#define PAGESIZE 1 */
69bad30d5dSDavid du Colombier #define PASS_MAX	64
707dd7cddfSDavid du Colombier /*#define PATH_MAX _POSIX_PATH_MAX */
717dd7cddfSDavid du Colombier /*#define PIPE_BUF _POSIX_PIPE_BUF */
727dd7cddfSDavid du Colombier /*#define RTSIG_MAX _POSIX_RTSIG_MAX */
737dd7cddfSDavid du Colombier /*#define SEM_NSEMS_MAX _POSIX_SEM_NSEMS_MAX */
747dd7cddfSDavid du Colombier /*#define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX */
757dd7cddfSDavid du Colombier /*#define SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX */
763e12c5d1SDavid du Colombier #define SSIZE_MAX LONG_MAX
777dd7cddfSDavid du Colombier /*#define STREAM_MAX _POSIX_STREAM_MAX */
787dd7cddfSDavid du Colombier /*#define TIMER_MAX _POSIX_TIMER_MAX */
793e12c5d1SDavid du Colombier #define TZNAME_MAX _POSIX_TZNAME_MAX
803e12c5d1SDavid du Colombier 
813e12c5d1SDavid du Colombier #ifdef _LIMITS_EXTENSION
823e12c5d1SDavid du Colombier /* some things are just too big for pedagogy (X!) */
833e12c5d1SDavid du Colombier #include <sys/limits.h>
843e12c5d1SDavid du Colombier #endif
853e12c5d1SDavid du Colombier #endif /* _POSIX_SOURCE */
863e12c5d1SDavid du Colombier 
873e12c5d1SDavid du Colombier #endif /* __LIMITS */
88