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