gem5 [DEVELOP-FOR-25.1]
Loading...
Searching...
No Matches
gem5::ArmISA::TableWalker::L2Descriptor Class Reference

Level 2 page table descriptor. More...

#include <table_walker.hh>

Inheritance diagram for gem5::ArmISA::TableWalker::L2Descriptor:
gem5::ArmISA::TableWalker::DescriptorBase

Public Member Functions

 L2Descriptor ()
 Default ctor.
 L2Descriptor (L1Descriptor &parent)
virtual ~L2Descriptor ()=default
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 ()
virtual ~DescriptorBase ()=default

Public Attributes

uint32_t data
 The raw bits of the entry.
L1Descriptorl1Parent
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.

Detailed Description

Level 2 page table descriptor.

Definition at line 281 of file table_walker.hh.

Constructor & Destructor Documentation

◆ L2Descriptor() [1/2]

gem5::ArmISA::TableWalker::L2Descriptor::L2Descriptor ( )
inline

Default ctor.

Definition at line 293 of file table_walker.hh.

References _dirty, data, l1Parent, and gem5::ArmISA::TableWalker::DescriptorBase::lookupLevel.

◆ L2Descriptor() [2/2]

gem5::ArmISA::TableWalker::L2Descriptor::L2Descriptor ( L1Descriptor & parent)
inline

◆ ~L2Descriptor()

virtual gem5::ArmISA::TableWalker::L2Descriptor::~L2Descriptor ( )
virtualdefault

Member Function Documentation

◆ ap()

uint8_t gem5::ArmISA::TableWalker::L2Descriptor::ap ( ) const
inlineoverridevirtual

Three bit access protection flags.

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 372 of file table_walker.hh.

References gem5::bits(), and data.

◆ dbgHeader()

std::string gem5::ArmISA::TableWalker::L2Descriptor::dbgHeader ( ) const
inlineoverridevirtual

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 319 of file table_walker.hh.

◆ dirty()

bool gem5::ArmISA::TableWalker::L2Descriptor::dirty ( ) const
inline

This entry needs to be written back to memory.

Definition at line 422 of file table_walker.hh.

References _dirty.

◆ domain()

DomainType gem5::ArmISA::TableWalker::L2Descriptor::domain ( ) const
inlineoverridevirtual

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 325 of file table_walker.hh.

References l1Parent.

◆ getRawData()

uint64_t gem5::ArmISA::TableWalker::L2Descriptor::getRawData ( ) const
inlineoverridevirtual

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 313 of file table_walker.hh.

References data.

◆ getRawPtr()

uint8_t * gem5::ArmISA::TableWalker::L2Descriptor::getRawPtr ( )
inlineoverridevirtual

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 307 of file table_walker.hh.

References data.

◆ global()

bool gem5::ArmISA::TableWalker::L2Descriptor::global ( WalkerState * currState) const
inlineoverridevirtual

Is the translation global (no asid used)?

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 365 of file table_walker.hh.

References gem5::bits(), gem5::ArmISA::TableWalker::currState, and data.

◆ invalid()

bool gem5::ArmISA::TableWalker::L2Descriptor::invalid ( ) const
inline

Is the entry invalid.

Definition at line 344 of file table_walker.hh.

References gem5::bits(), and data.

◆ large()

bool gem5::ArmISA::TableWalker::L2Descriptor::large ( ) const
inline

What is the size of the mapping?

Definition at line 351 of file table_walker.hh.

References gem5::bits(), and data.

Referenced by offsetBits(), paddr(), pfn(), texcb(), and xn().

◆ offsetBits()

uint8_t gem5::ArmISA::TableWalker::L2Descriptor::offsetBits ( ) const
inlineoverridevirtual

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 337 of file table_walker.hh.

References large().

◆ paddr()

Addr gem5::ArmISA::TableWalker::L2Descriptor::paddr ( Addr va) const
inline

Return complete physical address given a VA.

Definition at line 395 of file table_walker.hh.

References data, large(), gem5::mbits(), and gem5::ArmISA::va.

◆ pfn()

Addr gem5::ArmISA::TableWalker::L2Descriptor::pfn ( ) const
inlineoverridevirtual

Return the physical frame, bits shifted right.

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 388 of file table_walker.hh.

References gem5::bits(), data, and large().

◆ secure()

bool gem5::ArmISA::TableWalker::L2Descriptor::secure ( bool have_security,
WalkerState * currState ) const
inlineoverridevirtual

◆ setAp0()

void gem5::ArmISA::TableWalker::L2Descriptor::setAp0 ( )
inline

Set access flag that this entry has been touched.

Mark the entry as requiring a writeback, in the future.

Definition at line 414 of file table_walker.hh.

References _dirty, and data.

◆ shareable()

bool gem5::ArmISA::TableWalker::L2Descriptor::shareable ( ) const
inlineoverridevirtual

If the section is shareable.

See texcb() comment.

Reimplemented from gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 405 of file table_walker.hh.

References gem5::bits(), and data.

◆ texcb()

uint8_t gem5::ArmISA::TableWalker::L2Descriptor::texcb ( ) const
inlineoverridevirtual

Memory region attributes: ARM DDI 0406B: B3-32.

Reimplemented from gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 379 of file table_walker.hh.

References gem5::bits(), data, and large().

◆ xn()

bool gem5::ArmISA::TableWalker::L2Descriptor::xn ( ) const
inlineoverridevirtual

Is execution allowed on this mapping?

Implements gem5::ArmISA::TableWalker::DescriptorBase.

Definition at line 358 of file table_walker.hh.

References gem5::bits(), data, and large().

Member Data Documentation

◆ _dirty

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

Referenced by dirty(), L2Descriptor(), L2Descriptor(), and setAp0().

◆ data

uint32_t gem5::ArmISA::TableWalker::L2Descriptor::data

The raw bits of the entry.

Definition at line 285 of file table_walker.hh.

Referenced by ap(), getRawData(), getRawPtr(), global(), invalid(), L2Descriptor(), L2Descriptor(), large(), paddr(), pfn(), setAp0(), shareable(), texcb(), and xn().

◆ l1Parent

L1Descriptor* gem5::ArmISA::TableWalker::L2Descriptor::l1Parent

Definition at line 286 of file table_walker.hh.

Referenced by domain(), L2Descriptor(), L2Descriptor(), and secure().


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

Generated on Mon Oct 27 2025 04:13:18 for gem5 by doxygen 1.14.0