6b13f685e
김민수
BSP 최초 추가
|
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
|
#ifndef _VXFS_SUPER_H_
#define _VXFS_SUPER_H_
#include <linux/types.h>
typedef int32_t vx_daddr_t;
typedef int32_t vx_ino_t;
#define VXFS_SUPER_MAGIC 0xa501FCF5
#define VXFS_ROOT_INO 2
#define VXFS_NEFREE 32
struct vxfs_sb {
u_int32_t vs_magic;
int32_t vs_version;
u_int32_t vs_ctime;
u_int32_t vs_cutime;
int32_t __unused1;
int32_t __unused2;
vx_daddr_t vs_old_logstart;
vx_daddr_t vs_old_logend;
int32_t vs_bsize;
int32_t vs_size;
int32_t vs_dsize;
u_int32_t vs_old_ninode;
int32_t vs_old_nau;
int32_t __unused3;
int32_t vs_old_defiextsize;
int32_t vs_old_ilbsize;
int32_t vs_immedlen;
int32_t vs_ndaddr;
vx_daddr_t vs_firstau;
vx_daddr_t vs_emap;
vx_daddr_t vs_imap;
vx_daddr_t vs_iextop;
vx_daddr_t vs_istart;
vx_daddr_t vs_bstart;
vx_daddr_t vs_femap;
vx_daddr_t vs_fimap;
vx_daddr_t vs_fiextop;
vx_daddr_t vs_fistart;
vx_daddr_t vs_fbstart;
int32_t vs_nindir;
int32_t vs_aulen;
int32_t vs_auimlen;
int32_t vs_auemlen;
int32_t vs_auilen;
int32_t vs_aupad;
int32_t vs_aublocks;
int32_t vs_maxtier;
int32_t vs_inopb;
int32_t vs_old_inopau;
int32_t vs_old_inopilb;
int32_t vs_old_ndiripau;
int32_t vs_iaddrlen;
int32_t vs_bshift;
int32_t vs_inoshift;
int32_t vs_bmask;
int32_t vs_boffmask;
int32_t vs_old_inomask;
int32_t vs_checksum;
int32_t vs_free;
int32_t vs_ifree;
int32_t vs_efree[VXFS_NEFREE];
int32_t vs_flags;
u_int8_t vs_mod;
u_int8_t vs_clean;
u_int16_t __unused4;
u_int32_t vs_firstlogid;
u_int32_t vs_wtime;
u_int32_t vs_wutime;
u_int8_t vs_fname[6];
u_int8_t vs_fpack[6];
int32_t vs_logversion;
int32_t __unused5;
vx_daddr_t vs_oltext[2];
int32_t vs_oltsize;
int32_t vs_iauimlen;
int32_t vs_iausize;
int32_t vs_dinosize;
int32_t vs_old_dniaddr;
int32_t vs_checksum2;
};
struct vxfs_sb_info {
struct vxfs_sb *vsi_raw;
struct buffer_head *vsi_bp;
struct inode *vsi_fship;
struct inode *vsi_ilist;
struct inode *vsi_stilist;
u_long vsi_iext;
ino_t vsi_fshino;
daddr_t vsi_oltext;
daddr_t vsi_oltsize;
};
enum vxfs_mode {
VXFS_ISUID = 0x00000800,
VXFS_ISGID = 0x00000400,
VXFS_ISVTX = 0x00000200,
VXFS_IREAD = 0x00000100,
VXFS_IWRITE = 0x00000080,
VXFS_IEXEC = 0x00000040,
VXFS_IFIFO = 0x00001000,
VXFS_IFCHR = 0x00002000,
VXFS_IFDIR = 0x00004000,
VXFS_IFNAM = 0x00005000,
VXFS_IFBLK = 0x00006000,
VXFS_IFREG = 0x00008000,
VXFS_IFCMP = 0x00009000,
VXFS_IFLNK = 0x0000a000,
VXFS_IFSOC = 0x0000c000,
VXFS_IFFSH = 0x10000000,
VXFS_IFILT = 0x20000000,
VXFS_IFIAU = 0x30000000,
VXFS_IFCUT = 0x40000000,
VXFS_IFATT = 0x50000000,
VXFS_IFLCT = 0x60000000,
VXFS_IFIAT = 0x70000000,
VXFS_IFEMR = 0x80000000,
VXFS_IFQUO = 0x90000000,
VXFS_IFPTI = 0xa0000000,
VXFS_IFLAB = 0x11000000,
VXFS_IFOLT = 0x12000000,
VXFS_IFLOG = 0x13000000,
VXFS_IFEMP = 0x14000000,
VXFS_IFEAU = 0x15000000,
VXFS_IFAUS = 0x16000000,
VXFS_IFDEV = 0x17000000,
};
#define VXFS_TYPE_MASK 0xfffff000
#define VXFS_IS_TYPE(ip,type) (((ip)->vii_mode & VXFS_TYPE_MASK) == (type))
#define VXFS_ISFIFO(x) VXFS_IS_TYPE((x),VXFS_IFIFO)
#define VXFS_ISCHR(x) VXFS_IS_TYPE((x),VXFS_IFCHR)
#define VXFS_ISDIR(x) VXFS_IS_TYPE((x),VXFS_IFDIR)
#define VXFS_ISNAM(x) VXFS_IS_TYPE((x),VXFS_IFNAM)
#define VXFS_ISBLK(x) VXFS_IS_TYPE((x),VXFS_IFBLK)
#define VXFS_ISLNK(x) VXFS_IS_TYPE((x),VXFS_IFLNK)
#define VXFS_ISREG(x) VXFS_IS_TYPE((x),VXFS_IFREG)
#define VXFS_ISCMP(x) VXFS_IS_TYPE((x),VXFS_IFCMP)
#define VXFS_ISSOC(x) VXFS_IS_TYPE((x),VXFS_IFSOC)
#define VXFS_ISFSH(x) VXFS_IS_TYPE((x),VXFS_IFFSH)
#define VXFS_ISILT(x) VXFS_IS_TYPE((x),VXFS_IFILT)
enum {
VXFS_ORG_NONE = 0,
VXFS_ORG_EXT4 = 1,
VXFS_ORG_IMMED = 2,
VXFS_ORG_TYPED = 3,
};
#define VXFS_IS_ORG(ip,org) ((ip)->vii_orgtype == (org))
#define VXFS_ISNONE(ip) VXFS_IS_ORG((ip), VXFS_ORG_NONE)
#define VXFS_ISEXT4(ip) VXFS_IS_ORG((ip), VXFS_ORG_EXT4)
#define VXFS_ISIMMED(ip) VXFS_IS_ORG((ip), VXFS_ORG_IMMED)
#define VXFS_ISTYPED(ip) VXFS_IS_ORG((ip), VXFS_ORG_TYPED)
#define VXFS_INO(ip) \
((struct vxfs_inode_info *)(ip)->i_private)
#define VXFS_SBI(sbp) \
((struct vxfs_sb_info *)(sbp)->s_fs_info)
#endif /* _VXFS_SUPER_H_ */
|