~ubuntu-branches/ubuntu/feisty/xfsprogs/feisty

« back to all changes in this revision

Viewing changes to libdisk/fstype.h

  • Committer: Bazaar Package Importer
  • Author(s): Nathan Scott
  • Date: 2006-12-08 08:30:29 UTC
  • Revision ID: james.westby@ubuntu.com-20061208083029-3bu1qsj2v979of10
Tags: 2.8.18-1
New upstream release (closes: #399888)

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
#define MINIX2_SUPER_MAGIC  0x2468         /* minix v2, 14 char names */
39
39
#define MINIX2_SUPER_MAGIC2 0x2478         /* minix v2, 30 char names */
40
40
struct minix_super_block {
41
 
        u_char   s_dummy[16];
42
 
        u_char   s_magic[2];
 
41
        char   s_dummy[16];
 
42
        char   s_magic[2];
43
43
};
44
44
#define minixmagic(s)   assemble2le(s.s_magic)
45
45
 
63
63
 
64
64
#define EXT_SUPER_MAGIC 0x137D
65
65
struct ext_super_block {
66
 
        u_char   s_dummy[56];
67
 
        u_char   s_magic[2];
 
66
        char   s_dummy[56];
 
67
        char   s_magic[2];
68
68
};
69
69
#define extmagic(s)     assemble2le(s.s_magic)
70
70
 
72
72
#define EXT2_SUPER_MAGIC    0xEF53
73
73
#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004
74
74
struct ext2_super_block {
75
 
        u_char  s_dummy1[56];
76
 
        u_char  s_magic[2];
77
 
        u_char  s_dummy2[34];
78
 
        u_char  s_feature_compat[4];
79
 
        u_char  s_feature_incompat[4];
80
 
        u_char  s_feature_ro_compat[4];
81
 
        u_char  s_uuid[16];
82
 
        u_char  s_volume_name[16];
83
 
        u_char  s_dummy3[88];
84
 
        u_char  s_journal_inum[4];      /* ext3 only */
 
75
        char    s_dummy1[56];
 
76
        char    s_magic[2];
 
77
        char    s_dummy2[34];
 
78
        char    s_feature_compat[4];
 
79
        char    s_feature_incompat[4];
 
80
        char    s_feature_ro_compat[4];
 
81
        char    s_uuid[16];
 
82
        char    s_volume_name[16];
 
83
        char    s_dummy3[88];
 
84
        char    s_journal_inum[4];      /* ext3 only */
85
85
};
86
86
#define ext2magic(s)    assemble2le(s.s_magic)
87
87
 
88
88
struct reiserfs_super_block
89
89
{
90
 
        u_char          s_block_count[4];
91
 
        u_char          s_free_blocks[4];
92
 
        u_char          s_root_block[4];
93
 
        u_char          s_journal_block[4];
94
 
        u_char          s_journal_dev[4];
95
 
        u_char          s_orig_journal_size[4];
96
 
        u_char          s_journal_trans_max[4];
97
 
        u_char          s_journal_block_count[4];
98
 
        u_char          s_journal_max_batch[4];
99
 
        u_char          s_journal_max_commit_age[4];
100
 
        u_char          s_journal_max_trans_age[4];
101
 
        u_char          s_blocksize[2];
102
 
        u_char          s_oid_maxsize[2];
103
 
        u_char          s_oid_cursize[2];
104
 
        u_char          s_state[2];
105
 
        u_char          s_magic[12];
 
90
        char            s_block_count[4];
 
91
        char            s_free_blocks[4];
 
92
        char            s_root_block[4];
 
93
        char            s_journal_block[4];
 
94
        char            s_journal_dev[4];
 
95
        char            s_orig_journal_size[4];
 
96
        char            s_journal_trans_max[4];
 
97
        char            s_journal_block_count[4];
 
98
        char            s_journal_max_batch[4];
 
99
        char            s_journal_max_commit_age[4];
 
100
        char            s_journal_max_trans_age[4];
 
101
        char            s_blocksize[2];
 
102
        char            s_oid_maxsize[2];
 
103
        char            s_oid_cursize[2];
 
104
        char            s_state[2];
 
105
        char            s_magic[12];
106
106
};
107
107
#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"
108
108
#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
112
112
 
113
113
#define _XIAFS_SUPER_MAGIC 0x012FD16D
114
114
struct xiafs_super_block {
115
 
    u_char     s_boot_segment[512];     /*  1st sector reserved for boot */
116
 
    u_char     s_dummy[60];
117
 
    u_char     s_magic[4];
 
115
    char     s_boot_segment[512];     /*  1st sector reserved for boot */
 
116
    char     s_dummy[60];
 
117
    char     s_magic[4];
118
118
};
119
119
#define xiafsmagic(s)   assemble4le(s.s_magic)
120
120
 
122
122
#define UFS_SUPER_MAGIC_LE 0x00011954
123
123
#define UFS_SUPER_MAGIC_BE 0x54190100
124
124
struct ufs_super_block {
125
 
    u_char     s_dummy[0x55c];
126
 
    u_char     s_magic[4];
 
125
    char     s_dummy[0x55c];
 
126
    char     s_magic[4];
127
127
};
128
128
#define ufsmagic(s)     assemble4le(s.s_magic)
129
129
 
130
130
/* From Richard.Russon@ait.co.uk Wed Feb 24 08:05:27 1999 */
131
131
#define NTFS_SUPER_MAGIC "NTFS"
132
132
struct ntfs_super_block {
133
 
    u_char    s_dummy[3];
134
 
    u_char    s_magic[4];
 
133
    char    s_dummy[3];
 
134
    char    s_magic[4];
135
135
};
136
136
 
137
137
/* From inspection of a few FAT filesystems - aeb */
139
139
   it looks like a primary has some directory entries where the extended
140
140
   has a partition table: IO.SYS, MSDOS.SYS, WINBOOT.SYS */
141
141
struct fat_super_block {
142
 
    u_char    s_dummy[3];
143
 
    u_char    s_os[8];          /* "MSDOS5.0" or "MSWIN4.0" or "MSWIN4.1" */
 
142
    char    s_dummy[3];
 
143
    char    s_os[8];            /* "MSDOS5.0" or "MSWIN4.0" or "MSWIN4.1" */
144
144
                                /* mtools-3.9.4 writes "MTOOL394" */
145
 
    u_char    s_dummy2[32];
146
 
    u_char    s_label[11];      /* for DOS? */
147
 
    u_char    s_fs[8];          /* "FAT12   " or "FAT16   " or all zero   */
 
145
    char    s_dummy2[32];
 
146
    char    s_label[11];        /* for DOS? */
 
147
    char    s_fs[8];            /* "FAT12   " or "FAT16   " or all zero   */
148
148
                                /* OS/2 BM has "FAT     " here. */
149
 
    u_char    s_dummy3[9];
150
 
    u_char    s_label2[11];     /* for Windows? */
151
 
    u_char    s_fs2[8];         /* garbage or "FAT32   " */
 
149
    char    s_dummy3[9];
 
150
    char    s_label2[11];       /* for Windows? */
 
151
    char    s_fs2[8];           /* garbage or "FAT32   " */
152
152
};
153
153
 
154
154
#define XFS_SUPER_MAGIC "XFSB"
155
155
struct xfs_super_block {
156
 
    u_char    s_magic[4];
157
 
    u_char    s_dummy[28];
158
 
    u_char    s_uuid[16];
159
 
    u_char    s_dummy2[60];
160
 
    u_char    s_fname[12];
 
156
    char    s_magic[4];
 
157
    char    s_dummy[28];
 
158
    char    s_uuid[16];
 
159
    char    s_dummy2[60];
 
160
    char    s_fname[12];
161
161
};
162
162
 
163
163
#define CRAMFS_SUPER_MAGIC 0x28cd3d45
164
164
#define CRAMFS_SUPER_MAGIC_BE 0x453dcd28
165
165
struct cramfs_super_block {
166
 
        u_char    s_magic[4];
167
 
        u_char    s_dummy[12];
168
 
        u_char    s_id[16];
 
166
        char    s_magic[4];
 
167
        char    s_dummy[12];
 
168
        char    s_id[16];
169
169
};
170
170
#define cramfsmagic(s)  assemble4le(s.s_magic)
171
171
 
173
173
#define HFSPLUS_SUPER_MAGIC 0x482B
174
174
#define HFSPLUS_SUPER_VERSION 0x004
175
175
struct hfs_super_block {
176
 
        u_char    s_magic[2];
177
 
        u_char    s_version[2];
 
176
        char    s_magic[2];
 
177
        char    s_version[2];
178
178
};
179
179
#define hfsmagic(s)     assemble2le(s.s_magic)
180
180
#define hfsversion(s)   assemble2le(s.s_version)
181
181
 
182
182
#define HPFS_SUPER_MAGIC 0xf995e849
183
183
struct hpfs_super_block {
184
 
        u_char    s_magic[4];
185
 
        u_char    s_magic2[4];
 
184
        char    s_magic[4];
 
185
        char    s_magic2[4];
186
186
};
187
187
#define hpfsmagic(s)    assemble4le(s.s_magic)
188
188
 
189
189
struct adfs_super_block {
190
 
        u_char    s_dummy[448];
191
 
        u_char    s_blksize[1];
192
 
        u_char    s_dummy2[62];
193
 
        u_char    s_checksum[1];
 
190
        char    s_dummy[448];
 
191
        char    s_blksize[1];
 
192
        char    s_dummy2[62];
 
193
        char    s_checksum[1];
194
194
};
195
195
#define adfsblksize(s)  ((uint) s.s_blksize[0])
196
196
 
197
197
/* found in first 4 bytes of block 1 */
198
198
struct vxfs_super_block {
199
 
        u_char  s_magic[4];
 
199
        char    s_magic[4];
200
200
};
201
201
#define vxfsmagic(s)    assemble4le(s.s_magic)
202
202
#define VXFS_SUPER_MAGIC 0xa501FCF5
203
203
 
204
204
struct jfs_super_block {
205
205
        char    s_magic[4];
206
 
        u_char  s_version[4];
207
 
        u_char  s_dummy1[93];
 
206
        char    s_version[4];
 
207
        char    s_dummy1[93];
208
208
        char    s_fpack[11];
209
 
        u_char  s_dummy2[24];
210
 
        u_char  s_uuid[16];
 
209
        char    s_dummy2[24];
 
210
        char    s_uuid[16];
211
211
        char    s_label[16];
212
212
};
213
213
#define JFS_SUPER1_OFF 0x8000
214
214
#define JFS_MAGIC "JFS1"
215
215
 
216
216
struct sysv_super_block {
217
 
        u_char  s_dummy1[504];
218
 
        u_char  s_magic[4];
219
 
        u_char  type[4];
 
217
        char  s_dummy1[504];
 
218
        char  s_magic[4];
 
219
        char  type[4];
220
220
};
221
221
#define sysvmagic(s)            assemble4le(s.s_magic)
222
222
#define SYSV_SUPER_MAGIC        0xfd187e20
223
223
 
224
224
struct mdp_super_block {
225
 
        u_char  md_magic[4];
 
225
        char    md_magic[4];
226
226
};
227
227
#define MD_SB_MAGIC     0xa92b4efc
228
228
#define mdsbmagic(s)    assemble4le(s.md_magic)
229
229
 
230
230
struct ocfs_volume_header {
231
 
        u_char  minor_version[4];
232
 
        u_char  major_version[4];
233
 
        u_char  signature[128];
 
231
        char  minor_version[4];
 
232
        char  major_version[4];
 
233
        char  signature[128];
234
234
};
235
235
 
236
236
struct ocfs_volume_label {
237
 
        u_char  disk_lock[48];
238
 
        u_char  label[64];
239
 
        u_char  label_len[2];
 
237
        char  disk_lock[48];
 
238
        char  label[64];
 
239
        char  label_len[2];
240
240
};
241
241
 
242
242
#define ocfslabellen(o) assemble2le(o.label_len)
243
243
#define OCFS_MAGIC      "OracleCFS"
244
244
 
245
245
static inline int
246
 
assemble2le(unsigned char *p) {
 
246
assemble2le(char *p) {
247
247
        return (p[0] | (p[1] << 8));
248
248
}
249
249
 
250
250
static inline int
251
 
assemble4le(unsigned char *p) {
 
251
assemble4le(char *p) {
252
252
        return (p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24));
253
253
}