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 95