40 #ifndef __ARCH_X86_PAGE_TABLE_WALKER_HH__ 41 #define __ARCH_X86_PAGE_TABLE_WALKER_HH__ 49 #include "params/X86PagetableWalker.hh" 117 const RequestPtr &_req,
bool _isFunctional =
false) :
118 walker(_walker), req(_req), state(Ready),
119 nextState(Ready), inflight(0),
120 translation(_translation),
121 functional(_isFunctional), timing(false),
122 retrying(false), started(false), squashed(false)
126 bool _isTiming =
false);
130 unsigned numInflight()
const;
157 senderWalk(_senderWalk) {}
203 return static_cast<const Params *
>(
_params);
208 funcState(this, NULL, NULL, true), tlb(NULL), sys(params->
system),
209 masterId(sys->getMasterId(this)),
210 numSquashable(params->num_squash_per_cycle),
216 #endif // __ARCH_X86_PAGE_TABLE_WALKER_HH__ A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
Ports are used to interface objects to each other.
bool sendTiming(WalkerState *sendingState, PacketPtr pkt)
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
const PortID InvalidPortID
X86PagetableWalkerParams Params
Walker(const Params *params)
std::shared_ptr< Request > RequestPtr
WalkerState(Walker *_walker, BaseTLB::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false)
Fault start(ThreadContext *_tc, BaseTLB::Translation *translation, const RequestPtr &req, BaseTLB::Mode mode)
WalkerSenderState(WalkerState *_senderWalk)
WalkerPort(const std::string &_name, Walker *_walker)
TLB::Translation * translation
ThreadContext is the external interface to all thread state for anything outside of the CPU...
EventFunctionWrapper startWalkWrapperEvent
Event used to call startWalkWrapper.
Fault startFunctional(ThreadContext *_tc, Addr &addr, unsigned &logBytes, BaseTLB::Mode mode)
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
ClockedObject declaration and implementation.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual const std::string name() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
const Params * params() const
A virtual base opaque structure used to hold state associated with the packet (e.g., an MSHR), specific to a SimObject that sees the packet.
std::vector< PacketPtr > writes
Declaration of the Packet class.
This is exposed globally, independent of the ISA.
const std::string name() const
Return port name (for DPRINTF).
std::list< WalkerState * > currStates
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
const SimObjectParams * _params
Cached copy of the object parameters.
virtual void initState()
initState() is called on each SimObject when not restoring from a checkpoint.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
std::shared_ptr< FaultBase > Fault