Merge branch 'kvm-updates-2.6.26' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6] / include / asm-x86 / stat.h
1 #ifndef _ASM_X86_STAT_H
2 #define _ASM_X86_STAT_H
3
4 #define STAT_HAVE_NSEC 1
5
6 #ifdef __i386__
7 struct stat {
8         unsigned long  st_dev;
9         unsigned long  st_ino;
10         unsigned short st_mode;
11         unsigned short st_nlink;
12         unsigned short st_uid;
13         unsigned short st_gid;
14         unsigned long  st_rdev;
15         unsigned long  st_size;
16         unsigned long  st_blksize;
17         unsigned long  st_blocks;
18         unsigned long  st_atime;
19         unsigned long  st_atime_nsec;
20         unsigned long  st_mtime;
21         unsigned long  st_mtime_nsec;
22         unsigned long  st_ctime;
23         unsigned long  st_ctime_nsec;
24         unsigned long  __unused4;
25         unsigned long  __unused5;
26 };
27
28 #define STAT64_HAS_BROKEN_ST_INO        1
29
30 /* This matches struct stat64 in glibc2.1, hence the absolutely
31  * insane amounts of padding around dev_t's.
32  */
33 struct stat64 {
34         unsigned long long      st_dev;
35         unsigned char   __pad0[4];
36
37         unsigned long   __st_ino;
38
39         unsigned int    st_mode;
40         unsigned int    st_nlink;
41
42         unsigned long   st_uid;
43         unsigned long   st_gid;
44
45         unsigned long long      st_rdev;
46         unsigned char   __pad3[4];
47
48         long long       st_size;
49         unsigned long   st_blksize;
50
51         /* Number 512-byte blocks allocated. */
52         unsigned long long      st_blocks;
53
54         unsigned long   st_atime;
55         unsigned long   st_atime_nsec;
56
57         unsigned long   st_mtime;
58         unsigned int    st_mtime_nsec;
59
60         unsigned long   st_ctime;
61         unsigned long   st_ctime_nsec;
62
63         unsigned long long      st_ino;
64 };
65
66 #else /* __i386__ */
67
68 struct stat {
69         unsigned long   st_dev;
70         unsigned long   st_ino;
71         unsigned long   st_nlink;
72
73         unsigned int    st_mode;
74         unsigned int    st_uid;
75         unsigned int    st_gid;
76         unsigned int    __pad0;
77         unsigned long   st_rdev;
78         long            st_size;
79         long            st_blksize;
80         long            st_blocks;      /* Number 512-byte blocks allocated. */
81
82         unsigned long   st_atime;
83         unsigned long   st_atime_nsec;
84         unsigned long   st_mtime;
85         unsigned long   st_mtime_nsec;
86         unsigned long   st_ctime;
87         unsigned long   st_ctime_nsec;
88         long            __unused[3];
89 };
90 #endif
91
92 /* for 32bit emulation and 32 bit kernels */
93 struct __old_kernel_stat {
94         unsigned short st_dev;
95         unsigned short st_ino;
96         unsigned short st_mode;
97         unsigned short st_nlink;
98         unsigned short st_uid;
99         unsigned short st_gid;
100         unsigned short st_rdev;
101 #ifdef __i386__
102         unsigned long  st_size;
103         unsigned long  st_atime;
104         unsigned long  st_mtime;
105         unsigned long  st_ctime;
106 #else
107         unsigned int  st_size;
108         unsigned int  st_atime;
109         unsigned int  st_mtime;
110         unsigned int  st_ctime;
111 #endif
112 };
113
114 #endif