gem5  v20.1.0.0
Public Member Functions | Public Attributes | List of all members
ArmISA::TableWalker::L2Descriptor Class Reference

Level 2 page table descriptor. More...

#include <table_walker.hh>

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

Public Member Functions

 L2Descriptor ()
 Default ctor. More...
 
 L2Descriptor (L1Descriptor &parent)
 
virtual uint64_t getRawData () const
 
virtual std::string dbgHeader () const
 
virtual TlbEntry::DomainType domain () const
 
bool secure (bool have_security, WalkerState *currState) const
 
virtual uint8_t offsetBits () const
 
bool invalid () const
 Is the entry invalid. More...
 
bool large () const
 What is the size of the mapping? More...
 
bool xn () const
 Is execution allowed on this mapping? More...
 
bool global (WalkerState *currState) const
 Is the translation global (no asid used)? More...
 
uint8_t ap () const
 Three bit access protection flags. More...
 
uint8_t texcb () const
 Memory region attributes: ARM DDI 0406B: B3-32. More...
 
Addr pfn () const
 Return the physical frame, bits shifted right. More...
 
Addr paddr (Addr va) const
 Return complete physical address given a VA. More...
 
bool shareable () const
 If the section is shareable. More...
 
void setAp0 ()
 Set access flag that this entry has been touched. More...
 
bool dirty () const
 This entry needs to be written back to memory. More...
 
- Public Member Functions inherited from ArmISA::TableWalker::DescriptorBase
 DescriptorBase ()
 

Public Attributes

uint32_t data
 The raw bits of the entry. More...
 
L1Descriptorl1Parent
 
bool _dirty
 This entry has been modified (access flag set) and needs to be written back to memory. More...
 
- Public Attributes inherited from ArmISA::TableWalker::DescriptorBase
LookupLevel lookupLevel
 Current lookup level for this descriptor. More...
 

Detailed Description

Level 2 page table descriptor.

Definition at line 243 of file table_walker.hh.

Constructor & Destructor Documentation

◆ L2Descriptor() [1/2]

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

Default ctor.

Definition at line 254 of file table_walker.hh.

References ArmISA::L2, and ArmISA::TableWalker::DescriptorBase::lookupLevel.

◆ L2Descriptor() [2/2]

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

Member Function Documentation

◆ ap()

uint8_t ArmISA::TableWalker::L2Descriptor::ap ( ) const
inlinevirtual

Three bit access protection flags.

Implements ArmISA::TableWalker::DescriptorBase.

Definition at line 315 of file table_walker.hh.

References bits(), and data.

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

◆ dbgHeader()

virtual std::string ArmISA::TableWalker::L2Descriptor::dbgHeader ( ) const
inlinevirtual

Implements ArmISA::TableWalker::DescriptorBase.

Definition at line 270 of file table_walker.hh.

◆ dirty()

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

This entry needs to be written back to memory.

Definition at line 359 of file table_walker.hh.

References _dirty.

◆ domain()

virtual TlbEntry::DomainType ArmISA::TableWalker::L2Descriptor::domain ( ) const
inlinevirtual

◆ getRawData()

virtual uint64_t ArmISA::TableWalker::L2Descriptor::getRawData ( ) const
inlinevirtual

Implements ArmISA::TableWalker::DescriptorBase.

Definition at line 265 of file table_walker.hh.

References data.

◆ global()

bool ArmISA::TableWalker::L2Descriptor::global ( WalkerState currState) const
inlinevirtual

Is the translation global (no asid used)?

Implements ArmISA::TableWalker::DescriptorBase.

Definition at line 309 of file table_walker.hh.

References bits(), and data.

◆ invalid()

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

Is the entry invalid.

Definition at line 291 of file table_walker.hh.

References bits(), and data.

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

◆ large()

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

What is the size of the mapping?

Definition at line 297 of file table_walker.hh.

References bits(), and data.

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

◆ offsetBits()

virtual uint8_t ArmISA::TableWalker::L2Descriptor::offsetBits ( ) const
inlinevirtual

Implements ArmISA::TableWalker::DescriptorBase.

Definition at line 285 of file table_walker.hh.

References large().

◆ paddr()

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

Return complete physical address given a VA.

Definition at line 335 of file table_walker.hh.

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

◆ pfn()

Addr ArmISA::TableWalker::L2Descriptor::pfn ( ) const
inlinevirtual

Return the physical frame, bits shifted right.

Implements ArmISA::TableWalker::DescriptorBase.

Definition at line 329 of file table_walker.hh.

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

◆ secure()

bool ArmISA::TableWalker::L2Descriptor::secure ( bool  have_security,
WalkerState currState 
) const
inlinevirtual

◆ setAp0()

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

References _dirty, and data.

◆ shareable()

bool ArmISA::TableWalker::L2Descriptor::shareable ( ) const
inlinevirtual

If the section is shareable.

See texcb() comment.

Reimplemented from ArmISA::TableWalker::DescriptorBase.

Definition at line 344 of file table_walker.hh.

References bits(), and data.

◆ texcb()

uint8_t ArmISA::TableWalker::L2Descriptor::texcb ( ) const
inlinevirtual

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

Reimplemented from ArmISA::TableWalker::DescriptorBase.

Definition at line 321 of file table_walker.hh.

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

◆ xn()

bool ArmISA::TableWalker::L2Descriptor::xn ( ) const
inlinevirtual

Is execution allowed on this mapping?

Implements ArmISA::TableWalker::DescriptorBase.

Definition at line 303 of file table_walker.hh.

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

Member Data Documentation

◆ _dirty

bool ArmISA::TableWalker::L2Descriptor::_dirty

This entry has been modified (access flag set) and needs to be written back to memory.

Definition at line 251 of file table_walker.hh.

Referenced by dirty(), and setAp0().

◆ data

uint32_t ArmISA::TableWalker::L2Descriptor::data

◆ l1Parent

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

Definition at line 247 of file table_walker.hh.

Referenced by domain(), and secure().


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

Generated on Wed Sep 30 2020 14:02:38 for gem5 by doxygen 1.8.17