#define _BSD_SOURCE #include "time32.h" #include #include #include struct compat_rusage { struct timeval32 ru_utime; struct timeval32 ru_stime; long ru_maxrss; long ru_ixrss; long ru_idrss; long ru_isrss; long ru_minflt; long ru_majflt; long ru_nswap; long ru_inblock; long ru_oublock; long ru_msgsnd; long ru_msgrcv; long ru_nsignals; long ru_nvcsw; long ru_nivcsw; }; pid_t __wait4_time32(pid_t pid, int *status, int options, struct compat_rusage *usage) { struct rusage ru; int r = wait4(pid, status, options, usage ? &ru : 0); if (!r && usage) { usage->ru_utime.tv_sec = ru.ru_utime.tv_sec; usage->ru_utime.tv_usec = ru.ru_utime.tv_usec; usage->ru_stime.tv_sec = ru.ru_stime.tv_sec; usage->ru_stime.tv_usec = ru.ru_stime.tv_usec; memcpy(&usage->ru_maxrss, &ru.ru_maxrss, sizeof(struct compat_rusage) - offsetof(struct compat_rusage, ru_maxrss)); } return r; }