diff options
author | Kevin Lim <ktlim@umich.edu> | 2006-06-09 12:29:40 -0400 |
---|---|---|
committer | Kevin Lim <ktlim@umich.edu> | 2006-06-09 12:29:40 -0400 |
commit | 4b732e43a61bd87db39a0316105a32dcde9b0fb8 (patch) | |
tree | a67dfe55148f68243a9ffa757a22909e42bf5b76 /src/dev/io_device.hh | |
parent | a7f5f54ff8d7097c60fdf09bf4bbba121aaff5c6 (diff) | |
parent | 6875e8d8391035edf8fc4a8fdb29f614a527b0bc (diff) | |
download | gem5-4b732e43a61bd87db39a0316105a32dcde9b0fb8.tar.xz |
Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge
--HG--
extra : convert_revision : 184b6ff6c11de8f9c9083dcb93754cb451d9cfce
Diffstat (limited to 'src/dev/io_device.hh')
-rw-r--r-- | src/dev/io_device.hh | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/dev/io_device.hh b/src/dev/io_device.hh index 3cb18c9fa..195ca0fb7 100644 --- a/src/dev/io_device.hh +++ b/src/dev/io_device.hh @@ -121,10 +121,22 @@ class PioPort : public Port struct DmaReqState : public Packet::SenderState { + /** Event to call on the device when this transaction (all packets) + * complete. */ Event *completionEvent; + + /** Where we came from for some sanity checking. */ + Port *outPort; + + /** Total number of bytes that this transaction involves. */ + Addr totBytes; + + /** Number of bytes that have been acked for this transaction. */ + Addr numBytes; + bool final; - DmaReqState(Event *ce, bool f) - : completionEvent(ce), final(f) + DmaReqState(Event *ce, Port *p, Addr tb) + : completionEvent(ce), outPort(p), totBytes(tb), numBytes(0) {} }; @@ -155,7 +167,7 @@ class DmaPort : public Port virtual void getDeviceAddressRanges(AddrRangeList &resp, AddrRangeList &snoop) { resp.clear(); snoop.clear(); } - void sendDma(Packet *pkt); + void sendDma(Packet *pkt, bool front = false); public: DmaPort(DmaDevice *dev, Platform *p); |