>From d2a3409eb9aecd545a3f9c384dd55cfc870122ac Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 25 Dec 2013 06:50:33 -0800 Subject: [PATCH] Use __kernel_long_t/__kernel_ulong_t in Both x32 and x86-64 use the same struct rusage and struct rlimit for system calls. But x32 log is 32-bit. This patch change uapi to use __kernel_long_t in struct rusage and __kernel_ulong_t in and struct rlimit if __BITS_PER_LONG == 64. Signed-off-by: H.J. Lu --- include/uapi/linux/resource.h | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/resource.h b/include/uapi/linux/resource.h index e0ed284..87d2daa 100644 --- a/include/uapi/linux/resource.h +++ b/include/uapi/linux/resource.h @@ -23,6 +23,22 @@ struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ +#if __BITS_PER_LONG == 64 + __kernel_long_t ru_maxrss; /* maximum resident set size */ + __kernel_long_t ru_ixrss; /* integral shared memory size */ + __kernel_long_t ru_idrss; /* integral unshared data size */ + __kernel_long_t ru_isrss; /* integral unshared stack size */ + __kernel_long_t ru_minflt; /* page reclaims */ + __kernel_long_t ru_majflt; /* page faults */ + __kernel_long_t ru_nswap; /* swaps */ + __kernel_long_t ru_inblock; /* block input operations */ + __kernel_long_t ru_oublock; /* block output operations */ + __kernel_long_t ru_msgsnd; /* messages sent */ + __kernel_long_t ru_msgrcv; /* messages received */ + __kernel_long_t ru_nsignals; /* signals received */ + __kernel_long_t ru_nvcsw; /* voluntary context switches */ + __kernel_long_t ru_nivcsw; /* involuntary " */ +#else long ru_maxrss; /* maximum resident set size */ long ru_ixrss; /* integral shared memory size */ long ru_idrss; /* integral unshared data size */ @@ -37,11 +53,17 @@ struct rusage { long ru_nsignals; /* signals received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary " */ +#endif }; struct rlimit { - unsigned long rlim_cur; - unsigned long rlim_max; +#if __BITS_PER_LONG == 64 + __kernel_ulong_t rlim_cur; + __kernel_ulong_t rlim_max; +#else + unsigned long rlim_cur; + unsigned long rlim_max; +#endif }; #define RLIM64_INFINITY (~0ULL) -- 1.8.4.2