From: Dmitry V. Levin Date: Tue, 23 Aug 2016 14:49:20 +0000 (+0000) Subject: x32/asm_stat.h: provide definitions for i386 personality X-Git-Tag: v4.14~173 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cbb95b6c6a50c5ebe0f2b686416bd3a60179a0f6;p=strace x32/asm_stat.h: provide definitions for i386 personality This enables x32/asm_stat.h with -m32. * linux/x32/asm_stat.h [__x86_64__ && __ILP32__]: Redirect stat. Include "linux/asm_stat.h". (struct stat): Define for [__x86_64__ && __ILP32__] only. (struct __old_kernel_stat): Remove. --- diff --git a/linux/x32/asm_stat.h b/linux/x32/asm_stat.h index 6713ac45..467c8f0e 100644 --- a/linux/x32/asm_stat.h +++ b/linux/x32/asm_stat.h @@ -1,14 +1,18 @@ +#ifndef STRACE_X32_ASM_STAT_H +#define STRACE_X32_ASM_STAT_H + +# if defined __x86_64__ && defined __ILP32__ +# define stat redirect_kernel_stat +# endif + +# include "linux/asm_stat.h" + +# if defined __x86_64__ && defined __ILP32__ +# undef stat /* * This is a replacement for x32 which * appears to be wrong in older kernel headers. */ - -#ifndef STRACE_ASM_STAT_H - -# define STRACE_ASM_STAT_H - -# include "kernel_types.h" - struct stat { kernel_ulong_t st_dev; kernel_ulong_t st_ino; @@ -30,18 +34,6 @@ struct stat { kernel_long_t pad1__[3]; }; -struct __old_kernel_stat { - unsigned short st_dev; - unsigned short st_ino; - unsigned short st_mode; - unsigned short st_nlink; - unsigned short st_uid; - unsigned short st_gid; - unsigned short st_rdev; - unsigned int st_size; - unsigned int st_atime; - unsigned int st_mtime; - unsigned int st_ctime; -}; +# endif /* __x86_64__ && __ILP32__ */ -#endif /* !STRACE_ASM_STAT_H */ +#endif /* !STRACE_X32_ASM_STAT_H */