Home | History | Annotate | Download | only in asm-generic
      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 #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 
     48 #define RLIM_NLIMITS		15
     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 },	\
     87 	[RLIMIT_NICE]		= { 0, 0 },				\
     88 	[RLIMIT_RTPRIO]		= { 0, 0 },				\
     89 }
     90 
     91 #endif	/* __KERNEL__ */
     92 
     93 #endif
     94