gem5  v21.1.0.2
Public Member Functions | Public Attributes | List of all members
gem5::ArmISA::TableWalker::WalkerState Class Reference

#include <table_walker.hh>

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. More...
 
bool aarch64
 If the access is performed in AArch64 state. More...
 
ExceptionLevel el
 Current exception level. More...
 
int physAddrRange
 Current physical address range in bits. More...
 
RequestPtr req
 Request that is currently being serviced. More...
 
uint16_t asid
 ASID that we're servicing the request under. More...
 
vmid_t vmid
 
bool isHyp
 
BaseMMU::TranslationtransState
 Translation state for delayed requests. More...
 
Fault fault
 The fault that we are going to return. More...
 
Addr vaddr
 The virtual address that is being translated with tagging removed. More...
 
Addr vaddr_tainted
 The virtual address that is being translated. More...
 
SCTLR sctlr
 Cached copy of the sctlr as it existed when translation began. More...
 
SCR scr
 Cached copy of the scr as it existed when translation began. More...
 
CPSR cpsr
 Cached copy of the cpsr as it existed when translation began. More...
 
union {
   TTBCR   ttbcr
 
   TCR   tcr
 
}; 
 Cached copy of ttbcr/tcr as it existed when translation began. More...
 
HTCR htcr
 Cached copy of the htcr as it existed when translation began. More...
 
HCR hcr
 Cached copy of the htcr as it existed when translation began. More...
 
VTCR_t vtcr
 Cached copy of the vtcr as it existed when translation began. More...
 
bool isWrite
 If the access is a write. More...
 
bool isFetch
 If the access is a fetch (for execution, and no-exec) must be checked? More...
 
bool isSecure
 If the access comes from the secure state. More...
 
bool isUncacheable
 True if table walks are uncacheable (for table descriptors) More...
 
bool secureLookup
 Helper variables used to implement hierarchical access permissions when the long-desc. More...
 
bool rwTable
 
bool userTable
 
bool xnTable
 
bool pxnTable
 
bool hpd
 Hierarchical access permission disable. More...
 
bool stage2Req
 Flag indicating if a second stage of lookup is required. More...
 
BaseMMU::Translationstage2Tran
 A pointer to the stage 2 translation that's in progress. More...
 
bool timing
 If the mode is timing or atomic. More...
 
bool functional
 If the atomic mode should be functional. More...
 
BaseMMU::Mode mode
 Save mode for use in delayed response. More...
 
TLB::ArmTranslationType tranType
 The translation type that has been requested. More...
 
L1Descriptor l1Desc
 Short-format descriptors. More...
 
L2Descriptor l2Desc
 
LongDescriptor longDesc
 Long-format descriptor (LPAE and AArch64) More...
 
bool delayed
 Whether the response is delayed in timing mode due to additional lookups. More...
 
TableWalkertableWalker
 
Tick startTime
 Timestamp for calculating elapsed time in service (for stats) More...
 
unsigned levels
 Page entries walked during service (for stats) More...
 

Detailed Description

Definition at line 732 of file table_walker.hh.

Constructor & Destructor Documentation

◆ WalkerState()

gem5::TableWalker::WalkerState::WalkerState ( )

Definition at line 120 of file table_walker.cc.

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 859 of file table_walker.hh.

References gem5::Named::name(), and tableWalker.

Member Data Documentation

◆ @5

union { ... }

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

◆ aarch64

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

◆ asid

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

ASID that we're servicing the request under.

Definition at line 751 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::insertTableEntry(), gem5::ArmISA::TableWalker::processWalkWrapper(), and gem5::ArmISA::TableWalker::walk().

◆ cpsr

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

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

Definition at line 774 of file table_walker.hh.

◆ delayed

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

◆ el

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

◆ fault

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

◆ functional

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

If the atomic mode should be functional.

Definition at line 825 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::fetchDescriptor(), and gem5::ArmISA::TableWalker::walk().

◆ hcr

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

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

Definition at line 787 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::processWalkAArch64(), and gem5::ArmISA::TableWalker::walk().

◆ hpd

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

Hierarchical access permission disable.

Definition at line 813 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::doLongDescriptor(), and gem5::ArmISA::TableWalker::processWalkAArch64().

◆ htcr

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

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

Definition at line 784 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::processWalkLPAE(), and gem5::ArmISA::TableWalker::walk().

◆ isFetch

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

◆ isHyp

bool gem5::ArmISA::TableWalker::WalkerState::isHyp

◆ isSecure

bool gem5::ArmISA::TableWalker::WalkerState::isSecure

◆ isUncacheable

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

◆ isWrite

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

◆ l1Desc

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

◆ l2Desc

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

◆ levels

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

Page entries walked during service (for stats)

Definition at line 850 of file table_walker.hh.

◆ longDesc

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

◆ mode

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

◆ physAddrRange

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

Current physical address range in bits.

Definition at line 745 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::doLongDescriptor(), and gem5::ArmISA::TableWalker::walk().

◆ pxnTable

bool gem5::ArmISA::TableWalker::WalkerState::pxnTable

◆ req

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

◆ rwTable

bool gem5::ArmISA::TableWalker::WalkerState::rwTable

◆ scr

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

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

Definition at line 771 of file table_walker.hh.

◆ sctlr

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

◆ secureLookup

bool gem5::ArmISA::TableWalker::WalkerState::secureLookup

◆ stage2Req

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

Flag indicating if a second stage of lookup is required.

Definition at line 816 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::fetchDescriptor(), and gem5::ArmISA::TableWalker::walk().

◆ stage2Tran

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

◆ startTime

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

◆ tableWalker

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

Definition at line 844 of file table_walker.hh.

Referenced by name(), and gem5::ArmISA::TableWalker::walk().

◆ tc

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

◆ tcr

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

◆ timing

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

◆ transState

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

◆ tranType

TLB::ArmTranslationType gem5::ArmISA::TableWalker::WalkerState::tranType

The translation type that has been requested.

Definition at line 831 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::walk().

◆ ttbcr

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

◆ userTable

bool gem5::ArmISA::TableWalker::WalkerState::userTable

◆ vaddr

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

◆ vaddr_tainted

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

◆ vmid

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

◆ vtcr

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

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

Definition at line 790 of file table_walker.hh.

Referenced by gem5::ArmISA::TableWalker::processWalkAArch64(), gem5::ArmISA::TableWalker::processWalkLPAE(), and gem5::ArmISA::TableWalker::walk().

◆ xnTable

bool gem5::ArmISA::TableWalker::WalkerState::xnTable

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

Generated on Tue Sep 21 2021 12:28:42 for gem5 by doxygen 1.8.17