Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
stat.h
Go to the documentation of this file.
1 #ifndef __ASM_SH_STAT_H
2 #define __ASM_SH_STAT_H
3 
4 struct __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 #if defined(__SH5__) || defined(CONFIG_CPU_SH5)
19 struct stat {
20  unsigned short st_dev;
21  unsigned short __pad1;
22  unsigned long st_ino;
23  unsigned short st_mode;
24  unsigned short st_nlink;
25  unsigned short st_uid;
26  unsigned short st_gid;
27  unsigned short st_rdev;
28  unsigned short __pad2;
29  unsigned long st_size;
30  unsigned long st_blksize;
31  unsigned long st_blocks;
32  unsigned long st_atime;
33  unsigned long st_atime_nsec;
34  unsigned long st_mtime;
35  unsigned long st_mtime_nsec;
36  unsigned long st_ctime;
37  unsigned long st_ctime_nsec;
38  unsigned long __unused4;
39  unsigned long __unused5;
40 };
41 
42 /* This matches struct stat64 in glibc2.1, hence the absolutely
43  * insane amounts of padding around dev_t's.
44  */
45 struct stat64 {
46  unsigned short st_dev;
47  unsigned char __pad0[10];
48 
49  unsigned long st_ino;
50  unsigned int st_mode;
51  unsigned int st_nlink;
52 
53  unsigned long st_uid;
54  unsigned long st_gid;
55 
56  unsigned short st_rdev;
57  unsigned char __pad3[10];
58 
59  long long st_size;
60  unsigned long st_blksize;
61 
62  unsigned long st_blocks; /* Number 512-byte blocks allocated. */
63  unsigned long __pad4; /* future possible st_blocks high bits */
64 
65  unsigned long st_atime;
66  unsigned long st_atime_nsec;
67 
68  unsigned long st_mtime;
69  unsigned long st_mtime_nsec;
70 
71  unsigned long st_ctime;
72  unsigned long st_ctime_nsec; /* will be high 32 bits of ctime someday */
73 
74  unsigned long __unused1;
75  unsigned long __unused2;
76 };
77 #else
78 struct stat {
79  unsigned long st_dev;
80  unsigned long st_ino;
81  unsigned short st_mode;
82  unsigned short st_nlink;
83  unsigned short st_uid;
84  unsigned short st_gid;
85  unsigned long st_rdev;
86  unsigned long st_size;
87  unsigned long st_blksize;
88  unsigned long st_blocks;
89  unsigned long st_atime;
90  unsigned long st_atime_nsec;
91  unsigned long st_mtime;
92  unsigned long st_mtime_nsec;
93  unsigned long st_ctime;
94  unsigned long st_ctime_nsec;
95  unsigned long __unused4;
96  unsigned long __unused5;
97 };
98 
99 /* This matches struct stat64 in glibc2.1, hence the absolutely
100  * insane amounts of padding around dev_t's.
101  */
102 struct stat64 {
103  unsigned long long st_dev;
104  unsigned char __pad0[4];
105 
106 #define STAT64_HAS_BROKEN_ST_INO 1
107  unsigned long __st_ino;
108 
109  unsigned int st_mode;
110  unsigned int st_nlink;
111 
112  unsigned long st_uid;
113  unsigned long st_gid;
114 
115  unsigned long long st_rdev;
116  unsigned char __pad3[4];
117 
118  long long st_size;
119  unsigned long st_blksize;
120 
121  unsigned long long st_blocks; /* Number 512-byte blocks allocated. */
122 
123  unsigned long st_atime;
124  unsigned long st_atime_nsec;
125 
126  unsigned long st_mtime;
127  unsigned long st_mtime_nsec;
128 
129  unsigned long st_ctime;
130  unsigned long st_ctime_nsec;
131 
132  unsigned long long st_ino;
133 };
134 
135 #define STAT_HAVE_NSEC 1
136 #endif
137 
138 #endif /* __ASM_SH_STAT_H */