SINIC: Commit old code from ASPLOS 2006 studies.
[gem5.git] / src / dev / pciconfigall.cc
index 6214e48c4a1ba5db3104838b1d9798524b4f5d03..faf0337057e5deed20b98d0163c90a30206cde07 100644 (file)
@@ -44,7 +44,7 @@
 
 using namespace std;
 
-PciConfigAll::PciConfigAll(Params *p)
+PciConfigAll::PciConfigAll(const Params *p)
     : PioDevice(p)
 {
     pioAddr = p->platform->calcConfigAddr(params()->bus,0,0);
@@ -54,7 +54,6 @@ PciConfigAll::PciConfigAll(Params *p)
 Tick
 PciConfigAll::read(PacketPtr pkt)
 {
-    assert(pkt->result == Packet::Unknown);
 
     pkt->allocate();
 
@@ -74,14 +73,13 @@ PciConfigAll::read(PacketPtr pkt)
       default:
         panic("invalid access size(?) for PCI configspace!\n");
     }
-    pkt->result = Packet::Success;
-    return params()->pio_delay;
+    pkt->makeAtomicResponse();
+    return params()->pio_latency;
 }
 
 Tick
 PciConfigAll::write(PacketPtr pkt)
 {
-    assert(pkt->result == Packet::Unknown);
     panic("Attempting to write to config space on non-existant device\n");
     M5_DUMMY_RETURN
 }
@@ -100,14 +98,7 @@ PciConfigAll::addressRanges(AddrRangeList &range_list)
 PciConfigAll *
 PciConfigAllParams::create()
 {
-    PciConfigAll::Params *p = new PciConfigAll::Params;
-    p->pio_delay = pio_latency;
-    p->platform = platform;
-    p->system = system;
-    p->bus = bus;
-    p->size = size;
-
-    return new PciConfigAll(p);
+    return new PciConfigAll(this);
 }
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS