Skip to contentSkip to conversation

filesystem: VMUFAT filesystem

RFC PATCH New Adrian McMenamin 1 participant 1 message Feb 14, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 filesystem: VMUFAT filesystem

(Already posted to lkml)

The SEGA Dreamcast visual memory unit implements a file allocation table based filesystem which is somewhat similar to FAT16. This filesystem code implements that filesystem and I have used it to successfully manage Dreamcast VMUs and VMU images mounted via loop.

You can read more about the filesystem here:
http://mc.pp.se/dc/vms/flashmem.html

I intend to fully document the filesystem and write an appropriate user tool to create a drive image, but in the meantime here is an early cut of the filesystem itself for comment.

(A version of this for the 2.4 kernel existed in the Dreamcast CVS on Sourceforge but wasn't truly hardware independent).

 fs/Kconfig         |    1 +
 fs/Makefile        |    1 +
 fs/vmufat/Kconfig  |   14 +
 fs/vmufat/Makefile |    7 +
 fs/vmufat/inode.c  |  702 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/vmufat/super.c  |  533 +++++++++++++++++++++++++++++++++++++++
 fs/vmufat/vmufat.h |   58 +++++

---

fs/Kconfig +1 -0
index 93945dd..6c108b1 100644
@@ -222,6 +222,7 @@ source "fs/qnx4/Kconfig"
 source "fs/romfs/Kconfig"
 source "fs/sysv/Kconfig"
 source "fs/ufs/Kconfig"
+source "fs/vmufat/Kconfig"
 
 endif # MISC_FILESYSTEMS
 
fs/Makefile +1 -0
index 38bc735..196c9dc 100644
@@ -122,3 +122,4 @@ obj-$(CONFIG_DEBUG_FS)		+= debugfs/
 obj-$(CONFIG_OCFS2_FS)		+= ocfs2/
 obj-$(CONFIG_BTRFS_FS)		+= btrfs/
 obj-$(CONFIG_GFS2_FS)           += gfs2/
+obj-$(CONFIG_VMUFAT_FS)		+= vmufat/
fs/vmufat/Kconfig new file +14 -0
new file mode 100644
index 0000000..bdad4c6
@@ -0,0 +1,14 @@
+config VMUFAT_FS
+	tristate "Dreamcast VMU FAT filesystem"
+	depends on BLOCK
+	help
+	  This implements the simple FAT type filesystem found on SEGA
+	  Dreamcast visual memory units.
+
+	  Dreamcast users who want to mount their VMUs to view the native
+	  filesystem will say 'Y' here. The filesystem is hardware independent
+	  but is not recommended for any serious use in other circumstances, so
+	  just about everyone else should say 'N'.
+
+	  To compile this as a module say 'M' here. The module will be called
+	  vmufat
fs/vmufat/Makefile new file +7 -0
new file mode 100644
index 0000000..e7f9bbf
@@ -0,0 +1,7 @@
+#
+# Makefile for VMUFAT filesystem
+#
+
+obj-$(CONFIG_VMUFAT_FS) += vmufat.o
+
+vmufat-objs := super.o inode.o
fs/vmufat/inode.c new file +680 -0

680 lines not on this page · raw message

fs/vmufat/super.c new file +518 -0

518 lines not on this page · raw message

fs/vmufat/vmufat.h new file +57 -0

57 lines not on this page · raw message