diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2006-05-26 14:17:33 -0400 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2006-05-26 14:17:33 -0400 |
commit | e533fad711fce66bf2e4a6669baeb8eaf02799e1 (patch) | |
tree | 0fdb6011df3204031dd1dec784649aa3cdac5613 /src/dev/io_device.hh | |
parent | da6a7b1263cf624790f06a5f944366fb113dffc8 (diff) | |
download | gem5-e533fad711fce66bf2e4a6669baeb8eaf02799e1.tar.xz |
Significant rework of Packet class interface:
- new constructor guarantees initialization of most fields
- flags track status of non-guaranteed fields (addr, size, src)
- accessor functions (getAddr() etc.) check status on access
- Command & Result classes are nested in Packet class scope
- Command now built from vector of behavior bits
- string version of Command for tracing
- reinitFromRequest() and makeTimingResponse() encapsulate
common manipulations of existing packets
src/cpu/simple/atomic.cc:
src/cpu/simple/base.cc:
src/cpu/simple/timing.cc:
src/dev/alpha_console.cc:
src/dev/ide_ctrl.cc:
src/dev/io_device.cc:
src/dev/io_device.hh:
src/dev/isa_fake.cc:
src/dev/ns_gige.cc:
src/dev/pciconfigall.cc:
src/dev/sinic.cc:
src/dev/tsunami_cchip.cc:
src/dev/tsunami_io.cc:
src/dev/tsunami_pchip.cc:
src/dev/uart8250.cc:
src/mem/bus.cc:
src/mem/bus.hh:
src/mem/physical.cc:
src/mem/port.cc:
src/mem/port.hh:
src/mem/request.hh:
Update for new Packet interface.
--HG--
extra : convert_revision : 9973d09ea4fa61795f23772a7d3995fa4df5c269
Diffstat (limited to 'src/dev/io_device.hh')
-rw-r--r-- | src/dev/io_device.hh | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/dev/io_device.hh b/src/dev/io_device.hh index 6efa9ef63..74730ad92 100644 --- a/src/dev/io_device.hh +++ b/src/dev/io_device.hh @@ -115,7 +115,7 @@ class PioPort : public Port }; -struct DmaReqState +struct DmaReqState : public Packet::SenderState { Event *completionEvent; bool final; @@ -173,8 +173,8 @@ class DmaPort : public Port public: DmaPort(DmaDevice *dev, Platform *p); - void dmaAction(Command cmd, Addr addr, int size, Event *event, - uint8_t *data = NULL); + void dmaAction(Packet::Command cmd, Addr addr, int size, Event *event, + uint8_t *data = NULL); bool dmaPending() { return pendingCount > 0; } @@ -207,7 +207,7 @@ class PioDevice : public MemObject /** As far as the devices are concerned they only accept atomic transactions * which are converted to either a write or a read. */ Tick recvAtomic(Packet *pkt) - { return pkt->cmd == Read ? this->read(pkt) : this->write(pkt); } + { return pkt->isRead() ? this->read(pkt) : this->write(pkt); } /** Pure virtual function that the device must implement. Called when a read * command is recieved by the port. @@ -305,10 +305,10 @@ class DmaDevice : public PioDevice virtual ~DmaDevice(); void dmaWrite(Addr addr, int size, Event *event, uint8_t *data) - { dmaPort->dmaAction(Write, addr, size, event, data) ; } + { dmaPort->dmaAction(Packet::WriteReq, addr, size, event, data) ; } void dmaRead(Addr addr, int size, Event *event, uint8_t *data = NULL) - { dmaPort->dmaAction(Read, addr, size, event, data); } + { dmaPort->dmaAction(Packet::ReadReq, addr, size, event, data); } bool dmaPending() { return dmaPort->dmaPending(); } |