1 /* Minimum guaranteed maximum values for system limits. Linux version. 2 Copyright (C) 1993-2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public License as 7 published by the Free Software Foundation; either version 2.1 of the 8 License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; see the file COPYING.LIB. If 17 not, see <https://www.gnu.org/licenses/>. */ 18 19 /* The kernel header pollutes the namespace with the NR_OPEN symbol 20 and defines LINK_MAX although filesystems have different maxima. A 21 similar thing is true for OPEN_MAX: the limit can be changed at 22 runtime and therefore the macro must not be defined. Remove this 23 after including the header if necessary. */ 24 #ifndef NR_OPEN 25 # define __undef_NR_OPEN 26 #endif 27 #ifndef LINK_MAX 28 # define __undef_LINK_MAX 29 #endif 30 #ifndef OPEN_MAX 31 # define __undef_OPEN_MAX 32 #endif 33 #ifndef ARG_MAX 34 # define __undef_ARG_MAX 35 #endif 36 37 /* The kernel sources contain a file with all the needed information. */ 38 #include <linux/limits.h> 39 40 /* Have to remove NR_OPEN? */ 41 #ifdef __undef_NR_OPEN 42 # undef NR_OPEN 43 # undef __undef_NR_OPEN 44 #endif 45 /* Have to remove LINK_MAX? */ 46 #ifdef __undef_LINK_MAX 47 # undef LINK_MAX 48 # undef __undef_LINK_MAX 49 #endif 50 /* Have to remove OPEN_MAX? */ 51 #ifdef __undef_OPEN_MAX 52 # undef OPEN_MAX 53 # undef __undef_OPEN_MAX 54 #endif 55 /* Have to remove ARG_MAX? */ 56 #ifdef __undef_ARG_MAX 57 # undef ARG_MAX 58 # undef __undef_ARG_MAX 59 #endif 60 61 /* The number of data keys per process. */ 62 #define _POSIX_THREAD_KEYS_MAX 128 63 /* This is the value this implementation supports. */ 64 #define PTHREAD_KEYS_MAX 1024 65 66 /* Controlling the iterations of destructors for thread-specific data. */ 67 #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 68 /* Number of iterations this implementation does. */ 69 #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS 70 71 /* The number of threads per process. */ 72 #define _POSIX_THREAD_THREADS_MAX 64 73 /* We have no predefined limit on the number of threads. */ 74 #undef PTHREAD_THREADS_MAX 75 76 /* Maximum amount by which a process can descrease its asynchronous I/O 77 priority level. */ 78 #define AIO_PRIO_DELTA_MAX 20 79 80 /* Arrange for the definition of PTHREAD_STACK_MIN. */ 81 #include <bits/pthread_stack_min-dynamic.h> 82 83 /* Maximum number of timer expiration overruns. */ 84 #define DELAYTIMER_MAX 2147483647 85 86 /* Maximum tty name length. */ 87 #define TTY_NAME_MAX 32 88 89 /* Maximum login name length. This is arbitrary. */ 90 #define LOGIN_NAME_MAX 256 91 92 /* Maximum host name length. */ 93 #define HOST_NAME_MAX 64 94 95 /* Maximum message queue priority level. */ 96 #define MQ_PRIO_MAX 32768 97 98 /* Maximum value the semaphore can have. */ 99 #define SEM_VALUE_MAX (2147483647) 100