Major changes to how SimObjects are created and initialized. Almost all
[gem5.git] / src / dev / sparc / mm_disk.hh
index 30028d2b604cd89aa1ed5c37568c4dea02463ddd..41ec0cc5945f7cb99dfa24a975c5ea83f1ea6f1c 100644 (file)
@@ -39,6 +39,7 @@
 #include "base/range.hh"
 #include "dev/io_device.hh"
 #include "dev/disk_image.hh"
+#include "params/MmDisk.hh"
 
 class MmDisk : public BasicPioDevice
 {
@@ -49,15 +50,14 @@ class MmDisk : public BasicPioDevice
     uint8_t diskData[SectorSize];
 
   public:
-    struct Params : public BasicPioDevice::Params
-    {
-        DiskImage *image;
-    };
-  protected:
-    const Params *params() const { return (const Params*)_params; }
+    typedef MmDiskParams Params;
+    MmDisk(const Params *p);
 
-  public:
-    MmDisk(Params *p);
+    const Params *
+    params() const
+    {
+        return dynamic_cast<const Params *>(_params);
+    }
 
     virtual Tick read(PacketPtr pkt);
     virtual Tick write(PacketPtr pkt);