sparc: Use big endian packet accessors.
[gem5.git] / src / dev / isa_fake.cc
index 98d3f9d457c87a2670e76ab9bd566726708a75b4..92ee19a97711ff261563432faa5c37eb7cf50a49 100644 (file)
  * Isa Fake Device implementation
  */
 
+#include "dev/isa_fake.hh"
+
 #include "base/trace.hh"
 #include "debug/IsaFake.hh"
-#include "dev/isa_fake.hh"
 #include "mem/packet.hh"
 #include "mem/packet_access.hh"
 #include "sim/system.hh"
 using namespace std;
 
 IsaFake::IsaFake(Params *p)
-    : BasicPioDevice(p)
+    : BasicPioDevice(p, p->ret_bad_addr ? 0 : p->pio_size)
 {
-    if (!p->ret_bad_addr)
-        pioSize = p->pio_size;
-
     retData8 = p->ret_data8;
     retData16 = p->ret_data16;
     retData32 = p->ret_data32;
@@ -56,7 +54,6 @@ IsaFake::IsaFake(Params *p)
 Tick
 IsaFake::read(PacketPtr pkt)
 {
-    pkt->allocate();
     pkt->makeAtomicResponse();
 
     if (params()->warn_access != "")
@@ -113,7 +110,7 @@ IsaFake::write(PacketPtr pkt)
             data = pkt->get<uint8_t>();
             break;
           default:
-            panic("invalid access size!\n");
+            panic("invalid access size: %u\n", pkt->getSize());
         }
         warn("Device %s accessed by write to address %#x size=%d data=%#x\n",
                 name(), pkt->getAddr(), pkt->getSize(), data);