summaryrefslogtreecommitdiff
path: root/src/dev/ide_ctrl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/ide_ctrl.cc')
-rw-r--r--src/dev/ide_ctrl.cc58
1 files changed, 31 insertions, 27 deletions
diff --git a/src/dev/ide_ctrl.cc b/src/dev/ide_ctrl.cc
index 454bafac1..3d4e71888 100644
--- a/src/dev/ide_ctrl.cc
+++ b/src/dev/ide_ctrl.cc
@@ -501,8 +501,8 @@ IdeController::serialize(std::ostream &os)
PciDev::serialize(os);
// Serialize channels
- primary.serialize(os);
- secondary.serialize(os);
+ primary.serialize("primary", os);
+ secondary.serialize("secondary", os);
// Serialize config registers
SERIALIZE_SCALAR(primaryTiming);
@@ -515,23 +515,25 @@ IdeController::serialize(std::ostream &os)
// Serialize internal state
SERIALIZE_SCALAR(ioEnabled);
SERIALIZE_SCALAR(bmEnabled);
+ SERIALIZE_SCALAR(bmiAddr);
+ SERIALIZE_SCALAR(bmiSize);
}
void
-IdeController::Channel::serialize(std::ostream &os)
+IdeController::Channel::serialize(const std::string &base, std::ostream &os)
{
- SERIALIZE_SCALAR(cmdAddr);
- SERIALIZE_SCALAR(cmdSize);
- SERIALIZE_SCALAR(ctrlAddr);
- SERIALIZE_SCALAR(ctrlSize);
+ paramOut(os, base + ".cmdAddr", cmdAddr);
+ paramOut(os, base + ".cmdSize", cmdSize);
+ paramOut(os, base + ".ctrlAddr", ctrlAddr);
+ paramOut(os, base + ".ctrlSize", ctrlSize);
uint8_t command = bmiRegs.command;
- SERIALIZE_SCALAR(command);
- SERIALIZE_SCALAR(bmiRegs.reserved0);
+ paramOut(os, base + ".bmiRegs.command", command);
+ paramOut(os, base + ".bmiRegs.reserved0", bmiRegs.reserved0);
uint8_t status = bmiRegs.status;
- SERIALIZE_SCALAR(status);
- SERIALIZE_SCALAR(bmiRegs.reserved1);
- SERIALIZE_SCALAR(bmiRegs.bmidtp);
- SERIALIZE_SCALAR(selectBit);
+ paramOut(os, base + ".bmiRegs.status", status);
+ paramOut(os, base + ".bmiRegs.reserved1", bmiRegs.reserved1);
+ paramOut(os, base + ".bmiRegs.bmidtp", bmiRegs.bmidtp);
+ paramOut(os, base + ".selectBit", selectBit);
}
void
@@ -541,8 +543,8 @@ IdeController::unserialize(Checkpoint *cp, const std::string &section)
PciDev::unserialize(cp, section);
// Unserialize channels
- primary.unserialize(cp, section);
- secondary.unserialize(cp, section);
+ primary.unserialize("primary", cp, section);
+ secondary.unserialize("secondary", cp, section);
// Unserialize config registers
UNSERIALIZE_SCALAR(primaryTiming);
@@ -555,26 +557,28 @@ IdeController::unserialize(Checkpoint *cp, const std::string &section)
// Unserialize internal state
UNSERIALIZE_SCALAR(ioEnabled);
UNSERIALIZE_SCALAR(bmEnabled);
+ UNSERIALIZE_SCALAR(bmiAddr);
+ UNSERIALIZE_SCALAR(bmiSize);
}
void
-IdeController::Channel::unserialize(
- Checkpoint *cp, const std::string &section)
+IdeController::Channel::unserialize(const std::string &base, Checkpoint *cp,
+ const std::string &section)
{
- UNSERIALIZE_SCALAR(cmdAddr);
- UNSERIALIZE_SCALAR(cmdSize);
- UNSERIALIZE_SCALAR(ctrlAddr);
- UNSERIALIZE_SCALAR(ctrlSize);
+ paramIn(cp, section, base + ".cmdAddr", cmdAddr);
+ paramIn(cp, section, base + ".cmdSize", cmdSize);
+ paramIn(cp, section, base + ".ctrlAddr", ctrlAddr);
+ paramIn(cp, section, base + ".ctrlSize", ctrlSize);
uint8_t command;
- UNSERIALIZE_SCALAR(command);
+ paramIn(cp, section, base +".bmiRegs.command", command);
bmiRegs.command = command;
- UNSERIALIZE_SCALAR(bmiRegs.reserved0);
+ paramIn(cp, section, base + ".bmiRegs.reserved0", bmiRegs.reserved0);
uint8_t status;
- UNSERIALIZE_SCALAR(status);
+ paramIn(cp, section, base + ".bmiRegs.status", status);
bmiRegs.status = status;
- UNSERIALIZE_SCALAR(bmiRegs.reserved1);
- UNSERIALIZE_SCALAR(bmiRegs.bmidtp);
- UNSERIALIZE_SCALAR(selectBit);
+ paramIn(cp, section, base + ".bmiRegs.reserved1", bmiRegs.reserved1);
+ paramIn(cp, section, base + ".bmiRegs.bmidtp", bmiRegs.bmidtp);
+ paramIn(cp, section, base + ".selectBit", selectBit);
select(selectBit);
}