|
gem5 [DEVELOP-FOR-25.0]
|
Level 2 page table descriptor. More...
#include <table_walker.hh>
Public Member Functions | |
| L2Descriptor () | |
| Default ctor. | |
| L2Descriptor (L1Descriptor &parent) | |
| uint8_t * | getRawPtr () override |
| uint64_t | getRawData () const override |
| std::string | dbgHeader () const override |
| DomainType | domain () const override |
| bool | secure (bool have_security, WalkerState *currState) const override |
| uint8_t | offsetBits () const override |
| bool | invalid () const |
| Is the entry invalid. | |
| bool | large () const |
| What is the size of the mapping? | |
| bool | xn () const override |
| Is execution allowed on this mapping? | |
| bool | global (WalkerState *currState) const override |
| Is the translation global (no asid used)? | |
| uint8_t | ap () const override |
| Three bit access protection flags. | |
| uint8_t | texcb () const override |
| Memory region attributes: ARM DDI 0406B: B3-32. | |
| Addr | pfn () const override |
| Return the physical frame, bits shifted right. | |
| Addr | paddr (Addr va) const |
| Return complete physical address given a VA. | |
| bool | shareable () const override |
| If the section is shareable. | |
| void | setAp0 () |
| Set access flag that this entry has been touched. | |
| bool | dirty () const |
| This entry needs to be written back to memory. | |
Public Member Functions inherited from gem5::ArmISA::TableWalker::DescriptorBase | |
| DescriptorBase () | |
Public Attributes | |
| uint32_t | data |
| The raw bits of the entry. | |
| L1Descriptor * | l1Parent |
| bool | _dirty |
| This entry has been modified (access flag set) and needs to be written back to memory. | |
Public Attributes inherited from gem5::ArmISA::TableWalker::DescriptorBase | |
| LookupLevel | lookupLevel |
| Current lookup level for this descriptor. | |
Level 2 page table descriptor.
Definition at line 278 of file table_walker.hh.
|
inline |
Default ctor.
Definition at line 290 of file table_walker.hh.
References _dirty, data, l1Parent, and gem5::ArmISA::TableWalker::DescriptorBase::lookupLevel.
|
inline |
Definition at line 295 of file table_walker.hh.
References _dirty, data, l1Parent, and gem5::ArmISA::TableWalker::DescriptorBase::lookupLevel.
|
inlineoverridevirtual |
Three bit access protection flags.
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 367 of file table_walker.hh.
References gem5::bits(), and data.
|
inlineoverridevirtual |
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 314 of file table_walker.hh.
|
inline |
This entry needs to be written back to memory.
Definition at line 417 of file table_walker.hh.
References _dirty.
|
inlineoverridevirtual |
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 320 of file table_walker.hh.
References l1Parent.
|
inlineoverridevirtual |
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 308 of file table_walker.hh.
References data.
|
inlineoverridevirtual |
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 302 of file table_walker.hh.
References data.
|
inlineoverridevirtual |
Is the translation global (no asid used)?
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 360 of file table_walker.hh.
References gem5::bits(), gem5::ArmISA::TableWalker::currState, and data.
|
inline |
Is the entry invalid.
Definition at line 339 of file table_walker.hh.
References gem5::bits(), and data.
|
inline |
What is the size of the mapping?
Definition at line 346 of file table_walker.hh.
References gem5::bits(), and data.
Referenced by offsetBits(), paddr(), pfn(), texcb(), and xn().
|
inlineoverridevirtual |
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 332 of file table_walker.hh.
References large().
Return complete physical address given a VA.
Definition at line 390 of file table_walker.hh.
References data, large(), gem5::mbits(), and gem5::ArmISA::va.
|
inlineoverridevirtual |
Return the physical frame, bits shifted right.
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 383 of file table_walker.hh.
References gem5::bits(), data, and large().
|
inlineoverridevirtual |
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 326 of file table_walker.hh.
References gem5::ArmISA::TableWalker::currState, and l1Parent.
|
inline |
Set access flag that this entry has been touched.
Mark the entry as requiring a writeback, in the future.
Definition at line 409 of file table_walker.hh.
|
inlineoverridevirtual |
If the section is shareable.
See texcb() comment.
Reimplemented from gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 400 of file table_walker.hh.
References gem5::bits(), and data.
|
inlineoverridevirtual |
Memory region attributes: ARM DDI 0406B: B3-32.
Reimplemented from gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 374 of file table_walker.hh.
References gem5::bits(), data, and large().
|
inlineoverridevirtual |
Is execution allowed on this mapping?
Implements gem5::ArmISA::TableWalker::DescriptorBase.
Definition at line 353 of file table_walker.hh.
References gem5::bits(), data, and large().
| bool gem5::ArmISA::TableWalker::L2Descriptor::_dirty |
This entry has been modified (access flag set) and needs to be written back to memory.
Definition at line 287 of file table_walker.hh.
Referenced by dirty(), L2Descriptor(), L2Descriptor(), and setAp0().
| uint32_t gem5::ArmISA::TableWalker::L2Descriptor::data |
The raw bits of the entry.
Definition at line 282 of file table_walker.hh.
Referenced by ap(), getRawData(), getRawPtr(), global(), invalid(), L2Descriptor(), L2Descriptor(), large(), paddr(), pfn(), setAp0(), shareable(), texcb(), and xn().
| L1Descriptor* gem5::ArmISA::TableWalker::L2Descriptor::l1Parent |
Definition at line 283 of file table_walker.hh.
Referenced by domain(), L2Descriptor(), L2Descriptor(), and secure().