]>
Commit | Line | Data |
---|---|---|
cd1a2927 MT |
1 | /* Including <linux/fs.h> became more and more painful.\r |
2 | Below a very abbreviated version of some declarations,\r | |
3 | only designed to be able to check a magic number\r | |
4 | in case no filesystem type was given. */\r | |
5 | \r | |
6 | #ifndef BLKGETSIZE\r | |
7 | #ifndef _IO\r | |
8 | /* pre-1.3.45 */\r | |
9 | #define BLKGETSIZE 0x1260 /* return device size */\r | |
10 | #else\r | |
11 | /* same on i386, m68k, arm; different on alpha, mips, sparc, ppc */\r | |
12 | #define BLKGETSIZE _IO(0x12,96)\r | |
13 | #endif\r | |
14 | #endif\r | |
15 | \r | |
16 | #define MINIX_SUPER_MAGIC 0x137F /* original minix fs */\r | |
17 | #define MINIX_SUPER_MAGIC2 0x138F /* minix fs, 30 char names */\r | |
18 | struct minix_super_block {\r | |
19 | unsigned char s_dummy[16];\r | |
20 | unsigned char s_magic[2];\r | |
21 | };\r | |
22 | #define minixmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r | |
23 | \r | |
24 | #define ISODCL(from, to) (to - from + 1)\r | |
25 | #define ISO_STANDARD_ID "CD001"\r | |
26 | struct iso_volume_descriptor {\r | |
27 | char type[ISODCL(1,1)]; /* 711 */\r | |
28 | char id[ISODCL(2,6)];\r | |
29 | char version[ISODCL(7,7)];\r | |
30 | char data[ISODCL(8,2048)];\r | |
31 | };\r | |
32 | \r | |
33 | #define HS_STANDARD_ID "CDROM"\r | |
34 | struct hs_volume_descriptor {\r | |
35 | char foo[ISODCL ( 1, 8)]; /* 733 */\r | |
36 | char type[ISODCL ( 9, 9)]; /* 711 */\r | |
37 | char id[ISODCL ( 10, 14)];\r | |
38 | char version[ISODCL ( 15, 15)]; /* 711 */\r | |
39 | char data[ISODCL(16,2048)];\r | |
40 | };\r | |
41 | \r | |
42 | #define EXT_SUPER_MAGIC 0x137D\r | |
43 | struct ext_super_block {\r | |
44 | unsigned char s_dummy[56];\r | |
45 | unsigned char s_magic[2];\r | |
46 | };\r | |
47 | #define extmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r | |
48 | \r | |
49 | #define EXT2_PRE_02B_MAGIC 0xEF51\r | |
50 | #define EXT2_SUPER_MAGIC 0xEF53\r | |
51 | #define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004\r | |
52 | struct ext2_super_block {\r | |
53 | unsigned char s_dummy1[56];\r | |
54 | unsigned char s_magic[2];\r | |
55 | unsigned char s_dummy2[34];\r | |
56 | unsigned char s_feature_compat[4];\r | |
57 | unsigned char s_feature_incompat[4];\r | |
58 | unsigned char s_feature_ro_compat[4];\r | |
59 | unsigned char s_uuid[16];\r | |
60 | unsigned char s_volume_name[16];\r | |
61 | unsigned char s_dummy3[88];\r | |
62 | unsigned char s_journal_inum[4]; /* ext3 only */\r | |
63 | };\r | |
64 | #define ext2magic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r | |
65 | \r | |
66 | struct reiserfs_super_block\r | |
67 | {\r | |
68 | unsigned char s_block_count[4];\r | |
69 | unsigned char s_free_blocks[4];\r | |
70 | unsigned char s_root_block[4];\r | |
71 | unsigned char s_journal_block[4];\r | |
72 | unsigned char s_journal_dev[4];\r | |
73 | unsigned char s_orig_journal_size[4];\r | |
74 | unsigned char s_journal_trans_max[4];\r | |
75 | unsigned char s_journal_block_count[4];\r | |
76 | unsigned char s_journal_max_batch[4];\r | |
77 | unsigned char s_journal_max_commit_age[4];\r | |
78 | unsigned char s_journal_max_trans_age[4];\r | |
79 | unsigned char s_blocksize[2];\r | |
80 | unsigned char s_oid_maxsize[2];\r | |
81 | unsigned char s_oid_cursize[2];\r | |
82 | unsigned char s_state[2];\r | |
83 | unsigned char s_magic[12];\r | |
84 | };\r | |
85 | #define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"\r | |
86 | #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"\r | |
87 | #define REISERFS_DISK_OFFSET_IN_BYTES (64 * 1024)\r | |
88 | /* the spot for the super in versions 3.5 - 3.5.10 (inclusive) */\r | |
89 | #define REISERFS_OLD_DISK_OFFSET_IN_BYTES (8 * 1024)\r | |
90 | \r | |
91 | #define _XIAFS_SUPER_MAGIC 0x012FD16D\r | |
92 | struct xiafs_super_block {\r | |
93 | unsigned char s_boot_segment[512]; /* 1st sector reserved for boot */\r | |
94 | unsigned char s_dummy[60];\r | |
95 | unsigned char s_magic[4];\r | |
96 | };\r | |
97 | #define xiafsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r | |
98 | (((unsigned int) s.s_magic[2]) << 16) + \\r | |
99 | (((unsigned int) s.s_magic[3]) << 24))\r | |
100 | \r | |
101 | /* From jj@sunsite.ms.mff.cuni.cz Mon Mar 23 15:19:05 1998 */\r | |
102 | #define UFS_SUPER_MAGIC 0x00011954\r | |
103 | struct ufs_super_block {\r | |
104 | unsigned char s_dummy[0x55c];\r | |
105 | unsigned char s_magic[4];\r | |
106 | };\r | |
107 | #define ufsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r | |
108 | (((unsigned int) s.s_magic[2]) << 16) + \\r | |
109 | (((unsigned int) s.s_magic[3]) << 24))\r | |
110 | \r | |
111 | /* From Richard.Russon@ait.co.uk Wed Feb 24 08:05:27 1999 */\r | |
112 | #define NTFS_SUPER_MAGIC "NTFS"\r | |
113 | struct ntfs_super_block {\r | |
114 | unsigned char s_dummy[3];\r | |
115 | unsigned char s_magic[4];\r | |
116 | };\r | |
117 | \r | |
118 | /* From inspection of a few FAT filesystems - aeb */\r | |
119 | /* Unfortunately I find almost the same thing on an extended partition;\r | |
120 | it looks like a primary has some directory entries where the extended\r | |
121 | has a partition table: IO.SYS, MSDOS.SYS, WINBOOT.SYS */\r | |
122 | struct fat_super_block {\r | |
123 | unsigned char s_dummy[3];\r | |
124 | unsigned char s_os[8]; /* "MSDOS5.0" or "MSWIN4.0" or "MSWIN4.1" */\r | |
125 | /* mtools-3.9.4 writes "MTOOL394" */\r | |
126 | unsigned char s_dummy2[32];\r | |
127 | unsigned char s_label[11]; /* for DOS? */\r | |
128 | unsigned char s_fs[8]; /* "FAT12 " or "FAT16 " or all zero */\r | |
129 | /* OS/2 BM has "FAT " here. */\r | |
130 | unsigned char s_dummy3[9];\r | |
131 | unsigned char s_label2[11]; /* for Windows? */\r | |
132 | unsigned char s_fs2[8]; /* garbage or "FAT32 " */\r | |
133 | };\r | |
134 | \r | |
135 | #define XFS_SUPER_MAGIC "XFSB"\r | |
136 | struct xfs_super_block {\r | |
137 | unsigned char s_magic[4];\r | |
138 | unsigned char s_dummy[28];\r | |
139 | unsigned char s_uuid[16];\r | |
140 | unsigned char s_dummy2[60];\r | |
141 | unsigned char s_fname[12];\r | |
142 | };\r | |
143 | \r | |
144 | #define CRAMFS_SUPER_MAGIC 0x28cd3d45\r | |
145 | struct cramfs_super_block {\r | |
146 | unsigned char s_magic[4];\r | |
147 | unsigned char s_dummy[12];\r | |
148 | unsigned char s_id[16];\r | |
149 | };\r | |
150 | #define cramfsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r | |
151 | (((unsigned int) s.s_magic[2]) << 16) + \\r | |
152 | (((unsigned int) s.s_magic[3]) << 24))\r | |
153 | \r | |
154 | #define HFS_SUPER_MAGIC 0x4244\r | |
155 | struct hfs_super_block {\r | |
156 | unsigned char s_magic[2];\r | |
157 | unsigned char s_dummy[18];\r | |
158 | unsigned char s_blksize[4];\r | |
159 | };\r | |
160 | #define hfsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r | |
161 | #define hfsblksize(s) ((unsigned int) s.s_blksize[0] + \\r | |
162 | (((unsigned int) s.s_blksize[1]) << 8) + \\r | |
163 | (((unsigned int) s.s_blksize[2]) << 16) + \\r | |
164 | (((unsigned int) s.s_blksize[3]) << 24))\r | |
165 | \r | |
166 | #define HPFS_SUPER_MAGIC 0xf995e849\r | |
167 | struct hpfs_super_block {\r | |
168 | unsigned char s_magic[4];\r | |
169 | unsigned char s_magic2[4];\r | |
170 | };\r | |
171 | #define hpfsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r | |
172 | (((unsigned int) s.s_magic[2]) << 16) + \\r | |
173 | (((unsigned int) s.s_magic[3]) << 24))\r | |
174 | \r | |
175 | struct adfs_super_block {\r | |
176 | unsigned char s_dummy[448];\r | |
177 | unsigned char s_blksize[1];\r | |
178 | unsigned char s_dummy2[62];\r | |
179 | unsigned char s_checksum[1];\r | |
180 | };\r | |
181 | #define adfsblksize(s) ((unsigned int) s.s_blksize[0])\r |