|
gem5 [DEVELOP-FOR-25.1]
|
#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 | |
| ThreadContext * | tc |
| 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::Translation * | transState |
| 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< LongDescData > | longDescData |
| 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::Translation * | stage2Tran |
| 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. | |
| TableWalker * | tableWalker |
| Tick | startTime |
| Timestamp for calculating elapsed time in service (for stats) | |
| unsigned | levels |
| Page entries walked during service (for stats) | |
Definition at line 852 of file table_walker.hh.
| gem5::TableWalker::WalkerState::WalkerState | ( | ) |
Definition at line 128 of file table_walker.cc.
References aarch64, asid, cpsr, delayed, gem5::ArmISA::EL10, functional, hcr, hpd, htcr, irgn, isFetch, isUncacheable, isWrite, l1Desc, l2Desc, longDescData, mode, gem5::ArmISA::NonSecure, orgn, physAddrRange, regime, req, scr, sctlr, sh, ss, stage2Req, stage2Tran, tableWalker, tc, tcr, timing, transState, tranType, vaddr, vaddr_tainted, vmid, and vtcr.
| void gem5::ArmISA::TableWalker::WalkerState::doL1Descriptor | ( | ) |
| void gem5::ArmISA::TableWalker::WalkerState::doL2Descriptor | ( | ) |
| void gem5::ArmISA::TableWalker::WalkerState::doLongDescriptor | ( | ) |
|
inline |
Definition at line 1000 of file table_walker.hh.
References tableWalker.
| union { ... } gem5::ArmISA::TableWalker::WalkerState |
Cached copy of ttbcr/tcr as it existed when translation began.
| bool gem5::ArmISA::TableWalker::WalkerState::aarch64 |
If the access is performed in AArch64 state.
Definition at line 859 of file table_walker.hh.
Referenced by WalkerState().
| uint16_t gem5::ArmISA::TableWalker::WalkerState::asid |
ASID that we're servicing the request under.
Definition at line 877 of file table_walker.hh.
Referenced by WalkerState().
| CPSR gem5::ArmISA::TableWalker::WalkerState::cpsr |
Cached copy of the cpsr as it existed when translation began.
Definition at line 899 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::delayed |
Whether the response is delayed in timing mode due to additional lookups.
Definition at line 983 of file table_walker.hh.
Referenced by WalkerState().
| ExceptionLevel gem5::ArmISA::TableWalker::WalkerState::el |
Current exception level.
Definition at line 862 of file table_walker.hh.
| Fault gem5::ArmISA::TableWalker::WalkerState::fault |
The fault that we are going to return.
Definition at line 884 of file table_walker.hh.
| bool gem5::ArmISA::TableWalker::WalkerState::functional |
If the atomic mode should be functional.
Definition at line 966 of file table_walker.hh.
Referenced by WalkerState().
| HCR gem5::ArmISA::TableWalker::WalkerState::hcr |
Cached copy of the htcr as it existed when translation began.
Definition at line 912 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::hpd |
Hierarchical access permission disable.
Definition at line 950 of file table_walker.hh.
Referenced by WalkerState().
| HTCR gem5::ArmISA::TableWalker::WalkerState::htcr |
Cached copy of the htcr as it existed when translation began.
Definition at line 909 of file table_walker.hh.
Referenced by WalkerState().
| 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 933 of file table_walker.hh.
| uint8_t gem5::ArmISA::TableWalker::WalkerState::irgn |
Definition at line 953 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::isFetch |
If the access is a fetch (for execution, and no-exec) must be checked?
Definition at line 921 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::isUncacheable |
True if table walks are uncacheable (for table descriptors)
Definition at line 936 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::isWrite |
If the access is a write.
Definition at line 918 of file table_walker.hh.
Referenced by WalkerState().
| L1Descriptor gem5::ArmISA::TableWalker::WalkerState::l1Desc |
Short-format descriptors.
Definition at line 975 of file table_walker.hh.
Referenced by WalkerState().
| L2Descriptor gem5::ArmISA::TableWalker::WalkerState::l2Desc |
Definition at line 976 of file table_walker.hh.
Referenced by WalkerState().
| unsigned gem5::ArmISA::TableWalker::WalkerState::levels |
Page entries walked during service (for stats)
Definition at line 991 of file table_walker.hh.
| LongDescriptor gem5::ArmISA::TableWalker::WalkerState::longDesc |
Long-format descriptor (LPAE and AArch64)
Definition at line 979 of file table_walker.hh.
| std::optional<LongDescData> gem5::ArmISA::TableWalker::WalkerState::longDescData |
Definition at line 947 of file table_walker.hh.
Referenced by WalkerState().
| BaseMMU::Mode gem5::ArmISA::TableWalker::WalkerState::mode |
Save mode for use in delayed response.
Definition at line 969 of file table_walker.hh.
Referenced by WalkerState().
| uint8_t gem5::ArmISA::TableWalker::WalkerState::orgn |
Definition at line 954 of file table_walker.hh.
Referenced by WalkerState().
| int gem5::ArmISA::TableWalker::WalkerState::physAddrRange |
Current physical address range in bits.
Definition at line 868 of file table_walker.hh.
Referenced by WalkerState().
| TranslationRegime gem5::ArmISA::TableWalker::WalkerState::regime |
Current translation regime.
Definition at line 865 of file table_walker.hh.
Referenced by WalkerState().
| RequestPtr gem5::ArmISA::TableWalker::WalkerState::req |
Request that is currently being serviced.
Definition at line 871 of file table_walker.hh.
Referenced by WalkerState().
| SCR gem5::ArmISA::TableWalker::WalkerState::scr |
Cached copy of the scr as it existed when translation began.
Definition at line 896 of file table_walker.hh.
Referenced by WalkerState().
| SCTLR gem5::ArmISA::TableWalker::WalkerState::sctlr |
Cached copy of the sctlr as it existed when translation began.
Definition at line 893 of file table_walker.hh.
Referenced by WalkerState().
| 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 928 of file table_walker.hh.
| uint8_t gem5::ArmISA::TableWalker::WalkerState::sh |
Definition at line 952 of file table_walker.hh.
Referenced by WalkerState().
| SecurityState gem5::ArmISA::TableWalker::WalkerState::ss |
Security State of the access.
Definition at line 924 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::stage2Req |
Flag indicating if a second stage of lookup is required.
Definition at line 957 of file table_walker.hh.
Referenced by WalkerState().
| BaseMMU::Translation* gem5::ArmISA::TableWalker::WalkerState::stage2Tran |
A pointer to the stage 2 translation that's in progress.
Definition at line 960 of file table_walker.hh.
Referenced by WalkerState().
| Tick gem5::ArmISA::TableWalker::WalkerState::startTime |
Timestamp for calculating elapsed time in service (for stats)
Definition at line 988 of file table_walker.hh.
| TableWalker* gem5::ArmISA::TableWalker::WalkerState::tableWalker |
Definition at line 985 of file table_walker.hh.
Referenced by name(), and WalkerState().
| ThreadContext* gem5::ArmISA::TableWalker::WalkerState::tc |
Thread context that we're doing the walk for.
Definition at line 856 of file table_walker.hh.
Referenced by WalkerState().
| TCR gem5::ArmISA::TableWalker::WalkerState::tcr |
Definition at line 905 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::timing |
If the mode is timing or atomic.
Definition at line 963 of file table_walker.hh.
Referenced by WalkerState().
| BaseMMU::Translation* gem5::ArmISA::TableWalker::WalkerState::transState |
Translation state for delayed requests.
Definition at line 881 of file table_walker.hh.
Referenced by WalkerState().
| MMU::ArmTranslationType gem5::ArmISA::TableWalker::WalkerState::tranType |
The translation type that has been requested.
Definition at line 972 of file table_walker.hh.
Referenced by WalkerState().
| TTBCR gem5::ArmISA::TableWalker::WalkerState::ttbcr |
Definition at line 904 of file table_walker.hh.
| Addr gem5::ArmISA::TableWalker::WalkerState::vaddr |
The virtual address that is being translated with tagging removed.
Definition at line 887 of file table_walker.hh.
Referenced by WalkerState().
| Addr gem5::ArmISA::TableWalker::WalkerState::vaddr_tainted |
The virtual address that is being translated.
Definition at line 890 of file table_walker.hh.
Referenced by WalkerState().
| vmid_t gem5::ArmISA::TableWalker::WalkerState::vmid |
Definition at line 878 of file table_walker.hh.
Referenced by WalkerState().
| VTCR_t gem5::ArmISA::TableWalker::WalkerState::vtcr |
Cached copy of the vtcr as it existed when translation began.
Definition at line 915 of file table_walker.hh.
Referenced by WalkerState().
| TlbEntry gem5::ArmISA::TableWalker::WalkerState::walkEntry |
Initial walk entry allowing to skip lookup levels.
Definition at line 874 of file table_walker.hh.