master
  1/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
  2   This file is part of the GNU C Library.
  3
  4   The GNU C Library is free software; you can redistribute it and/or
  5   modify it under the terms of the GNU Lesser General Public
  6   License as published by the Free Software Foundation; either
  7   version 2.1 of the License, or (at your option) any later version.
  8
  9   The GNU C Library is distributed in the hope that it will be useful,
 10   but WITHOUT ANY WARRANTY; without even the implied warranty of
 11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12   Lesser General Public License for more details.
 13
 14   You should have received a copy of the GNU Lesser General Public
 15   License along with the GNU C Library; if not, see
 16   <https://www.gnu.org/licenses/>.  */
 17
 18/*
 19 *	POSIX Standard: 2.9.2 Minimum Values	Added to <limits.h>
 20 *
 21 *	Never include this file directly; use <limits.h> instead.
 22 */
 23
 24#ifndef	_BITS_POSIX1_LIM_H
 25#define	_BITS_POSIX1_LIM_H	1
 26
 27#include <bits/wordsize.h>
 28
 29/* These are the standard-mandated minimum values.  */
 30
 31/* Minimum number of operations in one list I/O call.  */
 32#define _POSIX_AIO_LISTIO_MAX	2
 33
 34/* Minimal number of outstanding asynchronous I/O operations.  */
 35#define _POSIX_AIO_MAX		1
 36
 37/* Maximum length of arguments to `execve', including environment.  */
 38#define	_POSIX_ARG_MAX		4096
 39
 40/* Maximum simultaneous processes per real user ID.  */
 41#ifdef __USE_XOPEN2K
 42# define _POSIX_CHILD_MAX	25
 43#else
 44# define _POSIX_CHILD_MAX	6
 45#endif
 46
 47/* Minimal number of timer expiration overruns.  */
 48#define _POSIX_DELAYTIMER_MAX	32
 49
 50/* Maximum length of a host name (not including the terminating null)
 51   as returned from the GETHOSTNAME function.  */
 52#define _POSIX_HOST_NAME_MAX	255
 53
 54/* Maximum link count of a file.  */
 55#define	_POSIX_LINK_MAX		8
 56
 57/* Maximum length of login name.  */
 58#define	_POSIX_LOGIN_NAME_MAX	9
 59
 60/* Number of bytes in a terminal canonical input queue.  */
 61#define	_POSIX_MAX_CANON	255
 62
 63/* Number of bytes for which space will be
 64   available in a terminal input queue.  */
 65#define	_POSIX_MAX_INPUT	255
 66
 67/* Maximum number of message queues open for a process.  */
 68#define _POSIX_MQ_OPEN_MAX	8
 69
 70/* Maximum number of supported message priorities.  */
 71#define _POSIX_MQ_PRIO_MAX	32
 72
 73/* Number of bytes in a filename.  */
 74#define	_POSIX_NAME_MAX		14
 75
 76/* Number of simultaneous supplementary group IDs per process.  */
 77#ifdef __USE_XOPEN2K
 78# define _POSIX_NGROUPS_MAX	8
 79#else
 80# define _POSIX_NGROUPS_MAX	0
 81#endif
 82
 83/* Number of files one process can have open at once.  */
 84#ifdef __USE_XOPEN2K
 85# define _POSIX_OPEN_MAX	20
 86#else
 87# define _POSIX_OPEN_MAX	16
 88#endif
 89
 90#if !defined __USE_XOPEN2K || defined __USE_GNU
 91/* Number of descriptors that a process may examine with `pselect' or
 92   `select'.  */
 93# define _POSIX_FD_SETSIZE	_POSIX_OPEN_MAX
 94#endif
 95
 96/* Number of bytes in a pathname.  */
 97#define	_POSIX_PATH_MAX		256
 98
 99/* Number of bytes than can be written atomically to a pipe.  */
100#define	_POSIX_PIPE_BUF		512
101
102/* The number of repeated occurrences of a BRE permitted by the
103   REGEXEC and REGCOMP functions when using the interval notation.  */
104#define _POSIX_RE_DUP_MAX	255
105
106/* Minimal number of realtime signals reserved for the application.  */
107#define _POSIX_RTSIG_MAX	8
108
109/* Number of semaphores a process can have.  */
110#define _POSIX_SEM_NSEMS_MAX	256
111
112/* Maximal value of a semaphore.  */
113#define _POSIX_SEM_VALUE_MAX	32767
114
115/* Number of pending realtime signals.  */
116#define _POSIX_SIGQUEUE_MAX	32
117
118/* Largest value of a `ssize_t'.  */
119#define	_POSIX_SSIZE_MAX	32767
120
121/* Number of streams a process can have open at once.  */
122#define	_POSIX_STREAM_MAX	8
123
124/* The number of bytes in a symbolic link.  */
125#define _POSIX_SYMLINK_MAX	255
126
127/* The number of symbolic links that can be traversed in the
128   resolution of a pathname in the absence of a loop.  */
129#define _POSIX_SYMLOOP_MAX	8
130
131/* Number of timer for a process.  */
132#define _POSIX_TIMER_MAX	32
133
134/* Maximum number of characters in a tty name.  */
135#define	_POSIX_TTY_NAME_MAX	9
136
137/* Maximum length of a time zone abbreviation (element of 'tzname').  */
138#ifdef __USE_XOPEN2K
139# define _POSIX_TZNAME_MAX	6
140#else
141# define _POSIX_TZNAME_MAX	3
142#endif
143
144#if !defined __USE_XOPEN2K || defined __USE_GNU
145/* Maximum number of connections that can be queued on a socket.  */
146# define _POSIX_QLIMIT		1
147
148/* Maximum number of bytes that can be buffered on a socket for send
149   or receive.  */
150# define _POSIX_HIWAT		_POSIX_PIPE_BUF
151
152/* Maximum number of elements in an `iovec' array.  */
153# define _POSIX_UIO_MAXIOV	16
154#endif
155
156/* Maximum clock resolution in nanoseconds.  */
157#define _POSIX_CLOCKRES_MIN	20000000
158
159
160/* Get the implementation-specific values for the above.  */
161#include <bits/local_lim.h>
162
163
164#ifndef	SSIZE_MAX
165/* ssize_t is not formally required to be the signed type
166   corresponding to size_t, but it is for all configurations supported
167   by glibc.  */
168# if __WORDSIZE == 64 || __WORDSIZE32_SIZE_ULONG
169#  define SSIZE_MAX	LONG_MAX
170# else
171#  define SSIZE_MAX	INT_MAX
172# endif
173#endif
174
175
176/* This value is a guaranteed minimum maximum.
177   The current maximum can be got from `sysconf'.  */
178
179#ifndef	NGROUPS_MAX
180# define NGROUPS_MAX	8
181#endif
182
183#endif	/* bits/posix1_lim.h  */