1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ASM_X86_STAT_H
2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ASM_X86_STAT_H
3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define STAT_HAVE_NSEC 1
5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__
7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat {
8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_dev;
9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ino;
10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_mode;
11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_nlink;
12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_uid;
13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_gid;
14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_rdev;
15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_size;
16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_blksize;
17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_blocks;
18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_atime;
19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_atime_nsec;
20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_mtime;
21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_mtime_nsec;
22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ctime;
23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ctime_nsec;
24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  __unused4;
25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  __unused5;
26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define STAT64_HAS_BROKEN_ST_INO	1
29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* This matches struct stat64 in glibc2.1, hence the absolutely
31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * insane amounts of padding around dev_t's.
32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat64 {
34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long	st_dev;
35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned char	__pad0[4];
36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	__st_ino;
38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_mode;
40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_nlink;
41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_uid;
43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_gid;
44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long	st_rdev;
46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned char	__pad3[4];
47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	long long	st_size;
49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_blksize;
50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	/* Number 512-byte blocks allocated. */
52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long	st_blocks;
53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_atime;
55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_atime_nsec;
56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_mtime;
58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_mtime_nsec;
59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_ctime;
61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_ctime_nsec;
62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long	st_ino;
64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else /* __i386__ */
67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat {
69c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_dev;
70c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_ino;
71c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_nlink;
72c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
73c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_mode;
74c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_uid;
75c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_gid;
76c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	__pad0;
77c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_rdev;
78c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	long		st_size;
79c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	long		st_blksize;
80c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	long		st_blocks;	/* Number 512-byte blocks allocated. */
81c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
82c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_atime;
83c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_atime_nsec;
84c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_mtime;
85c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_mtime_nsec;
86c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_ctime;
87c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long   st_ctime_nsec;
88c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	long		__unused[3];
89c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
90c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
91c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
92c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* for 32bit emulation and 32 bit kernels */
93c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct __old_kernel_stat {
94c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_dev;
95c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_ino;
96c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_mode;
97c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_nlink;
98c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_uid;
99c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_gid;
100c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_rdev;
101c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__
102c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_size;
103c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_atime;
104c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_mtime;
105c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ctime;
106c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else
107c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int  st_size;
108c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int  st_atime;
109c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int  st_mtime;
110c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int  st_ctime;
111c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
112c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
113c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
114c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
115