diff options
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/io_device.cc | 4 | ||||
-rw-r--r-- | src/dev/io_device.hh | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/dev/io_device.cc b/src/dev/io_device.cc index 840343dce..b1f6f5e02 100644 --- a/src/dev/io_device.cc +++ b/src/dev/io_device.cc @@ -116,6 +116,7 @@ BasicPioDevice::getAddrRanges() DmaPort::DmaPort(MemObject *dev, System *s, Tick min_backoff, Tick max_backoff, bool recv_snoops) : Port(dev->name() + "-dmaport", dev), device(dev), sys(s), + masterId(s->getMasterId(dev->name())), pendingCount(0), actionInProgress(0), drainEvent(NULL), backoffTime(0), minBackoffDelay(min_backoff), maxBackoffDelay(max_backoff), inRetry(false), recvSnoops(recv_snoops), @@ -187,7 +188,6 @@ DmaDevice::DmaDevice(const Params *p) : PioDevice(p), dmaPort(NULL) { } - unsigned int DmaDevice::drain(Event *de) { @@ -254,7 +254,7 @@ DmaPort::dmaAction(Packet::Command cmd, Addr addr, int size, Event *event, event ? event->scheduled() : -1 ); for (ChunkGenerator gen(addr, size, peerBlockSize()); !gen.done(); gen.next()) { - Request *req = new Request(gen.addr(), gen.size(), flag); + Request *req = new Request(gen.addr(), gen.size(), flag, masterId); PacketPtr pkt = new Packet(req, cmd, Packet::Broadcast); // Increment the data pointer on a write diff --git a/src/dev/io_device.hh b/src/dev/io_device.hh index ea2364f33..c5f6958ee 100644 --- a/src/dev/io_device.hh +++ b/src/dev/io_device.hh @@ -104,6 +104,9 @@ class DmaPort : public Port * we are currently operating in. */ System *sys; + /** Id for all requests */ + MasterID masterId; + /** Number of outstanding packets the dma port has. */ int pendingCount; |