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