diff options
author | 2022-03-31 13:45:02 +0200 | |
---|---|---|
committer | 2022-04-01 11:36:55 +0200 | |
commit | e818533b167a24207e1cbfcee04524b215d001ef (patch) | |
tree | 839f3a7e41600020417506bb792c46ffb393a726 /src/lib/util/harddisk.h | |
parent | 50fc1c3a58910f4bdf5519804c310cb88d72e075 (diff) |
hard_disk_file: classify
Diffstat (limited to 'src/lib/util/harddisk.h')
-rw-r--r-- | src/lib/util/harddisk.h | 49 |
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 |