resource.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef _ASM_GENERIC_RESOURCE_H
  2. #define _ASM_GENERIC_RESOURCE_H
  3. /*
  4. * Resource limit IDs
  5. *
  6. * ( Compatibility detail: there are architectures that have
  7. * a different rlimit ID order in the 5-9 range and want
  8. * to keep that order for binary compatibility. The reasons
  9. * are historic and all new rlimits are identical across all
  10. * arches. If an arch has such special order for some rlimits
  11. * then it defines them prior including asm-generic/resource.h. )
  12. */
  13. #define RLIMIT_CPU 0 /* CPU time in ms */
  14. #define RLIMIT_FSIZE 1 /* Maximum filesize */
  15. #define RLIMIT_DATA 2 /* max data size */
  16. #define RLIMIT_STACK 3 /* max stack size */
  17. #define RLIMIT_CORE 4 /* max core file size */
  18. #ifndef RLIMIT_RSS
  19. # define RLIMIT_RSS 5 /* max resident set size */
  20. #endif
  21. #ifndef RLIMIT_NPROC
  22. # define RLIMIT_NPROC 6 /* max number of processes */
  23. #endif
  24. #ifndef RLIMIT_NOFILE
  25. # define RLIMIT_NOFILE 7 /* max number of open files */
  26. #endif
  27. #ifndef RLIMIT_MEMLOCK
  28. # define RLIMIT_MEMLOCK 8 /* max locked-in-memory address space */
  29. #endif
  30. #ifndef RLIMIT_AS
  31. # define RLIMIT_AS 9 /* address space limit */
  32. #endif
  33. #define RLIMIT_LOCKS 10 /* maximum file locks held */
  34. #define RLIMIT_SIGPENDING 11 /* max number of pending signals */
  35. #define RLIMIT_MSGQUEUE 12 /* maximum bytes in POSIX mqueues */
  36. #define RLIM_NLIMITS 13
  37. /*
  38. * SuS says limits have to be unsigned.
  39. * Which makes a ton more sense anyway.
  40. *
  41. * Some architectures override this (for compatibility reasons):
  42. */
  43. #ifndef RLIM_INFINITY
  44. # define RLIM_INFINITY (~0UL)
  45. #endif
  46. /*
  47. * RLIMIT_STACK default maximum - some architectures override it:
  48. */
  49. #ifndef _STK_LIM_MAX
  50. # define _STK_LIM_MAX RLIM_INFINITY
  51. #endif
  52. #ifdef __KERNEL__
  53. /*
  54. * boot-time rlimit defaults for the init task:
  55. */
  56. #define INIT_RLIMITS \
  57. { \
  58. [RLIMIT_CPU] = { RLIM_INFINITY, RLIM_INFINITY }, \
  59. [RLIMIT_FSIZE] = { RLIM_INFINITY, RLIM_INFINITY }, \
  60. [RLIMIT_DATA] = { RLIM_INFINITY, RLIM_INFINITY }, \
  61. [RLIMIT_STACK] = { _STK_LIM, _STK_LIM_MAX }, \
  62. [RLIMIT_CORE] = { 0, RLIM_INFINITY }, \
  63. [RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \
  64. [RLIMIT_NPROC] = { 0, 0 }, \
  65. [RLIMIT_NOFILE] = { INR_OPEN, INR_OPEN }, \
  66. [RLIMIT_MEMLOCK] = { MLOCK_LIMIT, MLOCK_LIMIT }, \
  67. [RLIMIT_AS] = { RLIM_INFINITY, RLIM_INFINITY }, \
  68. [RLIMIT_LOCKS] = { RLIM_INFINITY, RLIM_INFINITY }, \
  69. [RLIMIT_SIGPENDING] = { 0, 0 }, \
  70. [RLIMIT_MSGQUEUE] = { MQ_BYTES_MAX, MQ_BYTES_MAX }, \
  71. }
  72. #endif /* __KERNEL__ */
  73. #endif