diff options
Diffstat (limited to 'src/lib/formats/fs_hplif.cpp')
-rw-r--r-- | src/lib/formats/fs_hplif.cpp | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/src/lib/formats/fs_hplif.cpp b/src/lib/formats/fs_hplif.cpp index 48dde255cb4..8a3d2c52da4 100644 --- a/src/lib/formats/fs_hplif.cpp +++ b/src/lib/formats/fs_hplif.cpp @@ -64,27 +64,27 @@ public: u8 size() const; private: - const impl & m_fs; - fsblk_t::block_t m_block; - u8 m_sector; - u32 m_sector_count; + const impl & m_fs; + fsblk_t::block_t::ptr m_block; + u8 m_sector; + u32 m_sector_count; }; impl(fsblk_t &blockdev); virtual ~impl() = default; virtual meta_data volume_metadata() override; - virtual std::pair<err_t, meta_data> metadata(const std::vector<std::string> &path) override; - virtual std::pair<err_t, std::vector<dir_entry>> directory_contents(const std::vector<std::string> &path) override; - virtual std::pair<err_t, std::vector<u8>> file_read(const std::vector<std::string> &path) override; + virtual std::pair<std::error_condition, meta_data> metadata(const std::vector<std::string> &path) override; + virtual std::pair<std::error_condition, std::vector<dir_entry>> directory_contents(const std::vector<std::string> &path) override; + virtual std::pair<std::error_condition, std::vector<u8>> file_read(const std::vector<std::string> &path) override; private: - fsblk_t::block_t read_sector(u32 starting_sector) const; + fsblk_t::block_t::ptr read_sector(u32 starting_sector) const; std::optional<hplif_dirent> dirent_from_path(const std::vector<std::string> &path) const; void iterate_directory_entries(const std::function<bool(const hplif_dirent &dirent)> &callback) const; util::arbitrary_datetime decode_datetime(const hplif_time *time) const; meta_data metadata_from_dirent(const hplif_dirent &dirent) const; - err_t format(const meta_data &meta) override; + std::error_condition format(const meta_data &meta) override; }; // methods @@ -120,10 +120,10 @@ const char *fs::hplif_image::description() const void fs::hplif_image::enumerate_f(floppy_enumerator &fe) const { - fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::DSDD, 630784, "hp_lif_9121_format_1", "HP 9212 LIF 3.5\" dual-sided double density Format 1"); + fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::DSDD, 630784, "hp_lif_9121_format_1", "HP 9121 LIF 3.5\" dual-sided double density Format 1"); fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::DSDD, 709632, "hp_lif_9121_format_2", "HP 9121 LIF 3.5\" dual-sided double density Format 2"); fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::DSDD, 788480, "hp_lif_9121_format_3", "HP 9121 LIF 3.5\" dual-sided double density Format 3"); - fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::SSDD, 286720, "hp_lif_9121_format_4", "HP 9121 LIF 3.5\" single-sided double density Format 4"); + fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::SSDD, 270336, "hp_lif_9121_format_4", "HP 9121 LIF 3.5\" single-sided double density Format 4"); fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::DSDD, 737280, "hp_lif_9121_format_16", "HP 9121 LIF 3.5\" dual-sided double density Format 16"); fe.add(FLOPPY_HP300_FORMAT, floppy_image::FF_35, floppy_image::DSHD, 1261568, "hp_lif_9122_format_014", "HP 9122 LIF 3.5\" dual-sided high density Format 0, 1, 4"); @@ -252,11 +252,11 @@ impl::impl(fsblk_t &blockdev) meta_data impl::volume_metadata() { auto block = read_sector(0); - std::string_view disk_name = std::string_view((const char *) block.rodata() + 2, 6); + std::string_view disk_name = block->rstr(2, 6); meta_data results; results.set(meta_name::name, strtrimright_hplif(disk_name)); - results.set(meta_name::creation_date, decode_datetime(reinterpret_cast<const hplif_time *>(block.rodata() + 36))); + results.set(meta_name::creation_date, decode_datetime(reinterpret_cast<const hplif_time *>(block->rodata() + 36))); return results; } @@ -265,13 +265,13 @@ meta_data impl::volume_metadata() // impl::metadata //------------------------------------------------- -std::pair<err_t, meta_data> impl::metadata(const std::vector<std::string> &path) +std::pair<std::error_condition, meta_data> impl::metadata(const std::vector<std::string> &path) { std::optional<hplif_dirent> dirent = dirent_from_path(path); if (!dirent) - return std::make_pair(ERR_NOT_FOUND, meta_data()); + return std::make_pair(error::not_found, meta_data()); - return std::make_pair(ERR_OK, metadata_from_dirent(*dirent)); + return std::make_pair(std::error_condition(), metadata_from_dirent(*dirent)); } @@ -279,7 +279,7 @@ std::pair<err_t, meta_data> impl::metadata(const std::vector<std::string> &path) // impl::directory_contents //------------------------------------------------- -std::pair<err_t, std::vector<dir_entry>> impl::directory_contents(const std::vector<std::string> &path) +std::pair<std::error_condition, std::vector<dir_entry>> impl::directory_contents(const std::vector<std::string> &path) { std::vector<dir_entry> results; auto callback = [this, &results](const hplif_dirent &ent) @@ -288,7 +288,7 @@ std::pair<err_t, std::vector<dir_entry>> impl::directory_contents(const std::vec return false; }; iterate_directory_entries(callback); - return std::make_pair(ERR_OK, std::move(results)); + return std::make_pair(std::error_condition(), std::move(results)); } @@ -296,12 +296,12 @@ std::pair<err_t, std::vector<dir_entry>> impl::directory_contents(const std::vec // impl::file_read //------------------------------------------------- -std::pair<err_t, std::vector<u8>> impl::file_read(const std::vector<std::string> &path) +std::pair<std::error_condition, std::vector<u8>> impl::file_read(const std::vector<std::string> &path) { // find the file std::optional<hplif_dirent> dirent = dirent_from_path(path); if (!dirent) - return std::make_pair(ERR_NOT_FOUND, std::vector<u8>()); + return std::make_pair(error::not_found, std::vector<u8>()); // and get the data u32 sector_count = big_endianize_int32(dirent->m_sector_count); @@ -316,7 +316,7 @@ std::pair<err_t, std::vector<u8>> impl::file_read(const std::vector<std::string> while (iter.next()) result.insert(result.end(), (const u8 *)iter.data(), (const u8 *)iter.data() + 256); - return std::make_pair(ERR_OK, std::move(result)); + return std::make_pair(std::error_condition(), std::move(result)); } @@ -324,7 +324,7 @@ std::pair<err_t, std::vector<u8>> impl::file_read(const std::vector<std::string> // impl::read_sector //------------------------------------------------- -fsblk_t::block_t impl::read_sector(u32 sector) const +fsblk_t::block_t::ptr impl::read_sector(u32 sector) const { return m_blockdev.get(sector); } @@ -359,10 +359,10 @@ std::optional<impl::hplif_dirent> impl::dirent_from_path(const std::vector<std:: void impl::iterate_directory_entries(const std::function<bool(const hplif_dirent &dirent)> &callback) const { - fsblk_t::block_t block = m_blockdev.get(0); - block_iterator iter(*this, block.r32b(8), block.r32b(16)); + fsblk_t::block_t::ptr block = m_blockdev.get(0); + block_iterator iter(*this, block->r32b(8), block->r32b(16)); - if (block.r16b(0) != 0x8000) + if (block->r16b(0) != 0x8000) { return; } @@ -461,30 +461,30 @@ bool impl::block_iterator::next() const void *impl::block_iterator::data() const { - return m_block.rodata(); + return m_block->rodata(); } //------------------------------------------------- // impl::format //------------------------------------------------- -err_t impl::format(const meta_data &meta) +std::error_condition impl::format(const meta_data &meta) { std::string volume_name = meta.get_string(meta_name::name, "B9826 "); - fsblk_t::block_t block = m_blockdev.get(0); + fsblk_t::block_t::ptr block = m_blockdev.get(0); if (volume_name.size() < 6) volume_name.insert(volume_name.end(), 6 - volume_name.size(), ' '); if (volume_name.size() > 6) volume_name.resize(6); - block.w16b(0, 0x8000); // LIF magic - block.wstr(2, volume_name); - block.w32b(8, 2); // directory start - block.w16b(12, 0x1000); // LIF identifier - block.w32b(16, 14); // directory size - block.w16b(20, 1); // LIF version - return ERR_OK; + block->w16b(0, 0x8000); // LIF magic + block->wstr(2, volume_name); + block->w32b(8, 2); // directory start + block->w16b(12, 0x1000); // LIF identifier + block->w32b(16, 14); // directory size + block->w16b(20, 1); // LIF version + return std::error_condition(); } //------------------------------------------------- @@ -493,7 +493,7 @@ err_t impl::format(const meta_data &meta) const std::array<impl::hplif_dirent, 8> &impl::block_iterator::dirent_data() const { - return *reinterpret_cast<const std::array<impl::hplif_dirent, 8> *>(m_block.rodata()); + return *reinterpret_cast<const std::array<impl::hplif_dirent, 8> *>(m_block->rodata()); } } // anonymous namespace |