Go to the documentation of this file.
39 #ifndef __ARCH_RISCV_TABLE_WALKER_HH__
40 #define __ARCH_RISCV_TABLE_WALKER_HH__
49 #include "params/RiscvPagetableWalker.hh"
114 const RequestPtr &_req,
bool _isFunctional =
false) :
123 bool _isTiming =
false);
196 using Params = RiscvPagetableWalkerParams;
210 #endif // __ARCH_RISCV_PAGE_TABLE_WALKER_HH__
Walker(const Params ¶ms)
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)
Based on the RISC-V ISA privileged specifications V1.11, there is no implementation guidelines on the...
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...
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.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
RiscvPagetableWalkerParams Params
WalkerSenderState(WalkerState *_senderWalk)
const Params & params() const
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 Tue Jun 22 2021 15:28:25 for gem5 by doxygen 1.8.17