1*c9945492SAndroid Build Coastguard Worker #define _BSD_SOURCE 2*c9945492SAndroid Build Coastguard Worker #include "time32.h" 3*c9945492SAndroid Build Coastguard Worker #include <string.h> 4*c9945492SAndroid Build Coastguard Worker #include <stddef.h> 5*c9945492SAndroid Build Coastguard Worker #include <sys/wait.h> 6*c9945492SAndroid Build Coastguard Worker 7*c9945492SAndroid Build Coastguard Worker struct compat_rusage { 8*c9945492SAndroid Build Coastguard Worker struct timeval32 ru_utime; 9*c9945492SAndroid Build Coastguard Worker struct timeval32 ru_stime; 10*c9945492SAndroid Build Coastguard Worker long ru_maxrss; 11*c9945492SAndroid Build Coastguard Worker long ru_ixrss; 12*c9945492SAndroid Build Coastguard Worker long ru_idrss; 13*c9945492SAndroid Build Coastguard Worker long ru_isrss; 14*c9945492SAndroid Build Coastguard Worker long ru_minflt; 15*c9945492SAndroid Build Coastguard Worker long ru_majflt; 16*c9945492SAndroid Build Coastguard Worker long ru_nswap; 17*c9945492SAndroid Build Coastguard Worker long ru_inblock; 18*c9945492SAndroid Build Coastguard Worker long ru_oublock; 19*c9945492SAndroid Build Coastguard Worker long ru_msgsnd; 20*c9945492SAndroid Build Coastguard Worker long ru_msgrcv; 21*c9945492SAndroid Build Coastguard Worker long ru_nsignals; 22*c9945492SAndroid Build Coastguard Worker long ru_nvcsw; 23*c9945492SAndroid Build Coastguard Worker long ru_nivcsw; 24*c9945492SAndroid Build Coastguard Worker }; 25*c9945492SAndroid Build Coastguard Worker __wait3_time32(int * status,int options,struct compat_rusage * usage)26*c9945492SAndroid Build Coastguard Workerpid_t __wait3_time32(int *status, int options, struct compat_rusage *usage) 27*c9945492SAndroid Build Coastguard Worker { 28*c9945492SAndroid Build Coastguard Worker struct rusage ru; 29*c9945492SAndroid Build Coastguard Worker int r = wait3(status, options, usage ? &ru : 0); 30*c9945492SAndroid Build Coastguard Worker if (!r && usage) { 31*c9945492SAndroid Build Coastguard Worker usage->ru_utime.tv_sec = ru.ru_utime.tv_sec; 32*c9945492SAndroid Build Coastguard Worker usage->ru_utime.tv_usec = ru.ru_utime.tv_usec; 33*c9945492SAndroid Build Coastguard Worker usage->ru_stime.tv_sec = ru.ru_stime.tv_sec; 34*c9945492SAndroid Build Coastguard Worker usage->ru_stime.tv_usec = ru.ru_stime.tv_usec; 35*c9945492SAndroid Build Coastguard Worker memcpy(&usage->ru_maxrss, &ru.ru_maxrss, 36*c9945492SAndroid Build Coastguard Worker sizeof(struct compat_rusage) - 37*c9945492SAndroid Build Coastguard Worker offsetof(struct compat_rusage, ru_maxrss)); 38*c9945492SAndroid Build Coastguard Worker } 39*c9945492SAndroid Build Coastguard Worker return r; 40*c9945492SAndroid Build Coastguard Worker } 41