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