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_STAT_H
2 #define _ASM_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 /* This matches struct stat in uClibc/glibc. */
19 struct stat {
20  unsigned char __pad1[6];
21  unsigned short st_dev;
22 
23  unsigned long __pad2;
24  unsigned long st_ino;
25 
26  unsigned short __pad3;
27  unsigned short st_mode;
28  unsigned short __pad4;
29  unsigned short st_nlink;
30 
31  unsigned short __pad5;
32  unsigned short st_uid;
33  unsigned short __pad6;
34  unsigned short st_gid;
35 
36  unsigned char __pad7[6];
37  unsigned short st_rdev;
38 
39  unsigned long __pad8;
40  unsigned long st_size;
41 
42  unsigned long __pad9; /* align 64-bit st_blocks to 2-word */
43  unsigned long st_blksize;
44 
45  unsigned long __pad10; /* future possible st_blocks high bits */
46  unsigned long st_blocks; /* Number 512-byte blocks allocated. */
47 
48  unsigned long __unused1;
49  unsigned long st_atime;
50 
51  unsigned long __unused2;
52  unsigned long st_mtime;
53 
54  unsigned long __unused3;
55  unsigned long st_ctime;
56 
57  unsigned long long __unused4;
58 };
59 
60 /* This matches struct stat64 in uClibc/glibc. The layout is exactly
61  the same as that of struct stat above, with 64-bit types taking up
62  space that was formerly used by padding. stat syscalls are still
63  different from stat64, though, in that the former tests for
64  overflow. */
65 struct stat64 {
66  unsigned char __pad1[6];
67  unsigned short st_dev;
68 
69  unsigned long long st_ino;
70 
71  unsigned int st_mode;
72  unsigned int st_nlink;
73 
74  unsigned long st_uid;
75  unsigned long st_gid;
76 
77  unsigned char __pad2[6];
78  unsigned short st_rdev;
79 
80  long long st_size;
81 
82  unsigned long __pad3; /* align 64-bit st_blocks to 2-word */
83  unsigned long st_blksize;
84 
85  unsigned long __pad4; /* future possible st_blocks high bits */
86  unsigned long st_blocks; /* Number 512-byte blocks allocated. */
87 
88  unsigned long st_atime_nsec;
89  unsigned long st_atime;
90 
91  unsigned int st_mtime_nsec;
92  unsigned long st_mtime;
93 
94  unsigned long st_ctime_nsec;
95  unsigned long st_ctime;
96 
97  unsigned long long __unused4;
98 };
99 
100 #endif /* _ASM_STAT_H */