blob: 918548e74f9add2e88d97e7846043b47de6a5df6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#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 __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;
}
|