xref: /openbmc/linux/include/asm-generic/resource.h (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
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 ms */
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 
45 #define RLIM_NLIMITS		13
46 
47 /*
48  * SuS says limits have to be unsigned.
49  * Which makes a ton more sense anyway.
50  *
51  * Some architectures override this (for compatibility reasons):
52  */
53 #ifndef RLIM_INFINITY
54 # define RLIM_INFINITY		(~0UL)
55 #endif
56 
57 /*
58  * RLIMIT_STACK default maximum - some architectures override it:
59  */
60 #ifndef _STK_LIM_MAX
61 # define _STK_LIM_MAX		RLIM_INFINITY
62 #endif
63 
64 #ifdef __KERNEL__
65 
66 /*
67  * boot-time rlimit defaults for the init task:
68  */
69 #define INIT_RLIMITS							\
70 {									\
71 	[RLIMIT_CPU]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
72 	[RLIMIT_FSIZE]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
73 	[RLIMIT_DATA]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
74 	[RLIMIT_STACK]		= {       _STK_LIM,   _STK_LIM_MAX },	\
75 	[RLIMIT_CORE]		= {              0,  RLIM_INFINITY },	\
76 	[RLIMIT_RSS]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
77 	[RLIMIT_NPROC]		= {              0,              0 },	\
78 	[RLIMIT_NOFILE]		= {       INR_OPEN,       INR_OPEN },	\
79 	[RLIMIT_MEMLOCK]	= {    MLOCK_LIMIT,    MLOCK_LIMIT },	\
80 	[RLIMIT_AS]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
81 	[RLIMIT_LOCKS]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\
82 	[RLIMIT_SIGPENDING]	= { 		0,	       0 },	\
83 	[RLIMIT_MSGQUEUE]	= {   MQ_BYTES_MAX,   MQ_BYTES_MAX },	\
84 }
85 
86 #endif	/* __KERNEL__ */
87 
88 #endif
89