diff options
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 |