diff -r 00f68b7fa9c5 -r e13fcf4f00d3 src/dev/io_device.hh --- a/src/dev/io_device.hh Fri Aug 13 11:58:20 2010 -0500 +++ b/src/dev/io_device.hh Fri Aug 13 11:58:44 2010 -0500 @@ -155,7 +155,7 @@ 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; } diff -r 00f68b7fa9c5 -r e13fcf4f00d3 src/dev/io_device.cc --- a/src/dev/io_device.cc Fri Aug 13 11:58:20 2010 -0500 +++ b/src/dev/io_device.cc Fri Aug 13 11:58:44 2010 -0500 @@ -221,18 +221,19 @@ 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); DmaReqState *reqState = new DmaReqState(event, this, size, delay); - DPRINTF(DMA, "Starting DMA for addr: %#x size: %d sched: %d\n", addr, size, - event->scheduled()); + //DPRINTF(DMA, "Starting DMA for addr: %#x size: %d sched: %d\n", addr, size, + // event->scheduled()); + DPRINTF(DMA, "Starting DMA for addr: %#x size: %d\n", addr, size); 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