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 | |
| 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 */ |
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 */ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 47 | |
Matt Mackall | e43379f | 2005-05-01 08:59:00 -0700 | [diff] [blame] | 48 | #define RLIM_NLIMITS 15 |
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 }, \ |
| 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 }, \ |
Matt Mackall | e43379f | 2005-05-01 08:59:00 -0700 | [diff] [blame] | 87 | [RLIMIT_NICE] = { 0, 0 }, \ |
| 88 | [RLIMIT_RTPRIO] = { 0, 0 }, \ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 89 | } |
| 90 | |
| 91 | #endif /* __KERNEL__ */ |
| 92 | |
| 93 | #endif |