]> git.proxmox.com Git - wasi-libc.git/blame - libc-top-half/musl/include/sys/resource.h
Add comments explaining changes to upstream source files.
[wasi-libc.git] / libc-top-half / musl / include / sys / resource.h
CommitLineData
320054e8
DG
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
e5f14be3 20#ifdef __wasilibc_unmodified_upstream /* WASI has no rlimit/rusage */
320054e8
DG
21typedef unsigned long long rlim_t;
22
23struct rlimit {
24 rlim_t rlim_cur;
25 rlim_t rlim_max;
26};
27
28struct 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
53int getrlimit (int, struct rlimit *);
54int setrlimit (int, const struct rlimit *);
55int getrusage (int, struct rusage *);
56
57int getpriority (int, id_t);
58int setpriority (int, id_t, int);
59
60#ifdef _GNU_SOURCE
61int prlimit(pid_t, int, const struct rlimit *, struct rlimit *);
62#define prlimit64 prlimit
63#endif
64
e5f14be3 65#ifdef __wasilibc_unmodified_upstream /* WASI has no rlimit/rusage */
320054e8
DG
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