gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
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...
 
uint8_t vmid
 
bool isHyp
 
TLB::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 secureLookup
 Helper variables used to implement hierarchical access permissions when the long-desc. More...
 
bool rwTable
 
bool userTable
 
bool xnTable
 
bool pxnTable
 
bool stage2Req
 Flag indicating if a second stage of lookup is required. More...
 
bool doingStage2
 Indicates whether the translation has been passed onto the second stage mmu, and no more work is required from the first stage. More...
 
TLB::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...
 
BaseTLB::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 685 of file table_walker.hh.

Constructor & Destructor Documentation

TableWalker::WalkerState::WalkerState ( )

Definition at line 127 of file table_walker.cc.

Member Function Documentation

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

Definition at line 810 of file table_walker.hh.

References SimObject::name(), and tableWalker.

Member Data Documentation

union { ... }

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

bool ArmISA::TableWalker::WalkerState::aarch64
uint16_t ArmISA::TableWalker::WalkerState::asid

ASID that we're servicing the request under.

Definition at line 704 of file table_walker.hh.

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

CPSR ArmISA::TableWalker::WalkerState::cpsr

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

Definition at line 727 of file table_walker.hh.

bool ArmISA::TableWalker::WalkerState::delayed
bool ArmISA::TableWalker::WalkerState::doingStage2

Indicates whether the translation has been passed onto the second stage mmu, and no more work is required from the first stage.

Definition at line 767 of file table_walker.hh.

Referenced by ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptorWrapper(), and ArmISA::TableWalker::walk().

ExceptionLevel ArmISA::TableWalker::WalkerState::el
Fault ArmISA::TableWalker::WalkerState::fault
bool ArmISA::TableWalker::WalkerState::functional

If the atomic mode should be functional.

Definition at line 776 of file table_walker.hh.

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

HCR ArmISA::TableWalker::WalkerState::hcr

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

Definition at line 739 of file table_walker.hh.

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

HTCR ArmISA::TableWalker::WalkerState::htcr

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

Definition at line 736 of file table_walker.hh.

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

bool ArmISA::TableWalker::WalkerState::isFetch
bool ArmISA::TableWalker::WalkerState::isHyp
bool ArmISA::TableWalker::WalkerState::isSecure
bool ArmISA::TableWalker::WalkerState::isWrite
L1Descriptor ArmISA::TableWalker::WalkerState::l1Desc
L2Descriptor ArmISA::TableWalker::WalkerState::l2Desc
unsigned ArmISA::TableWalker::WalkerState::levels

Page entries walked during service (for stats)

Definition at line 801 of file table_walker.hh.

LongDescriptor ArmISA::TableWalker::WalkerState::longDesc

Long-format descriptor (LPAE and AArch64)

Definition at line 789 of file table_walker.hh.

Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::doLongDescriptorWrapper(), and ArmISA::TableWalker::processWalkLPAE().

BaseTLB::Mode ArmISA::TableWalker::WalkerState::mode
int ArmISA::TableWalker::WalkerState::physAddrRange

Current physical address range in bits.

Definition at line 698 of file table_walker.hh.

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

bool ArmISA::TableWalker::WalkerState::pxnTable
RequestPtr ArmISA::TableWalker::WalkerState::req
bool ArmISA::TableWalker::WalkerState::rwTable
SCR ArmISA::TableWalker::WalkerState::scr

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

Definition at line 724 of file table_walker.hh.

SCTLR ArmISA::TableWalker::WalkerState::sctlr
bool ArmISA::TableWalker::WalkerState::secureLookup

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

format is used (LPAE only)

Definition at line 755 of file table_walker.hh.

Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::LongDescriptor::global(), ArmISA::TableWalker::LongDescriptor::secure(), and ArmISA::TableWalker::walk().

bool ArmISA::TableWalker::WalkerState::stage2Req

Flag indicating if a second stage of lookup is required.

Definition at line 762 of file table_walker.hh.

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

TLB::Translation* ArmISA::TableWalker::WalkerState::stage2Tran
Tick ArmISA::TableWalker::WalkerState::startTime
TableWalker* ArmISA::TableWalker::WalkerState::tableWalker

Definition at line 795 of file table_walker.hh.

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

ThreadContext* ArmISA::TableWalker::WalkerState::tc
TCR ArmISA::TableWalker::WalkerState::tcr
bool ArmISA::TableWalker::WalkerState::timing
TLB::Translation* ArmISA::TableWalker::WalkerState::transState
TLB::ArmTranslationType ArmISA::TableWalker::WalkerState::tranType

The translation type that has been requested.

Definition at line 782 of file table_walker.hh.

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

TTBCR ArmISA::TableWalker::WalkerState::ttbcr
bool ArmISA::TableWalker::WalkerState::userTable
Addr ArmISA::TableWalker::WalkerState::vaddr
Addr ArmISA::TableWalker::WalkerState::vaddr_tainted
uint8_t ArmISA::TableWalker::WalkerState::vmid
VTCR_t ArmISA::TableWalker::WalkerState::vtcr

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

Definition at line 742 of file table_walker.hh.

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

bool ArmISA::TableWalker::WalkerState::xnTable

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

Generated on Fri Jun 9 2017 13:04:30 for gem5 by doxygen 1.8.6