]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blame - src/nash/linux_fs.h
git-svn-id: http://svn.ipfire.org/svn/ipfire/IPFire/source@16 ea5c0bd1-69bd-2848...
[people/teissler/ipfire-2.x.git] / src / nash / linux_fs.h
CommitLineData
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
18struct 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
26struct 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
34struct 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
43struct 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
52struct 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
66struct 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
92struct 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
103struct 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
113struct 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
122struct 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
136struct 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
145struct 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
155struct 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
167struct 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
175struct 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