Go to the documentation of this file.
39 #ifndef __ARCH_RISCV_TABLE_WALKER_HH__
40 #define __ARCH_RISCV_TABLE_WALKER_HH__
48 #include "params/RiscvPagetableWalker.hh"
113 const RequestPtr &_req,
bool _isFunctional =
false) :
122 bool _isTiming =
false);
194 typedef RiscvPagetableWalkerParams
Params;
213 #endif // __ARCH_RISCV_PAGE_TABLE_WALKER_HH__
const Params * params() const
void setupWalk(Addr vaddr)
const PortID InvalidPortID
WalkerPort(const std::string &_name, Walker *_walker)
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
bool sendTiming(WalkerState *sendingState, PacketPtr pkt)
std::shared_ptr< Request > RequestPtr
bool recvTimingResp(PacketPtr pkt)
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
Fault start(ThreadContext *_tc, BaseTLB::Translation *translation, const RequestPtr &req, BaseTLB::Mode mode)
void initState(ThreadContext *_tc, BaseTLB::Mode _mode, bool _isTiming=false)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
A virtual base opaque structure used to hold state associated with the packet (e.g....
WalkerState(Walker *_walker, BaseTLB::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false)
std::shared_ptr< FaultBase > Fault
Ports are used to interface objects to each other.
Fault pageFault(bool present)
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
Walker(const Params *params)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Fault stepWalk(PacketPtr &write)
bool recvPacket(PacketPtr pkt)
virtual const std::string name() const
unsigned numInflight() const
TLB::Translation * translation
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
const SimObjectParams * _params
Cached copy of the object parameters.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
WalkerSenderState(WalkerState *_senderWalk)
RiscvPagetableWalkerParams Params
EventFunctionWrapper startWalkWrapperEvent
Event used to call startWalkWrapper.
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
Fault startFunctional(ThreadContext *_tc, Addr &addr, unsigned &logBytes, BaseTLB::Mode mode)
std::vector< PacketPtr > writes
std::list< WalkerState * > currStates
Fault startFunctional(Addr &addr, unsigned &logBytes)
Generated on Wed Sep 30 2020 14:02:07 for gem5 by doxygen 1.8.17