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