]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 |