openMSX
|
#include <SectorAccessibleDisk.hh>
Public Member Functions | |
void | readSector (size_t sector, SectorBuffer &buf) |
void | writeSector (size_t sector, const SectorBuffer &buf) |
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... | |
int | readSectors (SectorBuffer *buffers, size_t startSector, size_t nbSectors) |
int | writeSectors (const SectorBuffer *buffers, size_t startSector, size_t nbSectors) |
virtual void | readSectorImpl (size_t sector, SectorBuffer &buf)=0 |
Static Public Attributes | |
static const size_t | SECTOR_SIZE = sizeof(SectorBuffer) |
Protected Member Functions | |
SectorAccessibleDisk () | |
~SectorAccessibleDisk () | |
void | setPeekMode (bool peek) |
bool | isPeekMode () const |
virtual void | checkCaches () |
virtual void | flushCaches () |
virtual Sha1Sum | getSha1SumImpl (FilePool &filepool) |
Definition at line 15 of file SectorAccessibleDisk.hh.
|
protected |
Definition at line 18 of file SectorAccessibleDisk.cc.
References ~SectorAccessibleDisk().
|
protecteddefault |
Referenced by SectorAccessibleDisk().
void openmsx::SectorAccessibleDisk::applyPatch | ( | Filename | patchFile | ) |
Definition at line 64 of file SectorAccessibleDisk.cc.
|
protectedvirtual |
Reimplemented in openmsx::DirAsDSK.
Definition at line 148 of file SectorAccessibleDisk.cc.
Referenced by getSha1Sum(), isPeekMode(), and openmsx::SectorBasedDisk::SectorBasedDisk().
|
protectedvirtual |
Reimplemented in openmsx::SectorBasedDisk.
Definition at line 153 of file SectorAccessibleDisk.cc.
References openmsx::Sha1Sum::clear().
Referenced by openmsx::SectorBasedDisk::flushCaches(), isPeekMode(), writeSector(), and openmsx::Disk::writeTrack().
void openmsx::SectorAccessibleDisk::forceWriteProtect | ( | ) |
Definition at line 137 of file SectorAccessibleDisk.cc.
Referenced by openmsx::HD::serialize(), and openmsx::DiskChanger::serialize().
size_t openmsx::SectorAccessibleDisk::getNbSectors | ( | ) | const |
Definition at line 59 of file SectorAccessibleDisk.cc.
Referenced by openmsx::SectorBasedDisk::detectGeometry(), openmsx::Disk::detectGeometryFallback(), openmsx::DiskPartition::DiskPartition(), openmsx::DiskImageUtils::format(), getSha1SumImpl(), openmsx::EmptyDiskPatch::getSize(), openmsx::MSXtar::MSXtar(), readSector(), openmsx::SCSIHD::SCSIHD(), writeSector(), openmsx::IDEHD::~IDEHD(), and openmsx::SCSILS120::~SCSILS120().
std::vector< Filename > openmsx::SectorAccessibleDisk::getPatches | ( | ) | const |
Definition at line 69 of file SectorAccessibleDisk.cc.
Referenced by openmsx::DiskChanger::serialize().
Calculate SHA1 of the content of this disk.
This value is cached (and flushed on writes).
Definition at line 79 of file SectorAccessibleDisk.cc.
References checkCaches(), openmsx::Sha1Sum::empty(), and getSha1SumImpl().
Referenced by openmsx::DiskCommand::needRecord(), and openmsx::HD::serialize().
Reimplemented in openmsx::DMKDiskImage.
Definition at line 88 of file SectorAccessibleDisk.cc.
References openmsx::SHA1::digest(), getNbSectors(), openmsx::SectorBuffer::raw, readSector(), setPeekMode(), openmsx::SHA1::update(), and xrange().
Referenced by openmsx::DSKDiskImage::DSKDiskImage(), getSha1Sum(), isPeekMode(), openmsx::HD::switchImage(), and openmsx::SCSILS120::~SCSILS120().
bool openmsx::SectorAccessibleDisk::hasPatches | ( | ) | const |
Definition at line 74 of file SectorAccessibleDisk.cc.
Referenced by openmsx::DSKDiskImage::DSKDiskImage(), openmsx::HD::switchImage(), and openmsx::SCSILS120::~SCSILS120().
|
virtual |
Reimplemented in openmsx::DummyDisk.
Definition at line 143 of file SectorAccessibleDisk.cc.
Referenced by readSector(), and writeSector().
|
inlineprotected |
Definition at line 61 of file SectorAccessibleDisk.hh.
References checkCaches(), flushCaches(), and getSha1SumImpl().
Referenced by openmsx::DirAsDSK::readSectorImpl().
bool openmsx::SectorAccessibleDisk::isWriteProtected | ( | ) | const |
Definition at line 132 of file SectorAccessibleDisk.cc.
Referenced by openmsx::DiskPartition::DiskPartition(), openmsx::HDCommand::execute(), openmsx::SCSIHD::SCSIHD(), openmsx::NowindHost::write(), writeSector(), and openmsx::Disk::writeTrack().
void openmsx::SectorAccessibleDisk::readSector | ( | size_t | sector, |
SectorBuffer & | buf | ||
) |
Definition at line 25 of file SectorAccessibleDisk.cc.
References openmsx::MSXException::getMessage(), getNbSectors(), isDummyDisk(), and openmsx::SectorBuffer::raw.
Referenced by openmsx::Disk::detectGeometry(), openmsx::DiskPartition::DiskPartition(), getSha1SumImpl(), openmsx::HD::getTigerTreeHash(), openmsx::DiskImageUtils::hasPartitionTable(), openmsx::MSXtar::MSXtar(), readSectors(), openmsx::SCSIHD::SCSIHD(), openmsx::SectorBasedDisk::SectorBasedDisk(), and openmsx::IDEHD::~IDEHD().
|
pure virtual |
Implemented in openmsx::DirAsDSK, and openmsx::DMKDiskImage.
Referenced by openmsx::EmptyDiskPatch::copyBlock().
int openmsx::SectorAccessibleDisk::readSectors | ( | SectorBuffer * | buffers, |
size_t | startSector, | ||
size_t | nbSectors | ||
) |
Definition at line 106 of file SectorAccessibleDisk.cc.
References readSector(), and xrange().
Referenced by openmsx::NowindHost::write().
|
inlineprotected |
Definition at line 60 of file SectorAccessibleDisk.hh.
Referenced by getSha1SumImpl().
void openmsx::SectorAccessibleDisk::writeSector | ( | size_t | sector, |
const SectorBuffer & | buf | ||
) |
Definition at line 43 of file SectorAccessibleDisk.cc.
References flushCaches(), openmsx::MSXException::getMessage(), getNbSectors(), isDummyDisk(), and isWriteProtected().
Referenced by openmsx::DiskPartition::DiskPartition(), openmsx::DiskImageUtils::format(), openmsx::DiskImageUtils::partition(), openmsx::SCSIHD::SCSIHD(), openmsx::SectorBasedDisk::SectorBasedDisk(), writeSectors(), openmsx::IDEHD::~IDEHD(), and openmsx::MSXtar::~MSXtar().
int openmsx::SectorAccessibleDisk::writeSectors | ( | const SectorBuffer * | buffers, |
size_t | startSector, | ||
size_t | nbSectors | ||
) |
Definition at line 119 of file SectorAccessibleDisk.cc.
References writeSector(), and xrange().
Referenced by openmsx::NowindHost::write().
|
static |
Definition at line 18 of file SectorAccessibleDisk.hh.
Referenced by openmsx::EmptyDiskPatch::copyBlock(), openmsx::DirAsDSK::DirAsDSK(), openmsx::EmptyDiskPatch::getSize(), openmsx::SCSIHD::SCSIHD(), openmsx::DiskManipulator::unregisterDrive(), and openmsx::SCSILS120::~SCSILS120().