]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
authorphcoder <phcoder@localhost>
Mon, 20 Jul 2009 21:18:59 +0000 (21:18 +0000)
committerphcoder <phcoder@localhost>
Mon, 20 Jul 2009 21:18:59 +0000 (21:18 +0000)
Add BFS support

* conf/common.rmk (grub_probe_SOURCES): Add fs/befs.c.
(grub_fstest_SOURCES): Likewise.
(pkglib_MODULES): Add befs.mod.
(befs_mod_SOURCES): New variable.
(befs_mod_CFLAGS): Likewise.
(befs_mod_LDFLAGS): Likewise.
* conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
(grub_setup_SOURCES): Likewise.
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
(grub_setup_SOURCES): Likewise.
* fs/befs.c: New file.
* fs/afs.c (GRUB_AFS_FSNAME): New declaration.
(GRUB_AFS_SBLOCK_SECTOR): Likewise.
(GRUB_AFS_SBLOCK_MAGIC1) [MODE_BFS]: New conditional declaration.
(GRUB_AFS_BTREE_MAGIC) [MODE_BFS]: Likewise
(B_KEY_INDEX_ALIGN): New declaration.
(B_KEY_INDEX_OFFSET): Use B_KEY_INDEX_ALIGN.
(grub_afs_bnode) [MODE_BFS]: Make key_count and key_size 16-bit
(grub_afs_btree) [MODE_BFS]: New conditional declaration.
(grub_afs_sblock) [MODE_BFS]: Remove link_count.
(grub_afs_validate_sblock) [MODE_BFS]: Support BFS
(grub_afs_mount) [MODE_BFS]: Likewise.
(grub_afs_dir) [MODE_BFS]: Divide mtime by 65536 and not 1000000.
(grub_afs_fs): Use GRUB_AFS_FSNAME
(GRUB_MOD_INIT (afs)) [MODE_BFS]: Rename to ...
(GRUB_MOD_INIT (befs)) [MODE_BFS]: ... this
(GRUB_MOD_FINI (afs)) [MODE_BFS]: Rename to ...
(GRUB_MOD_FINI (befs)) [MODE_BFS]: ... this

ChangeLog
conf/common.rmk
conf/i386-coreboot.rmk
conf/i386-efi.rmk
conf/i386-ieee1275.rmk
conf/i386-pc.rmk
conf/powerpc-ieee1275.rmk
conf/sparc64-ieee1275.rmk
fs/afs.c
fs/befs.c [new file with mode: 0644]

index 072652fcecf74e397a403c042c9579b8e91c49de..6cfc6dd3c0a9d93782c1e68b9668d8503e46c7ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,40 @@
+2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Add BFS support
+
+       * conf/common.rmk (grub_probe_SOURCES): Add fs/befs.c.
+       (grub_fstest_SOURCES): Likewise.
+       (pkglib_MODULES): Add befs.mod.
+       (befs_mod_SOURCES): New variable.
+       (befs_mod_CFLAGS): Likewise.
+       (befs_mod_LDFLAGS): Likewise.
+       * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
+       * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
+       * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
+       * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
+       (grub_setup_SOURCES): Likewise.
+       * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
+       * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
+       (grub_setup_SOURCES): Likewise.
+       * fs/befs.c: New file.
+       * fs/afs.c (GRUB_AFS_FSNAME): New declaration.
+       (GRUB_AFS_SBLOCK_SECTOR): Likewise.
+       (GRUB_AFS_SBLOCK_MAGIC1) [MODE_BFS]: New conditional declaration.
+       (GRUB_AFS_BTREE_MAGIC) [MODE_BFS]: Likewise
+       (B_KEY_INDEX_ALIGN): New declaration.
+       (B_KEY_INDEX_OFFSET): Use B_KEY_INDEX_ALIGN.
+       (grub_afs_bnode) [MODE_BFS]: Make key_count and key_size 16-bit
+       (grub_afs_btree) [MODE_BFS]: New conditional declaration.
+       (grub_afs_sblock) [MODE_BFS]: Remove link_count.
+       (grub_afs_validate_sblock) [MODE_BFS]: Support BFS
+       (grub_afs_mount) [MODE_BFS]: Likewise.
+       (grub_afs_dir) [MODE_BFS]: Divide mtime by 65536 and not 1000000.
+       (grub_afs_fs): Use GRUB_AFS_FSNAME
+       (GRUB_MOD_INIT (afs)) [MODE_BFS]: Rename to ...
+       (GRUB_MOD_INIT (befs)) [MODE_BFS]: ... this
+       (GRUB_MOD_FINI (afs)) [MODE_BFS]: Rename to ...
+       (GRUB_MOD_FINI (befs)) [MODE_BFS]: ... this
+
 2009-07-19  Yves BLUSSEAU  <yves.grub-devel@zetam.org>
 
        * util/getroot.c (find_root_device): Add support for MacOSX.
index 07ff04e4da04fa9918b0b4eba53036150b883b0b..032517ffb2ad6ae2f29c1484407c9f81acabe9c1 100644 (file)
@@ -17,7 +17,7 @@ grub_probe_SOURCES = util/grub-probe.c        \
        fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c         \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c  \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c          \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                     \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c           \
        \
        partmap/pc.c partmap/apple.c partmap/sun.c partmap/gpt.c\
        kern/fs.c kern/env.c fs/fshelp.c                        \
@@ -38,7 +38,7 @@ grub_fstest_SOURCES = util/grub-fstest.c util/hostfs.c util/misc.c    \
        fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c                 \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c          \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                             \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                   \
        \
        kern/partition.c partmap/pc.c partmap/apple.c partmap/sun.c     \
        partmap/gpt.c                                                   \
@@ -177,7 +177,7 @@ CLEANFILES += grub-dumpbios
 pkglib_MODULES += fshelp.mod fat.mod ufs.mod ext2.mod ntfs.mod         \
        ntfscomp.mod minix.mod hfs.mod jfs.mod iso9660.mod xfs.mod      \
        affs.mod sfs.mod hfsplus.mod reiserfs.mod cpio.mod tar.mod      \
-       udf.mod afs.mod
+       udf.mod afs.mod befs.mod
 
 # For fshelp.mod.
 fshelp_mod_SOURCES = fs/fshelp.c
@@ -274,6 +274,11 @@ afs_mod_SOURCES = fs/afs.c
 afs_mod_CFLAGS = $(COMMON_CFLAGS)
 afs_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
+# For befs.mod.
+befs_mod_SOURCES = fs/befs.c
+befs_mod_CFLAGS = $(COMMON_CFLAGS)
+befs_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
 # Partition maps.
 pkglib_MODULES += amiga.mod apple.mod pc.mod sun.mod acorn.mod gpt.mod
 
index c70f7d2a0f5a695d0b84b8e5e4bb41f73530554f..7ba573795c300dc3a72c904c51c250307a20da34 100644 (file)
@@ -116,7 +116,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
        fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c  fs/hfs.c                \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c          \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                             \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                           \
        \
        fs/fshelp.c                                                     \
        io/gzio.c                                                       \
index 75aa611e741451f92d4f69e00e1b3d9e16044c34..9177b9d449c18eafd80c0ada47c8379680d71bed 100644 (file)
@@ -44,7 +44,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c   \
        fs/affs.c fs/cpio.c fs/ext2.c fs/fat.c fs/hfs.c                 \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c          \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                             \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                           \
        \
        io/gzio.c                                                       \
        kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c       \
index 513e1b7bc19386efd08eec70baee6c747cf10c40..03219790656258a6ed5c600e6686be9639a69db1 100644 (file)
@@ -71,7 +71,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c   \
        fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c                 \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c          \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                             \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                           \
        \
        fs/fshelp.c                                                     \
        io/gzio.c                                                       \
index f5bded28ad7b1819dbb9581f516df72da8cdf881..798aee231e59ec6b09e0d26081912b6aba7fe535 100644 (file)
@@ -104,7 +104,7 @@ grub_setup_SOURCES = util/i386/pc/grub-setup.c util/hostdisk.c      \
        fs/affs.c fs/cpio.c fs/ext2.c fs/fat.c fs/hfs.c         \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c  \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c          \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                     \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                   \
        \
        partmap/pc.c partmap/gpt.c                              \
        \
@@ -148,7 +148,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
        fs/affs.c fs/cpio.c  fs/fat.c fs/ext2.c fs/hfs.c                \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c          \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                             \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                           \
        \
        util/console.c util/hostfs.c util/grub-emu.c util/misc.c        \
        util/hostdisk.c util/getroot.c                                  \
index b12635ebdeb0d44739cfc93a0615665102ba5e70..af29d23ad0198c17a8ef6238822287d7580382a0 100644 (file)
@@ -51,7 +51,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c   \
        fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c                 \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c          \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                             \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                           \
        \
        io/gzio.c                                                       \
        kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c       \
index 8183cbc057595f629aa85b6df91e409b6a0f830d..aabccee5f788baa37654ca6cf9611a6fd8e9daea 100644 (file)
@@ -78,7 +78,7 @@ grub_setup_SOURCES = util/sparc64/ieee1275/grub-setup.c util/hostdisk.c       \
        fs/affs.c fs/cpio.c fs/ext2.c fs/fat.c fs/hfs.c         \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c  \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c          \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                     \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                   \
        \
        partmap/amiga.c partmap/apple.c partmap/pc.c            \
        partmap/sun.c partmap/acorn.c                           \
@@ -108,7 +108,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c         \
        fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c                 \
        fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c          \
        fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
-       fs/ufs.c fs/xfs.c fs/afs.c fs/tar.c                             \
+       fs/ufs.c fs/xfs.c fs/afs.c fs/befs.c fs/tar.c                           \
        \
        io/gzio.c                                                       \
        kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c       \
index a036cd3da37cab8cfc2c714060941d70d667bc8f..971c8bd2e52a3f08d219d5282071327c901a48d9 100644 (file)
--- a/fs/afs.c
+++ b/fs/afs.c
 #include <grub/types.h>
 #include <grub/fshelp.h>
 
+#ifdef MODE_BFS
+#define GRUB_AFS_FSNAME "befs"
+#else
+#define GRUB_AFS_FSNAME "afs"
+#endif
+
 #define        GRUB_AFS_DIRECT_BLOCK_COUNT     12
 #define        GRUB_AFS_BLOCKS_PER_DI_RUN      4
 
+#ifdef MODE_BFS
+#define GRUB_AFS_SBLOCK_SECTOR 1
+#define        GRUB_AFS_SBLOCK_MAGIC1  0x42465331 /* BFS1.  */
+#else
+#define GRUB_AFS_SBLOCK_SECTOR 2
 #define        GRUB_AFS_SBLOCK_MAGIC1  0x41465331 /* AFS1.  */
+#endif
+
 #define        GRUB_AFS_SBLOCK_MAGIC2  0xdd121031
 #define        GRUB_AFS_SBLOCK_MAGIC3  0x15b6830e
 
 #define        GRUB_AFS_INODE_MAGIC    0x64358428
 
+#ifdef MODE_BFS
+#define GRUB_AFS_BTREE_MAGIC   0x69f6c2e8
+#else
 #define GRUB_AFS_BTREE_MAGIC   0x65768995
+#endif
 
 #define GRUB_AFS_BNODE_SIZE    1024
 
 #define U64(sb, u) (((sb)->byte_order == GRUB_AFS_BO_LITTLE_ENDIAN) ? \
                     grub_le_to_cpu64 (u) : grub_be_to_cpu64 (u))
 
+#ifdef MODE_BFS
+#define B_KEY_INDEX_ALIGN 8
+#else
+#define B_KEY_INDEX_ALIGN 4
+#endif
+
 #define B_KEY_INDEX_OFFSET(node) ((grub_uint16_t *) \
-                                   ((char *) (node) + \
-                                    sizeof (struct grub_afs_bnode) + \
-                                    ((node->key_size + 3) & ~3)))
+                                 ((char *) (node) \
+                                  + ALIGN_UP (sizeof (struct grub_afs_bnode) \
+                                              + node->key_size, \
+                                              B_KEY_INDEX_ALIGN)))
 
 #define B_KEY_VALUE_OFFSET(node) ((grub_afs_bvalue_t *) \
                                    ((char *) B_KEY_INDEX_OFFSET (node) + \
@@ -99,11 +123,27 @@ struct grub_afs_bnode
   grub_afs_bvalue_t left;
   grub_afs_bvalue_t right;
   grub_afs_bvalue_t overflow;
+#ifdef MODE_BFS
+  grub_uint16_t key_count;
+  grub_uint16_t key_size;
+#else
   grub_uint32_t key_count;
   grub_uint32_t key_size;
+#endif
   char key_data[0];
 } __attribute__ ((packed));
 
+#ifdef MODE_BFS
+struct grub_afs_btree
+{
+  grub_uint32_t magic;
+  grub_uint32_t unused1;
+  grub_uint32_t tree_depth;
+  grub_uint32_t unused2;
+  grub_afs_bvalue_t root;
+  grub_uint32_t unused3[4];
+} __attribute__ ((packed));
+#else
 struct grub_afs_btree
 {
   grub_uint32_t magic;
@@ -112,6 +152,7 @@ struct grub_afs_btree
   grub_afs_bvalue_t last_node;
   grub_afs_bvalue_t first_free;
 } __attribute__ ((packed));
+#endif
 
 struct grub_afs_sblock
 {
@@ -151,7 +192,9 @@ struct grub_afs_inode
   grub_uint32_t gid;
   grub_uint32_t mode;
   grub_uint32_t flags;
+#ifndef MODE_BFS
   grub_uint32_t link_count;
+#endif
   grub_afs_bigtime create_time;
   grub_afs_bigtime modified_time;
   struct grub_afs_blockrun parent;
@@ -427,8 +470,10 @@ grub_afs_validate_sblock (struct grub_afs_sblock *sb)
 {
   if (grub_le_to_cpu32 (sb->magic1) == GRUB_AFS_SBLOCK_MAGIC1)
     {
+#ifndef MODE_BFS
       if (grub_le_to_cpu32 (sb->byte_order) != GRUB_AFS_BO_LITTLE_ENDIAN)
         return 0;
+#endif
 
       sb->byte_order = GRUB_AFS_BO_LITTLE_ENDIAN;
       sb->magic2 = grub_le_to_cpu32 (sb->magic2);
@@ -446,8 +491,10 @@ grub_afs_validate_sblock (struct grub_afs_sblock *sb)
     }
   else if (grub_be_to_cpu32 (sb->magic1) == GRUB_AFS_SBLOCK_MAGIC1)
     {
+#ifndef MODE_BFS
       if (grub_be_to_cpu32 (sb->byte_order) != GRUB_AFS_BO_BIG_ENDIAN)
         return 0;
+#endif
 
       sb->byte_order = GRUB_AFS_BO_BIG_ENDIAN;
       sb->magic2 = grub_be_to_cpu32 (sb->magic2);
@@ -470,15 +517,22 @@ grub_afs_validate_sblock (struct grub_afs_sblock *sb)
       (sb->magic3 != GRUB_AFS_SBLOCK_MAGIC3))
     return 0;
 
-  if (((grub_uint32_t) (1 << sb->block_shift) != sb->block_size) ||
-      (sb->used_blocks > sb->num_blocks ) ||
-      (sb->inode_size != sb->block_size) ||
-      (0 == sb->block_size) ||
-      ((grub_uint32_t) (1 << sb->alloc_group_shift) !=
-       sb->block_per_group * sb->block_size) ||
-      (sb->alloc_group_count * sb->block_per_group < sb->num_blocks) ||
-      (U16 (sb, sb->log_block.len) != sb->log_size) ||
-      (U32 (sb, sb->valid_log_blocks) > sb->log_size))
+#ifdef MODE_BFS
+  sb->block_per_group = 1 << (sb->alloc_group_shift);
+#endif
+
+  if (((grub_uint32_t) (1 << sb->block_shift) != sb->block_size)
+      || (sb->used_blocks > sb->num_blocks )
+      || (sb->inode_size != sb->block_size)
+      || (0 == sb->block_size)
+#ifndef MODE_BFS
+      || ((grub_uint32_t) (1 << sb->alloc_group_shift) !=
+         sb->block_per_group * sb->block_size)
+      || (sb->alloc_group_count * sb->block_per_group < sb->num_blocks)
+      || (U16 (sb, sb->log_block.len) != sb->log_size)
+      || (U32 (sb, sb->valid_log_blocks) > sb->log_size)
+#endif
+      )
     return 0;
 
   return 1;
@@ -494,8 +548,8 @@ grub_afs_mount (grub_disk_t disk)
     return 0;
 
   /* Read the superblock.  */
-  if (grub_disk_read (disk, 1 * 2, 0, sizeof (struct grub_afs_sblock),
-                      &data->sblock))
+  if (grub_disk_read (disk, GRUB_AFS_SBLOCK_SECTOR, 0,
+                     sizeof (struct grub_afs_sblock), &data->sblock))
     goto fail;
 
   if (! grub_afs_validate_sblock (&data->sblock))
@@ -514,7 +568,8 @@ grub_afs_mount (grub_disk_t disk)
   return data;
 
 fail:
-  grub_error (GRUB_ERR_BAD_FS, "not an afs filesystem");
+  grub_error (GRUB_ERR_BAD_FS, "not an " GRUB_AFS_FSNAME " filesystem");
+
   grub_free (data);
   return 0;
 }
@@ -592,8 +647,12 @@ grub_afs_dir (grub_device_t device, const char *path,
       grub_memset (&info, 0, sizeof (info));
       info.dir = ((filetype & GRUB_FSHELP_TYPE_MASK) == GRUB_FSHELP_DIR);
       info.mtimeset = 1;
+#ifdef MODE_BFS
+      info.mtime = U64 (&data->sblock, node->inode.modified_time) >> 16;
+#else
       info.mtime = grub_divmod64 (U64 (&data->sblock,
                                       node->inode.modified_time), 1000000, 0);
+#endif
       grub_free (node);
       return hook (filename, &info);
     }
@@ -645,7 +704,7 @@ grub_afs_label (grub_device_t device, char **label)
 
 
 static struct grub_fs grub_afs_fs = {
-  .name = "afs",
+  .name = GRUB_AFS_FSNAME,
   .dir = grub_afs_dir,
   .open = grub_afs_open,
   .read = grub_afs_read,
@@ -654,13 +713,21 @@ static struct grub_fs grub_afs_fs = {
   .next = 0
 };
 
+#ifdef MODE_BFS
+GRUB_MOD_INIT (befs)
+#else
 GRUB_MOD_INIT (afs)
+#endif
 {
   grub_fs_register (&grub_afs_fs);
   my_mod = mod;
 }
 
+#ifdef MODE_BFS
+GRUB_MOD_FINI (befs)
+#else
 GRUB_MOD_FINI (afs)
+#endif
 {
   grub_fs_unregister (&grub_afs_fs);
 }
diff --git a/fs/befs.c b/fs/befs.c
new file mode 100644 (file)
index 0000000..c54d8e1
--- /dev/null
+++ b/fs/befs.c
@@ -0,0 +1,3 @@
+/* befs.c - The native BeOS/Haiku file-system.  */
+#define MODE_BFS 1
+#include "afs.c"