github.com/afumu/libc@v0.0.6/musl/compat/time32/wait4_time32.c (about)

     1  #define _BSD_SOURCE
     2  #include "time32.h"
     3  #include <string.h>
     4  #include <stddef.h>
     5  #include <sys/wait.h>
     6  
     7  struct 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  
    26  pid_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  }