fix struct signalfd_siginfo
[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
19 typedef unsigned long long rlim_t;
20
21 struct rlimit
22 {
23         rlim_t rlim_cur;
24         rlim_t rlim_max;
25 };
26
27 struct rusage
28 {
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
50 int getrlimit (int, struct rlimit *);
51 int setrlimit (int, const struct rlimit *);
52 int getrusage (int, struct rusage *);
53
54 int getpriority (int, id_t);
55 int setpriority (int, id_t, int);
56
57 #ifdef _GNU_SOURCE
58 int prlimit(pid_t, int, const struct rlimit *, struct rlimit *);
59 #define prlimit64 prlimit
60 #endif
61
62 #define PRIO_MIN (-20)
63 #define PRIO_MAX 20
64
65 #define PRIO_PROCESS 0
66 #define PRIO_PGRP    1
67 #define PRIO_USER    2
68
69 #define RUSAGE_SELF     0
70 #define RUSAGE_CHILDREN 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 #define RLIMIT_RSS     5
82 #define RLIMIT_NOFILE  7
83 #define RLIMIT_AS      9
84 #define RLIMIT_NPROC   6
85 #define RLIMIT_MEMLOCK 8
86 #define RLIMIT_LOCKS   10
87 #define RLIMIT_SIGPENDING 11
88 #define RLIMIT_MSGQUEUE 12
89 #define RLIMIT_NICE    13
90 #define RLIMIT_RTPRIO  14
91 #define RLIMIT_NLIMITS 15
92
93 #define RLIM_NLIMITS RLIMIT_NLIMITS
94
95 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
96 #define getrlimit64 getrlimit
97 #define setrlimit64 setrlimit
98 #define rlimit64 rlimit
99 #define rlim64_t rlim_t
100 #endif
101
102 #ifdef __cplusplus
103 }
104 #endif
105
106 #endif