initial check-in, version 0.5.0
[musl] / include / sys / resource.h
1 #ifndef _SYS_RESOURCE_H
2 #define _SYS_RESOURCE_H
3
4 #define __NEED_id_t
5 #define __NEED_time_t
6 #define __NEED_struct_timeval
7 #define __NEED_struct_rusage
8
9 #include <bits/alltypes.h>
10
11 typedef unsigned long long rlim_t;
12
13 struct rlimit
14 {
15         rlim_t rlim_cur;
16         rlim_t rlim_max;
17 };
18
19 struct rusage
20 {
21         struct timeval ru_utime;
22         struct timeval ru_stime;
23         /* linux extentions, but useful */
24         long    ru_maxrss;
25         long    ru_ixrss;
26         long    ru_idrss;
27         long    ru_isrss;
28         long    ru_minflt;
29         long    ru_majflt;
30         long    ru_nswap;
31         long    ru_inblock;
32         long    ru_oublock;
33         long    ru_msgsnd;
34         long    ru_msgrcv;
35         long    ru_nsignals;
36         long    ru_nvcsw;
37         long    ru_nivcsw;
38         /* room for more... */
39         long    __reserved[16];
40 };
41
42 int getrlimit (int, struct rlimit *);
43 int setrlimit (int, const struct rlimit *);
44 int getrusage (int, struct rusage *);
45
46 int getpriority (int, id_t);
47 int setpriority (int, id_t, int);
48
49 #define PRIO_PROCESS 0
50 #define PRIO_PGRP    1
51 #define PRIO_USER    2
52
53 #define RUSAGE_SELF     0
54 #define RUSAGE_CHILDREN 1
55
56 #define RLIM_INFINITY (~0ULL)
57 #define RLIM_SAVED_CUR RLIM_INFINITY
58 #define RLIM_SAVED_MAX RLIM_INFINITY
59
60 #define RLIMIT_CPU     0
61 #define RLIMIT_FSIZE   1
62 #define RLIMIT_DATA    2
63 #define RLIMIT_STACK   3
64 #define RLIMIT_CORE    4
65 #define RLIMIT_RSS     5
66 #define RLIMIT_NOFILE  7
67 #define RLIMIT_AS      9
68 #define RLIMIT_NPROC   6
69 #define RLIMIT_MEMLOCK 8
70 #define RLIMIT_LOCKS   10
71
72
73
74 #endif