xref: /third_party/musl/compat/time32/wait4_time32.c (revision 570af302)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/musl/compat/time32/
1#define _BSD_SOURCE
2#include "time32.h"
3#include <string.h>
4#include <stddef.h>
5#include <sys/wait.h>
6
7struct 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
26pid_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}
41

Indexes created Thu Nov 07 10:32:03 CST 2024