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 /* Use alternate WASI libc headers */ 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 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 #define RUSAGE_THREAD 1 72 73 #define RLIM_INFINITY (~0ULL) 74 #define RLIM_SAVED_CUR RLIM_INFINITY 75 #define RLIM_SAVED_MAX RLIM_INFINITY 76 77 #define RLIMIT_CPU 0 78 #define RLIMIT_FSIZE 1 79 #define RLIMIT_DATA 2 80 #define RLIMIT_STACK 3 81 #define RLIMIT_CORE 4 82 #ifndef RLIMIT_RSS 83 #define RLIMIT_RSS 5 84 #define RLIMIT_NPROC 6 85 #define RLIMIT_NOFILE 7 86 #define RLIMIT_MEMLOCK 8 87 #define RLIMIT_AS 9 88 #endif 89 #define RLIMIT_LOCKS 10 90 #define RLIMIT_SIGPENDING 11 91 #define RLIMIT_MSGQUEUE 12 92 #define RLIMIT_NICE 13 93 #define RLIMIT_RTPRIO 14 94 #define RLIMIT_NLIMITS 15 95 96 #define RLIM_NLIMITS RLIMIT_NLIMITS 97 98 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_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 #else 108 #include <__header_sys_resource.h> 109 #endif 110 111 #ifdef __cplusplus 112 } 113 #endif 114 115 #endif 116