summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/fs_unformatted.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/fs_unformatted.h')
-rw-r--r--src/lib/formats/fs_unformatted.h29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/lib/formats/fs_unformatted.h b/src/lib/formats/fs_unformatted.h
index 5bcaaf1e34e..949bb6aae08 100644
--- a/src/lib/formats/fs_unformatted.h
+++ b/src/lib/formats/fs_unformatted.h
@@ -10,14 +10,12 @@
#include "fsmgr.h"
-class fs_unformatted : public filesystem_manager_t {
-public:
- fs_unformatted() : filesystem_manager_t() {}
+class floppy_image;
- virtual void enumerate(floppy_enumerator &fe, uint32_t form_factor, const std::vector<uint32_t> &variants) const override;
- virtual void floppy_instantiate_raw(u32 key, floppy_image *image) const override;
+namespace fs {
-private:
+class unformatted_image : public manager_t {
+public:
enum {
FSI_NONE,
@@ -41,8 +39,25 @@ private:
FSI_3_DSDD,
FSI_3_SSDD,
};
+
+ unformatted_image() : manager_t() {}
+
+ virtual const char *name() const override;
+ virtual const char *description() const override;
+
+ static void format(u32 key, floppy_image *image);
+
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
+ virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
+
+ virtual bool can_format() const override;
+ virtual bool can_read() const override;
+ virtual bool can_write() const override;
+ virtual bool has_rsrc() const override;
};
-extern const filesystem_manager_type FS_UNFORMATTED;
+extern const unformatted_image UNFORMATTED;
+
+} // namespace fs
#endif