| #include "time32.h" |
| #include <string.h> |
| #include <stddef.h> |
| #include <sys/resource.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; |
| }; |
| |
| int __getrusage_time32(int who, struct compat_rusage *usage) |
| { |
| struct rusage ru; |
| int r = getrusage(who, &ru); |
| if (!r) { |
| 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; |
| } |