mirror of git://git.musl-libc.org/musl
41 lines
922 B
C
41 lines
922 B
C
|
#define _BSD_SOURCE
|
||
|
#include "time32.h"
|
||
|
#include <string.h>
|
||
|
#include <stddef.h>
|
||
|
#include <sys/wait.h>
|
||
|
|
||
|
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 __wait3_time32(int *status, int options, struct compat_rusage *usage)
|
||
|
{
|
||
|
struct rusage ru;
|
||
|
int r = wait3(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;
|
||
|
}
|