summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/util/harddisk.h
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2022-03-31 13:45:02 +0200
committer Olivier Galibert <galibert@pobox.com>2022-04-01 11:36:55 +0200
commite818533b167a24207e1cbfcee04524b215d001ef (patch)
tree839f3a7e41600020417506bb792c46ffb393a726 /src/lib/util/harddisk.h
parent50fc1c3a58910f4bdf5519804c310cb88d72e075 (diff)
hard_disk_file: classify
Diffstat (limited to 'src/lib/util/harddisk.h')
-rw-r--r--src/lib/util/harddisk.h49
1 files changed, 23 insertions, 26 deletions
diff --git a/src/lib/util/harddisk.h b/src/lib/util/harddisk.h
index a586df0f4e0..d7aff5b8384 100644
--- a/src/lib/util/harddisk.h
+++ b/src/lib/util/harddisk.h
@@ -19,38 +19,35 @@
#include "osdcore.h"
-/***************************************************************************
- TYPE DEFINITIONS
-***************************************************************************/
+class hard_disk_file {
+public:
+ struct info
+ {
+ uint32_t cylinders;
+ uint32_t heads;
+ uint32_t sectors;
+ uint32_t sectorbytes;
+ uint32_t fileoffset; // offset in the file where the HDD image starts. not valid for CHDs.
+ };
-struct hard_disk_file;
-struct hard_disk_info
-{
- uint32_t cylinders;
- uint32_t heads;
- uint32_t sectors;
- uint32_t sectorbytes;
- uint32_t fileoffset; // offset in the file where the HDD image starts. not valid for CHDs.
-};
+ hard_disk_file(chd_file *chd);
+ hard_disk_file(util::random_read_write &corefile, uint32_t skipoffs);
+ ~hard_disk_file();
+ chd_file *get_chd() const { return chd; }
+ const info &get_info() const { return hdinfo; }
-/***************************************************************************
- FUNCTION PROTOTYPES
-***************************************************************************/
+ bool set_block_size(uint32_t blocksize);
-hard_disk_file *hard_disk_open(chd_file *chd);
-hard_disk_file *hard_disk_open(util::random_read_write &corefile, uint32_t skipoffs);
+ bool read(uint32_t lbasector, void *buffer);
+ bool write(uint32_t lbasector, const void *buffer);
-void hard_disk_close(hard_disk_file *file);
-
-chd_file *hard_disk_get_chd(hard_disk_file *file);
-hard_disk_info *hard_disk_get_info(hard_disk_file *file);
-
-bool hard_disk_set_block_size(hard_disk_file *file, uint32_t blocksize);
-
-bool hard_disk_read(hard_disk_file *file, uint32_t lbasector, void *buffer);
-bool hard_disk_write(hard_disk_file *file, uint32_t lbasector, const void *buffer);
+private:
+ chd_file * chd; // CHD file
+ util::random_read_write * fhandle; // file if not a CHD
+ info hdinfo; // hard disk info
+};
#endif // MAME_LIB_UTIL_HARDDISK_H