#include <inttypes.h>
typedef uint32_t mpers_ptr_t;
typedef
struct {
struct {
int64_t tv_sec;
int64_t tv_usec;
} ATTRIBUTE_PACKED ru_utime;
struct {
int64_t tv_sec;
int64_t tv_usec;
} ATTRIBUTE_PACKED ru_stime;
union {
int32_t ru_maxrss;
int64_t __ru_maxrss_word;
} ;
union {
int32_t ru_ixrss;
int64_t __ru_ixrss_word;
} ;
union {
int32_t ru_idrss;
int64_t __ru_idrss_word;
} ;
union {
int32_t ru_isrss;
int64_t __ru_isrss_word;
} ;
union {
int32_t ru_minflt;
int64_t __ru_minflt_word;
} ;
union {
int32_t ru_majflt;
int64_t __ru_majflt_word;
} ;
union {
int32_t ru_nswap;
int64_t __ru_nswap_word;
} ;
union {
int32_t ru_inblock;
int64_t __ru_inblock_word;
} ;
union {
int32_t ru_oublock;
int64_t __ru_oublock_word;
} ;
union {
int32_t ru_msgsnd;
int64_t __ru_msgsnd_word;
} ;
union {
int32_t ru_msgrcv;
int64_t __ru_msgrcv_word;
} ;
union {
int32_t ru_nsignals;
int64_t __ru_nsignals_word;
} ;
union {
int32_t ru_nvcsw;
int64_t __ru_nvcsw_word;
} ;
union {
int32_t ru_nivcsw;
int64_t __ru_nivcsw_word;
} ;
} ATTRIBUTE_PACKED mx32_rusage_t;
#define MPERS_mx32_rusage_t mx32_rusage_t
