48 #ifndef __DEV_PCI_COPY_ENGINE_HH__
49 #define __DEV_PCI_COPY_ENGINE_HH__
57 #include "params/CopyEngine.hh"
102 {
panic(
"CopyEngineChannel has no I/O access\n");}
104 {
panic(
"CopyEngineChannel has no I/O access\n"); }
170 inline void anQ(
const char *
s, uint64_t
id,
int size = 1)
173 "CopyEngine", s,
id, NULL,
size);
211 #endif //__DEV_PCI_COPY_ENGINE_HH__
void anBegin(const char *s)
void hwDq(flags f, System *sys, uint64_t frame, std::string sm, std::string q, uint64_t qid, System *q_sys=NULL, int32_t count=1)
const Params * params() const
const PortID InvalidPortID
void fetchDescriptor(Addr address)
DrainState
Object drain/handover states.
PCI device, base implementation is only config space.
void hwQ(flags f, System *sys, uint64_t frame, std::string sm, std::string q, uint64_t qid, System *q_sys=NULL, int32_t count=1)
void channelWrite(PacketPtr pkt, Addr daddr, int size)
EventWrapper< CopyEngineChannel,&CopyEngineChannel::fetchAddrComplete > addrCompleteEvent
void anQ(const char *s, uint64_t id, int size=1)
void serialize(CheckpointOut &cp) const override
Serialize an object.
A vector of scalar stats.
virtual Tick read(PacketPtr pkt)
void serialize(CheckpointOut &cp) const override
Serialize an object.
void writeCompletionStatus()
void hwWe(flags f, System *sys, uint64_t frame, std::string sm, std::string q, uint64_t qid, System *q_sys=NULL, int32_t count=1)
void restartStateMachine()
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Declaration of Statistics objects.
void hwBegin(flags f, System *sys, uint64_t frame, std::string sm, std::string st)
BaseMasterPort & getMasterPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a master port with a given name and index.
Interface for objects that might require draining before checkpointing.
void writeCopyBytesComplete()
void continueProcessing()
virtual Tick write(PacketPtr pkt)
EventWrapper< CopyEngineChannel,&CopyEngineChannel::fetchDescComplete > fetchCompleteEvent
Stats::Vector copiesProcessed
std::string csprintf(const char *format, const Args &...args)
uint64_t Tick
Tick count type.
void channelRead(PacketPtr pkt, Addr daddr, int size)
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::vector< CopyEngineChannel * > chan
CopyEngineReg::ChanRegs cr
EventWrapper< CopyEngineChannel,&CopyEngineChannel::writeCopyBytesComplete > writeCompleteEvent
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
Basic support for object serialization.
CopyEngineReg::DmaDesc * curDmaDesc
void regStats() override
Register statistics for this object.
void writeStatusComplete()
EventWrapper< CopyEngineChannel,&CopyEngineChannel::readCopyBytesComplete > readCompleteEvent
CopyEngineChannel(CopyEngine *_ce, int cid)
void drainResume() override
Resume execution after a successful drain.
uint64_t completionDataReg
virtual const std::string name() const
std::ostream CheckpointOut
A BaseMasterPort is a protocol-agnostic master port, responsible only for the structural connection t...
BaseMasterPort & getMasterPort()
void readCopyBytesComplete()
Stats::Vector bytesCopied
const SimObjectParams * _params
Cached copy of the object parameters.
EventWrapper< CopyEngineChannel,&CopyEngineChannel::writeStatusComplete > statusCompleteEvent
virtual ~CopyEngineChannel()
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
CopyEngine(const Params *params)
void unserialize(CheckpointIn &cp) override
Unserialize an object.
DrainState drain() override
Notify an object that it needs to drain its state.
void fetchNextAddr(Addr address)