kernel: Move arches to use common unaligned access
[linux-2.6] / include / asm-parisc / stat.h
1 #ifndef _PARISC_STAT_H
2 #define _PARISC_STAT_H
3
4 #include <linux/types.h>
5
6 struct stat {
7         unsigned int    st_dev;         /* dev_t is 32 bits on parisc */
8         ino_t           st_ino;         /* 32 bits */
9         mode_t          st_mode;        /* 16 bits */
10         nlink_t         st_nlink;       /* 16 bits */
11         unsigned short  st_reserved1;   /* old st_uid */
12         unsigned short  st_reserved2;   /* old st_gid */
13         unsigned int    st_rdev;
14         off_t           st_size;
15         time_t          st_atime;
16         unsigned int    st_atime_nsec;
17         time_t          st_mtime;
18         unsigned int    st_mtime_nsec;
19         time_t          st_ctime;
20         unsigned int    st_ctime_nsec;
21         int             st_blksize;
22         int             st_blocks;
23         unsigned int    __unused1;      /* ACL stuff */
24         unsigned int    __unused2;      /* network */
25         ino_t           __unused3;      /* network */
26         unsigned int    __unused4;      /* cnodes */
27         unsigned short  __unused5;      /* netsite */
28         short           st_fstype;
29         unsigned int    st_realdev;
30         unsigned short  st_basemode;
31         unsigned short  st_spareshort;
32         uid_t           st_uid;
33         gid_t           st_gid;
34         unsigned int    st_spare4[3];
35 };
36
37 #define STAT_HAVE_NSEC
38
39 typedef __kernel_off64_t        off64_t;
40
41 struct hpux_stat64 {
42         unsigned int    st_dev;         /* dev_t is 32 bits on parisc */
43         ino_t           st_ino;         /* 32 bits */
44         mode_t          st_mode;        /* 16 bits */
45         nlink_t         st_nlink;       /* 16 bits */
46         unsigned short  st_reserved1;   /* old st_uid */
47         unsigned short  st_reserved2;   /* old st_gid */
48         unsigned int    st_rdev;
49         off64_t         st_size;
50         time_t          st_atime;
51         unsigned int    st_spare1;
52         time_t          st_mtime;
53         unsigned int    st_spare2;
54         time_t          st_ctime;
55         unsigned int    st_spare3;
56         int             st_blksize;
57         __u64           st_blocks;
58         unsigned int    __unused1;      /* ACL stuff */
59         unsigned int    __unused2;      /* network */
60         ino_t           __unused3;      /* network */
61         unsigned int    __unused4;      /* cnodes */
62         unsigned short  __unused5;      /* netsite */
63         short           st_fstype;
64         unsigned int    st_realdev;
65         unsigned short  st_basemode;
66         unsigned short  st_spareshort;
67         uid_t           st_uid;
68         gid_t           st_gid;
69         unsigned int    st_spare4[3];
70 };
71
72 /* This is the struct that 32-bit userspace applications are expecting.
73  * How 64-bit apps are going to be compiled, I have no idea.  But at least
74  * this way, we don't have a wrapper in the kernel.
75  */
76 struct stat64 {
77         unsigned long long      st_dev;
78         unsigned int            __pad1;
79
80         unsigned int            __st_ino;       /* Not actually filled in */
81         unsigned int            st_mode;
82         unsigned int            st_nlink;
83         unsigned int            st_uid;
84         unsigned int            st_gid;
85         unsigned long long      st_rdev;
86         unsigned int            __pad2;
87         signed long long        st_size;
88         signed int              st_blksize;
89
90         signed long long        st_blocks;
91         signed int              st_atime;
92         unsigned int            st_atime_nsec;
93         signed int              st_mtime;
94         unsigned int            st_mtime_nsec;
95         signed int              st_ctime;
96         unsigned int            st_ctime_nsec;
97         unsigned long long      st_ino;
98 };
99
100 #endif