1 #ifndef _ASM_GENERIC_RESOURCE_H
2 #define _ASM_GENERIC_RESOURCE_H
3 
4 /*
5  * Resource limit IDs
6  *
7  * ( Compatibility detail: there are architectures that have
8  *   a different rlimit ID order in the 5-9 range and want
9  *   to keep that order for binary compatibility. The reasons
10  *   are historic and all new rlimits are identical across all
11  *   arches. If an arch has such special order for some rlimits
12  *   then it defines them prior including asm-generic/resource.h. )
13  */
14 
15 #define RLIMIT_CPU		0	/* CPU time in sec */
16 #define RLIMIT_FSIZE		1	/* Maximum filesize */
17 #define RLIMIT_DATA		2	/* max data size */
18 #define RLIMIT_STACK		3	/* max stack size */
19 #define RLIMIT_CORE		4	/* max core file size */
20 
21 #ifndef RLIMIT_RSS
22 # define RLIMIT_RSS		5	/* max resident set size */
23 #endif
24 
25 #ifndef RLIMIT_NPROC
26 # define RLIMIT_NPROC		6	/* max number of processes */
27 #endif
28 
29 #ifndef RLIMIT_NOFILE
30 # define RLIMIT_NOFILE		7	/* max number of open files */
31 #endif
32 
33 #ifndef RLIMIT_MEMLOCK
34 # define RLIMIT_MEMLOCK		8	/* max locked-in-memory address space */
35 #endif
36 
37 #ifndef RLIMIT_AS
38 # define RLIMIT_AS		9	/* address space limit */
39 #endif
40 
41 #define RLIMIT_LOCKS		10	/* maximum file locks held */
42 #define RLIMIT_SIGPENDING	11	/* max number of pending signals */
43 #define RLIMIT_MSGQUEUE		12	/* maximum bytes in POSIX mqueues */
44 #define RLIMIT_NICE		13	/* max nice prio allowed to raise to
45 					   0-39 for nice level 19 .. -20 */
46 #define RLIMIT_RTPRIO		14	/* maximum realtime priority */
47 #define RLIMIT_RTTIME		15	/* timeout for RT tasks in us */
48 #define RLIM_NLIMITS		16
49 
50 /*
51  * SuS says limits have to be unsigned.
52  * Which makes a ton more sense anyway.
53  *
54  * Some architectures override this (for compatibility reasons):
55  */
56 #ifndef RLIM_INFINITY
57 # define RLIM_INFINITY		(~0UL)
58 #endif
59 
60 /*
61  * RLIMIT_STACK default maximum - some architectures override it:
62  */
63 #ifndef _STK_LIM_MAX
64 # define _STK_LIM_MAX		RLIM_INFINITY
65 #endif
66 
67 #ifdef __KERNEL__
68 
69 /*
70  * boot-time rlimit defaults for the init task:
71  */
72 #define INIT_RLIMITS							\
73 {									\
74 	[RLIMIT_CPU]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
75 	[RLIMIT_FSIZE]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
76 	[RLIMIT_DATA]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
77 	[RLIMIT_STACK]		= {       _STK_LIM,   _STK_LIM_MAX },	\
78 	[RLIMIT_CORE]		= {              0,  RLIM_INFINITY },	\
79 	[RLIMIT_RSS]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
80 	[RLIMIT_NPROC]		= {              0,              0 },	\
81 	[RLIMIT_NOFILE]		= {       INR_OPEN,       INR_OPEN },	\
82 	[RLIMIT_MEMLOCK]	= {    MLOCK_LIMIT,    MLOCK_LIMIT },	\
83 	[RLIMIT_AS]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
84 	[RLIMIT_LOCKS]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
85 	[RLIMIT_SIGPENDING]	= { 		0,	       0 },	\
86 	[RLIMIT_MSGQUEUE]	= {   MQ_BYTES_MAX,   MQ_BYTES_MAX },	\
87 	[RLIMIT_NICE]		= { 0, 0 },				\
88 	[RLIMIT_RTPRIO]		= { 0, 0 },				\
89 	[RLIMIT_RTTIME]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
90 }
91 
92 #endif	/* __KERNEL__ */
93 
94 #endif
95