From 14c2dca9e1f491df4822a6c1fbcf8b3568d1124c Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Thu, 13 Jul 2017 21:56:29 +0000 Subject: [PATCH] Move macros related to kernel types to kernel_types.h Some macros related to kernel types are defined both in defs.h and tests/tests.h. Avoid this redundancy by moving these definitions to kernel_types.h. * defs.h (PRI_kl, PRI_kld, PRI_klu, PRI_klx, PRI__64, PRI__d64, PRI__u64, PRI__x64): Move ... * kernel_types.h: ... here. * tests/tests.h (PRI__64, PRI__d64, PRI__u64, PRI__x64): Remove. --- defs.h | 32 -------------------------------- kernel_types.h | 32 ++++++++++++++++++++++++++++++++ tests/tests.h | 20 -------------------- 3 files changed, 32 insertions(+), 52 deletions(-) diff --git a/defs.h b/defs.h index bb0dad3b..5b378a94 100644 --- a/defs.h +++ b/defs.h @@ -1024,36 +1024,4 @@ scno_is_valid(kernel_ulong_t scno) #define SYS_FUNC(syscall_name) int SYS_FUNC_NAME(sys_ ## syscall_name)(struct tcb *tcp) -#if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG -# define PRI_kl "ll" -#else -# define PRI_kl "l" -#endif - -#define PRI_kld PRI_kl"d" -#define PRI_klu PRI_kl"u" -#define PRI_klx PRI_kl"x" - -/* - * The kernel used to define 64-bit types on 64-bit systems on a per-arch - * basis. Some architectures would use unsigned long and others would use - * unsigned long long. These types were exported as part of the - * kernel-userspace ABI and now must be maintained forever. This matches - * what the kernel exports for each architecture so we don't need to cast - * every printing of __u64 or __s64 to stdint types. - * The exception is Android, where for MIPS64 unsigned long long is used. - */ -#if SIZEOF_LONG == 4 -# define PRI__64 "ll" -#elif defined ALPHA || defined IA64 || defined POWERPC \ - || (defined MIPS && !defined __ANDROID__) -# define PRI__64 "l" -#else -# define PRI__64 "ll" -#endif - -#define PRI__d64 PRI__64"d" -#define PRI__u64 PRI__64"u" -#define PRI__x64 PRI__64"x" - #endif /* !STRACE_DEFS_H */ diff --git a/kernel_types.h b/kernel_types.h index 373a3e05..3651014f 100644 --- a/kernel_types.h +++ b/kernel_types.h @@ -55,4 +55,36 @@ typedef struct { char d_name[1]; } kernel_dirent; +#if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG +# define PRI_kl "ll" +#else +# define PRI_kl "l" +#endif + +#define PRI_kld PRI_kl"d" +#define PRI_klu PRI_kl"u" +#define PRI_klx PRI_kl"x" + +/* + * The kernel used to define 64-bit types on 64-bit systems on a per-arch + * basis. Some architectures would use unsigned long and others would use + * unsigned long long. These types were exported as part of the + * kernel-userspace ABI and now must be maintained forever. This matches + * what the kernel exports for each architecture so we don't need to cast + * every printing of __u64 or __s64 to stdint types. + * The exception is Android, where for MIPS64 unsigned long long is used. + */ +#if SIZEOF_LONG == 4 +# define PRI__64 "ll" +#elif defined ALPHA || defined IA64 || defined POWERPC \ + || (defined MIPS && !defined __ANDROID__) +# define PRI__64 "l" +#else +# define PRI__64 "ll" +#endif + +#define PRI__d64 PRI__64"d" +#define PRI__u64 PRI__64"u" +#define PRI__x64 PRI__64"x" + #endif /* !STRACE_KERNEL_TYPES_H */ diff --git a/tests/tests.h b/tests/tests.h index 633461b3..258fbd96 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -228,26 +228,6 @@ f8ill_ptr_to_kulong(const void *const ptr) # define SKIP_MAIN_UNDEFINED(arg) \ int main(void) { error_msg_and_skip("undefined: %s", arg); } -/* - * The kernel used to define 64-bit types on 64-bit systems on a per-arch - * basis. Some architectures would use unsigned long and others would use - * unsigned long long. These types were exported as part of the - * kernel-userspace ABI and now must be maintained forever. This matches - * what the kernel exports for each architecture so we don't need to cast - * every printing of __u64 or __s64 to stdint types. - */ -# if SIZEOF_LONG == 4 -# define PRI__64 "ll" -# elif defined ALPHA || defined IA64 || defined MIPS || defined POWERPC -# define PRI__64 "l" -# else -# define PRI__64 "ll" -# endif - -# define PRI__d64 PRI__64"d" -# define PRI__u64 PRI__64"u" -# define PRI__x64 PRI__64"x" - # if WORDS_BIGENDIAN # define LL_PAIR(HI, LO) (HI), (LO) # else -- 2.40.0