]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/nash/linux_fs.h
GD-Graph fuer Maniac eingebaut
[people/pmueller/ipfire-2.x.git] / src / nash / linux_fs.h
index e584220ac36f58d192254a13a0ad3fdac13be7f3..c84d4218d4f72b9bf40c12665778cd6048c3198c 100644 (file)
-/* Including <linux/fs.h> became more and more painful.\r
-   Below a very abbreviated version of some declarations,\r
-   only designed to be able to check a magic number\r
-   in case no filesystem type was given. */\r
-\r
-#ifndef BLKGETSIZE\r
-#ifndef _IO\r
-/* pre-1.3.45 */\r
-#define BLKGETSIZE 0x1260                 /* return device size */\r
-#else\r
-/* same on i386, m68k, arm; different on alpha, mips, sparc, ppc */\r
-#define BLKGETSIZE _IO(0x12,96)\r
-#endif\r
-#endif\r
-\r
-#define MINIX_SUPER_MAGIC   0x137F         /* original minix fs */\r
-#define MINIX_SUPER_MAGIC2  0x138F         /* minix fs, 30 char names */\r
-struct minix_super_block {\r
-       unsigned char   s_dummy[16];\r
-       unsigned char   s_magic[2];\r
-};\r
-#define minixmagic(s)  ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
-\r
-#define ISODCL(from, to) (to - from + 1)\r
-#define ISO_STANDARD_ID "CD001"\r
-struct iso_volume_descriptor {\r
-       char type[ISODCL(1,1)]; /* 711 */\r
-       char id[ISODCL(2,6)];\r
-       char version[ISODCL(7,7)];\r
-       char data[ISODCL(8,2048)];\r
-};\r
-\r
-#define HS_STANDARD_ID "CDROM"\r
-struct  hs_volume_descriptor {\r
-       char foo[ISODCL (  1,   8)]; /* 733 */\r
-       char type[ISODCL (  9,   9)]; /* 711 */\r
-       char id[ISODCL ( 10,  14)];\r
-       char version[ISODCL ( 15,  15)]; /* 711 */\r
-       char data[ISODCL(16,2048)];\r
-};\r
-\r
-#define EXT_SUPER_MAGIC 0x137D\r
-struct ext_super_block {\r
-       unsigned char   s_dummy[56];\r
-       unsigned char   s_magic[2];\r
-};\r
-#define extmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
-\r
-#define EXT2_PRE_02B_MAGIC  0xEF51\r
-#define EXT2_SUPER_MAGIC    0xEF53\r
-#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004\r
-struct ext2_super_block {\r
-       unsigned char   s_dummy1[56];\r
-       unsigned char   s_magic[2];\r
-       unsigned char   s_dummy2[34];\r
-       unsigned char   s_feature_compat[4];\r
-       unsigned char   s_feature_incompat[4];\r
-       unsigned char   s_feature_ro_compat[4];\r
-       unsigned char   s_uuid[16];\r
-       unsigned char   s_volume_name[16];\r
-       unsigned char   s_dummy3[88];\r
-       unsigned char   s_journal_inum[4];      /* ext3 only */\r
-};\r
-#define ext2magic(s)   ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
-\r
-struct reiserfs_super_block\r
-{\r
-       unsigned char           s_block_count[4];\r
-       unsigned char           s_free_blocks[4];\r
-       unsigned char           s_root_block[4];\r
-       unsigned char           s_journal_block[4];\r
-       unsigned char           s_journal_dev[4];\r
-       unsigned char           s_orig_journal_size[4];\r
-       unsigned char           s_journal_trans_max[4];\r
-       unsigned char           s_journal_block_count[4];\r
-       unsigned char           s_journal_max_batch[4];\r
-       unsigned char           s_journal_max_commit_age[4];\r
-       unsigned char           s_journal_max_trans_age[4];\r
-       unsigned char           s_blocksize[2];\r
-       unsigned char           s_oid_maxsize[2];\r
-       unsigned char           s_oid_cursize[2];\r
-       unsigned char           s_state[2];\r
-       unsigned char           s_magic[12];\r
-};\r
-#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"\r
-#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"\r
-#define REISERFS_DISK_OFFSET_IN_BYTES (64 * 1024)\r
-/* the spot for the super in versions 3.5 - 3.5.10 (inclusive) */\r
-#define REISERFS_OLD_DISK_OFFSET_IN_BYTES (8 * 1024)\r
-\r
-#define _XIAFS_SUPER_MAGIC 0x012FD16D\r
-struct xiafs_super_block {\r
-    unsigned char     s_boot_segment[512];     /*  1st sector reserved for boot */\r
-    unsigned char     s_dummy[60];\r
-    unsigned char     s_magic[4];\r
-};\r
-#define xiafsmagic(s)  ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
-                       (((unsigned int) s.s_magic[2]) << 16) + \\r
-                       (((unsigned int) s.s_magic[3]) << 24))\r
-\r
-/* From jj@sunsite.ms.mff.cuni.cz Mon Mar 23 15:19:05 1998 */\r
-#define UFS_SUPER_MAGIC 0x00011954\r
-struct ufs_super_block {\r
-    unsigned char     s_dummy[0x55c];\r
-    unsigned char     s_magic[4];\r
-};\r
-#define ufsmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
-                        (((unsigned int) s.s_magic[2]) << 16) + \\r
-                        (((unsigned int) s.s_magic[3]) << 24))\r
-\r
-/* From Richard.Russon@ait.co.uk Wed Feb 24 08:05:27 1999 */\r
-#define NTFS_SUPER_MAGIC "NTFS"\r
-struct ntfs_super_block {\r
-    unsigned char    s_dummy[3];\r
-    unsigned char    s_magic[4];\r
-};\r
-\r
-/* From inspection of a few FAT filesystems - aeb */\r
-/* Unfortunately I find almost the same thing on an extended partition;\r
-   it looks like a primary has some directory entries where the extended\r
-   has a partition table: IO.SYS, MSDOS.SYS, WINBOOT.SYS */\r
-struct fat_super_block {\r
-    unsigned char    s_dummy[3];\r
-    unsigned char    s_os[8];          /* "MSDOS5.0" or "MSWIN4.0" or "MSWIN4.1" */\r
-                               /* mtools-3.9.4 writes "MTOOL394" */\r
-    unsigned char    s_dummy2[32];\r
-    unsigned char    s_label[11];      /* for DOS? */\r
-    unsigned char    s_fs[8];          /* "FAT12   " or "FAT16   " or all zero   */\r
-                                /* OS/2 BM has "FAT     " here. */\r
-    unsigned char    s_dummy3[9];\r
-    unsigned char    s_label2[11];     /* for Windows? */\r
-    unsigned char    s_fs2[8];         /* garbage or "FAT32   " */\r
-};\r
-\r
-#define XFS_SUPER_MAGIC "XFSB"\r
-struct xfs_super_block {\r
-    unsigned char    s_magic[4];\r
-    unsigned char    s_dummy[28];\r
-    unsigned char    s_uuid[16];\r
-    unsigned char    s_dummy2[60];\r
-    unsigned char    s_fname[12];\r
-};\r
-\r
-#define CRAMFS_SUPER_MAGIC 0x28cd3d45\r
-struct cramfs_super_block {\r
-       unsigned char    s_magic[4];\r
-       unsigned char    s_dummy[12];\r
-       unsigned char    s_id[16];\r
-};\r
-#define cramfsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
-                        (((unsigned int) s.s_magic[2]) << 16) + \\r
-                        (((unsigned int) s.s_magic[3]) << 24))\r
-\r
-#define HFS_SUPER_MAGIC 0x4244\r
-struct hfs_super_block {\r
-       unsigned char    s_magic[2];\r
-       unsigned char    s_dummy[18];\r
-       unsigned char    s_blksize[4];\r
-};\r
-#define hfsmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
-#define hfsblksize(s)  ((unsigned int) s.s_blksize[0] + \\r
-                        (((unsigned int) s.s_blksize[1]) << 8) + \\r
-                        (((unsigned int) s.s_blksize[2]) << 16) + \\r
-                        (((unsigned int) s.s_blksize[3]) << 24))\r
-\r
-#define HPFS_SUPER_MAGIC 0xf995e849\r
-struct hpfs_super_block {\r
-       unsigned char    s_magic[4];\r
-       unsigned char    s_magic2[4];\r
-};\r
-#define hpfsmagic(s)   ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
-                        (((unsigned int) s.s_magic[2]) << 16) + \\r
-                        (((unsigned int) s.s_magic[3]) << 24))\r
-\r
-struct adfs_super_block {\r
-       unsigned char    s_dummy[448];\r
-       unsigned char    s_blksize[1];\r
-       unsigned char    s_dummy2[62];\r
-       unsigned char    s_checksum[1];\r
-};\r
-#define adfsblksize(s) ((unsigned int) s.s_blksize[0])\r
+/* Including <linux/fs.h> became more and more painful.
+   Below a very abbreviated version of some declarations,
+   only designed to be able to check a magic number
+   in case no filesystem type was given. */
+
+#ifndef BLKGETSIZE
+#ifndef _IO
+/* pre-1.3.45 */
+#define BLKGETSIZE 0x1260                 /* return device size */
+#else
+/* same on i386, m68k, arm; different on alpha, mips, sparc, ppc */
+#define BLKGETSIZE _IO(0x12,96)
+#endif
+#endif
+
+#define MINIX_SUPER_MAGIC   0x137F         /* original minix fs */
+#define MINIX_SUPER_MAGIC2  0x138F         /* minix fs, 30 char names */
+struct minix_super_block {
+       unsigned char   s_dummy[16];
+       unsigned char   s_magic[2];
+};
+#define minixmagic(s)  ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))
+
+#define ISODCL(from, to) (to - from + 1)
+#define ISO_STANDARD_ID "CD001"
+struct iso_volume_descriptor {
+       char type[ISODCL(1,1)]; /* 711 */
+       char id[ISODCL(2,6)];
+       char version[ISODCL(7,7)];
+       char data[ISODCL(8,2048)];
+};
+
+#define HS_STANDARD_ID "CDROM"
+struct  hs_volume_descriptor {
+       char foo[ISODCL (  1,   8)]; /* 733 */
+       char type[ISODCL (  9,   9)]; /* 711 */
+       char id[ISODCL ( 10,  14)];
+       char version[ISODCL ( 15,  15)]; /* 711 */
+       char data[ISODCL(16,2048)];
+};
+
+#define EXT_SUPER_MAGIC 0x137D
+struct ext_super_block {
+       unsigned char   s_dummy[56];
+       unsigned char   s_magic[2];
+};
+#define extmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))
+
+#define EXT2_PRE_02B_MAGIC  0xEF51
+#define EXT2_SUPER_MAGIC    0xEF53
+#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004
+struct ext2_super_block {
+       unsigned char   s_dummy1[56];
+       unsigned char   s_magic[2];
+       unsigned char   s_dummy2[34];
+       unsigned char   s_feature_compat[4];
+       unsigned char   s_feature_incompat[4];
+       unsigned char   s_feature_ro_compat[4];
+       unsigned char   s_uuid[16];
+       unsigned char   s_volume_name[16];
+       unsigned char   s_dummy3[88];
+       unsigned char   s_journal_inum[4];      /* ext3 only */
+};
+#define ext2magic(s)   ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))
+
+struct reiserfs_super_block
+{
+       unsigned char           s_block_count[4];
+       unsigned char           s_free_blocks[4];
+       unsigned char           s_root_block[4];
+       unsigned char           s_journal_block[4];
+       unsigned char           s_journal_dev[4];
+       unsigned char           s_orig_journal_size[4];
+       unsigned char           s_journal_trans_max[4];
+       unsigned char           s_journal_block_count[4];
+       unsigned char           s_journal_max_batch[4];
+       unsigned char           s_journal_max_commit_age[4];
+       unsigned char           s_journal_max_trans_age[4];
+       unsigned char           s_blocksize[2];
+       unsigned char           s_oid_maxsize[2];
+       unsigned char           s_oid_cursize[2];
+       unsigned char           s_state[2];
+       unsigned char           s_magic[12];
+};
+#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"
+#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
+#define REISERFS_DISK_OFFSET_IN_BYTES (64 * 1024)
+/* the spot for the super in versions 3.5 - 3.5.10 (inclusive) */
+#define REISERFS_OLD_DISK_OFFSET_IN_BYTES (8 * 1024)
+
+#define _XIAFS_SUPER_MAGIC 0x012FD16D
+struct xiafs_super_block {
+    unsigned char     s_boot_segment[512];     /*  1st sector reserved for boot */
+    unsigned char     s_dummy[60];
+    unsigned char     s_magic[4];
+};
+#define xiafsmagic(s)  ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \
+                       (((unsigned int) s.s_magic[2]) << 16) + \
+                       (((unsigned int) s.s_magic[3]) << 24))
+
+/* From jj@sunsite.ms.mff.cuni.cz Mon Mar 23 15:19:05 1998 */
+#define UFS_SUPER_MAGIC 0x00011954
+struct ufs_super_block {
+    unsigned char     s_dummy[0x55c];
+    unsigned char     s_magic[4];
+};
+#define ufsmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \
+                        (((unsigned int) s.s_magic[2]) << 16) + \
+                        (((unsigned int) s.s_magic[3]) << 24))
+
+/* From Richard.Russon@ait.co.uk Wed Feb 24 08:05:27 1999 */
+#define NTFS_SUPER_MAGIC "NTFS"
+struct ntfs_super_block {
+    unsigned char    s_dummy[3];
+    unsigned char    s_magic[4];
+};
+
+/* From inspection of a few FAT filesystems - aeb */
+/* Unfortunately I find almost the same thing on an extended partition;
+   it looks like a primary has some directory entries where the extended
+   has a partition table: IO.SYS, MSDOS.SYS, WINBOOT.SYS */
+struct fat_super_block {
+    unsigned char    s_dummy[3];
+    unsigned char    s_os[8];          /* "MSDOS5.0" or "MSWIN4.0" or "MSWIN4.1" */
+                               /* mtools-3.9.4 writes "MTOOL394" */
+    unsigned char    s_dummy2[32];
+    unsigned char    s_label[11];      /* for DOS? */
+    unsigned char    s_fs[8];          /* "FAT12   " or "FAT16   " or all zero   */
+                                /* OS/2 BM has "FAT     " here. */
+    unsigned char    s_dummy3[9];
+    unsigned char    s_label2[11];     /* for Windows? */
+    unsigned char    s_fs2[8];         /* garbage or "FAT32   " */
+};
+
+#define XFS_SUPER_MAGIC "XFSB"
+struct xfs_super_block {
+    unsigned char    s_magic[4];
+    unsigned char    s_dummy[28];
+    unsigned char    s_uuid[16];
+    unsigned char    s_dummy2[60];
+    unsigned char    s_fname[12];
+};
+
+#define CRAMFS_SUPER_MAGIC 0x28cd3d45
+struct cramfs_super_block {
+       unsigned char    s_magic[4];
+       unsigned char    s_dummy[12];
+       unsigned char    s_id[16];
+};
+#define cramfsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \
+                        (((unsigned int) s.s_magic[2]) << 16) + \
+                        (((unsigned int) s.s_magic[3]) << 24))
+
+#define HFS_SUPER_MAGIC 0x4244
+struct hfs_super_block {
+       unsigned char    s_magic[2];
+       unsigned char    s_dummy[18];
+       unsigned char    s_blksize[4];
+};
+#define hfsmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))
+#define hfsblksize(s)  ((unsigned int) s.s_blksize[0] + \
+                        (((unsigned int) s.s_blksize[1]) << 8) + \
+                        (((unsigned int) s.s_blksize[2]) << 16) + \
+                        (((unsigned int) s.s_blksize[3]) << 24))
+
+#define HPFS_SUPER_MAGIC 0xf995e849
+struct hpfs_super_block {
+       unsigned char    s_magic[4];
+       unsigned char    s_magic2[4];
+};
+#define hpfsmagic(s)   ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \
+                        (((unsigned int) s.s_magic[2]) << 16) + \
+                        (((unsigned int) s.s_magic[3]) << 24))
+
+struct adfs_super_block {
+       unsigned char    s_dummy[448];
+       unsigned char    s_blksize[1];
+       unsigned char    s_dummy2[62];
+       unsigned char    s_checksum[1];
+};
+#define adfsblksize(s) ((unsigned int) s.s_blksize[0])