111 lines
3.1 KiB
C
111 lines
3.1 KiB
C
#ifndef _SYS_RESOURCE_H_
|
|
#define _SYS_RESOURCE_H_
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/time.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#define RUSAGE_CHILDREN (-1)
|
|
#define RUSAGE_BOTH (-2)
|
|
#define RLIM_INFINITY (~0UL)
|
|
#define RLIM_SAVED_CUR -1
|
|
#define RLIM_SAVED_MAX -1
|
|
#define RLIMIT_CPU 0
|
|
#define RUSAGE_SELF 0
|
|
#define RLIMIT_FSIZE 1
|
|
#define RLIMIT_LOCKS 10
|
|
#define RLIM_NLIMITS 11
|
|
#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
|
|
|
|
|
|
|
|
|
|
|
|
typedef unsigned long int rlim_t;
|
|
|
|
typedef unsigned long long int rlim64_t;
|
|
|
|
typedef int __rlimit_resource_t;
|
|
|
|
|
|
|
|
|
|
struct rlimit {
|
|
rlim_t rlim_cur; /* The current (soft) limit. */
|
|
rlim_t rlim_max; /* The hard limit. */
|
|
};
|
|
|
|
struct rlimit64 {
|
|
rlim64_t rlim_cur; /* The current (soft) limit. */
|
|
rlim64_t rlim_max; /* The hard limit. */
|
|
};
|
|
|
|
|
|
|
|
|
|
struct rusage {
|
|
struct timeval ru_utime; /* Total amount of user time used. */
|
|
struct timeval ru_stime; /* Total amount of system time used. */
|
|
long int ru_maxrss; /* Maximum resident set size (in kilobytes). */
|
|
long int ru_ixrss; /* Amount of sharing of text segment memory with other p */
|
|
long int ru_idrss; /* Amount of data segment memory used (kilobyte-seconds). */
|
|
long int ru_isrss; /* Amount of stack memory used (kilobyte-seconds). */
|
|
long int ru_minflt; /* Number of soft page faults (i.e. those serviced by reclaimin */
|
|
long int ru_majflt; /* Number of hard page faults (i.e. those that required I/O). */
|
|
long int ru_nswap; /* Number of times a process was swapped out of physical memory */
|
|
long int ru_inblock; /* Number of input operations via the file system. Note: This */
|
|
long int ru_oublock; /* Number of output operations via the file system. */
|
|
long int ru_msgsnd; /* Number of IPC messages sent. */
|
|
long int ru_msgrcv; /* Number of IPC messages received. */
|
|
long int ru_nsignals; /* Number of signals delivered. */
|
|
long int ru_nvcsw; /* Number of voluntary context switches, i.e. because the proce */
|
|
long int ru_nivcsw; /* Number of involuntary context switches, i.e. a higher priori */
|
|
};
|
|
|
|
|
|
/* Priority limits.*/
|
|
|
|
|
|
|
|
/* The type of the WHICH argument to `getpriority' and `setpriority',
|
|
indicating what flavor of entity the WHO argument specifies.*/
|
|
|
|
|
|
enum __priority_which {
|
|
PRIO_PROCESS = 0, /* WHO is a process ID. */
|
|
PRIO_PGRP = 1, /* WHO is a process group ID. */
|
|
PRIO_USER = 2 /* WHO is a user ID. */
|
|
};
|
|
|
|
|
|
#define PRIO_PGRP PRIO_PGRP
|
|
#define PRIO_PROCESS PRIO_PROCESS
|
|
#define PRIO_USER PRIO_USER
|
|
|
|
|
|
typedef enum __priority_which __priority_which_t;
|
|
|
|
|
|
extern int getpriority(__priority_which_t, id_t);
|
|
extern int getrlimit64(id_t, struct rlimit64 *);
|
|
extern int setpriority(__priority_which_t, id_t, int);
|
|
extern int setrlimit(__rlimit_resource_t, const struct rlimit *);
|
|
extern int setrlimit64(__rlimit_resource_t, const struct rlimit64 *);
|
|
extern int getrlimit(__rlimit_resource_t, struct rlimit *);
|
|
extern int getrusage(int, struct rusage *);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|