gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ArmISA::TableWalker::WalkerState Class Reference

#include <table_walker.hh>

Classes

struct  LongDescData
 Helper variables used to implement hierarchical access permissions when the long-desc. More...
 

Public Member Functions

void doL1Descriptor ()
 
void doL2Descriptor ()
 
void doLongDescriptor ()
 
 WalkerState ()
 
std::string name () const
 

Public Attributes

ThreadContexttc
 Thread context that we're doing the walk for.
 
bool aarch64
 If the access is performed in AArch64 state.
 
ExceptionLevel el
 Current exception level.
 
TranslationRegime regime
 Current translation regime.
 
int physAddrRange
 Current physical address range in bits.
 
RequestPtr req
 Request that is currently being serviced.
 
TlbEntry walkEntry
 Initial walk entry allowing to skip lookup levels.
 
uint16_t asid
 ASID that we're servicing the request under.
 
vmid_t vmid
 
BaseMMU::TranslationtransState
 Translation state for delayed requests.
 
Fault fault
 The fault that we are going to return.
 
Addr vaddr
 The virtual address that is being translated with tagging removed.
 
Addr vaddr_tainted
 The virtual address that is being translated.
 
SCTLR sctlr
 Cached copy of the sctlr as it existed when translation began.
 
SCR scr
 Cached copy of the scr as it existed when translation began.
 
CPSR cpsr
 Cached copy of the cpsr as it existed when translation began.
 
union { 
 
   TTBCR   ttbcr 
 
   TCR   tcr 
 
};  
 Cached copy of ttbcr/tcr as it existed when translation began.
 
HTCR htcr
 Cached copy of the htcr as it existed when translation began.
 
HCR hcr
 Cached copy of the htcr as it existed when translation began.
 
VTCR_t vtcr
 Cached copy of the vtcr as it existed when translation began.
 
bool isWrite
 If the access is a write.
 
bool isFetch
 If the access is a fetch (for execution, and no-exec) must be checked?
 
SecurityState ss
 Security State of the access.
 
bool secureLookup = false
 Whether lookups should be treated as using the secure state.
 
PASpace ipaSpace
 IPA space (Secure vs NonSecure); stage2 only.
 
bool isUncacheable
 True if table walks are uncacheable (for table descriptors)
 
std::optional< LongDescDatalongDescData
 
bool hpd
 Hierarchical access permission disable.
 
uint8_t sh
 
uint8_t irgn
 
uint8_t orgn
 
bool stage2Req
 Flag indicating if a second stage of lookup is required.
 
BaseMMU::Translationstage2Tran
 A pointer to the stage 2 translation that's in progress.
 
bool timing
 If the mode is timing or atomic.
 
bool functional
 If the atomic mode should be functional.
 
BaseMMU::Mode mode
 Save mode for use in delayed response.
 
MMU::ArmTranslationType tranType
 The translation type that has been requested.
 
L1Descriptor l1Desc
 Short-format descriptors.
 
L2Descriptor l2Desc
 
LongDescriptor longDesc
 Long-format descriptor (LPAE and AArch64)
 
bool delayed
 Whether the response is delayed in timing mode due to additional lookups.
 
TableWalkertableWalker
 
Tick startTime
 Timestamp for calculating elapsed time in service (for stats)
 
unsigned levels
 Page entries walked during service (for stats)
 

Detailed Description

Definition at line 847 of file table_walker.hh.

Constructor & Destructor Documentation

◆ WalkerState()

Member Function Documentation

◆ doL1Descriptor()

void gem5::ArmISA::TableWalker::WalkerState::doL1Descriptor ( )

◆ doL2Descriptor()

void gem5::ArmISA::TableWalker::WalkerState::doL2Descriptor ( )

◆ doLongDescriptor()

void gem5::ArmISA::TableWalker::WalkerState::doLongDescriptor ( )

◆ name()

std::string gem5::ArmISA::TableWalker::WalkerState::name ( ) const
inline

Definition at line 995 of file table_walker.hh.

References tableWalker.

Member Data Documentation

◆ [union]

Cached copy of ttbcr/tcr as it existed when translation began.

◆ aarch64

bool gem5::ArmISA::TableWalker::WalkerState::aarch64

If the access is performed in AArch64 state.

Definition at line 854 of file table_walker.hh.

Referenced by WalkerState().

◆ asid

uint16_t gem5::ArmISA::TableWalker::WalkerState::asid

ASID that we're servicing the request under.

Definition at line 872 of file table_walker.hh.

Referenced by WalkerState().

◆ cpsr

CPSR gem5::ArmISA::TableWalker::WalkerState::cpsr

Cached copy of the cpsr as it existed when translation began.

Definition at line 894 of file table_walker.hh.

Referenced by WalkerState().

◆ delayed

bool gem5::ArmISA::TableWalker::WalkerState::delayed

Whether the response is delayed in timing mode due to additional lookups.

Definition at line 978 of file table_walker.hh.

Referenced by WalkerState().

◆ el

ExceptionLevel gem5::ArmISA::TableWalker::WalkerState::el

Current exception level.

Definition at line 857 of file table_walker.hh.

◆ fault

Fault gem5::ArmISA::TableWalker::WalkerState::fault

The fault that we are going to return.

Definition at line 879 of file table_walker.hh.

◆ functional

bool gem5::ArmISA::TableWalker::WalkerState::functional

If the atomic mode should be functional.

Definition at line 961 of file table_walker.hh.

Referenced by WalkerState().

◆ hcr

HCR gem5::ArmISA::TableWalker::WalkerState::hcr

Cached copy of the htcr as it existed when translation began.

Definition at line 907 of file table_walker.hh.

Referenced by WalkerState().

◆ hpd

bool gem5::ArmISA::TableWalker::WalkerState::hpd

Hierarchical access permission disable.

Definition at line 945 of file table_walker.hh.

Referenced by WalkerState().

◆ htcr

HTCR gem5::ArmISA::TableWalker::WalkerState::htcr

Cached copy of the htcr as it existed when translation began.

Definition at line 904 of file table_walker.hh.

Referenced by WalkerState().

◆ ipaSpace

PASpace gem5::ArmISA::TableWalker::WalkerState::ipaSpace

IPA space (Secure vs NonSecure); stage2 only.

This depends on whether the stage1 translation targeted a secure or non-secure IPA space

Definition at line 928 of file table_walker.hh.

◆ irgn

uint8_t gem5::ArmISA::TableWalker::WalkerState::irgn

Definition at line 948 of file table_walker.hh.

Referenced by WalkerState().

◆ isFetch

bool gem5::ArmISA::TableWalker::WalkerState::isFetch

If the access is a fetch (for execution, and no-exec) must be checked?

Definition at line 916 of file table_walker.hh.

Referenced by WalkerState().

◆ isUncacheable

bool gem5::ArmISA::TableWalker::WalkerState::isUncacheable

True if table walks are uncacheable (for table descriptors)

Definition at line 931 of file table_walker.hh.

Referenced by WalkerState().

◆ isWrite

bool gem5::ArmISA::TableWalker::WalkerState::isWrite

If the access is a write.

Definition at line 913 of file table_walker.hh.

Referenced by WalkerState().

◆ l1Desc

L1Descriptor gem5::ArmISA::TableWalker::WalkerState::l1Desc

Short-format descriptors.

Definition at line 970 of file table_walker.hh.

Referenced by WalkerState().

◆ l2Desc

L2Descriptor gem5::ArmISA::TableWalker::WalkerState::l2Desc

Definition at line 971 of file table_walker.hh.

Referenced by WalkerState().

◆ levels

unsigned gem5::ArmISA::TableWalker::WalkerState::levels

Page entries walked during service (for stats)

Definition at line 986 of file table_walker.hh.

◆ longDesc

LongDescriptor gem5::ArmISA::TableWalker::WalkerState::longDesc

Long-format descriptor (LPAE and AArch64)

Definition at line 974 of file table_walker.hh.

◆ longDescData

std::optional<LongDescData> gem5::ArmISA::TableWalker::WalkerState::longDescData

Definition at line 942 of file table_walker.hh.

Referenced by WalkerState().

◆ mode

BaseMMU::Mode gem5::ArmISA::TableWalker::WalkerState::mode

Save mode for use in delayed response.

Definition at line 964 of file table_walker.hh.

Referenced by WalkerState().

◆ orgn

uint8_t gem5::ArmISA::TableWalker::WalkerState::orgn

Definition at line 949 of file table_walker.hh.

Referenced by WalkerState().

◆ physAddrRange

int gem5::ArmISA::TableWalker::WalkerState::physAddrRange

Current physical address range in bits.

Definition at line 863 of file table_walker.hh.

Referenced by WalkerState().

◆ regime

TranslationRegime gem5::ArmISA::TableWalker::WalkerState::regime

Current translation regime.

Definition at line 860 of file table_walker.hh.

Referenced by WalkerState().

◆ req

RequestPtr gem5::ArmISA::TableWalker::WalkerState::req

Request that is currently being serviced.

Definition at line 866 of file table_walker.hh.

Referenced by WalkerState().

◆ scr

SCR gem5::ArmISA::TableWalker::WalkerState::scr

Cached copy of the scr as it existed when translation began.

Definition at line 891 of file table_walker.hh.

Referenced by WalkerState().

◆ sctlr

SCTLR gem5::ArmISA::TableWalker::WalkerState::sctlr

Cached copy of the sctlr as it existed when translation began.

Definition at line 888 of file table_walker.hh.

Referenced by WalkerState().

◆ secureLookup

bool gem5::ArmISA::TableWalker::WalkerState::secureLookup = false

Whether lookups should be treated as using the secure state.

This is usually the same as isSecure, but can be set to false by the long descriptor table attributes.

Definition at line 923 of file table_walker.hh.

◆ sh

uint8_t gem5::ArmISA::TableWalker::WalkerState::sh

Definition at line 947 of file table_walker.hh.

Referenced by WalkerState().

◆ ss

SecurityState gem5::ArmISA::TableWalker::WalkerState::ss

Security State of the access.

Definition at line 919 of file table_walker.hh.

Referenced by WalkerState().

◆ stage2Req

bool gem5::ArmISA::TableWalker::WalkerState::stage2Req

Flag indicating if a second stage of lookup is required.

Definition at line 952 of file table_walker.hh.

Referenced by WalkerState().

◆ stage2Tran

BaseMMU::Translation* gem5::ArmISA::TableWalker::WalkerState::stage2Tran

A pointer to the stage 2 translation that's in progress.

Definition at line 955 of file table_walker.hh.

Referenced by WalkerState().

◆ startTime

Tick gem5::ArmISA::TableWalker::WalkerState::startTime

Timestamp for calculating elapsed time in service (for stats)

Definition at line 983 of file table_walker.hh.

◆ tableWalker

TableWalker* gem5::ArmISA::TableWalker::WalkerState::tableWalker

Definition at line 980 of file table_walker.hh.

Referenced by name(), and WalkerState().

◆ tc

ThreadContext* gem5::ArmISA::TableWalker::WalkerState::tc

Thread context that we're doing the walk for.

Definition at line 851 of file table_walker.hh.

Referenced by WalkerState().

◆ tcr

TCR gem5::ArmISA::TableWalker::WalkerState::tcr

Definition at line 900 of file table_walker.hh.

Referenced by WalkerState().

◆ timing

bool gem5::ArmISA::TableWalker::WalkerState::timing

If the mode is timing or atomic.

Definition at line 958 of file table_walker.hh.

Referenced by WalkerState().

◆ transState

BaseMMU::Translation* gem5::ArmISA::TableWalker::WalkerState::transState

Translation state for delayed requests.

Definition at line 876 of file table_walker.hh.

Referenced by WalkerState().

◆ tranType

MMU::ArmTranslationType gem5::ArmISA::TableWalker::WalkerState::tranType

The translation type that has been requested.

Definition at line 967 of file table_walker.hh.

Referenced by WalkerState().

◆ ttbcr

TTBCR gem5::ArmISA::TableWalker::WalkerState::ttbcr

Definition at line 899 of file table_walker.hh.

◆ vaddr

Addr gem5::ArmISA::TableWalker::WalkerState::vaddr

The virtual address that is being translated with tagging removed.

Definition at line 882 of file table_walker.hh.

Referenced by WalkerState().

◆ vaddr_tainted

Addr gem5::ArmISA::TableWalker::WalkerState::vaddr_tainted

The virtual address that is being translated.

Definition at line 885 of file table_walker.hh.

Referenced by WalkerState().

◆ vmid

vmid_t gem5::ArmISA::TableWalker::WalkerState::vmid

Definition at line 873 of file table_walker.hh.

Referenced by WalkerState().

◆ vtcr

VTCR_t gem5::ArmISA::TableWalker::WalkerState::vtcr

Cached copy of the vtcr as it existed when translation began.

Definition at line 910 of file table_walker.hh.

Referenced by WalkerState().

◆ walkEntry

TlbEntry gem5::ArmISA::TableWalker::WalkerState::walkEntry

Initial walk entry allowing to skip lookup levels.

Definition at line 869 of file table_walker.hh.


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

Generated on Mon May 26 2025 09:19:30 for gem5 by doxygen 1.13.2