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