master
1#ifndef _SYS_RESOURCE_H
2#define _SYS_RESOURCE_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <features.h>
9#include <sys/time.h>
10
11#define __NEED_id_t
12
13#ifdef _GNU_SOURCE
14#define __NEED_pid_t
15#endif
16
17#include <bits/alltypes.h>
18#include <bits/resource.h>
19
20typedef unsigned long long rlim_t;
21
22struct rlimit {
23 rlim_t rlim_cur;
24 rlim_t rlim_max;
25};
26
27struct rusage {
28 struct timeval ru_utime;
29 struct timeval ru_stime;
30 /* linux extentions, but useful */
31 long ru_maxrss;
32 long ru_ixrss;
33 long ru_idrss;
34 long ru_isrss;
35 long ru_minflt;
36 long ru_majflt;
37 long ru_nswap;
38 long ru_inblock;
39 long ru_oublock;
40 long ru_msgsnd;
41 long ru_msgrcv;
42 long ru_nsignals;
43 long ru_nvcsw;
44 long ru_nivcsw;
45 /* room for more... */
46 long __reserved[16];
47};
48
49int getrlimit (int, struct rlimit *);
50int setrlimit (int, const struct rlimit *);
51int getrusage (int, struct rusage *);
52
53int getpriority (int, id_t);
54int setpriority (int, id_t, int);
55
56#ifdef _GNU_SOURCE
57int prlimit(pid_t, int, const struct rlimit *, struct rlimit *);
58#define prlimit64 prlimit
59#endif
60
61#define PRIO_MIN (-20)
62#define PRIO_MAX 20
63
64#define PRIO_PROCESS 0
65#define PRIO_PGRP 1
66#define PRIO_USER 2
67
68#define RUSAGE_SELF 0
69#define RUSAGE_CHILDREN (-1)
70#define RUSAGE_THREAD 1
71
72#define RLIM_INFINITY (~0ULL)
73#define RLIM_SAVED_CUR RLIM_INFINITY
74#define RLIM_SAVED_MAX RLIM_INFINITY
75
76#define RLIMIT_CPU 0
77#define RLIMIT_FSIZE 1
78#define RLIMIT_DATA 2
79#define RLIMIT_STACK 3
80#define RLIMIT_CORE 4
81#ifndef RLIMIT_RSS
82#define RLIMIT_RSS 5
83#define RLIMIT_NPROC 6
84#define RLIMIT_NOFILE 7
85#define RLIMIT_MEMLOCK 8
86#define RLIMIT_AS 9
87#endif
88#define RLIMIT_LOCKS 10
89#define RLIMIT_SIGPENDING 11
90#define RLIMIT_MSGQUEUE 12
91#define RLIMIT_NICE 13
92#define RLIMIT_RTPRIO 14
93#define RLIMIT_RTTIME 15
94#define RLIMIT_NLIMITS 16
95
96#define RLIM_NLIMITS RLIMIT_NLIMITS
97
98#if defined(_LARGEFILE64_SOURCE)
99#define RLIM64_INFINITY RLIM_INFINITY
100#define RLIM64_SAVED_CUR RLIM_SAVED_CUR
101#define RLIM64_SAVED_MAX RLIM_SAVED_MAX
102#define getrlimit64 getrlimit
103#define setrlimit64 setrlimit
104#define rlimit64 rlimit
105#define rlim64_t rlim_t
106#endif
107
108#if _REDIR_TIME64
109__REDIR(getrusage, __getrusage_time64);
110#endif
111
112#ifdef __cplusplus
113}
114#endif
115
116#endif