remove standalone syscall cruft
[musl] / src / linux / wait4.c
1 #include <sys/wait.h>
2 #include <sys/resource.h>
3 #include <string.h>
4 #include "syscall.h"
5
6 pid_t wait4(pid_t pid, int *status, int options, struct rusage *usage)
7 {
8         pid_t ret = syscall4(__NR_wait4, pid, (long)status, options, (long)usage);
9         /* Fixup kernel time_t... */
10         if (usage) {
11                 long kusage[4];
12                 memcpy(kusage, usage, sizeof kusage);
13                 memmove((struct timeval *)usage + 2, (long *)usage + 4, sizeof *usage - 2*sizeof(struct timeval));
14                 usage->ru_utime = (struct timeval){ kusage[0], kusage[1] };
15                 usage->ru_stime = (struct timeval){ kusage[2], kusage[3] };
16         }
17         return ret;
18 }