35a36
> #include "mem/protocol/RequestStatus.hh"
37c38,41
< #include "mem/ruby/system/RubyPort.hh"
---
> #include "mem/ruby/network/MessageBuffer.hh"
> #include "mem/ruby/system/System.hh"
> #include "mem/mem_object.hh"
> #include "mem/tport.hh"
39a44,45
> class AbstractController;
>
51c57
< class DMASequencer : public RubyPort
---
> class DMASequencer : public MemObject
56a63,95
>
> public:
> class MemSlavePort : public QueuedSlavePort
> {
> private:
> SlavePacketQueue queue;
> bool access_phys_mem;
>
> public:
> MemSlavePort(const std::string &_name, DMASequencer *_port,
> bool _access_phys_mem, PortID id);
> void hitCallback(PacketPtr pkt);
> void evictionCallback(const Address& address);
>
> protected:
> bool recvTimingReq(PacketPtr pkt);
>
> Tick recvAtomic(PacketPtr pkt)
> { panic("DMASequencer::MemSlavePort::recvAtomic() not implemented!\n"); }
>
> void recvFunctional(PacketPtr pkt)
> { panic("DMASequencer::MemSlavePort::recvFunctional() not implemented!\n"); }
>
> AddrRangeList getAddrRanges() const
> { AddrRangeList ranges; return ranges; }
>
> private:
> bool isPhysMemAddress(Addr addr) const;
> };
>
> BaseSlavePort &getSlavePort(const std::string &if_name,
> PortID idx = InvalidPortID);
>
63a103,108
> // Called by the controller to give the sequencer a pointer.
> // A pointer to the controller is needed for atomic support.
> void setController(AbstractController* _cntrl) { m_controller = _cntrl; }
> uint32_t getId() { return m_version; }
> unsigned int drain(DrainManager *dm);
>
71a117,118
> void ruby_hit_callback(PacketPtr pkt);
> void testDrainComplete();
72a120,130
> /**
> * Called by the PIO port when receiving a timing response.
> *
> * @param pkt Response packet
> * @param master_port_id Port id of the PIO port
> *
> * @return Whether successfully sent
> */
> bool recvTimingResp(PacketPtr pkt, PortID master_port_id);
> unsigned int getChildDrainCount(DrainManager *dm);
>
73a132,144
> uint32_t m_version;
> AbstractController* m_controller;
> MessageBuffer* m_mandatory_q_ptr;
> bool m_usingRubyTester;
>
> MemSlavePort slave_port;
>
> DrainManager *drainManager;
> System* system;
>
> bool retry;
> bool access_phys_mem;
>