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