1 #ifndef _ASM_X86_STAT_H
2 #define _ASM_X86_STAT_H
4 #include <asm/posix_types.h>
6 #define STAT_HAVE_NSEC 1
12 unsigned short st_mode
;
13 unsigned short st_nlink
;
14 unsigned short st_uid
;
15 unsigned short st_gid
;
16 unsigned long st_rdev
;
17 unsigned long st_size
;
18 unsigned long st_blksize
;
19 unsigned long st_blocks
;
20 unsigned long st_atime
;
21 unsigned long st_atime_nsec
;
22 unsigned long st_mtime
;
23 unsigned long st_mtime_nsec
;
24 unsigned long st_ctime
;
25 unsigned long st_ctime_nsec
;
26 unsigned long __unused4
;
27 unsigned long __unused5
;
30 /* We don't need to memset the whole thing just to initialize the padding */
31 #define INIT_STRUCT_STAT_PADDING(st) do { \
36 #define STAT64_HAS_BROKEN_ST_INO 1
38 /* This matches struct stat64 in glibc2.1, hence the absolutely
39 * insane amounts of padding around dev_t's.
42 unsigned long long st_dev
;
43 unsigned char __pad0
[4];
45 unsigned long __st_ino
;
48 unsigned int st_nlink
;
53 unsigned long long st_rdev
;
54 unsigned char __pad3
[4];
57 unsigned long st_blksize
;
59 /* Number 512-byte blocks allocated. */
60 unsigned long long st_blocks
;
62 unsigned long st_atime
;
63 unsigned long st_atime_nsec
;
65 unsigned long st_mtime
;
66 unsigned int st_mtime_nsec
;
68 unsigned long st_ctime
;
69 unsigned long st_ctime_nsec
;
71 unsigned long long st_ino
;
74 /* We don't need to memset the whole thing just to initialize the padding */
75 #define INIT_STRUCT_STAT64_PADDING(st) do { \
76 memset(&st.__pad0, 0, sizeof(st.__pad0)); \
77 memset(&st.__pad3, 0, sizeof(st.__pad3)); \
83 __kernel_ulong_t st_dev
;
84 __kernel_ulong_t st_ino
;
85 __kernel_ulong_t st_nlink
;
91 __kernel_ulong_t st_rdev
;
92 __kernel_long_t st_size
;
93 __kernel_long_t st_blksize
;
94 __kernel_long_t st_blocks
; /* Number 512-byte blocks allocated. */
96 __kernel_ulong_t st_atime
;
97 __kernel_ulong_t st_atime_nsec
;
98 __kernel_ulong_t st_mtime
;
99 __kernel_ulong_t st_mtime_nsec
;
100 __kernel_ulong_t st_ctime
;
101 __kernel_ulong_t st_ctime_nsec
;
102 __kernel_long_t __unused
[3];
105 /* We don't need to memset the whole thing just to initialize the padding */
106 #define INIT_STRUCT_STAT_PADDING(st) do { \
108 st.__unused[0] = 0; \
109 st.__unused[1] = 0; \
110 st.__unused[2] = 0; \
115 /* for 32bit emulation and 32 bit kernels */
116 struct __old_kernel_stat
{
117 unsigned short st_dev
;
118 unsigned short st_ino
;
119 unsigned short st_mode
;
120 unsigned short st_nlink
;
121 unsigned short st_uid
;
122 unsigned short st_gid
;
123 unsigned short st_rdev
;
125 unsigned long st_size
;
126 unsigned long st_atime
;
127 unsigned long st_mtime
;
128 unsigned long st_ctime
;
130 unsigned int st_size
;
131 unsigned int st_atime
;
132 unsigned int st_mtime
;
133 unsigned int st_ctime
;
137 #endif /* _ASM_X86_STAT_H */