strace/linux/x86_64/asm_stat.h
Dmitry V. Levin 1d81b3b35f x86_64: provide a replacement of <asm/stat.h> for x32 personality
For the reason described in commit v4.10-517-gcfde1e3, a correct
definition of struct stat for x32 personality is necessary to enable
"asm_stat.h" with -mx32 on x86_64.

* linux/x32/asm_stat.h: Rename to ...
* linux/x86_64/asm_stat.h: ... new file.
* Makefile.am (strace_SOURCES): Add it.
* linux/x32/asm_stat.h: New file, include "x86_64/asm_stat.h".
2016-08-24 12:10:50 +00:00

40 lines
911 B
C

#ifndef STRACE_X86_64_ASM_STAT_H
#define STRACE_X86_64_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 <asm/stat.h> which
* appears to be wrong in older kernel headers.
*/
struct stat {
kernel_ulong_t st_dev;
kernel_ulong_t st_ino;
kernel_ulong_t st_nlink;
unsigned int st_mode;
unsigned int st_uid;
unsigned int st_gid;
unsigned int pad0__;
kernel_ulong_t st_rdev;
kernel_long_t st_size;
kernel_long_t st_blksize;
kernel_long_t st_blocks;
kernel_ulong_t st_atime;
kernel_ulong_t st_atime_nsec;
kernel_ulong_t st_mtime;
kernel_ulong_t st_mtime_nsec;
kernel_ulong_t st_ctime;
kernel_ulong_t st_ctime_nsec;
kernel_long_t pad1__[3];
};
# endif /* __x86_64__ && __ILP32__ */
#endif /* !STRACE_X86_64_ASM_STAT_H */