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