openMSX
|
#include <IDEHD.hh>
Public Member Functions | |
IDEHD (const IDEHD &)=delete | |
IDEHD & | operator= (const IDEHD &)=delete |
IDEHD (const DeviceConfig &config) | |
~IDEHD () override | |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
![]() | |
HD (const DeviceConfig &config) | |
~HD () override | |
const std::string & | getName () const |
const Filename & | getImageName () const |
void | switchImage (const Filename &filename) |
std::string | getTigerTreeHash () |
void | getMediaInfo (TclObject &result) override |
This method gets called when information is required on the media inserted in the media slot of the provider. More... | |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
MSXMotherBoard & | getMotherBoard () const |
![]() | |
void | readSector (size_t sector, SectorBuffer &buf) |
void | writeSector (size_t sector, const SectorBuffer &buf) |
void | readSectors (std::span< SectorBuffer > buffers, size_t startSector) |
void | writeSectors (std::span< const SectorBuffer > buffers, size_t startSector) |
size_t | getNbSectors () const |
bool | isWriteProtected () const |
void | forceWriteProtect () |
virtual bool | isDummyDisk () const |
void | applyPatch (Filename patchFile) |
std::vector< Filename > | getPatches () const |
bool | hasPatches () const |
Sha1Sum | getSha1Sum (FilePool &filePool) |
Calculate SHA1 of the content of this disk. More... | |
virtual void | readSectorsImpl (std::span< SectorBuffer > buffers, size_t startSector) |
virtual void | readSectorImpl (size_t sector, SectorBuffer &buf) |
![]() | |
DiskContainer (const DiskContainer &)=delete | |
DiskContainer & | operator= (const DiskContainer &)=delete |
DiskContainer ()=default | |
virtual | ~DiskContainer ()=default |
virtual SectorAccessibleDisk * | getSectorAccessibleDisk ()=0 |
virtual std::string_view | getContainerName () const =0 |
virtual bool | diskChanged ()=0 |
virtual int | insertDisk (const std::string &filename)=0 |
bool | isRomDisk () const |
template<typename Archive > | |
void | serialize (Archive &, unsigned) |
virtual uint8_t * | getData (size_t offset, size_t size)=0 |
Return the requested portion of the to-be-hashed data block. More... | |
virtual bool | isCacheStillValid (time_t &time)=0 |
Because TTH calculation of a large file takes some time (a few 1/10s for a hard disk image) we try to cache previous calculations. More... | |
![]() | |
MediaInfoProvider (const MediaInfoProvider &)=delete | |
MediaInfoProvider & | operator= (const MediaInfoProvider &)=delete |
virtual void | getMediaInfo (TclObject &result)=0 |
This method gets called when information is required on the media inserted in the media slot of the provider. More... | |
![]() | |
void | reset (EmuTime::param time) override |
word | readData (EmuTime::param time) override |
byte | readReg (nibble reg, EmuTime::param time) override |
void | writeData (word value, EmuTime::param time) override |
void | writeReg (nibble reg, byte value, EmuTime::param time) override |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
![]() | |
virtual | ~IDEDevice ()=default |
virtual void | reset (EmuTime::param time)=0 |
virtual word | readData (EmuTime::param time)=0 |
virtual byte | readReg (nibble reg, EmuTime::param time)=0 |
virtual void | writeData (word value, EmuTime::param time)=0 |
virtual void | writeReg (nibble reg, byte value, EmuTime::param time)=0 |
Additional Inherited Members | |
![]() | |
static constexpr size_t | SECTOR_SIZE = sizeof(SectorBuffer) |
![]() | |
SectorAccessibleDisk () | |
~SectorAccessibleDisk () | |
void | setPeekMode (bool peek) |
bool | isPeekMode () const |
virtual void | checkCaches () |
virtual void | flushCaches () |
virtual Sha1Sum | getSha1SumImpl (FilePool &filePool) |
![]() | |
~TTData ()=default | |
![]() | |
MediaInfoProvider ()=default | |
~MediaInfoProvider ()=default | |
![]() | |
AbstractIDEDevice (MSXMotherBoard &motherBoard) | |
~AbstractIDEDevice () override=default | |
virtual bool | isPacketDevice ()=0 |
Is this device a packet (ATAPI) device? More... | |
virtual std::string_view | getDeviceName ()=0 |
Gets the device name to insert as "model number" into the identify block. More... | |
virtual void | fillIdentifyBlock (AlignedBuffer &buffer)=0 |
Tells a subclass to fill the device specific parts of the identify block located in the buffer. More... | |
virtual unsigned | readBlockStart (AlignedBuffer &buffer, unsigned count)=0 |
Called when a block of read data should be buffered by the controller: when the buffer is empty or at the start of the transfer. More... | |
virtual void | readEnd () |
Called when a read transfer completes. More... | |
virtual void | writeBlockComplete (AlignedBuffer &buffer, unsigned count)=0 |
Called when a block of written data has been buffered by the controller: when the buffer is full or at the end of the transfer. More... | |
virtual void | executeCommand (byte cmd) |
Starts execution of an IDE command. More... | |
void | setError (byte error) |
Indicates an error: sets error register, error flag, aborts transfers. More... | |
unsigned | getSectorNumber () const |
Creates an LBA sector address from the contents of the sectorNumReg, cylinderLowReg, cylinderHighReg and devHeadReg registers. More... | |
unsigned | getNumSectors () const |
Gets the number of sectors indicated by the sector count register. More... | |
void | setInterruptReason (byte value) |
Writes the interrupt reason register. More... | |
unsigned | getByteCount () const |
Reads the byte count limit of a packet transfer in the registers. More... | |
void | setByteCount (unsigned count) |
Writes the byte count of a packet transfer in the registers. More... | |
void | setSectorNumber (unsigned lba) |
Writes a 28-bit LBA sector number in the registers. More... | |
void | startLongReadTransfer (unsigned count) |
Indicates the start of a read data transfer which uses blocks. More... | |
AlignedBuffer & | startShortReadTransfer (unsigned count) |
Indicates the start of a read data transfer where all data fits into the buffer at once. More... | |
void | abortReadTransfer (byte error) |
Aborts the read transfer in progress. More... | |
void | startWriteTransfer (unsigned count) |
Indicates the start of a write data transfer. More... | |
void | abortWriteTransfer (byte error) |
Aborts the write transfer in progress. More... | |
byte | getFeatureReg () const |
void | setLBALow (byte value) |
void | setLBAMid (byte value) |
void | setLBAHigh (byte value) |
MSXMotherBoard & | getMotherBoard () const |
![]() | |
static constexpr byte | DRDY = 0x40 |
static constexpr byte | DSC = 0x10 |
static constexpr byte | DRQ = 0x08 |
static constexpr byte | ERR = 0x01 |
static constexpr byte | UNC = 0x40 |
static constexpr byte | IDNF = 0x10 |
static constexpr byte | ABORT = 0x04 |
|
delete |
|
explicit |
Definition at line 16 of file IDEHD.cc.
References openmsx::MSXMotherBoard::getMachineID(), openmsx::DeviceConfig::getMotherBoard(), openmsx::DiskManipulator::registerDrive(), and tmpStrCat().
|
override |
Definition at line 25 of file IDEHD.cc.
References openmsx::DiskManipulator::unregisterDrive().
void openmsx::IDEHD::serialize | ( | Archive & | ar, |
unsigned | version | ||
) |