1 #include "time32.h" 2 #include <string.h> 3 #include <stddef.h> 4 #include <sys/resource.h> 5 6 struct compat_rusage { 7 struct timeval32 ru_utime; 8 struct timeval32 ru_stime; 9 long ru_maxrss; 10 long ru_ixrss; 11 long ru_idrss; 12 long ru_isrss; 13 long ru_minflt; 14 long ru_majflt; 15 long ru_nswap; 16 long ru_inblock; 17 long ru_oublock; 18 long ru_msgsnd; 19 long ru_msgrcv; 20 long ru_nsignals; 21 long ru_nvcsw; 22 long ru_nivcsw; 23 }; 24 __getrusage_time32(int who,struct compat_rusage * usage)25int __getrusage_time32(int who, struct compat_rusage *usage) 26 { 27 struct rusage ru; 28 int r = getrusage(who, &ru); 29 if (!r) { 30 usage->ru_utime.tv_sec = ru.ru_utime.tv_sec; 31 usage->ru_utime.tv_usec = ru.ru_utime.tv_usec; 32 usage->ru_stime.tv_sec = ru.ru_stime.tv_sec; 33 usage->ru_stime.tv_usec = ru.ru_stime.tv_usec; 34 memcpy(&usage->ru_maxrss, &ru.ru_maxrss, 35 sizeof(struct compat_rusage) - 36 offsetof(struct compat_rusage, ru_maxrss)); 37 } 38 return r; 39 } 40