|
gem5
v21.0.1.0
|
#include <table_walker.hh>
Public Member Functions | |
| void | doL1Descriptor () |
| void | doL2Descriptor () |
| void | doLongDescriptor () |
| WalkerState () | |
| std::string | name () const |
Public Attributes | |
| ThreadContext * | tc |
| 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::Translation * | transState |
| 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... | |
| TLB::Translation * | stage2Tran |
| 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... | |
| TableWalker * | tableWalker |
| Tick | startTime |
| Timestamp for calculating elapsed time in service (for stats) More... | |
| unsigned | levels |
| Page entries walked during service (for stats) More... | |
Definition at line 720 of file table_walker.hh.
| TableWalker::WalkerState::WalkerState | ( | ) |
Definition at line 128 of file table_walker.cc.
| void ArmISA::TableWalker::WalkerState::doL1Descriptor | ( | ) |
| void ArmISA::TableWalker::WalkerState::doL2Descriptor | ( | ) |
| void ArmISA::TableWalker::WalkerState::doLongDescriptor | ( | ) |
|
inline |
Definition at line 846 of file table_walker.hh.
References SimObject::name(), and tableWalker.
| union { ... } |
Cached copy of ttbcr/tcr as it existed when translation began.
| bool ArmISA::TableWalker::WalkerState::aarch64 |
If the access is performed in AArch64 state.
Definition at line 727 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::LongDescriptor::global(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| uint16_t ArmISA::TableWalker::WalkerState::asid |
ASID that we're servicing the request under.
Definition at line 739 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 762 of file table_walker.hh.
| bool ArmISA::TableWalker::WalkerState::delayed |
Whether the response is delayed in timing mode due to additional lookups.
Definition at line 829 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptor(), and ArmISA::TableWalker::doLongDescriptorWrapper().
| ExceptionLevel ArmISA::TableWalker::WalkerState::el |
Current exception level.
Definition at line 730 of file table_walker.hh.
Referenced by ArmISA::TableWalker::LongDescriptor::global(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| Fault ArmISA::TableWalker::WalkerState::fault |
The fault that we are going to return.
Definition at line 747 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::fetchDescriptor(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::functional |
If the atomic mode should be functional.
Definition at line 812 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 774 of file table_walker.hh.
Referenced by ArmISA::TableWalker::processWalkAArch64(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::hpd |
Hierarchical access permission disable.
Definition at line 800 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), and ArmISA::TableWalker::processWalkAArch64().
| HTCR ArmISA::TableWalker::WalkerState::htcr |
Cached copy of the htcr as it existed when translation began.
Definition at line 771 of file table_walker.hh.
Referenced by ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::isFetch |
If the access is a fetch (for execution, and no-exec) must be checked?
Definition at line 783 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::generateLongDescFault(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::isHyp |
Definition at line 741 of file table_walker.hh.
Referenced by ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalkLPAE(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::isSecure |
If the access comes from the secure state.
Definition at line 786 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::LongDescriptor::global(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), ArmISA::TableWalker::processWalkWrapper(), ArmISA::TableWalker::testWalk(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::isUncacheable |
True if table walks are uncacheable (for table descriptors)
Definition at line 789 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkAArch64(), and ArmISA::TableWalker::processWalkLPAE().
| bool ArmISA::TableWalker::WalkerState::isWrite |
If the access is a write.
Definition at line 780 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::generateLongDescFault(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| L1Descriptor ArmISA::TableWalker::WalkerState::l1Desc |
Short-format descriptors.
Definition at line 821 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2Descriptor(), and ArmISA::TableWalker::processWalk().
| L2Descriptor ArmISA::TableWalker::WalkerState::l2Desc |
Definition at line 822 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), and ArmISA::TableWalker::doL2Descriptor().
| unsigned ArmISA::TableWalker::WalkerState::levels |
Page entries walked during service (for stats)
Definition at line 837 of file table_walker.hh.
| LongDescriptor ArmISA::TableWalker::WalkerState::longDesc |
Long-format descriptor (LPAE and AArch64)
Definition at line 825 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::generateLongDescFault(), and ArmISA::TableWalker::processWalkLPAE().
| BaseTLB::Mode ArmISA::TableWalker::WalkerState::mode |
Save mode for use in delayed response.
Definition at line 815 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkWrapper(), ArmISA::TableWalker::testWalk(), and ArmISA::TableWalker::walk().
| int ArmISA::TableWalker::WalkerState::physAddrRange |
Current physical address range in bits.
Definition at line 733 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::pxnTable |
Definition at line 797 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TableWalker::walk().
| RequestPtr ArmISA::TableWalker::WalkerState::req |
Request that is currently being serviced.
Definition at line 736 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::generateLongDescFault(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::rwTable |
Definition at line 794 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TableWalker::walk().
| SCR ArmISA::TableWalker::WalkerState::scr |
Cached copy of the scr as it existed when translation began.
Definition at line 759 of file table_walker.hh.
| SCTLR ArmISA::TableWalker::WalkerState::sctlr |
Cached copy of the sctlr as it existed when translation began.
Definition at line 756 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| 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 793 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::LongDescriptor::global(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::L1Descriptor::secure(), 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 803 of file table_walker.hh.
Referenced by ArmISA::TableWalker::fetchDescriptor(), and ArmISA::TableWalker::walk().
| TLB::Translation* ArmISA::TableWalker::WalkerState::stage2Tran |
A pointer to the stage 2 translation that's in progress.
Definition at line 806 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptorWrapper(), and ArmISA::TableWalker::fetchDescriptor().
| Tick ArmISA::TableWalker::WalkerState::startTime |
Timestamp for calculating elapsed time in service (for stats)
Definition at line 834 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkLPAE(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| TableWalker* ArmISA::TableWalker::WalkerState::tableWalker |
Definition at line 831 of file table_walker.hh.
Referenced by name(), and ArmISA::TableWalker::walk().
| ThreadContext* ArmISA::TableWalker::WalkerState::tc |
Thread context that we're doing the walk for.
Definition at line 724 of file table_walker.hh.
Referenced by ArmISA::TableWalker::checkVAddrSizeFaultAArch64(), ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::fetchDescriptor(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkLPAE(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| TCR ArmISA::TableWalker::WalkerState::tcr |
Definition at line 767 of file table_walker.hh.
Referenced by ArmISA::TableWalker::processWalkAArch64(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::timing |
If the mode is timing or atomic.
Definition at line 809 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::fetchDescriptor(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| TLB::Translation* ArmISA::TableWalker::WalkerState::transState |
Translation state for delayed requests.
Definition at line 744 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| TLB::ArmTranslationType ArmISA::TableWalker::WalkerState::tranType |
The translation type that has been requested.
Definition at line 818 of file table_walker.hh.
Referenced by ArmISA::TableWalker::walk().
| TTBCR ArmISA::TableWalker::WalkerState::ttbcr |
Definition at line 766 of file table_walker.hh.
Referenced by ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::userTable |
Definition at line 795 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TableWalker::walk().
| Addr ArmISA::TableWalker::WalkerState::vaddr |
The virtual address that is being translated with tagging removed.
Definition at line 750 of file table_walker.hh.
Referenced by ArmISA::TableWalker::checkVAddrSizeFaultAArch64(), ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::fetchDescriptor(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkLPAE(), ArmISA::TableWalker::processWalkWrapper(), ArmISA::TableWalker::testWalk(), and ArmISA::TableWalker::walk().
| Addr ArmISA::TableWalker::WalkerState::vaddr_tainted |
The virtual address that is being translated.
Definition at line 753 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doL1Descriptor(), ArmISA::TableWalker::doL1DescriptorWrapper(), ArmISA::TableWalker::doL2Descriptor(), ArmISA::TableWalker::doL2DescriptorWrapper(), ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::doLongDescriptorWrapper(), ArmISA::TableWalker::generateLongDescFault(), ArmISA::TableWalker::processWalk(), ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkLPAE(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| uint8_t ArmISA::TableWalker::WalkerState::vmid |
Definition at line 740 of file table_walker.hh.
Referenced by ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::processWalkWrapper(), and ArmISA::TableWalker::walk().
| VTCR_t ArmISA::TableWalker::WalkerState::vtcr |
Cached copy of the vtcr as it existed when translation began.
Definition at line 777 of file table_walker.hh.
Referenced by ArmISA::TableWalker::processWalkAArch64(), ArmISA::TableWalker::processWalkLPAE(), and ArmISA::TableWalker::walk().
| bool ArmISA::TableWalker::WalkerState::xnTable |
Definition at line 796 of file table_walker.hh.
Referenced by ArmISA::TableWalker::doLongDescriptor(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TableWalker::walk().