⛏️ index : haiku.git

author Augustin Cavalier <waddlesplash@gmail.com> 2026-01-06 19:42:24.0 -05:00:00
committer Augustin Cavalier <waddlesplash@gmail.com> 2026-01-06 19:57:07.0 -05:00:00
commit
b0570368f3db99692dfde2e6137d332c3216824d [patch]
tree
345be2c46b909068917ab01371a95597a53456d8
parent
d763a3829ac503eb180e332f5e2687fba2864945
download
b0570368f3db99692dfde2e6137d332c3216824d.tar.gz

limits.h: Clean up and fix _POSIX_* values.

These aren't actual limits, but rather the minimum limit
as specified in POSIX (e.g. _POSIX_NAME_MAX is the minimum
allowed value for NAME_MAX).

Add missing values as defined in POSIX-2024, at least for
features we support, and change wrong values to be the ones
specified in POSIX.

No behavioral intended change (nothing should be using these directly.)

Diff

 headers/posix/limits.h | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 50 insertions(+), 30 deletions(-)

diff --git a/headers/posix/limits.h b/headers/posix/limits.h
index 871c466..e88187a 100644
--- a/headers/posix/limits.h
+++ b/headers/posix/limits.h
@@ -53,44 +53,16 @@
#define	SYMLINK_MAX				(1024)
#define	SYMLOOP_MAX				(16)

#define _POSIX_ARG_MAX	  		(128 * 1024)
#define _POSIX_CHILD_MAX		(1024)
#define _POSIX_HOST_NAME_MAX	(255)
#define _POSIX_LINK_MAX	 		(1)
#define _POSIX_LOGIN_NAME_MAX	(9)
#define _POSIX_MAX_CANON		(255)
#define _POSIX_MAX_INPUT		(255)
#define _POSIX_NAME_MAX	 		(255)
#define _POSIX_NGROUPS_MAX  	(8)
#define _POSIX_OPEN_MAX	 		(128)
#define _POSIX_PATH_MAX	 		(1024)
#define _POSIX_PIPE_BUF	 		(512)
#define _POSIX_SSIZE_MAX		__HAIKU_SADDR_MAX
#define _POSIX_STREAM_MAX   	(8)
#define _POSIX_TTY_NAME_MAX		(256)
#define _POSIX_TZNAME_MAX   	(3)
#define _POSIX_SEM_VALUE_MAX	INT_MAX
#define	_POSIX_SIGQUEUE_MAX		32
#define _POSIX_RTSIG_MAX		8
#define _POSIX_CLOCKRES_MIN		20000000
#define _POSIX_TIMER_MAX		32
#define _POSIX_DELAYTIMER_MAX	32
#define _POSIX_SEM_NSEMS_MAX	(256)

#define _POSIX2_LINE_MAX		(2048)

#define	BC_BASE_MAX				(99)
#define BC_DIM_MAX				(2048)
#define BC_SCALE_MAX			(99)
#define BC_STRING_MAX			(1000)


#define COLL_WEIGHTS_MAX		(10)
#define	EXPR_NEST_MAX			(32)
#define	LINE_MAX				(2048)

#define MQ_OPEN_MAX				(0) /* MSG */
#define MQ_PRIO_MAX				(0) /* MSG */
#define MQ_OPEN_MAX				(0)
#define MQ_PRIO_MAX				(0)

#define	RE_DUP_MAX				(0x7fff)

@@ -103,6 +75,54 @@
 * of getpriority(), setpriority() and nice(). */
#define NZERO					20
#endif


#define _POSIX_ARG_MAX	  		(4096)
#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	(32767)
#define _POSIX_SIGQUEUE_MAX		(32)
#define _POSIX_SSIZE_MAX		(32767)
#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_TTY_NAME_MAX		(9)
#define _POSIX_TZNAME_MAX   	(6)

#define _POSIX_CLOCKRES_MIN		(20000000)

#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_COLL_WEIGHTS_MAX (2)
#define _POSIX2_EXPR_NEST_MAX	(32)
#define _POSIX2_LINE_MAX		(2048)
#define _POSIX2_RE_DUP_MAX		_POSIX_RE_DUP_MAX

#define _XOPEN_IOV_MAX			(16)
#define _XOPEN_NAME_MAX			(255)
#define _XOPEN_PATH_MAX			(1024)


/* _GCC_LIMITS_H_ is defined by GCC's internal limits.h to avoid
 * collisions with any defines in this file.