linux/include/asm-generic/resource.h
<<
>>
Prefs
   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