Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
resource.h
Go to the documentation of this file.
1 #ifndef _UAPI_LINUX_RESOURCE_H
2 #define _UAPI_LINUX_RESOURCE_H
3 
4 #include <linux/time.h>
5 #include <linux/types.h>
6 
7 /*
8  * Resource control/accounting header file for linux
9  */
10 
11 /*
12  * Definition of struct rusage taken from BSD 4.3 Reno
13  *
14  * We don't support all of these yet, but we might as well have them....
15  * Otherwise, each time we add new items, programs which depend on this
16  * structure will lose. This reduces the chances of that happening.
17  */
18 #define RUSAGE_SELF 0
19 #define RUSAGE_CHILDREN (-1)
20 #define RUSAGE_BOTH (-2) /* sys_wait4() uses this */
21 #define RUSAGE_THREAD 1 /* only the calling thread */
22 
23 struct rusage {
24  struct timeval ru_utime; /* user time used */
25  struct timeval ru_stime; /* system time used */
26  long ru_maxrss; /* maximum resident set size */
27  long ru_ixrss; /* integral shared memory size */
28  long ru_idrss; /* integral unshared data size */
29  long ru_isrss; /* integral unshared stack size */
30  long ru_minflt; /* page reclaims */
31  long ru_majflt; /* page faults */
32  long ru_nswap; /* swaps */
33  long ru_inblock; /* block input operations */
34  long ru_oublock; /* block output operations */
35  long ru_msgsnd; /* messages sent */
36  long ru_msgrcv; /* messages received */
37  long ru_nsignals; /* signals received */
38  long ru_nvcsw; /* voluntary context switches */
39  long ru_nivcsw; /* involuntary " */
40 };
41 
42 struct rlimit {
43  unsigned long rlim_cur;
44  unsigned long rlim_max;
45 };
46 
47 #define RLIM64_INFINITY (~0ULL)
48 
49 struct rlimit64 {
52 };
53 
54 #define PRIO_MIN (-20)
55 #define PRIO_MAX 20
56 
57 #define PRIO_PROCESS 0
58 #define PRIO_PGRP 1
59 #define PRIO_USER 2
60 
61 /*
62  * Limit the stack by to some sane default: root can always
63  * increase this limit if needed.. 8MB seems reasonable.
64  */
65 #define _STK_LIM (8*1024*1024)
66 
67 /*
68  * GPG2 wants 64kB of mlocked memory, to make sure pass phrases
69  * and other sensitive information are never written to disk.
70  */
71 #define MLOCK_LIMIT ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024)
72 
73 /*
74  * Due to binary compatibility, the actual resource numbers
75  * may be different for different linux versions..
76  */
77 #include <asm/resource.h>
78 
79 
80 #endif /* _UAPI_LINUX_RESOURCE_H */