/*
- * Copyright (c) 2012 ARM Limited
+ * Copyright (c) 2012, 2015 ARM Limited
* All rights reserved.
*
* The license below extends only to copyright in the software and shall
* Nathan Binkert
*/
+#include "dev/io_device.hh"
+
#include "base/trace.hh"
#include "debug/AddrRanges.hh"
-#include "dev/io_device.hh"
#include "sim/system.hh"
-PioPort::PioPort(PioDevice *dev)
- : SimpleTimingPort(dev->name() + ".pio", dev), device(dev)
-{
-}
-
-Tick
-PioPort::recvAtomic(PacketPtr pkt)
-{
- // @todo: We need to pay for this and not just zero it out
- pkt->headerDelay = pkt->payloadDelay = 0;
-
- const Tick delay(pkt->isRead() ? device->read(pkt) : device->write(pkt));
- assert(pkt->isResponse() || pkt->isError());
- return delay;
-}
-
-AddrRangeList
-PioPort::getAddrRanges() const
-{
- return device->getAddrRanges();
-}
-
PioDevice::PioDevice(const Params *p)
- : MemObject(p), sys(p->system), pioPort(this)
+ : ClockedObject(p), sys(p->system), pioPort(this)
{}
PioDevice::~PioDevice()
pioPort.sendRangeChange();
}
-BaseSlavePort &
-PioDevice::getSlavePort(const std::string &if_name, PortID idx)
+Port &
+PioDevice::getPort(const std::string &if_name, PortID idx)
{
if (if_name == "pio") {
return pioPort;
}
- return MemObject::getSlavePort(if_name, idx);
+ return ClockedObject::getPort(if_name, idx);
}
BasicPioDevice::BasicPioDevice(const Params *p, Addr size)