diff options
author | Thomas Kunze <thommycheck@gmx.de> | 2008-03-02 19:39:02 +0000 |
---|---|---|
committer | Thomas Kunze <thommycheck@gmx.de> | 2008-03-02 19:39:02 +0000 |
commit | 2a98e2a2c1b55a0eb0ac09f2f9b55db2e4c23553 (patch) | |
tree | 57c0481a1717e4f6a8f70dd725745bdb7f8a51ee /packages | |
parent | 18a21d79505d162c24a404b865d03072430ec717 (diff) |
klibc: add missing patch
Diffstat (limited to 'packages')
-rw-r--r-- | packages/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/packages/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch b/packages/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch new file mode 100644 index 0000000000..b52b3e309b --- /dev/null +++ b/packages/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch @@ -0,0 +1,63 @@ +Index: klibc-1.5/usr/kinit/fstype/fstype.c +=================================================================== +--- klibc-1.5.orig/usr/kinit/fstype/fstype.c 2008-02-28 00:48:35.319254938 +0100 ++++ klibc-1.5/usr/kinit/fstype/fstype.c 2008-02-28 00:52:20.583257793 +0100 +@@ -20,7 +20,7 @@ + #include <endian.h> + #include <netinet/in.h> + #include <sys/vfs.h> +- ++#include <linux/types.h> + #define cpu_to_be32(x) __cpu_to_be32(x) /* Needed by romfs_fs.h */ + + #include "romfs_fs.h" +@@ -33,6 +33,12 @@ + #include "lvm2_sb.h" + #include "iso9660_sb.h" + ++#if __BYTE_ORDER == __BIG_ENDIAN ++#include <linux/byteorder/big_endian.h> ++#else ++#include <linux/byteorder/little_endian.h> ++#endif ++ + /* + * Slightly cleaned up version of jfs_superblock to + * avoid pulling in other kernel header files. +@@ -54,6 +60,27 @@ + /* Swap needs the definition of block size */ + #include "swap_fs.h" + ++static int jffs2_image(const unsigned char *buf, unsigned long *blocks) ++{ ++ // Very sloppy! ;-E ++ if (*buf == 0x85 && buf[1] == 0x19) ++ return 1; ++ ++ return 0; ++} ++ ++static int vfat_image(const unsigned char *buf, unsigned long *blocks) ++{ ++ const struct romfs_super_block *sb = ++ (const struct romfs_super_block *)buf; ++ if (!strncmp(buf + 54, "FAT12 ", 8) ++ || !strncmp(buf + 54, "FAT16 ", 8) ++ || !strncmp(buf + 82, "FAT32 ", 8)) ++ return 1; ++ ++ return 0; ++} ++ + static int gzip_image(const void *buf, unsigned long long *bytes) + { + const unsigned char *p = buf; +@@ -277,6 +304,8 @@ + {1, "ext3", ext3_image}, + {1, "ext2", ext2_image}, + {1, "minix", minix_image}, ++ {0, "jffs2", jffs2_image}, ++ {0, "vfat", vfat_image}, + {8, "reiserfs", reiserfs_image}, + {64, "reiserfs", reiserfs_image}, + {32, "jfs", jfs_image}, |