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);
// 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
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);
// Unserialize internal state
UNSERIALIZE_SCALAR(ioEnabled);
UNSERIALIZE_SCALAR(bmEnabled);
+ UNSERIALIZE_SCALAR(bmiAddr);
+ UNSERIALIZE_SCALAR(bmiSize);
}
void
-IdeController::Channel::unserialize(
- Checkpoint *cp, const std::string §ion)
+IdeController::Channel::unserialize(const std::string &base, Checkpoint *cp,
+ const std::string §ion)
{
- 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);
}