b1fcda9eac23d3b21ffe19135c6f4d529b4989bc
[linux-2.6.git] / include / asm-generic / resource.h
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