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