Fix struct stat64 in the 32-bit kernel and struct stat in the 64-bit
[linux-2.6/linux-mips.git] / include / asm-mips / stat.h
blobe8892d3da493639ee4b9b90c50e743f8c4282d6f
1 #ifndef _ASM_STAT_H
2 #define _ASM_STAT_H
4 #include <linux/types.h>
6 struct __old_kernel_stat {
7 unsigned int st_dev;
8 unsigned int st_ino;
9 unsigned int st_mode;
10 unsigned int st_nlink;
11 unsigned int st_uid;
12 unsigned int st_gid;
13 unsigned int st_rdev;
14 long st_size;
15 unsigned int st_atime, st_res1;
16 unsigned int st_mtime, st_res2;
17 unsigned int st_ctime, st_res3;
18 unsigned int st_blksize;
19 int st_blocks;
20 unsigned int st_flags;
21 unsigned int st_gen;
24 struct stat {
25 dev_t st_dev;
26 long st_pad1[3]; /* Reserved for network id */
27 ino_t st_ino;
28 mode_t st_mode;
29 nlink_t st_nlink;
30 uid_t st_uid;
31 gid_t st_gid;
32 dev_t st_rdev;
33 long st_pad2[2];
34 off_t st_size;
35 long st_pad3;
37 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
38 * but we don't have it under Linux.
40 time_t st_atime;
41 long reserved0;
42 time_t st_mtime;
43 long reserved1;
44 time_t st_ctime;
45 long reserved2;
46 long st_blksize;
47 long st_blocks;
48 char st_fstype[16]; /* Filesystem type name */
49 long st_pad4[8];
50 /* Linux specific fields */
51 unsigned int st_flags;
52 unsigned int st_gen;
56 * This matches struct stat64 in glibc2.1, hence the absolutely insane
57 * amounts of padding around dev_t's. The memory layout is the same as of
58 * struct stat of the 64-bit kernel.
61 struct stat64 {
62 unsigned long st_dev;
63 unsigned long st_pad0[3]; /* Reserved for st_dev expansion */
64 ino_t st_ino;
65 mode_t st_mode;
66 nlink_t st_nlink;
67 uid_t st_uid;
68 gid_t st_gid;
69 unsigned long st_rdev;
70 unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */
71 long long st_size;
73 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
74 * but we don't have it under Linux.
76 time_t st_atime;
77 unsigned long reserved0; /* Reserved for st_atime expansion */
78 time_t st_mtime;
79 unsigned long reserved1; /* Reserved for st_atime expansion */
80 time_t st_ctime;
81 unsigned long reserved2; /* Reserved for st_atime expansion */
82 unsigned long st_blksize;
83 long long st_blocks;
86 #endif /* _ASM_STAT_H */