1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ASMARM_STAT_H
2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ASMARM_STAT_H
3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct __old_kernel_stat {
5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_dev;
6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_ino;
7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_mode;
8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_nlink;
9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_uid;
10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_gid;
11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_rdev;
12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_size;
13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_atime;
14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_mtime;
15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ctime;
16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define STAT_HAVE_NSEC
19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat {
21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#if defined(__ARMEB__)
22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_dev;
23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short __pad1;
24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else
25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_dev;
26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ino;
28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_mode;
29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_nlink;
30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_uid;
31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_gid;
32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#if defined(__ARMEB__)
33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short st_rdev;
34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned short __pad2;
35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else
36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_rdev;
37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_size;
39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_blksize;
40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_blocks;
41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_atime;
42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_atime_nsec;
43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_mtime;
44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_mtime_nsec;
45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ctime;
46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  st_ctime_nsec;
47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  __unused4;
48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  __unused5;
49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* This matches struct stat64 in glibc2.1, hence the absolutely
52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * insane amounts of padding around dev_t's.
53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Note: The kernel zero's the padded region because glibc might read them
54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * in the hope that the kernel has stretched to using larger sizes.
55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat64 {
57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long	st_dev;
58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned char   __pad0[4];
59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define STAT64_HAS_BROKEN_ST_INO	1
61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	__st_ino;
62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_mode;
63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned int	st_nlink;
64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_uid;
66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_gid;
67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long	st_rdev;
69c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned char   __pad3[4];
70c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
71c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	long long	st_size;
72c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_blksize;
73c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long st_blocks;	/* Number 512-byte blocks allocated. */
74c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
75c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_atime;
76c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_atime_nsec;
77c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
78c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_mtime;
79c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_mtime_nsec;
80c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
81c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_ctime;
82c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	st_ctime_nsec;
83c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
84c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long long	st_ino;
85c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
86c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
87c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
88