1 /*
2  * Resource control/accounting header file for linux-86
3  */
4 
5 #ifndef __LINUXMT_RESOURCE_H
6 #define __LINUXMT_RESOURCE_H
7 
8 #include <features.h>
9 #include <sys/time.h>
10 #include <limits.h>
11 
12 #define	RUSAGE_SELF	0
13 #define	RUSAGE_CHILDREN	(-1)
14 #define RUSAGE_BOTH	(-2)		/* sys_wait4() uses this */
15 
16 struct	rusage {
17 	struct timeval ru_utime;	/* user time used */
18 	struct timeval ru_stime;	/* system time used */
19 	long	ru_maxrss;		/* maximum resident set size */
20 	long	ru_ixrss;		/* integral shared memory size */
21 	long	ru_idrss;		/* integral unshared data size */
22 	long	ru_isrss;		/* integral unshared stack size */
23 	long	ru_minflt;		/* page reclaims */
24 	long	ru_majflt;		/* page faults */
25 	long	ru_nswap;		/* swaps */
26 	long	ru_inblock;		/* block input operations */
27 	long	ru_oublock;		/* block output operations */
28 	long	ru_msgsnd;		/* messages sent */
29 	long	ru_msgrcv;		/* messages received */
30 	long	ru_nsignals;		/* signals received */
31 	long	ru_nvcsw;		/* voluntary context switches */
32 	long	ru_nivcsw;		/* involuntary " */
33 };
34 
35 #define RLIM_INFINITY	((long)(~0UL>>1))
36 
37 struct rlimit {
38 	long	rlim_cur;
39 	long	rlim_max;
40 };
41 
42 #define	PRIO_MIN	(-20)
43 #define	PRIO_MAX	20
44 
45 #define	PRIO_PROCESS	0
46 #define	PRIO_PGRP	1
47 #define	PRIO_USER	2
48 
49 #define RLIMIT_CPU	0		/* CPU time in ms */
50 #define RLIMIT_FSIZE	1		/* Maximum filesize */
51 #define RLIMIT_DATA	2		/* max data size */
52 #define RLIMIT_STACK	3		/* max stack size */
53 #define RLIMIT_CORE	4		/* max core file size */
54 #define RLIMIT_RSS	5		/* max resident set size */
55 #define RLIMIT_NPROC	6		/* max number of processes */
56 #define RLIMIT_NOFILE	7		/* max number of open files */
57 #define RLIMIT_MEMLOCK	8		/* max locked-in-memory address space */
58 
59 #define RLIM_NLIMITS	9
60 
61 extern int	getrlimit __P ((int __resource,
62 			struct rlimit *__rlp));
63 extern int	setrlimit __P ((int __resource,
64 			__const struct rlimit *__rlp));
65 
66 extern int      getpriority __P((int __which, int __who));
67 extern int      setpriority __P((int __which, int __who,
68 			int __prio));
69 
70 extern int	__getrusage __P ((int __who, struct rusage *__rusage));
71 extern int	getrusage __P ((int __who, struct rusage *__rusage));
72 
73 #endif /* __LINUXMT_RESOURCE_H */
74