gem5  v21.1.0.2
Public Types | Public Member Functions | Public Attributes | List of all members
gem5::ArmISA::TlbEntry Struct Reference

#include <pagetable.hh>

Inheritance diagram for gem5::ArmISA::TlbEntry:
gem5::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, vmid_t _vmid, bool hyp_lookup, bool secure_lookup, ExceptionLevel target_el, bool in_host) const
 
bool match (Addr va, uint16_t asn, vmid_t _vmid, bool hyp_lookup, bool secure_lookup, bool ignore_asn, ExceptionLevel target_el, bool in_host) const
 
bool checkELMatch (ExceptionLevel target_el, bool in_host) 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 gem5::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
 
vmid_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 gem5::Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section. More...
 
static void generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream)
 Generate a checkpoint file so that the serialization can be routed to it. More...
 

Detailed Description

Definition at line 86 of file pagetable.hh.

Member Enumeration Documentation

◆ DomainType

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

Definition at line 96 of file pagetable.hh.

◆ MemoryType

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

Definition at line 89 of file pagetable.hh.

Constructor & Destructor Documentation

◆ TlbEntry() [1/2]

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

Definition at line 152 of file pagetable.hh.

References warn.

◆ TlbEntry() [2/2]

gem5::ArmISA::TlbEntry::TlbEntry ( )
inline

Definition at line 169 of file pagetable.hh.

Member Function Documentation

◆ checkELMatch()

bool gem5::ArmISA::TlbEntry::checkELMatch ( ExceptionLevel  target_el,
bool  in_host 
) const
inline

Definition at line 225 of file pagetable.hh.

References el, gem5::ArmISA::EL0, gem5::ArmISA::EL1, gem5::ArmISA::EL2, and gem5::ArmISA::EL3.

Referenced by match().

◆ match() [1/2]

bool gem5::ArmISA::TlbEntry::match ( Addr  va,
uint16_t  asn,
vmid_t  _vmid,
bool  hyp_lookup,
bool  secure_lookup,
bool  ignore_asn,
ExceptionLevel  target_el,
bool  in_host 
) const
inline

Definition at line 203 of file pagetable.hh.

References asid, checkELMatch(), global, isHyp, match(), N, nstid, size, gem5::ArmISA::v, gem5::ArmISA::va, valid, vmid, and vpn.

◆ match() [2/2]

bool gem5::ArmISA::TlbEntry::match ( Addr  va,
vmid_t  _vmid,
bool  hyp_lookup,
bool  secure_lookup,
ExceptionLevel  target_el,
bool  in_host 
) const
inline

Definition at line 195 of file pagetable.hh.

References gem5::ArmISA::va.

Referenced by match().

◆ pAddr()

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

Definition at line 243 of file pagetable.hh.

References N, pfn, size, and gem5::ArmISA::va.

Referenced by gem5::ArmISA::TLB::lookup(), and gem5::ArmISA::Stage2LookUp::Stage2LookUp().

◆ pageStart()

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

Definition at line 189 of file pagetable.hh.

References gem5::ArmISA::PageShift, and pfn.

◆ print()

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

Definition at line 298 of file pagetable.hh.

References ap, asid, gem5::csprintf(), el, global, isHyp, N, ns, nstid, pfn, size, vmid, and vpn.

◆ serialize()

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

Serialize an object.

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

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 306 of file pagetable.hh.

References ap, asid, attributes, domain, global, hap, innerAttrs, isHyp, longDescFormat, lookupLevel, mtype, N, nonCacheable, ns, nstid, outerAttrs, outerShareable, gem5::paramOut(), pfn, pxn, SERIALIZE_ENUM, SERIALIZE_SCALAR, shareable, size, valid, vmid, vpn, and xn.

◆ setAttributes()

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

Definition at line 291 of file pagetable.hh.

References attributes, gem5::ArmISA::lpae, and updateAttributes().

Referenced by gem5::ArmISA::TLB::translateMmuOff().

◆ unserialize()

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

Unserialize an object.

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

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 336 of file pagetable.hh.

References ap, asid, attributes, domain, global, hap, innerAttrs, isHyp, longDescFormat, lookupLevel, mtype, N, nonCacheable, ns, nstid, outerAttrs, outerShareable, gem5::paramIn(), pfn, pxn, shareable, size, UNSERIALIZE_ENUM, UNSERIALIZE_SCALAR, valid, vmid, vpn, and xn.

◆ updateAttributes()

void gem5::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 249 of file pagetable.hh.

References attributes, innerAttrs, gem5::ArmISA::mask, ns, outerAttrs, outerShareable, and shareable.

Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), and setAttributes().

◆ updateVaddr()

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

Definition at line 183 of file pagetable.hh.

References gem5::ArmISA::PageShift, and vpn.

Member Data Documentation

◆ ap

uint8_t gem5::ArmISA::TlbEntry::ap

◆ asid

uint16_t gem5::ArmISA::TlbEntry::asid

◆ attributes

uint64_t gem5::ArmISA::TlbEntry::attributes

◆ domain

DomainType gem5::ArmISA::TlbEntry::domain

Definition at line 122 of file pagetable.hh.

Referenced by gem5::ArmISA::TLB::insert(), serialize(), and unserialize().

◆ el

ExceptionLevel gem5::ArmISA::TlbEntry::el

Definition at line 138 of file pagetable.hh.

Referenced by checkELMatch(), gem5::ArmISA::TLB::lookup(), and print().

◆ global

bool gem5::ArmISA::TlbEntry::global

◆ hap

uint8_t gem5::ArmISA::TlbEntry::hap

Definition at line 121 of file pagetable.hh.

Referenced by serialize(), and unserialize().

◆ innerAttrs

uint8_t gem5::ArmISA::TlbEntry::innerAttrs

◆ isHyp

bool gem5::ArmISA::TlbEntry::isHyp

Definition at line 129 of file pagetable.hh.

Referenced by gem5::ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().

◆ longDescFormat

bool gem5::ArmISA::TlbEntry::longDescFormat

Definition at line 127 of file pagetable.hh.

Referenced by serialize(), and unserialize().

◆ lookupLevel

LookupLevel gem5::ArmISA::TlbEntry::lookupLevel

Definition at line 110 of file pagetable.hh.

Referenced by serialize(), and unserialize().

◆ mtype

MemoryType gem5::ArmISA::TlbEntry::mtype

◆ N

uint8_t gem5::ArmISA::TlbEntry::N

◆ nonCacheable

bool gem5::ArmISA::TlbEntry::nonCacheable

◆ ns

bool gem5::ArmISA::TlbEntry::ns

◆ nstid

bool gem5::ArmISA::TlbEntry::nstid

◆ outerAttrs

uint8_t gem5::ArmISA::TlbEntry::outerAttrs

◆ outerShareable

bool gem5::ArmISA::TlbEntry::outerShareable

◆ pfn

Addr gem5::ArmISA::TlbEntry::pfn

◆ pxn

bool gem5::ArmISA::TlbEntry::pxn

Definition at line 149 of file pagetable.hh.

Referenced by serialize(), and unserialize().

◆ shareable

bool gem5::ArmISA::TlbEntry::shareable

◆ size

Addr gem5::ArmISA::TlbEntry::size

◆ valid

bool gem5::ArmISA::TlbEntry::valid

Definition at line 131 of file pagetable.hh.

Referenced by gem5::ArmISA::TLB::insert(), match(), serialize(), and unserialize().

◆ vmid

vmid_t gem5::ArmISA::TlbEntry::vmid

Definition at line 116 of file pagetable.hh.

Referenced by gem5::ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().

◆ vpn

Addr gem5::ArmISA::TlbEntry::vpn

◆ xn

bool gem5::ArmISA::TlbEntry::xn

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

Generated on Tue Sep 21 2021 12:28:43 for gem5 by doxygen 1.8.17