1#ifndef _ASM_M32R_STAT_H
2#define _ASM_M32R_STAT_H
3
4#include <asm/byteorder.h>
5
6struct __old_kernel_stat {
7	unsigned short st_dev;
8	unsigned short st_ino;
9	unsigned short st_mode;
10	unsigned short st_nlink;
11	unsigned short st_uid;
12	unsigned short st_gid;
13	unsigned short st_rdev;
14	unsigned long  st_size;
15	unsigned long  st_atime;
16	unsigned long  st_mtime;
17	unsigned long  st_ctime;
18};
19
20#define STAT_HAVE_NSEC	1
21
22struct stat {
23	unsigned short st_dev;
24	unsigned short __pad1;
25	unsigned long  st_ino;
26	unsigned short st_mode;
27	unsigned short st_nlink;
28	unsigned short st_uid;
29	unsigned short st_gid;
30	unsigned short st_rdev;
31	unsigned short __pad2;
32	unsigned long  st_size;
33	unsigned long  st_blksize;
34	unsigned long  st_blocks;
35	unsigned long  st_atime;
36	unsigned long  st_atime_nsec;
37	unsigned long  st_mtime;
38	unsigned long  st_mtime_nsec;
39	unsigned long  st_ctime;
40	unsigned long  st_ctime_nsec;
41	unsigned long  __unused4;
42	unsigned long  __unused5;
43};
44
45/* This matches struct stat64 in glibc2.1, hence the absolutely
46 * insane amounts of padding around dev_t's.
47 */
48struct stat64 {
49	unsigned long long	st_dev;
50	unsigned char	__pad0[4];
51#define STAT64_HAS_BROKEN_ST_INO
52	unsigned long	__st_ino;
53
54	unsigned int	st_mode;
55	unsigned int	st_nlink;
56
57	unsigned long	st_uid;
58	unsigned long	st_gid;
59
60	unsigned long long	st_rdev;
61	unsigned char	__pad3[4];
62
63	long long	st_size;
64	unsigned long	st_blksize;
65
66#if defined(__BIG_ENDIAN)
67	unsigned long	__pad4;		/* future possible st_blocks high bits */
68	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */
69#elif defined(__LITTLE_ENDIAN)
70	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */
71	unsigned long	__pad4;		/* future possible st_blocks high bits */
72#else
73#error no endian defined
74#endif
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  /* _ASM_M32R_STAT_H */
88