2000-02-18 03:38:33 +08:00
|
|
|
#ifndef _SYS_RESOURCE_H_
|
|
|
|
#define _SYS_RESOURCE_H_
|
|
|
|
|
|
|
|
#include <sys/time.h>
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2000-12-27 08:13:57 +08:00
|
|
|
#define RLIMIT_CPU 0 /* CPU time in seconds */
|
|
|
|
#define RLIMIT_FSIZE 1 /* Maximum filesize */
|
|
|
|
#define RLIMIT_DATA 2 /* max data size */
|
|
|
|
#define RLIMIT_STACK 3 /* max stack size */
|
|
|
|
#define RLIMIT_CORE 4 /* max core file size */
|
|
|
|
#define RLIMIT_NOFILE 5 /* max number of open files */
|
|
|
|
#define RLIMIT_OFILE RLIMIT_NOFILE /* BSD name */
|
|
|
|
#define RLIMIT_AS 6 /* address space (virt. memory) limit */
|
|
|
|
|
2001-01-31 20:21:23 +08:00
|
|
|
#define RLIMIT_NLIMITS 7 /* upper bound of RLIMIT_* defines */
|
2001-01-31 20:24:24 +08:00
|
|
|
#define RLIM_NLIMITS RLIMIT_NLIMITS
|
2001-01-31 20:21:23 +08:00
|
|
|
|
2000-12-27 08:13:57 +08:00
|
|
|
#define RLIM_INFINITY (0xffffffffUL)
|
|
|
|
#define RLIM_SAVED_MAX RLIM_INFINITY
|
|
|
|
#define RLIM_SAVED_CUR RLIM_INFINITY
|
|
|
|
|
|
|
|
typedef unsigned long rlim_t;
|
|
|
|
|
|
|
|
struct rlimit {
|
|
|
|
rlim_t rlim_cur;
|
|
|
|
rlim_t rlim_max;
|
|
|
|
};
|
|
|
|
|
2000-02-18 03:38:33 +08:00
|
|
|
#define RUSAGE_SELF 0 /* calling process */
|
|
|
|
#define RUSAGE_CHILDREN -1 /* terminated child processes */
|
|
|
|
|
|
|
|
struct rusage {
|
2000-10-28 13:41:44 +08:00
|
|
|
struct timeval ru_utime; /* user time used */
|
2000-02-18 03:38:33 +08:00
|
|
|
struct timeval ru_stime; /* system time used */
|
|
|
|
long ru_maxrss;
|
|
|
|
long ru_ixrss; /* XXX: 0 */
|
|
|
|
long ru_idrss; /* XXX: sum of rm_asrss */
|
|
|
|
long ru_isrss; /* XXX: 0 */
|
|
|
|
long ru_minflt; /* any page faults not requiring I/O */
|
|
|
|
long ru_majflt; /* any page faults requiring I/O */
|
|
|
|
long ru_nswap; /* swaps */
|
|
|
|
long ru_inblock; /* block input operations */
|
|
|
|
long ru_oublock; /* block output operations */
|
|
|
|
long ru_msgsnd; /* messages sent */
|
|
|
|
long ru_msgrcv; /* messages received */
|
|
|
|
long ru_nsignals; /* signals received */
|
|
|
|
long ru_nvcsw; /* voluntary context switches */
|
|
|
|
long ru_nivcsw; /* involuntary " */
|
|
|
|
#define ru_last ru_nivcsw
|
|
|
|
};
|
|
|
|
|
2000-12-27 08:13:57 +08:00
|
|
|
int getrlimit (int __resource, struct rlimit *__rlp);
|
|
|
|
int setrlimit (int __resource, const struct rlimit *__rlp);
|
|
|
|
|
2000-02-18 03:38:33 +08:00
|
|
|
int getrusage (int __who, struct rusage *__rusage);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|