diff options
author | Gene Wu <Gene.Wu@arm.com> | 2010-08-23 11:18:41 -0500 |
---|---|---|
committer | Gene Wu <Gene.Wu@arm.com> | 2010-08-23 11:18:41 -0500 |
commit | 4b9de4243943086294d7a2d7ab81a134d4fe5a49 (patch) | |
tree | 36f67c7f22967f8ee3ac97885920b741841e17d2 /src/dev | |
parent | aa601750f8161fcd60b1083067d5bcd5e48a7ccc (diff) | |
download | gem5-4b9de4243943086294d7a2d7ab81a134d4fe5a49.tar.xz |
Devices: Allow a device to specify that a request is uncachable.
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/io_device.cc | 6 | ||||
-rw-r--r-- | src/dev/io_device.hh | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/dev/io_device.cc b/src/dev/io_device.cc index b3054a6ee..5bb981c66 100644 --- a/src/dev/io_device.cc +++ b/src/dev/io_device.cc @@ -221,7 +221,7 @@ DmaPort::recvRetry() void DmaPort::dmaAction(Packet::Command cmd, Addr addr, int size, Event *event, - uint8_t *data, Tick delay) + uint8_t *data, Tick delay, Request::Flags flag) { assert(device->getState() == SimObject::Running); @@ -229,10 +229,10 @@ DmaPort::dmaAction(Packet::Command cmd, Addr addr, int size, Event *event, DPRINTF(DMA, "Starting DMA for addr: %#x size: %d sched: %d\n", addr, size, - event->scheduled()); + event ? event->scheduled() : -1 ); for (ChunkGenerator gen(addr, size, peerBlockSize()); !gen.done(); gen.next()) { - Request *req = new Request(gen.addr(), gen.size(), 0); + Request *req = new Request(gen.addr(), gen.size(), flag); 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 9ed287589..bc6f1d4f7 100644 --- a/src/dev/io_device.hh +++ b/src/dev/io_device.hh @@ -155,7 +155,7 @@ class DmaPort : public Port DmaPort(MemObject *dev, System *s, Tick min_backoff, Tick max_backoff); void dmaAction(Packet::Command cmd, Addr addr, int size, Event *event, - uint8_t *data, Tick delay); + uint8_t *data, Tick delay, Request::Flags flag = 0); bool dmaPending() { return pendingCount > 0; } |