1 /*
2 * Copyright (c) 2015-2021 The strace developers.
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #ifndef STRACE_X86_64_ASM_STAT_H
9 # define STRACE_X86_64_ASM_STAT_H
10
11 # if defined __x86_64__ && defined __ILP32__
12 # define stat redirect_kernel_stat
13 # endif
14
15 # include "../generic/asm_stat.h"
16
17 # if defined __x86_64__ && defined __ILP32__
18 # undef stat
19 /*
20 * This is a replacement for x32 <asm/stat.h> which
21 * appears to be wrong in older kernel headers.
22 */
23 struct stat {
24 kernel_ulong_t st_dev;
25 kernel_ulong_t st_ino;
26 kernel_ulong_t st_nlink;
27 unsigned int st_mode;
28 unsigned int st_uid;
29 unsigned int st_gid;
30 unsigned int pad0__;
31 kernel_ulong_t st_rdev;
32 kernel_long_t st_size;
33 kernel_long_t st_blksize;
34 kernel_long_t st_blocks;
35 kernel_ulong_t st_atime;
36 kernel_ulong_t st_atime_nsec;
37 kernel_ulong_t st_mtime;
38 kernel_ulong_t st_mtime_nsec;
39 kernel_ulong_t st_ctime;
40 kernel_ulong_t st_ctime_nsec;
41 kernel_long_t pad1__[3];
42 };
43
44 # endif /* __x86_64__ && __ILP32__ */
45
46 #endif /* !STRACE_X86_64_ASM_STAT_H */