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

Walker * walker
WalkType walkType
ThreadContext * tc
RequestPtr req
State state
State nextState
State gstate
State nextgState
int level
int glevel
unsigned inflight
TlbEntry gresult
TlbEntry entry
PacketPtr read
std::vector< PacketPtr > writes
Fault timingFault
BaseMMU::Translation * translation
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