1    	/* Minimum guaranteed maximum values for system limits.  Linux version.
2    	   Copyright (C) 1993-2015 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 <http://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   	/* Minimum size for a thread.  We are free to choose a reasonable value.  */
81   	#define PTHREAD_STACK_MIN	16384
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