gem5 v25.0.0.1
Loading...
Searching...
No Matches
gem5::RiscvISA::Walker::WalkerState Class Reference

#include <pagetable_walker.hh>

Classes

struct  WalkFlags

Public Member Functions

 WalkerState (Walker *_walker, BaseMMU::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false)
void initState (ThreadContext *_tc, BaseMMU::Mode _mode, bool _isTiming=false)
Fault walk ()
Fault startFunctional (Addr &addr, unsigned &logBytes)
bool recvPacket (PacketPtr pkt)
unsigned numInflight () const
bool isRetrying ()
bool wasStarted ()
bool isTiming ()
void retry ()
void squash ()
std::string name () const

Protected Attributes

Walkerwalker
WalkType walkType
ThreadContexttc
RequestPtr req
State state
State nextState
State gstate
State nextgState
int level
int glevel
unsigned inflight
TlbEntry gresult
TlbEntry entry
PacketPtr read
std::vector< PacketPtrwrites
Fault timingFault
BaseMMU::Translationtranslation
BaseMMU::Mode mode
MemAccessInfo memaccess
XlateStage curstage
SATP satp
SATP hgatp
STATUS status
PrivilegeMode pmode
bool functional
bool timing
bool retrying
bool started
bool squashed

Private Types

enum  WalkType { OneStage , TwoStage , GstageOnly }
enum  State { Ready , Waiting , Translate }

Private Member Functions

Fault checkPTEPermissions (PTESv39 pte, WalkFlags &stepWalkFlags, int level)
Addr setupWalk (Addr vaddr)
Fault stepWalk (PacketPtr &write)
Fault stepWalkGStage (PacketPtr &write)
Fault walkGStage (Addr guest_paddr, Addr &host_paddr)
Fault walkOneStage (Addr vaddr)
Fault walkTwoStage (Addr vaddr)
void sendPackets ()
void endWalk ()
Fault pageFault ()
Fault guestToHostPage (Addr vaddr)
PacketPtr createReqPacket (Addr paddr, MemCmd cmd, size_t bytes)

Friends

class Walker

Detailed Description

Definition at line 86 of file pagetable_walker.hh.

Member Enumeration Documentation

◆ State

Enumerator
Ready 
Waiting 
Translate 

Definition at line 106 of file pagetable_walker.hh.

◆ WalkType

Enumerator
OneStage 
TwoStage 
GstageOnly 

Definition at line 99 of file pagetable_walker.hh.

Constructor & Destructor Documentation

◆ WalkerState()

gem5::RiscvISA::Walker::WalkerState::WalkerState ( Walker * _walker,
BaseMMU::Translation * _translation,
const RequestPtr & _req,
bool _isFunctional = false )
inline

Member Function Documentation

◆ checkPTEPermissions()

◆ createReqPacket()

PacketPtr gem5::RiscvISA::Walker::WalkerState::createReqPacket ( Addr paddr,
MemCmd cmd,
size_t bytes )
private

◆ endWalk()

void gem5::RiscvISA::Walker::WalkerState::endWalk ( )
private

Definition at line 1036 of file pagetable_walker.cc.

References nextState, read, and Ready.

Referenced by stepWalk(), and stepWalkGStage().

◆ guestToHostPage()

Fault gem5::RiscvISA::Walker::WalkerState::guestToHostPage ( Addr vaddr)
private

◆ initState()

◆ isRetrying()

bool gem5::RiscvISA::Walker::WalkerState::isRetrying ( )

Definition at line 1199 of file pagetable_walker.cc.

References retrying.

Referenced by gem5::RiscvISA::Walker::recvReqRetry().

◆ isTiming()

bool gem5::RiscvISA::Walker::WalkerState::isTiming ( )

Definition at line 1205 of file pagetable_walker.cc.

References timing.

Referenced by gem5::RiscvISA::Walker::start().

◆ name()

std::string gem5::RiscvISA::Walker::WalkerState::name ( ) const
inline

Definition at line 165 of file pagetable_walker.hh.

References walker.

◆ numInflight()

unsigned gem5::RiscvISA::Walker::WalkerState::numInflight ( ) const

Definition at line 1193 of file pagetable_walker.cc.

References inflight.

Referenced by gem5::RiscvISA::Walker::startWalkWrapper().

◆ pageFault()

Fault gem5::RiscvISA::Walker::WalkerState::pageFault ( )
private

◆ recvPacket()

◆ retry()

void gem5::RiscvISA::Walker::WalkerState::retry ( )

Definition at line 1223 of file pagetable_walker.cc.

References retrying, and sendPackets().

Referenced by gem5::RiscvISA::Walker::recvReqRetry().

◆ sendPackets()

void gem5::RiscvISA::Walker::WalkerState::sendPackets ( )
private

Definition at line 1149 of file pagetable_walker.cc.

References inflight, read, retrying, walker, and writes.

Referenced by recvPacket(), retry(), walkGStage(), walkOneStage(), and walkTwoStage().

◆ setupWalk()

◆ squash()

void gem5::RiscvISA::Walker::WalkerState::squash ( )

Definition at line 1217 of file pagetable_walker.cc.

References squashed.

Referenced by gem5::RiscvISA::Walker::startWalkWrapper().

◆ startFunctional()

Fault gem5::RiscvISA::Walker::WalkerState::startFunctional ( Addr & addr,
unsigned & logBytes )

Definition at line 632 of file pagetable_walker.cc.

References gem5::X86ISA::addr, entry, gem5::RiscvISA::PageShift, and walk().

◆ stepWalk()

◆ stepWalkGStage()

◆ walk()

◆ walkGStage()

◆ walkOneStage()

◆ walkTwoStage()

◆ wasStarted()

bool gem5::RiscvISA::Walker::WalkerState::wasStarted ( )

Definition at line 1211 of file pagetable_walker.cc.

References started.

Referenced by gem5::RiscvISA::Walker::startWalkWrapper().

◆ Walker

friend class Walker
friend

Definition at line 88 of file pagetable_walker.hh.

References Walker.

Referenced by Walker, and WalkerState().

Member Data Documentation

◆ curstage

XlateStage gem5::RiscvISA::Walker::WalkerState::curstage
protected

◆ entry

◆ functional

bool gem5::RiscvISA::Walker::WalkerState::functional
protected

◆ glevel

int gem5::RiscvISA::Walker::WalkerState::glevel
protected

Definition at line 123 of file pagetable_walker.hh.

Referenced by stepWalkGStage(), WalkerState(), and walkGStage().

◆ gresult

TlbEntry gem5::RiscvISA::Walker::WalkerState::gresult
protected

◆ gstate

State gem5::RiscvISA::Walker::WalkerState::gstate
protected

Definition at line 120 of file pagetable_walker.hh.

Referenced by stepWalkGStage(), and walkGStage().

◆ hgatp

SATP gem5::RiscvISA::Walker::WalkerState::hgatp
protected

Definition at line 135 of file pagetable_walker.hh.

Referenced by initState(), and setupWalk().

◆ inflight

unsigned gem5::RiscvISA::Walker::WalkerState::inflight
protected

Definition at line 124 of file pagetable_walker.hh.

Referenced by numInflight(), recvPacket(), sendPackets(), and WalkerState().

◆ level

int gem5::RiscvISA::Walker::WalkerState::level
protected

◆ memaccess

MemAccessInfo gem5::RiscvISA::Walker::WalkerState::memaccess
protected

◆ mode

BaseMMU::Mode gem5::RiscvISA::Walker::WalkerState::mode
protected

◆ nextgState

State gem5::RiscvISA::Walker::WalkerState::nextgState
protected

Definition at line 121 of file pagetable_walker.hh.

Referenced by stepWalkGStage(), and walkGStage().

◆ nextState

State gem5::RiscvISA::Walker::WalkerState::nextState
protected

◆ pmode

PrivilegeMode gem5::RiscvISA::Walker::WalkerState::pmode
protected

Definition at line 137 of file pagetable_walker.hh.

Referenced by initState(), recvPacket(), stepWalk(), and stepWalkGStage().

◆ read

PacketPtr gem5::RiscvISA::Walker::WalkerState::read
protected

◆ req

RequestPtr gem5::RiscvISA::Walker::WalkerState::req
protected

◆ retrying

bool gem5::RiscvISA::Walker::WalkerState::retrying
protected

Definition at line 140 of file pagetable_walker.hh.

Referenced by isRetrying(), retry(), sendPackets(), and WalkerState().

◆ satp

SATP gem5::RiscvISA::Walker::WalkerState::satp
protected

◆ squashed

bool gem5::RiscvISA::Walker::WalkerState::squashed
protected

Definition at line 142 of file pagetable_walker.hh.

Referenced by recvPacket(), squash(), and WalkerState().

◆ started

bool gem5::RiscvISA::Walker::WalkerState::started
protected

Definition at line 141 of file pagetable_walker.hh.

Referenced by initState(), walk(), WalkerState(), and wasStarted().

◆ state

State gem5::RiscvISA::Walker::WalkerState::state
protected

◆ status

STATUS gem5::RiscvISA::Walker::WalkerState::status
protected

Definition at line 136 of file pagetable_walker.hh.

Referenced by initState().

◆ tc

ThreadContext* gem5::RiscvISA::Walker::WalkerState::tc
protected

◆ timing

bool gem5::RiscvISA::Walker::WalkerState::timing
protected

◆ timingFault

Fault gem5::RiscvISA::Walker::WalkerState::timingFault
protected

Definition at line 129 of file pagetable_walker.hh.

Referenced by recvPacket(), walkGStage(), walkOneStage(), and walkTwoStage().

◆ translation

BaseMMU::Translation* gem5::RiscvISA::Walker::WalkerState::translation
protected

◆ walker

◆ walkType

WalkType gem5::RiscvISA::Walker::WalkerState::walkType
protected

Definition at line 115 of file pagetable_walker.hh.

Referenced by stepWalk(), stepWalkGStage(), walk(), and walkGStage().

◆ writes

std::vector<PacketPtr> gem5::RiscvISA::Walker::WalkerState::writes
protected

Definition at line 128 of file pagetable_walker.hh.

Referenced by recvPacket(), and sendPackets().


The documentation for this class was generated from the following files:

Generated on Sat Oct 18 2025 08:07:02 for gem5 by doxygen 1.14.0