p->configSpace->registerDevice(p->deviceNum, p->functionNum, this);
}
+Fault *
+PciDev::read(MemReqPtr &req, uint8_t *data)
+{ return NoFault; }
+
+Fault *
+PciDev::write(MemReqPtr &req, const uint8_t *data)
+{ return NoFault; }
+
+Fault *
+PciDev::readBar0(MemReqPtr &req, Addr daddr, uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::readBar1(MemReqPtr &req, Addr daddr, uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::readBar2(MemReqPtr &req, Addr daddr, uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::readBar3(MemReqPtr &req, Addr daddr, uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::readBar4(MemReqPtr &req, Addr daddr, uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::readBar5(MemReqPtr &req, Addr daddr, uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::writeBar0(MemReqPtr &req, Addr daddr, const uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::writeBar1(MemReqPtr &req, Addr daddr, const uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::writeBar2(MemReqPtr &req, Addr daddr, const uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::writeBar3(MemReqPtr &req, Addr daddr, const uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::writeBar4(MemReqPtr &req, Addr daddr, const uint8_t *data)
+{ panic("not implemented"); }
+
+Fault *
+PciDev::writeBar5(MemReqPtr &req, Addr daddr, const uint8_t *data)
+{ panic("not implemented"); }
+
void
PciDev::readConfig(int offset, int size, uint8_t *data)
{
case PCI0_ROM_BASE_ADDR:
if (letoh(data32) == 0xfffffffe)
- config.expansionROM = letoh(0xffffffff);
+ config.expansionROM = htole((uint32_t)0xffffffff);
else
config.expansionROM = data32;
break;
void
PciDev::serialize(ostream &os)
{
- SERIALIZE_ARRAY(BARSize, sizeof(BARSize));
- SERIALIZE_ARRAY(BARAddrs, sizeof(BARAddrs));
- SERIALIZE_ARRAY(config.data, sizeof(config.data));
+ SERIALIZE_ARRAY(BARSize, sizeof(BARSize) / sizeof(BARSize[0]));
+ SERIALIZE_ARRAY(BARAddrs, sizeof(BARAddrs) / sizeof(BARAddrs[0]));
+ SERIALIZE_ARRAY(config.data, sizeof(config.data) / sizeof(config.data[0]));
}
void
PciDev::unserialize(Checkpoint *cp, const std::string §ion)
{
- UNSERIALIZE_ARRAY(BARSize, sizeof(BARSize));
- UNSERIALIZE_ARRAY(BARAddrs, sizeof(BARAddrs));
- UNSERIALIZE_ARRAY(config.data, sizeof(config.data));
+ UNSERIALIZE_ARRAY(BARSize, sizeof(BARSize) / sizeof(BARSize[0]));
+ UNSERIALIZE_ARRAY(BARAddrs, sizeof(BARAddrs) / sizeof(BARAddrs[0]));
+ UNSERIALIZE_ARRAY(config.data,
+ sizeof(config.data) / sizeof(config.data[0]));
// Add the MMU mappings for the BARs
for (int i=0; i < 6; i++) {