mirror of
git://git.musl-libc.org/musl
synced 2024-12-14 18:55:23 +00:00
81af503610
multiple opens of the same named semaphore must return the same pointer, and only the last close can unmap it. thus the ugly global state keeping track of mappings. the maximum number of distinct named semaphores that can be opened is limited sufficiently small that the linear searches take trivial time, especially compared to the syscall overhead of these functions.
112 lines
3.0 KiB
C
112 lines
3.0 KiB
C
#ifndef _LIMITS_H
|
|
#define _LIMITS_H
|
|
|
|
/* Most limits are system-specific */
|
|
|
|
#include <bits/limits.h>
|
|
|
|
/* Some universal constants... */
|
|
|
|
#define CHAR_BIT 8
|
|
#define SCHAR_MIN (-128)
|
|
#define SCHAR_MAX 127
|
|
#define UCHAR_MAX 255
|
|
#define CHAR_MIN (-128)
|
|
#define CHAR_MAX 127
|
|
|
|
#define MB_LEN_MAX 4
|
|
|
|
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
|
|
|
#define SSIZE_MAX LONG_MAX
|
|
#define TZNAME_MAX 6
|
|
#define TTY_NAME_MAX 20
|
|
#define HOST_NAME_MAX 255
|
|
|
|
/* Implementation choices... */
|
|
|
|
#define PTHREAD_KEYS_MAX 1024
|
|
#define PTHREAD_STACK_MIN PAGE_SIZE
|
|
#define PTHREAD_DESTRUCTOR_ITERATIONS 4
|
|
#define SEM_VALUE_MAX 0x7fffffff
|
|
#define SEM_NSEMS_MAX 256
|
|
|
|
/* Arbitrary numbers... */
|
|
|
|
#define BC_BASE_MAX 99
|
|
#define BC_DIM_MAX 2048
|
|
#define BC_SCALE_MAX 99
|
|
#define BC_STRING_MAX 1000
|
|
#define CHARCLASS_NAME_MAX 14
|
|
#define COLL_WEIGHTS_MAX 2
|
|
#define EXPR_NEST_MAX 32
|
|
#define LINE_MAX 4096
|
|
#define RE_DUP_MAX 255
|
|
|
|
#define NL_ARGMAX 9
|
|
#define NL_LANGMAX 32
|
|
#define NL_MSGMAX 32767
|
|
#define NL_NMAX (MB_LEN_MAX*4)
|
|
#define NL_SETMAX 255
|
|
#define NL_TEXTMAX 2048
|
|
|
|
#endif
|
|
|
|
/* POSIX/SUS requirements follow. These numbers come directly
|
|
* from SUS and have nothing to do with the host system. */
|
|
|
|
#define _POSIX_AIO_LISTIO_MAX 2
|
|
#define _POSIX_AIO_MAX 1
|
|
#define _POSIX_ARG_MAX 4096
|
|
#define _POSIX_CHILD_MAX 25
|
|
#define _POSIX_CLOCKRES_MIN 20000000
|
|
#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_SS_REPL_MAX 4
|
|
#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
|