| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  | 
| Ingo Molnar | 58e1010 | 2007-11-26 21:21:49 +0100 | [diff] [blame] | 15 | #define RLIMIT_CPU		0	/* CPU time in sec */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 */ | 
| Matt Mackall | e43379f | 2005-05-01 08:59:00 -0700 | [diff] [blame] | 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 */ | 
| Peter Zijlstra | 78f2c7d | 2008-01-25 21:08:27 +0100 | [diff] [blame] | 47 | #define RLIMIT_RTTIME		15	/* timeout for RT tasks in us */ | 
 | 48 | #define RLIM_NLIMITS		16 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 },	\ | 
| Tim Gardner | 0ac1ee0 | 2011-05-24 17:13:05 -0700 | [diff] [blame] | 81 | 	[RLIMIT_NOFILE]		= {   INR_OPEN_CUR,   INR_OPEN_MAX },	\ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 },	\ | 
| Matt Mackall | e43379f | 2005-05-01 08:59:00 -0700 | [diff] [blame] | 87 | 	[RLIMIT_NICE]		= { 0, 0 },				\ | 
 | 88 | 	[RLIMIT_RTPRIO]		= { 0, 0 },				\ | 
| Peter Zijlstra | 78f2c7d | 2008-01-25 21:08:27 +0100 | [diff] [blame] | 89 | 	[RLIMIT_RTTIME]		= {  RLIM_INFINITY,  RLIM_INFINITY },	\ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 90 | } | 
 | 91 |  | 
 | 92 | #endif	/* __KERNEL__ */ | 
 | 93 |  | 
 | 94 | #endif |