#define __DEV_SPARC_MM_DISK_HH__
#include "base/range.hh"
-#include "dev/io_device.hh"
#include "dev/disk_image.hh"
+#include "dev/io_device.hh"
+#include "params/MmDisk.hh"
class MmDisk : public BasicPioDevice
{
DiskImage *image;
off_t curSector;
bool dirty;
- union {
- uint8_t bytes[SectorSize];
- uint32_t words[SectorSize/4];
- };
+ 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);
+
+ virtual void serialize(std::ostream &os);
};
#endif //__DEV_SPARC_MM_DISK_HH__