| lh | 9ed821d | 2023-04-07 01:36:19 -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 |  | 
|  | 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_CUR,   INR_OPEN_MAX },	\ | 
|  | 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 |