mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Convert from LayoutData to Layout.
This commit is contained in:
@@ -91,8 +91,7 @@ public:
|
||||
dev.devType = DEVTYPE_FLOPDD;
|
||||
dev.cylinders = config.layout().tracks();
|
||||
dev.heads = config.layout().sides();
|
||||
dev.sectors =
|
||||
Layout::getSectorsInTrack(Layout::getLayoutOfTrack(0, 0)).size();
|
||||
dev.sectors = Layout::getLayoutOfTrack(0, 0).logicalSectors.size();
|
||||
adfInitDevice(&dev, nullptr, false);
|
||||
int res = adfCreateFlop(&dev, (char*)volumeName.c_str(), 0);
|
||||
if (res != RC_OK)
|
||||
|
||||
@@ -63,8 +63,7 @@ public:
|
||||
{
|
||||
unsigned track = trackid.first;
|
||||
unsigned side = trackid.second;
|
||||
auto layoutdata = Layout::getLayoutOfTrack(track, side);
|
||||
auto sectors = Layout::getSectorsInTrack(layoutdata);
|
||||
auto trackLayout = Layout::getLayoutOfTrack(track, side);
|
||||
locations.insert(Mapper::computeLocationFor(track, side));
|
||||
|
||||
/* If we don't have all the sectors of this track, we may need to
|
||||
@@ -72,7 +71,7 @@ public:
|
||||
* a time. */
|
||||
|
||||
if (!imageContainsAllSectorsOf(
|
||||
_changedSectors, track, side, sectors))
|
||||
_changedSectors, track, side, trackLayout.logicalSectors))
|
||||
{
|
||||
/* If we don't have any loaded sectors for this track, pre-read
|
||||
* it. */
|
||||
@@ -83,11 +82,11 @@ public:
|
||||
/* Now merge the loaded track with the changed one, and write
|
||||
* the result back. */
|
||||
|
||||
for (const unsigned sector : sectors)
|
||||
for (unsigned sectorId : trackLayout.logicalSectors)
|
||||
{
|
||||
if (!_changedSectors.contains(track, side, sector))
|
||||
_changedSectors.put(track, side, sector)->data =
|
||||
_loadedSectors.get(track, side, sector)->data;
|
||||
if (!_changedSectors.contains(track, side, sectorId))
|
||||
_changedSectors.put(track, side, sectorId)->data =
|
||||
_loadedSectors.get(track, side, sectorId)->data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,13 +164,12 @@ Filesystem::Filesystem(std::shared_ptr<SectorInterface> sectors):
|
||||
int track = p.first;
|
||||
int side = p.second;
|
||||
|
||||
auto layoutdata = Layout::getLayoutOfTrack(track, side);
|
||||
auto sectors = Layout::getSectorsInTrack(layoutdata);
|
||||
if (sectors.empty())
|
||||
auto trackLayout = Layout::getLayoutOfTrack(track, side);
|
||||
if (trackLayout.logicalSectors.empty())
|
||||
Error() << "FS: filesystem support cannot be used without concrete "
|
||||
"layout information";
|
||||
|
||||
for (int sectorId : sectors)
|
||||
for (int sectorId : trackLayout.logicalSectors)
|
||||
_locations.push_back(std::make_tuple(track, side, sectorId));
|
||||
}
|
||||
}
|
||||
@@ -269,9 +268,9 @@ Bytes Filesystem::getLogicalSector(uint32_t number, uint32_t count)
|
||||
int track = std::get<0>(it);
|
||||
int side = std::get<1>(it);
|
||||
int sector = std::get<2>(it);
|
||||
auto layoutdata = Layout::getLayoutOfTrack(track, side);
|
||||
auto trackLayout = Layout::getLayoutOfTrack(track, side);
|
||||
bw += _sectors->get(track, side, sector)
|
||||
->data.slice(0, layoutdata.sector_size());
|
||||
->data.slice(0, trackLayout.sectorSize);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
@@ -288,7 +287,7 @@ void Filesystem::putLogicalSector(uint32_t number, const Bytes& data)
|
||||
int track = std::get<0>(it);
|
||||
int side = std::get<1>(it);
|
||||
int sector = std::get<2>(it);
|
||||
int sectorSize = Layout::getLayoutOfTrack(track, side).sector_size();
|
||||
int sectorSize = Layout::getLayoutOfTrack(track, side).sectorSize;
|
||||
|
||||
_sectors->put(track, side, sector)->data = data.slice(pos, sectorSize);
|
||||
pos += sectorSize;
|
||||
@@ -317,8 +316,7 @@ unsigned Filesystem::getLogicalSectorCount()
|
||||
|
||||
unsigned Filesystem::getLogicalSectorSize(unsigned track, unsigned side)
|
||||
{
|
||||
auto trackdata = Layout::getLayoutOfTrack(track, side);
|
||||
return trackdata.sector_size();
|
||||
return Layout::getLayoutOfTrack(track, side).sectorSize;
|
||||
}
|
||||
|
||||
void Filesystem::eraseEverythingOnDisk()
|
||||
|
||||
Reference in New Issue
Block a user