#ifndef _SYS_RESOURCE_H_
#define _SYS_RESOURCE_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/time.h>
#define RUSAGE_SELF 0
#define RUSAGE_CHILDREN -1
struct rusage {
struct timeval ru_utime;
struct timeval ru_stime;
};
int getrusage(int, struct rusage*);
/* Priority constants */
#define PRIO_PROCESS 0
#define PRIO_PGRP 1
#define PRIO_USER 2
int getpriority(int which, int who);
int setpriority(int which, int who, int prio);
/* Resource limits */
typedef unsigned long rlim_t;
#define RLIM_INFINITY (~(rlim_t)0)
#define RLIM_SAVED_MAX RLIM_INFINITY
#define RLIM_SAVED_CUR RLIM_INFINITY
#define RLIMIT_CPU 0
#define RLIMIT_FSIZE 1
#define RLIMIT_DATA 2
#define RLIMIT_STACK 3
#define RLIMIT_CORE 4
#define RLIMIT_RSS 5
#define RLIMIT_NPROC 6
#define RLIMIT_NOFILE 7
#define RLIMIT_MEMLOCK 8
#define RLIMIT_AS 9
#define RLIMIT_LOCKS 10
#define RLIMIT_SIGPENDING 11
#define RLIMIT_MSGQUEUE 12
#define RLIMIT_NICE 13
#define RLIMIT_RTPRIO 14
#define RLIMIT_NLIMITS 15
struct rlimit {
rlim_t rlim_cur;
rlim_t rlim_max;
};
int getrlimit(int resource, struct rlimit* rlim);
int setrlimit(int resource, const struct rlimit* rlim);
#ifdef __cplusplus
}
#endif
#endif /* !_SYS_RESOURCE_H_ */