1 /* Minimum guaranteed maximum values for system limits. Linux version. 2 Copyright (C) 1993-1998,2000,2002-2004,2008 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 not, 17 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 Boston, MA 02111-1307, USA. */ 19 20 /* The kernel header pollutes the namespace with the NR_OPEN symbol 21 and defines LINK_MAX although filesystems have different maxima. A 22 similar thing is true for OPEN_MAX: the limit can be changed at 23 runtime and therefore the macro must not be defined. Remove this 24 after including the header if necessary. */ 25 #ifndef NR_OPEN 26 # define __undef_NR_OPEN 27 #endif 28 #ifndef LINK_MAX 29 # define __undef_LINK_MAX 30 #endif 31 #ifndef OPEN_MAX 32 # define __undef_OPEN_MAX 33 #endif 34 #ifndef ARG_MAX 35 # define __undef_ARG_MAX 36 #endif 37 38 /* The kernel sources contain a file with all the needed information. */ 39 #include <linux/limits.h> 40 41 /* Have to remove NR_OPEN? */ 42 #ifdef __undef_NR_OPEN 43 # undef NR_OPEN 44 # undef __undef_NR_OPEN 45 #endif 46 /* Have to remove LINK_MAX? */ 47 #ifdef __undef_LINK_MAX 48 # undef LINK_MAX 49 # undef __undef_LINK_MAX 50 #endif 51 /* Have to remove OPEN_MAX? */ 52 #ifdef __undef_OPEN_MAX 53 # undef OPEN_MAX 54 # undef __undef_OPEN_MAX 55 #endif 56 /* Have to remove ARG_MAX? */ 57 #ifdef __undef_ARG_MAX 58 # undef ARG_MAX 59 # undef __undef_ARG_MAX 60 #endif 61 62 /* The number of data keys per process. */ 63 #define _POSIX_THREAD_KEYS_MAX 128 64 /* This is the value this implementation supports. */ 65 #define PTHREAD_KEYS_MAX 1024 66 67 /* Controlling the iterations of destructors for thread-specific data. */ 68 #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 69 /* Number of iterations this implementation does. */ 70 #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS 71 72 /* The number of threads per process. */ 73 #define _POSIX_THREAD_THREADS_MAX 64 74 /* We have no predefined limit on the number of threads. */ 75 #undef PTHREAD_THREADS_MAX 76 77 /* Maximum amount by which a process can descrease its asynchronous I/O 78 priority level. */ 79 #define AIO_PRIO_DELTA_MAX 20 80 81 /* Minimum size for a thread. We are free to choose a reasonable value. */ 82 #define PTHREAD_STACK_MIN 16384 83 84 /* Maximum number of timer expiration overruns. */ 85 #define DELAYTIMER_MAX 2147483647 86 87 /* Maximum tty name length. */ 88 #define TTY_NAME_MAX 32 89 90 /* Maximum login name length. This is arbitrary. */ 91 #define LOGIN_NAME_MAX 256 92 93 /* Maximum host name length. */ 94 #define HOST_NAME_MAX 64 95 96 /* Maximum message queue priority level. */ 97 #define MQ_PRIO_MAX 32768 98 99 /* Maximum value the semaphore can have. */ 100 #define SEM_VALUE_MAX (2147483647) 101