hc
2023-11-22 983d7f83616922a6439b4352d1b3af488ee27f95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __ASM_SH_STAT_H
#define __ASM_SH_STAT_H
 
struct __old_kernel_stat {
   unsigned short st_dev;
   unsigned short st_ino;
   unsigned short st_mode;
   unsigned short st_nlink;
   unsigned short st_uid;
   unsigned short st_gid;
   unsigned short st_rdev;
   unsigned long  st_size;
   unsigned long  st_atime;
   unsigned long  st_mtime;
   unsigned long  st_ctime;
};
 
#if defined(__SH5__) || defined(CONFIG_CPU_SH5)
struct stat {
   unsigned short st_dev;
   unsigned short __pad1;
   unsigned long st_ino;
   unsigned short st_mode;
   unsigned short st_nlink;
   unsigned short st_uid;
   unsigned short st_gid;
   unsigned short st_rdev;
   unsigned short __pad2;
   unsigned long  st_size;
   unsigned long  st_blksize;
   unsigned long  st_blocks;
   unsigned long  st_atime;
   unsigned long  st_atime_nsec;
   unsigned long  st_mtime;
   unsigned long  st_mtime_nsec;
   unsigned long  st_ctime;
   unsigned long  st_ctime_nsec;
   unsigned long  __unused4;
   unsigned long  __unused5;
};
 
/* This matches struct stat64 in glibc2.1, hence the absolutely
 * insane amounts of padding around dev_t's.
 */
struct stat64 {
   unsigned short    st_dev;
   unsigned char    __pad0[10];
 
   unsigned long    st_ino;
   unsigned int    st_mode;
   unsigned int    st_nlink;
 
   unsigned long    st_uid;
   unsigned long    st_gid;
 
   unsigned short    st_rdev;
   unsigned char    __pad3[10];
 
   long long    st_size;
   unsigned long    st_blksize;
 
   unsigned long    st_blocks;    /* Number 512-byte blocks allocated. */
   unsigned long    __pad4;        /* future possible st_blocks high bits */
 
   unsigned long    st_atime;
   unsigned long    st_atime_nsec;
 
   unsigned long    st_mtime;
   unsigned long    st_mtime_nsec;
 
   unsigned long    st_ctime;
   unsigned long    st_ctime_nsec;    /* will be high 32 bits of ctime someday */
 
   unsigned long    __unused1;
   unsigned long    __unused2;
};
#else
struct stat {
   unsigned long  st_dev;
   unsigned long  st_ino;
   unsigned short st_mode;
   unsigned short st_nlink;
   unsigned short st_uid;
   unsigned short st_gid;
   unsigned long  st_rdev;
   unsigned long  st_size;
   unsigned long  st_blksize;
   unsigned long  st_blocks;
   unsigned long  st_atime;
   unsigned long  st_atime_nsec;
   unsigned long  st_mtime;
   unsigned long  st_mtime_nsec;
   unsigned long  st_ctime;
   unsigned long  st_ctime_nsec;
   unsigned long  __unused4;
   unsigned long  __unused5;
};
 
/* This matches struct stat64 in glibc2.1, hence the absolutely
 * insane amounts of padding around dev_t's.
 */
struct stat64 {
   unsigned long long    st_dev;
   unsigned char    __pad0[4];
 
#define STAT64_HAS_BROKEN_ST_INO    1
   unsigned long    __st_ino;
 
   unsigned int    st_mode;
   unsigned int    st_nlink;
 
   unsigned long    st_uid;
   unsigned long    st_gid;
 
   unsigned long long    st_rdev;
   unsigned char    __pad3[4];
 
   long long    st_size;
   unsigned long    st_blksize;
 
   unsigned long long    st_blocks;    /* Number 512-byte blocks allocated. */
 
   unsigned long    st_atime;
   unsigned long    st_atime_nsec;
 
   unsigned long    st_mtime;
   unsigned long    st_mtime_nsec;
 
   unsigned long    st_ctime;
   unsigned long    st_ctime_nsec;
 
   unsigned long long    st_ino;
};
 
#define STAT_HAVE_NSEC 1
#endif
 
#endif /* __ASM_SH_STAT_H */