Merge branches 'release' and 'gpe-ack' into release
[linux-2.6] / include / asm-s390 / stat.h
1 /*
2  *  include/asm-s390/stat.h
3  *
4  *  S390 version
5  *
6  *  Derived from "include/asm-i386/stat.h"
7  */
8
9 #ifndef _S390_STAT_H
10 #define _S390_STAT_H
11
12 #ifndef __s390x__
13 struct __old_kernel_stat {
14         unsigned short st_dev;
15         unsigned short st_ino;
16         unsigned short st_mode;
17         unsigned short st_nlink;
18         unsigned short st_uid;
19         unsigned short st_gid;
20         unsigned short st_rdev;
21         unsigned long  st_size;
22         unsigned long  st_atime;
23         unsigned long  st_mtime;
24         unsigned long  st_ctime;
25 };
26
27 struct stat {
28         unsigned short st_dev;
29         unsigned short __pad1;
30         unsigned long  st_ino;
31         unsigned short st_mode;
32         unsigned short st_nlink;
33         unsigned short st_uid;
34         unsigned short st_gid;
35         unsigned short st_rdev;
36         unsigned short __pad2;
37         unsigned long  st_size;
38         unsigned long  st_blksize;
39         unsigned long  st_blocks;
40         unsigned long  st_atime;
41         unsigned long  st_atime_nsec;
42         unsigned long  st_mtime;
43         unsigned long  st_mtime_nsec;
44         unsigned long  st_ctime;
45         unsigned long  st_ctime_nsec;
46         unsigned long  __unused4;
47         unsigned long  __unused5;
48 };
49
50 /* This matches struct stat64 in glibc2.1, hence the absolutely
51  * insane amounts of padding around dev_t's.
52  */
53 struct stat64 {
54         unsigned long long      st_dev;
55         unsigned int    __pad1;
56 #define STAT64_HAS_BROKEN_ST_INO        1
57         unsigned long   __st_ino;
58         unsigned int    st_mode;
59         unsigned int    st_nlink;
60         unsigned long   st_uid;
61         unsigned long   st_gid;
62         unsigned long long      st_rdev;
63         unsigned int    __pad3;
64         long long       st_size;
65         unsigned long   st_blksize;
66         unsigned char   __pad4[4];
67         unsigned long   __pad5;     /* future possible st_blocks high bits */
68         unsigned long   st_blocks;  /* Number 512-byte blocks allocated. */
69         unsigned long   st_atime;
70         unsigned long   st_atime_nsec;
71         unsigned long   st_mtime;
72         unsigned long   st_mtime_nsec;
73         unsigned long   st_ctime;
74         unsigned long   st_ctime_nsec;  /* will be high 32 bits of ctime someday */
75         unsigned long long      st_ino;
76 };
77
78 #else /* __s390x__ */
79
80 struct stat {
81         unsigned long  st_dev;
82         unsigned long  st_ino;
83         unsigned long  st_nlink;
84         unsigned int   st_mode;
85         unsigned int   st_uid;
86         unsigned int   st_gid;
87         unsigned int   __pad1;
88         unsigned long  st_rdev;
89         unsigned long  st_size;
90         unsigned long  st_atime;
91         unsigned long  st_atime_nsec;
92         unsigned long  st_mtime;
93         unsigned long  st_mtime_nsec;
94         unsigned long  st_ctime;
95         unsigned long  st_ctime_nsec;
96         unsigned long  st_blksize;
97         long           st_blocks;
98         unsigned long  __unused[3];
99 };
100
101 #endif /* __s390x__ */
102
103 #define STAT_HAVE_NSEC 1
104
105 #endif