From e8bbea1fc6e94e14768509d322f6c624403ffb36 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 22 Aug 2021 09:06:15 +1000 Subject: formats, osd, util: Started refactoring file I/O stuff. (#8456) Added more modern generic I/O interfaces with implementation backed by stdio, osd_file and core_file, replacing io_generic. Also replaced core_file's build-in zlib compression with a filter. unzip.cpp, un7z.cpp: Added option to supply abstract I/O interface rather than filename. Converted osd_file, core_file, archive_file, chd_file and device_image_interface to use std::error_condition rather than their own error enums. Allow mounting TI-99 RPK from inside archives. --- src/lib/util/harddisk.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/lib/util/harddisk.cpp') diff --git a/src/lib/util/harddisk.cpp b/src/lib/util/harddisk.cpp index e91759c44f2..2e8d14f9a8a 100644 --- a/src/lib/util/harddisk.cpp +++ b/src/lib/util/harddisk.cpp @@ -8,11 +8,13 @@ ***************************************************************************/ -#include #include "harddisk.h" -#include "osdcore.h" + +#include "corefile.h" + #include + /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ @@ -40,7 +42,7 @@ hard_disk_file *hard_disk_open(chd_file *chd) int cylinders, heads, sectors, sectorbytes; hard_disk_file *file; std::string metadata; - chd_error err; + std::error_condition err; /* punt if no CHD */ if (chd == nullptr) @@ -48,7 +50,7 @@ hard_disk_file *hard_disk_open(chd_file *chd) /* read the hard disk metadata */ err = chd->read_metadata(HARD_DISK_METADATA_TAG, 0, metadata); - if (err != CHDERR_NONE) + if (err) return nullptr; /* parse the metadata */ @@ -177,8 +179,8 @@ uint32_t hard_disk_read(hard_disk_file *file, uint32_t lbasector, void *buffer) { if (file->chd) { - chd_error err = file->chd->read_units(lbasector, buffer); - return (err == CHDERR_NONE); + std::error_condition err = file->chd->read_units(lbasector, buffer); + return !err; } else { @@ -211,8 +213,8 @@ uint32_t hard_disk_write(hard_disk_file *file, uint32_t lbasector, const void *b { if (file->chd) { - chd_error err = file->chd->write_units(lbasector, buffer); - return (err == CHDERR_NONE); + std::error_condition err = file->chd->write_units(lbasector, buffer); + return !err; } else { -- cgit v1.2.3-70-g09d2