gem5  v20.0.0.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Public Attributes | List of all members
ArmISA::TlbEntry Struct Reference

#include <pagetable.hh>

Inheritance diagram for ArmISA::TlbEntry:
Serializable

Public Types

enum  MemoryType : std::uint8_t { MemoryType::StronglyOrdered, MemoryType::Device, MemoryType::Normal }
 
enum  DomainType : std::uint8_t { DomainType::NoAccess = 0, DomainType::Client, DomainType::Reserved, DomainType::Manager }
 

Public Member Functions

 TlbEntry (Addr _asn, Addr _vaddr, Addr _paddr, bool uncacheable, bool read_only)
 
 TlbEntry ()
 
void updateVaddr (Addr new_vaddr)
 
Addr pageStart () const
 
bool match (Addr va, uint8_t _vmid, bool hypLookUp, bool secure_lookup, ExceptionLevel target_el) const
 
bool match (Addr va, uint16_t asn, uint8_t _vmid, bool hypLookUp, bool secure_lookup, bool ignore_asn, ExceptionLevel target_el) const
 
bool checkELMatch (ExceptionLevel target_el) const
 
Addr pAddr (Addr va) const
 
void updateAttributes ()
 
void setAttributes (bool lpae)
 
std::string print () const
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
- Public Member Functions inherited from Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 

Public Attributes

Addr pfn
 
Addr size
 
Addr vpn
 
uint64_t attributes
 
LookupLevel lookupLevel
 
uint16_t asid
 
uint8_t vmid
 
uint8_t N
 
uint8_t innerAttrs
 
uint8_t outerAttrs
 
uint8_t ap
 
uint8_t hap
 
DomainType domain
 
MemoryType mtype
 
bool longDescFormat
 
bool isHyp
 
bool global
 
bool valid
 
bool ns
 
bool nstid
 
ExceptionLevel el
 
bool nonCacheable
 
bool shareable
 
bool outerShareable
 
bool xn
 
bool pxn
 

Additional Inherited Members

- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 
static void unserializeGlobals (CheckpointIn &cp)
 

Detailed Description

Definition at line 83 of file pagetable.hh.

Member Enumeration Documentation

◆ DomainType

enum ArmISA::TlbEntry::DomainType : std::uint8_t
strong
Enumerator
NoAccess 
Client 
Reserved 
Manager 

Definition at line 92 of file pagetable.hh.

◆ MemoryType

enum ArmISA::TlbEntry::MemoryType : std::uint8_t
strong
Enumerator
StronglyOrdered 
Device 
Normal 

Definition at line 86 of file pagetable.hh.

Constructor & Destructor Documentation

◆ TlbEntry() [1/2]

ArmISA::TlbEntry::TlbEntry ( Addr  _asn,
Addr  _vaddr,
Addr  _paddr,
bool  uncacheable,
bool  read_only 
)
inline

Definition at line 147 of file pagetable.hh.

References warn.

◆ TlbEntry() [2/2]

ArmISA::TlbEntry::TlbEntry ( )
inline

Definition at line 164 of file pagetable.hh.

Member Function Documentation

◆ checkELMatch()

bool ArmISA::TlbEntry::checkELMatch ( ExceptionLevel  target_el) const
inline

◆ match() [1/2]

bool ArmISA::TlbEntry::match ( Addr  va,
uint8_t  _vmid,
bool  hypLookUp,
bool  secure_lookup,
ExceptionLevel  target_el 
) const
inline

Definition at line 190 of file pagetable.hh.

◆ match() [2/2]

bool ArmISA::TlbEntry::match ( Addr  va,
uint16_t  asn,
uint8_t  _vmid,
bool  hypLookUp,
bool  secure_lookup,
bool  ignore_asn,
ExceptionLevel  target_el 
) const
inline

Definition at line 197 of file pagetable.hh.

References ArmISA::asid, and ArmISA::v.

◆ pAddr()

Addr ArmISA::TlbEntry::pAddr ( Addr  va) const
inline

◆ pageStart()

Addr ArmISA::TlbEntry::pageStart ( ) const
inline

Definition at line 184 of file pagetable.hh.

References ArmISA::PageShift.

◆ print()

std::string ArmISA::TlbEntry::print ( ) const
inline

◆ serialize()

void ArmISA::TlbEntry::serialize ( CheckpointOut cp) const
inlineoverridevirtual

Serialize an object.

Output an object's state into the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 292 of file pagetable.hh.

References ArmISA::domain, paramOut(), SERIALIZE_ENUM, and SERIALIZE_SCALAR.

◆ setAttributes()

void ArmISA::TlbEntry::setAttributes ( bool  lpae)
inline

◆ unserialize()

void ArmISA::TlbEntry::unserialize ( CheckpointIn cp)
inlineoverridevirtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 322 of file pagetable.hh.

References paramIn(), UNSERIALIZE_ENUM, and UNSERIALIZE_SCALAR.

◆ updateAttributes()

void ArmISA::TlbEntry::updateAttributes ( )
inline

Formatting for Physical Address Register (PAR) Only including lower bits (TLB info here) PAR (32-bit format): PA [31:12] LPAE [11] (Large Physical Address Extension) TLB info [10:1] NOS [10] (Not Outer Sharable) NS [9] (Non-Secure) – [8] (Implementation Defined) SH [7] (Sharable) Inner[6:4](Inner memory attributes) Outer[3:2](Outer memory attributes) SS [1] (SuperSection) F [0] (Fault, Fault Status in [6:1] if faulted)

Definition at line 235 of file pagetable.hh.

References ArmISA::mask.

Referenced by ArmISA::Stage2LookUp::mergeTe().

◆ updateVaddr()

void ArmISA::TlbEntry::updateVaddr ( Addr  new_vaddr)
inline

Definition at line 178 of file pagetable.hh.

References ArmISA::PageShift.

Member Data Documentation

◆ ap

uint8_t ArmISA::TlbEntry::ap

◆ asid

uint16_t ArmISA::TlbEntry::asid

◆ attributes

uint64_t ArmISA::TlbEntry::attributes

◆ domain

DomainType ArmISA::TlbEntry::domain

◆ el

ExceptionLevel ArmISA::TlbEntry::el

Definition at line 133 of file pagetable.hh.

Referenced by ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().

◆ global

bool ArmISA::TlbEntry::global

◆ hap

uint8_t ArmISA::TlbEntry::hap

◆ innerAttrs

uint8_t ArmISA::TlbEntry::innerAttrs

◆ isHyp

bool ArmISA::TlbEntry::isHyp

◆ longDescFormat

bool ArmISA::TlbEntry::longDescFormat

◆ lookupLevel

LookupLevel ArmISA::TlbEntry::lookupLevel

◆ mtype

MemoryType ArmISA::TlbEntry::mtype

◆ N

uint8_t ArmISA::TlbEntry::N

◆ nonCacheable

bool ArmISA::TlbEntry::nonCacheable

◆ ns

bool ArmISA::TlbEntry::ns

◆ nstid

bool ArmISA::TlbEntry::nstid

◆ outerAttrs

uint8_t ArmISA::TlbEntry::outerAttrs

◆ outerShareable

bool ArmISA::TlbEntry::outerShareable

◆ pfn

Addr ArmISA::TlbEntry::pfn

◆ pxn

bool ArmISA::TlbEntry::pxn

◆ shareable

bool ArmISA::TlbEntry::shareable

◆ size

Addr ArmISA::TlbEntry::size

◆ valid

bool ArmISA::TlbEntry::valid

◆ vmid

uint8_t ArmISA::TlbEntry::vmid

◆ vpn

Addr ArmISA::TlbEntry::vpn

◆ xn

bool ArmISA::TlbEntry::xn

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

Generated on Mon Jun 8 2020 15:45:34 for gem5 by doxygen 1.8.13