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
__wait4_time32(pid_t pid,int * status,int options,struct compat_rusage * usage)26*c9945492SAndroid Build Coastguard Worker pid_t __wait4_time32(pid_t pid, 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 = wait4(pid, 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