gem5
|
#include <table_walker.hh>
Classes | |
class | DescriptorBase |
class | L1Descriptor |
class | L2Descriptor |
Level 2 page table descriptor. More... | |
class | LongDescriptor |
Long-descriptor format (LPAE) More... | |
class | WalkerState |
Public Types | |
enum | GrainSize { Grain4KB = 12, Grain16KB = 14, Grain64KB = 16, ReservedGrain = 0 } |
typedef ArmTableWalkerParams | Params |
Public Types inherited from MemObject | |
typedef MemObjectParams | Params |
Public Types inherited from ClockedObject | |
typedef ClockedObjectParams | Params |
Parameters of ClockedObject. More... | |
Public Types inherited from SimObject | |
typedef SimObjectParams | Params |
Public Member Functions | |
TableWalker (const Params *p) | |
virtual | ~TableWalker () |
const Params * | params () const |
void | init () override |
init() is called after all C++ SimObjects have been created and all ports are connected. More... | |
bool | haveLPAE () const |
bool | haveVirtualization () const |
bool | haveLargeAsid64 () const |
void | completeDrain () |
Checks if all state is cleared and if so, completes drain. More... | |
DrainState | drain () override |
Notify an object that it needs to drain its state. More... | |
void | drainResume () override |
Resume execution after a successful drain. More... | |
BaseMasterPort & | getMasterPort (const std::string &if_name, PortID idx=InvalidPortID) override |
Get a master port with a given name and index. More... | |
void | regStats () override |
Register statistics for this object. More... | |
Fault | walk (RequestPtr req, ThreadContext *tc, uint16_t asid, uint8_t _vmid, bool _isHyp, TLB::Mode mode, TLB::Translation *_trans, bool timing, bool functional, bool secure, TLB::ArmTranslationType tranType, bool _stage2Req) |
void | setTlb (TLB *_tlb) |
TLB * | getTlb () |
void | setMMU (Stage2MMU *m, MasterID master_id) |
void | memAttrs (ThreadContext *tc, TlbEntry &te, SCTLR sctlr, uint8_t texcb, bool s) |
void | memAttrsLPAE (ThreadContext *tc, TlbEntry &te, LongDescriptor &lDescriptor) |
void | memAttrsAArch64 (ThreadContext *tc, TlbEntry &te, LongDescriptor &lDescriptor) |
Public Member Functions inherited from MemObject | |
const Params * | params () const |
MemObject (const Params *params) | |
virtual BaseSlavePort & | getSlavePort (const std::string &if_name, PortID idx=InvalidPortID) |
Get a slave port with a given name and index. More... | |
Public Member Functions inherited from ClockedObject | |
ClockedObject (const ClockedObjectParams *p) | |
const Params * | params () const |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
Enums::PwrState | pwrState () const |
std::string | pwrStateName () const |
std::vector< double > | pwrStateWeights () const |
Returns the percentage residency for each power state. More... | |
void | computeStats () |
Record stats values like state residency by computing the time difference from previous update. More... | |
void | pwrState (Enums::PwrState) |
void | regStats () override |
Register statistics for this object. More... | |
Public Member Functions inherited from SimObject | |
const Params * | params () const |
SimObject (const Params *_params) | |
virtual | ~SimObject () |
virtual const std::string | name () const |
virtual void | loadState (CheckpointIn &cp) |
loadState() is called on each SimObject when restoring from a checkpoint. More... | |
virtual void | initState () |
initState() is called on each SimObject when not restoring from a checkpoint. More... | |
virtual void | resetStats () |
Reset statistics associated with this object. More... | |
virtual void | regProbePoints () |
Register probe points for this object. More... | |
virtual void | regProbeListeners () |
Register probe listeners for this object. More... | |
ProbeManager * | getProbeManager () |
Get the probe manager for this object. More... | |
virtual void | startup () |
startup() is the final initialization call before simulation. More... | |
DrainState | drain () override |
Provide a default implementation of the drain interface for objects that don't need draining. More... | |
virtual void | memWriteback () |
Write back dirty buffers to memory using functional writes. More... | |
virtual void | memInvalidate () |
Invalidate the contents of memory buffers. More... | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
Public Member Functions inherited from EventManager | |
EventManager (EventManager &em) | |
EventManager (EventManager *em) | |
EventManager (EventQueue *eq) | |
EventQueue * | eventQueue () const |
void | schedule (Event &event, Tick when) |
void | deschedule (Event &event) |
void | reschedule (Event &event, Tick when, bool always=false) |
void | schedule (Event *event, Tick when) |
void | deschedule (Event *event) |
void | reschedule (Event *event, Tick when, bool always=false) |
void | wakeupEventQueue (Tick when=(Tick)-1) |
void | setCurTick (Tick newVal) |
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 Member Functions inherited from Drainable | |
DrainState | drainState () const |
Return the current drain state of an object. More... | |
virtual void | notifyFork () |
Notify a child process of a fork. More... | |
Public Member Functions inherited from Clocked | |
void | updateClockPeriod () const |
Update the tick to the current tick. More... | |
Tick | clockEdge (Cycles cycles=Cycles(0)) const |
Determine the tick when a cycle begins, by default the current one, but the argument also enables the caller to determine a future cycle. More... | |
Cycles | curCycle () const |
Determine the current cycle, corresponding to a tick aligned to a clock edge. More... | |
Tick | nextCycle () const |
Based on the clock of the object, determine the start tick of the first cycle that is at least one cycle in the future. More... | |
uint64_t | frequency () const |
Tick | clockPeriod () const |
double | voltage () const |
Cycles | ticksToCycles (Tick t) const |
Tick | cyclesToTicks (Cycles c) const |
Static Public Member Functions | |
static LookupLevel | toLookupLevel (uint8_t lookup_level_as_int) |
Static Public Member Functions inherited from SimObject | |
static void | serializeAll (CheckpointOut &cp) |
Serialize all SimObjects in the system. More... | |
static SimObject * | find (const char *name) |
Find the SimObject with the given name and return a pointer to it. More... | |
Static Public Member Functions inherited from Serializable | |
static const std::string & | currentSection () |
Get the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
static void | unserializeGlobals (CheckpointIn &cp) |
Protected Attributes | |
std::list< WalkerState * > | stateQueues [MAX_LOOKUP_LEVELS] |
Queues of requests for all the different lookup levels. More... | |
std::list< WalkerState * > | pendingQueue |
Queue of requests that have passed are waiting because the walker is currently busy. More... | |
Stage2MMU * | stage2Mmu |
The MMU to forward second stage look upts to. More... | |
DmaPort * | port |
Port shared by the two table walkers. More... | |
MasterID | masterId |
Master id assigned by the MMU. More... | |
const bool | isStage2 |
Indicates whether this table walker is part of the stage 2 mmu. More... | |
TLB * | tlb |
TLB that is initiating these table walks. More... | |
SCTLR | sctlr |
Cached copy of the sctlr as it existed when translation began. More... | |
WalkerState * | currState |
bool | pending |
If a timing translation is currently in progress. More... | |
unsigned | numSquashable |
The number of walks belonging to squashed instructions that can be removed from the pendingQueue per cycle. More... | |
bool | haveSecurity |
Cached copies of system-level properties. More... | |
bool | _haveLPAE |
bool | _haveVirtualization |
uint8_t | physAddrRange |
bool | _haveLargeAsid64 |
Stats::Scalar | statWalks |
Statistics. More... | |
Stats::Scalar | statWalksShortDescriptor |
Stats::Scalar | statWalksLongDescriptor |
Stats::Vector | statWalksShortTerminatedAtLevel |
Stats::Vector | statWalksLongTerminatedAtLevel |
Stats::Scalar | statSquashedBefore |
Stats::Scalar | statSquashedAfter |
Stats::Histogram | statWalkWaitTime |
Stats::Histogram | statWalkServiceTime |
Stats::Histogram | statPendingWalks |
Stats::Vector | statPageSizes |
Stats::Vector2d | statRequestOrigin |
unsigned | pendingReqs |
Tick | pendingChangeTick |
Protected Attributes inherited from ClockedObject | |
Enums::PwrState | _currPwrState |
To keep track of the current power state. More... | |
Tick | prvEvalTick |
Stats::Scalar | numPwrStateTransitions |
Stats::Distribution | pwrStateClkGateDist |
Stats::Vector | pwrStateResidencyTicks |
Protected Attributes inherited from SimObject | |
const SimObjectParams * | _params |
Cached copy of the object parameters. More... | |
Protected Attributes inherited from EventManager | |
EventQueue * | eventq |
A pointer to this object's event queue. More... | |
Static Protected Attributes | |
static const unsigned | REQUESTED = 0 |
static const unsigned | COMPLETED = 1 |
Private Member Functions | |
void | doL1Descriptor () |
void | doL1DescriptorWrapper () |
void | doL2Descriptor () |
void | doL2DescriptorWrapper () |
void | doLongDescriptor () |
void | doL0LongDescriptorWrapper () |
void | doL1LongDescriptorWrapper () |
void | doL2LongDescriptorWrapper () |
void | doL3LongDescriptorWrapper () |
void | doLongDescriptorWrapper (LookupLevel curr_lookup_level) |
bool | fetchDescriptor (Addr descAddr, uint8_t *data, int numBytes, Request::Flags flags, int queueIndex, Event *event, void(TableWalker::*doDescriptor)()) |
void | insertTableEntry (DescriptorBase &descriptor, bool longDescriptor) |
Fault | processWalk () |
Fault | processWalkLPAE () |
Fault | processWalkAArch64 () |
void | processWalkWrapper () |
void | nextWalk (ThreadContext *tc) |
void | pendingChange () |
Fault | testWalk (Addr pa, Addr size, TlbEntry::DomainType domain, LookupLevel lookup_level) |
Static Private Member Functions | |
static unsigned | adjustTableSizeAArch64 (unsigned tsz) |
static bool | checkAddrSizeFaultAArch64 (Addr addr, int currPhysAddrRange) |
Returns true if the address exceeds the range permitted by the system-wide setting or by the TCR_ELx IPS/PS setting. More... | |
static uint8_t | pageSizeNtoStatBin (uint8_t N) |
Additional Inherited Members | |
Static Public Attributes inherited from Serializable | |
static int | ckptCount = 0 |
static int | ckptMaxCount = 0 |
static int | ckptPrevCount = -1 |
Protected Member Functions inherited from Drainable | |
Drainable () | |
virtual | ~Drainable () |
void | signalDrainDone () const |
Signal that an object is drained. More... | |
Protected Member Functions inherited from Clocked | |
Clocked (ClockDomain &clk_domain) | |
Create a clocked object and set the clock domain based on the parameters. More... | |
Clocked (Clocked &)=delete | |
Clocked & | operator= (Clocked &)=delete |
virtual | ~Clocked () |
Virtual destructor due to inheritance. More... | |
void | resetClock () const |
Reset the object's clock using the current global tick value. More... | |
Definition at line 62 of file table_walker.hh.
typedef ArmTableWalkerParams ArmISA::TableWalker::Params |
Definition at line 877 of file table_walker.hh.
Enumerator | |
---|---|
Grain4KB | |
Grain16KB | |
Grain64KB | |
ReservedGrain |
Definition at line 366 of file table_walker.hh.
TableWalker::TableWalker | ( | const Params * | p | ) |
Definition at line 59 of file table_walker.cc.
References doL0LongDescEvent, doL1LongDescEvent, doL2LongDescEvent, and doL3LongDescEvent.
|
virtual |
Definition at line 93 of file table_walker.cc.
|
staticprivate |
Definition at line 715 of file table_walker.cc.
Referenced by processWalkAArch64().
|
staticprivate |
Returns true if the address exceeds the range permitted by the system-wide setting or by the TCR_ELx IPS/PS setting.
Definition at line 725 of file table_walker.cc.
References bits(), and ArmISA::MaxPhysAddrRange.
Referenced by doLongDescriptor().
void TableWalker::completeDrain | ( | ) |
Checks if all state is cleared and if so, completes drain.
Definition at line 140 of file table_walker.cc.
References DPRINTF, Draining, Drainable::drainState(), ArmISA::L0, ArmISA::L1, ArmISA::L2, ArmISA::L3, pendingQueue, Drainable::signalDrainDone(), and stateQueues.
Referenced by nextWalk().
|
private |
Definition at line 1854 of file table_walker.cc.
References doLongDescriptorWrapper().
|
private |
Definition at line 1416 of file table_walker.cc.
References ArmISA::ArmFault::AccessFlagLL, ArmISA::TableWalker::L1Descriptor::ap(), bits(), currState, ArmISA::TableWalker::L1Descriptor::data, ArmISA::TableWalker::L2Descriptor::data, ArmISA::TableWalker::WalkerState::delayed, doL2DescEvent, doL2Descriptor(), ArmISA::TableWalker::L1Descriptor::domain(), DPRINTF, ArmISA::TableWalker::WalkerState::fault, fetchDescriptor(), ArmISA::TableWalker::L1Descriptor::Ignore, insertTableEntry(), ArmISA::TableWalker::WalkerState::isFetch, ArmISA::TableWalker::WalkerState::isSecure, isStage2, ArmISA::TableWalker::WalkerState::isWrite, ArmISA::L1, ArmISA::TableWalker::WalkerState::l1Desc, ArmISA::L2, ArmISA::TableWalker::L1Descriptor::l2Addr(), ArmISA::TableWalker::WalkerState::l2Desc, ArmISA::TlbEntry::NoAccess, NoFault, ArmISA::TableWalker::L1Descriptor::PageTable, panic, Request::PT_WALK, ArmISA::TableWalker::WalkerState::req, ArmISA::TableWalker::L1Descriptor::Reserved, ArmISA::TableWalker::WalkerState::sctlr, ArmISA::TableWalker::L1Descriptor::Section, Request::SECURE, Flags< T >::set(), ArmISA::TableWalker::L1Descriptor::supersection(), ArmISA::TableWalker::WalkerState::tc, MipsISA::te, testWalk(), ArmISA::TableWalker::WalkerState::timing, ArmISA::ArmFault::TranslationLL, ArmISA::TableWalker::L1Descriptor::type(), ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TableWalker::WalkerState::vaddr_tainted, and ArmISA::ArmFault::VmsaTran.
Referenced by doL1DescriptorWrapper(), and processWalk().
|
private |
Definition at line 1751 of file table_walker.cc.
References currState, curTick(), ArmISA::TableWalker::L1Descriptor::data, ArmISA::TableWalker::WalkerState::delayed, ArmISA::TableWalker::WalkerState::doingStage2, doL1Descriptor(), DPRINTF, ArmISA::TableWalker::WalkerState::fault, BaseTLB::Translation::finish(), ArmISA::L1, ArmISA::TableWalker::WalkerState::l1Desc, ArmISA::L2, ArmISA::TableWalker::WalkerState::mode, nextWalk(), NoFault, pending, ArmISA::TableWalker::WalkerState::req, Stats::DistBase< Derived, Stor >::sample(), ArmISA::TableWalker::WalkerState::stage2Tran, ArmISA::TableWalker::WalkerState::startTime, stateQueues, statWalkServiceTime, statWalksShortTerminatedAtLevel, ArmISA::TableWalker::WalkerState::tc, tlb, ArmISA::TLB::translateTiming(), ArmISA::TableWalker::WalkerState::transState, and ArmISA::TableWalker::WalkerState::vaddr_tainted.
|
private |
Definition at line 1860 of file table_walker.cc.
References doLongDescriptorWrapper(), and ArmISA::L1.
|
private |
Definition at line 1702 of file table_walker.cc.
References ArmISA::ArmFault::AccessFlagLL, ArmISA::TableWalker::L2Descriptor::ap(), bits(), currState, ArmISA::TableWalker::L2Descriptor::data, ArmISA::TableWalker::L1Descriptor::domain(), DPRINTF, ArmISA::TableWalker::WalkerState::fault, insertTableEntry(), ArmISA::TableWalker::L2Descriptor::invalid(), ArmISA::TableWalker::WalkerState::isFetch, isStage2, ArmISA::TableWalker::WalkerState::isWrite, ArmISA::TableWalker::WalkerState::l1Desc, ArmISA::L2, ArmISA::TableWalker::WalkerState::l2Desc, ArmISA::TlbEntry::NoAccess, NoFault, ArmISA::TableWalker::WalkerState::req, ArmISA::TableWalker::WalkerState::sctlr, ArmISA::TableWalker::WalkerState::tc, MipsISA::te, ArmISA::TableWalker::WalkerState::timing, ArmISA::ArmFault::TranslationLL, ArmISA::TableWalker::WalkerState::vaddr_tainted, and ArmISA::ArmFault::VmsaTran.
Referenced by doL1Descriptor(), and doL2DescriptorWrapper().
|
private |
Definition at line 1809 of file table_walker.cc.
References currState, curTick(), ArmISA::TableWalker::WalkerState::delayed, ArmISA::TableWalker::WalkerState::doingStage2, doL2Descriptor(), DPRINTF, ArmISA::TableWalker::WalkerState::fault, BaseTLB::Translation::finish(), ArmISA::L2, ArmISA::TableWalker::WalkerState::mode, nextWalk(), NoFault, pending, ArmISA::TableWalker::WalkerState::req, Stats::DistBase< Derived, Stor >::sample(), ArmISA::TableWalker::WalkerState::stage2Tran, ArmISA::TableWalker::WalkerState::startTime, stateQueues, statWalkServiceTime, statWalksShortTerminatedAtLevel, ArmISA::TableWalker::WalkerState::tc, tlb, ArmISA::TLB::translateTiming(), ArmISA::TableWalker::WalkerState::transState, and ArmISA::TableWalker::WalkerState::vaddr_tainted.
|
private |
Definition at line 1866 of file table_walker.cc.
References doLongDescriptorWrapper(), and ArmISA::L2.
|
private |
Definition at line 1872 of file table_walker.cc.
References doLongDescriptorWrapper(), and ArmISA::L3.
|
private |
Definition at line 1511 of file table_walker.cc.
References ArmISA::TableWalker::WalkerState::aarch64, ArmISA::ArmFault::AccessFlagLL, ArmISA::ArmFault::AddressSizeLL, ArmISA::TableWalker::LongDescriptor::af(), ArmISA::TableWalker::LongDescriptor::ap(), ArmISA::TableWalker::LongDescriptor::Block, checkAddrSizeFaultAArch64(), ArmISA::TlbEntry::Client, currState, ArmISA::TableWalker::LongDescriptor::data, ArmISA::TableWalker::WalkerState::delayed, DPRINTF, MipsISA::event, ArmISA::TableWalker::WalkerState::fault, fetchDescriptor(), insertTableEntry(), ArmISA::TableWalker::LongDescriptor::Invalid, ArmISA::TableWalker::WalkerState::isFetch, isStage2, ArmISA::TableWalker::WalkerState::isWrite, X86ISA::L, ArmISA::L1, ArmISA::L2, ArmISA::L3, ArmISA::TableWalker::WalkerState::longDesc, LongDescEventByLevel, ArmISA::TableWalker::DescriptorBase::lookupLevel, ArmISA::ArmFault::LpaeTran, ArmISA::MaxPhysAddrRange, mbits(), ArmISA::TableWalker::LongDescriptor::nextDescAddr(), ArmISA::TlbEntry::NoAccess, NoFault, ArmISA::TableWalker::LongDescriptor::offsetBits(), ArmISA::TableWalker::LongDescriptor::Page, panic, ArmISA::TableWalker::WalkerState::physAddrRange, Request::PT_WALK, ArmISA::TableWalker::LongDescriptor::pxn(), ArmISA::TableWalker::LongDescriptor::pxnTable(), ArmISA::TableWalker::WalkerState::pxnTable, ArmISA::TableWalker::WalkerState::req, ArmISA::TableWalker::LongDescriptor::rwTable(), ArmISA::TableWalker::WalkerState::rwTable, Request::SECURE, ArmISA::TableWalker::WalkerState::secureLookup, ArmISA::TableWalker::LongDescriptor::secureTable(), Flags< T >::set(), ArmISA::TableWalker::LongDescriptor::Table, ArmISA::TableWalker::WalkerState::tc, MipsISA::te, testWalk(), ArmISA::TableWalker::WalkerState::timing, toLookupLevel(), ArmISA::ArmFault::TranslationLL, ArmISA::TableWalker::LongDescriptor::type(), ArmISA::TableWalker::LongDescriptor::userTable(), ArmISA::TableWalker::WalkerState::userTable, ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TableWalker::WalkerState::vaddr_tainted, ArmISA::TableWalker::LongDescriptor::xn(), ArmISA::TableWalker::LongDescriptor::xnTable(), and ArmISA::TableWalker::WalkerState::xnTable.
Referenced by doLongDescriptorWrapper(), and processWalkLPAE().
|
private |
Definition at line 1878 of file table_walker.cc.
References currState, curTick(), ArmISA::TableWalker::WalkerState::delayed, ArmISA::TableWalker::WalkerState::doingStage2, doLongDescriptor(), DPRINTF, ArmISA::TableWalker::WalkerState::fault, BaseTLB::Translation::finish(), ArmISA::TableWalker::WalkerState::longDesc, ArmISA::TableWalker::DescriptorBase::lookupLevel, ArmISA::MAX_LOOKUP_LEVELS, ArmISA::TableWalker::WalkerState::mode, nextWalk(), NoFault, panic, pending, ArmISA::TableWalker::WalkerState::req, Stats::DistBase< Derived, Stor >::sample(), ArmISA::TableWalker::WalkerState::stage2Tran, ArmISA::TableWalker::WalkerState::startTime, stateQueues, statWalkServiceTime, statWalksLongTerminatedAtLevel, ArmISA::TableWalker::WalkerState::tc, tlb, ArmISA::TLB::translateTiming(), ArmISA::TableWalker::WalkerState::transState, and ArmISA::TableWalker::WalkerState::vaddr_tainted.
Referenced by doL0LongDescriptorWrapper(), doL1LongDescriptorWrapper(), doL2LongDescriptorWrapper(), and doL3LongDescriptorWrapper().
|
overridevirtual |
Notify an object that it needs to drain its state.
If the object does not need further simulation to drain internal buffers, it returns DrainState::Drained and automatically switches to the Drained state. If the object needs more simulation, it returns DrainState::Draining and automatically enters the Draining state. Other return values are invalid.
Implements Drainable.
Definition at line 153 of file table_walker.cc.
References DPRINTF, Drained, Draining, ArmISA::i, ArmISA::MAX_LOOKUP_LEVELS, pendingQueue, and stateQueues.
|
overridevirtual |
Resume execution after a successful drain.
Reimplemented from Drainable.
Definition at line 174 of file table_walker.cc.
References currState, params(), and pendingChange().
|
private |
Definition at line 1947 of file table_walker.cc.
References currState, Packet::dataStatic(), ContextSwitchTaskId::DMA, DmaPort::dmaAction(), DPRINTF, ArmISA::Stage2MMU::Stage2Translation::fault, ArmISA::TableWalker::WalkerState::fault, ArmISA::TableWalker::WalkerState::functional, ThreadContext::getCpuPtr(), masterId, ArmISA::TLB::MustBeOne, NoFault, port, ArmISA::Stage2MMU::readDataTimed(), ArmISA::Stage2MMU::readDataUntimed(), MemCmd::ReadReq, MasterPort::sendFunctional(), X86ISA::size(), stage2Mmu, ArmISA::TableWalker::WalkerState::stage2Req, ArmISA::TableWalker::WalkerState::stage2Tran, stateQueues, Request::taskId(), ArmISA::TableWalker::WalkerState::tc, ArmISA::TableWalker::WalkerState::timing, and ArmISA::TableWalker::WalkerState::vaddr.
Referenced by doL1Descriptor(), doLongDescriptor(), processWalk(), and processWalkLPAE().
|
overridevirtual |
Get a master port with a given name and index.
This is used at binding time and returns a reference to a protocol-agnostic base master port.
if_name | Port name |
idx | Index in the case of a VectorPort |
Reimplemented from MemObject.
Definition at line 115 of file table_walker.cc.
References fatal, MemObject::getMasterPort(), isStage2, and port.
|
inline |
Definition at line 908 of file table_walker.hh.
References tlb.
|
inline |
Definition at line 891 of file table_walker.hh.
References _haveLargeAsid64.
Referenced by ArmISA::TLB::TLB().
|
inline |
Definition at line 889 of file table_walker.hh.
References _haveLPAE.
Referenced by ArmISA::TLB::TLB().
|
inline |
Definition at line 890 of file table_walker.hh.
References _haveVirtualization.
Referenced by ArmISA::TLB::TLB().
|
overridevirtual |
init() is called after all C++ SimObjects have been created and all ports are connected.
Initializations that are independent of unserialization but rely on a fully instantiated and connected SimObject graph should be done here.
Reimplemented from SimObject.
Definition at line 107 of file table_walker.cc.
References fatal_if(), port, stage2Mmu, and tlb.
|
private |
Definition at line 2019 of file table_walker.cc.
References ArmISA::TableWalker::WalkerState::aarch64, ArmISA::TableWalker::DescriptorBase::ap(), ArmISA::TlbEntry::ap, ArmISA::TableWalker::LongDescriptor::ap(), ArmISA::TlbEntry::asid, ArmISA::TableWalker::WalkerState::asid, COMPLETED, currState, ArmISA::TableWalker::DescriptorBase::dbgHeader(), ArmISA::TableWalker::DescriptorBase::domain(), ArmISA::TlbEntry::domain, DPRINTF, ArmISA::TlbEntry::el, ArmISA::TableWalker::WalkerState::el, ArmISA::TableWalker::DescriptorBase::getRawData(), ArmISA::TableWalker::DescriptorBase::global(), ArmISA::TlbEntry::global, ArmISA::TlbEntry::hap, haveSecurity, ArmISA::TLB::insert(), ArmISA::TableWalker::WalkerState::isFetch, ArmISA::TlbEntry::isHyp, ArmISA::TableWalker::WalkerState::isHyp, ArmISA::TableWalker::WalkerState::isSecure, isStage2, ArmISA::TlbEntry::longDescFormat, ArmISA::TableWalker::DescriptorBase::lookupLevel, ArmISA::TlbEntry::lookupLevel, memAttrs(), memAttrsAArch64(), memAttrsLPAE(), ArmISA::TlbEntry::N, ArmISA::TlbEntry::nonCacheable, ArmISA::TlbEntry::ns, ArmISA::TlbEntry::nstid, ArmISA::TableWalker::DescriptorBase::offsetBits(), pageSizeNtoStatBin(), ArmISA::TableWalker::DescriptorBase::pfn(), ArmISA::TlbEntry::pfn, ArmISA::TlbEntry::pxn, ArmISA::TableWalker::LongDescriptor::pxn(), ArmISA::TableWalker::WalkerState::pxnTable, ArmISA::TableWalker::WalkerState::req, ArmISA::TableWalker::WalkerState::rwTable, ArmISA::TableWalker::WalkerState::sctlr, ArmISA::TableWalker::DescriptorBase::secure(), ArmISA::TableWalker::DescriptorBase::shareable(), ArmISA::TlbEntry::size, statPageSizes, statRequestOrigin, ArmISA::TableWalker::WalkerState::tc, MipsISA::te, ArmISA::TableWalker::DescriptorBase::texcb(), ArmISA::TableWalker::WalkerState::timing, tlb, ArmISA::TableWalker::WalkerState::userTable, ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TlbEntry::valid, ArmISA::TlbEntry::vmid, ArmISA::TableWalker::WalkerState::vmid, ArmISA::TlbEntry::vpn, ArmISA::TableWalker::DescriptorBase::xn(), ArmISA::TlbEntry::xn, and ArmISA::TableWalker::WalkerState::xnTable.
Referenced by doL1Descriptor(), doL2Descriptor(), and doLongDescriptor().
void TableWalker::memAttrs | ( | ThreadContext * | tc, |
TlbEntry & | te, | ||
SCTLR | sctlr, | ||
uint8_t | texcb, | ||
bool | s | ||
) |
Definition at line 985 of file table_walker.cc.
References bits(), currState, ArmISA::TlbEntry::Device, DPRINTF, ArmISA::flattenMiscRegNsBanked(), ArmISA::TlbEntry::innerAttrs, ArmISA::TableWalker::WalkerState::isSecure, ArmISA::MISCREG_NMRR, ArmISA::MISCREG_PRRR, ArmISA::TlbEntry::mtype, ArmISA::TlbEntry::nonCacheable, ArmISA::TlbEntry::Normal, ArmISA::TlbEntry::outerAttrs, ArmISA::TlbEntry::outerShareable, panic, ThreadContext::readMiscReg(), ArmISA::s, ArmISA::TlbEntry::setAttributes(), ArmISA::TlbEntry::shareable, ArmISA::TlbEntry::StronglyOrdered, and ArmISA::TableWalker::WalkerState::tc.
Referenced by insertTableEntry().
void TableWalker::memAttrsAArch64 | ( | ThreadContext * | tc, |
TlbEntry & | te, | ||
LongDescriptor & | lDescriptor | ||
) |
Definition at line 1318 of file table_walker.cc.
References ArmISA::attr, ArmISA::TlbEntry::attributes, ArmISA::TableWalker::LongDescriptor::attrIndx(), bits(), currState, ArmISA::TlbEntry::Device, DPRINTF, ArmISA::TableWalker::WalkerState::el, ArmISA::EL0, ArmISA::EL1, ArmISA::EL2, ArmISA::EL3, ArmISA::TlbEntry::innerAttrs, ArmISA::TableWalker::LongDescriptor::memAttr(), ArmISA::MISCREG_MAIR_EL1, ArmISA::MISCREG_MAIR_EL2, ArmISA::MISCREG_MAIR_EL3, ArmISA::TlbEntry::mtype, ArmISA::TlbEntry::nonCacheable, ArmISA::TlbEntry::Normal, ArmISA::TlbEntry::ns, ArmISA::TlbEntry::outerAttrs, ArmISA::TlbEntry::outerShareable, panic, ThreadContext::readMiscReg(), ArmISA::TableWalker::LongDescriptor::sh(), ArmISA::sh, ArmISA::TlbEntry::shareable, ArmISA::TlbEntry::StronglyOrdered, and warn_if.
Referenced by insertTableEntry().
void TableWalker::memAttrsLPAE | ( | ThreadContext * | tc, |
TlbEntry & | te, | ||
LongDescriptor & | lDescriptor | ||
) |
Definition at line 1192 of file table_walker.cc.
References _haveLPAE, ArmISA::attr, ArmISA::TlbEntry::attributes, ArmISA::TableWalker::LongDescriptor::attrIndx(), bits(), currState, ArmISA::TlbEntry::Device, DPRINTF, ArmISA::flattenMiscRegNsBanked(), ArmISA::TlbEntry::innerAttrs, ArmISA::TableWalker::WalkerState::isSecure, ArmISA::TableWalker::LongDescriptor::memAttr(), ArmISA::MISCREG_MAIR0, ArmISA::MISCREG_MAIR1, ArmISA::TlbEntry::mtype, ArmISA::TlbEntry::nonCacheable, ArmISA::TlbEntry::Normal, ArmISA::TlbEntry::outerAttrs, ArmISA::TlbEntry::outerShareable, panic, ThreadContext::readMiscReg(), X86ISA::reg, ArmISA::TlbEntry::setAttributes(), ArmISA::TableWalker::LongDescriptor::sh(), ArmISA::sh, ArmISA::TlbEntry::shareable, ArmISA::TlbEntry::StronglyOrdered, and ArmISA::TableWalker::WalkerState::tc.
Referenced by insertTableEntry().
|
private |
Definition at line 1938 of file table_walker.cc.
References Clocked::clockEdge(), completeDrain(), doProcessEvent, pendingQueue, and EventManager::schedule().
Referenced by doL1DescriptorWrapper(), doL2DescriptorWrapper(), doLongDescriptorWrapper(), processWalk(), processWalkLPAE(), and processWalkWrapper().
|
staticprivate |
Definition at line 2142 of file table_walker.cc.
References panic.
Referenced by insertTableEntry().
|
inline |
Definition at line 882 of file table_walker.hh.
References SimObject::_params.
Referenced by drainResume().
|
private |
Definition at line 2117 of file table_walker.cc.
References currState, curTick(), ArmISA::n, pendingChangeTick, pendingQueue, pendingReqs, Stats::DistBase< Derived, Stor >::sample(), and statPendingWalks.
Referenced by drainResume(), processWalkWrapper(), and walk().
|
private |
Definition at line 453 of file table_walker.cc.
References bits(), currState, curTick(), ArmISA::TableWalker::L1Descriptor::data, doL1DescEvent, doL1Descriptor(), DPRINTF, ArmISA::f, ArmISA::TableWalker::WalkerState::fault, fetchDescriptor(), ArmISA::flattenMiscRegNsBanked(), haveSecurity, ArmISA::TableWalker::WalkerState::isFetch, ArmISA::TableWalker::WalkerState::isSecure, isStage2, ArmISA::TableWalker::WalkerState::isWrite, ArmISA::L1, ArmISA::TableWalker::WalkerState::l1Desc, mbits(), ArmISA::MISCREG_TTBR0, ArmISA::MISCREG_TTBR1, nextWalk(), ArmISA::TlbEntry::NoAccess, pending, Request::PT_WALK, ThreadContext::readMiscReg(), ArmISA::TableWalker::WalkerState::req, Stats::DistBase< Derived, Stor >::sample(), ArmISA::TableWalker::WalkerState::sctlr, Request::SECURE, Flags< T >::set(), ArmISA::TableWalker::WalkerState::startTime, statWalkWaitTime, ArmISA::TableWalker::WalkerState::tc, testWalk(), ArmISA::TableWalker::WalkerState::timing, ArmISA::ArmFault::TranslationLL, ArmISA::TableWalker::WalkerState::ttbcr, Request::UNCACHEABLE, ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TableWalker::WalkerState::vaddr_tainted, and ArmISA::ArmFault::VmsaTran.
Referenced by processWalkWrapper(), and walk().
|
private |
Definition at line 732 of file table_walker.cc.
References ArmISA::TableWalker::WalkerState::aarch64, adjustTableSizeAArch64(), bits(), currState, curTick(), DPRINTF, ArmISA::TableWalker::WalkerState::el, ArmISA::EL0, ArmISA::EL1, ArmISA::EL2, ArmISA::EL3, Grain16KB, Grain4KB, Grain64KB, isStage2, ArmISA::L0, ArmISA::L1, ArmISA::L2, ArmISA::L3, ArmISA::mask, ArmISA::MAX_LOOKUP_LEVELS, ArmISA::MISCREG_TTBR0_EL1, ArmISA::MISCREG_TTBR0_EL2, ArmISA::MISCREG_TTBR0_EL3, ArmISA::MISCREG_TTBR1_EL1, ArmISA::MISCREG_VTTBR_EL2, panic_if(), ArmISA::ps, ThreadContext::readMiscReg(), ReservedGrain, Stats::DistBase< Derived, Stor >::sample(), ArmISA::TableWalker::WalkerState::startTime, statWalkWaitTime, ArmISA::TableWalker::WalkerState::tc, ArmISA::TableWalker::WalkerState::tcr, ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TableWalker::WalkerState::vaddr_tainted, and ArmISA::TableWalker::WalkerState::vtcr.
Referenced by processWalkWrapper(), and walk().
|
private |
Definition at line 551 of file table_walker.cc.
References ArmISA::TableWalker::LongDescriptor::aarch64, bits(), currState, curTick(), ArmISA::TableWalker::LongDescriptor::data, doLongDescriptor(), DPRINTF, ArmISA::f, ArmISA::TableWalker::WalkerState::fault, fetchDescriptor(), ArmISA::flattenMiscRegNsBanked(), Grain4KB, ArmISA::TableWalker::LongDescriptor::grainSize, ArmISA::TableWalker::WalkerState::htcr, ArmISA::TableWalker::WalkerState::isFetch, ArmISA::TableWalker::WalkerState::isHyp, ArmISA::TableWalker::WalkerState::isSecure, isStage2, ArmISA::TableWalker::WalkerState::isWrite, ArmISA::L1, ArmISA::L2, ArmISA::TableWalker::WalkerState::longDesc, LongDescEventByLevel, ArmISA::longDescFormatInUse(), ArmISA::TableWalker::DescriptorBase::lookupLevel, ArmISA::ArmFault::LpaeTran, mbits(), ArmISA::MISCREG_HTTBR, ArmISA::MISCREG_TTBR0, ArmISA::MISCREG_TTBR1, ArmISA::MISCREG_VTTBR, ArmISA::n, nextWalk(), ArmISA::TlbEntry::NoAccess, pending, Request::PT_WALK, ThreadContext::readMiscReg(), ArmISA::TableWalker::WalkerState::req, Stats::DistBase< Derived, Stor >::sample(), ArmISA::TableWalker::WalkerState::sctlr, Request::SECURE, Flags< T >::set(), ArmISA::TableWalker::WalkerState::startTime, statWalkWaitTime, ArmISA::TableWalker::WalkerState::tc, testWalk(), ArmISA::TableWalker::WalkerState::timing, ArmISA::ArmFault::TranslationLL, ArmISA::TableWalker::WalkerState::ttbcr, ULL, Request::UNCACHEABLE, ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TableWalker::WalkerState::vaddr_tainted, and ArmISA::TableWalker::WalkerState::vtcr.
Referenced by processWalkWrapper(), and walk().
|
private |
Definition at line 356 of file table_walker.cc.
References ArmISA::TableWalker::WalkerState::aarch64, ArmISA::TableWalker::WalkerState::asid, ArmISA::currEL(), currState, curTick(), DPRINTF, ArmISA::EL0, ArmISA::EL1, ArmISA::f, BaseTLB::Translation::finish(), ArmISA::TableWalker::WalkerState::isHyp, ArmISA::TableWalker::WalkerState::isSecure, isStage2, ArmISA::longDescFormatInUse(), ArmISA::TLB::lookup(), ArmISA::TableWalker::WalkerState::mode, nextWalk(), NoFault, numSquashable, pending, pendingChange(), pendingQueue, processWalk(), processWalkAArch64(), processWalkLPAE(), ArmISA::TableWalker::WalkerState::req, Stats::DistBase< Derived, Stor >::sample(), BaseTLB::Translation::squashed(), ArmISA::TableWalker::WalkerState::startTime, statSquashedBefore, statWalkServiceTime, ArmISA::TableWalker::WalkerState::tc, MipsISA::te, tlb, ArmISA::TLB::translateTiming(), ArmISA::TableWalker::WalkerState::transState, ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TableWalker::WalkerState::vaddr_tainted, and ArmISA::TableWalker::WalkerState::vmid.
|
overridevirtual |
Register statistics for this object.
Reimplemented from SimObject.
Definition at line 2162 of file table_walker.cc.
References Stats::DataWrap< Derived, InfoProxyType >::desc(), Stats::dist, Stats::DataWrap< Derived, InfoProxyType >::flags(), Stats::VectorBase< Derived, Stor >::init(), Stats::Vector2dBase< Derived, Stor >::init(), Stats::Histogram::init(), SimObject::name(), Stats::DataWrap< Derived, InfoProxyType >::name(), Stats::nonan, Stats::nozero, Stats::pdf, ClockedObject::regStats(), statPageSizes, statPendingWalks, statRequestOrigin, statSquashedAfter, statSquashedBefore, statWalks, statWalkServiceTime, statWalksLongDescriptor, statWalksLongTerminatedAtLevel, statWalksShortDescriptor, statWalksShortTerminatedAtLevel, statWalkWaitTime, Stats::DataWrapVec< Derived, InfoProxyType >::subname(), Stats::total, and Stats::DataWrapVec2d< Derived, InfoProxyType >::ysubname().
Definition at line 99 of file table_walker.cc.
References ArmISA::Stage2MMU::getPort(), ArmISA::m, masterId, port, and stage2Mmu.
Referenced by ArmISA::TLB::setMMU().
|
inline |
|
private |
Definition at line 2133 of file table_walker.cc.
References currState, ArmISA::TableWalker::WalkerState::isSecure, ArmISA::TableWalker::WalkerState::mode, ArmISA::TLB::testWalk(), tlb, and ArmISA::TableWalker::WalkerState::vaddr.
Referenced by doL1Descriptor(), doLongDescriptor(), processWalk(), and processWalkLPAE().
|
static |
Definition at line 2100 of file table_walker.cc.
References ArmISA::L1, ArmISA::L2, ArmISA::L3, and panic.
Referenced by doLongDescriptor().
Fault TableWalker::walk | ( | RequestPtr | req, |
ThreadContext * | tc, | ||
uint16_t | asid, | ||
uint8_t | _vmid, | ||
bool | _isHyp, | ||
TLB::Mode | mode, | ||
TLB::Translation * | _trans, | ||
bool | timing, | ||
bool | functional, | ||
bool | secure, | ||
TLB::ArmTranslationType | tranType, | ||
bool | _stage2Req | ||
) |
Definition at line 184 of file table_walker.cc.
References _haveVirtualization, ArmISA::TableWalker::WalkerState::aarch64, ArmISA::TableWalker::WalkerState::asid, ArmISA::currEL(), ArmISA::currOpMode(), currState, curTick(), ArmISA::TableWalker::WalkerState::doingStage2, DPRINTF, ArmISA::TableWalker::WalkerState::el, ArmISA::EL0, ArmISA::EL1, ArmISA::EL2, ArmISA::EL3, ArmISA::ELIs64(), BaseTLB::Execute, ArmISA::TableWalker::WalkerState::fault, ArmISA::flattenMiscRegNsBanked(), ArmISA::TableWalker::WalkerState::functional, Request::getVaddr(), haveSecurity, ArmISA::TableWalker::WalkerState::hcr, ArmISA::TableWalker::WalkerState::htcr, ArmISA::TableWalker::WalkerState::isFetch, ArmISA::TableWalker::WalkerState::isHyp, ArmISA::TableWalker::WalkerState::isSecure, isStage2, ArmISA::TableWalker::WalkerState::isWrite, ArmISA::longDescFormatInUse(), ArmISA::MISCREG_HCR, ArmISA::MISCREG_HCR_EL2, ArmISA::MISCREG_HTCR, ArmISA::MISCREG_SCTLR, ArmISA::MISCREG_SCTLR_EL1, ArmISA::MISCREG_SCTLR_EL2, ArmISA::MISCREG_SCTLR_EL3, ArmISA::MISCREG_TCR_EL1, ArmISA::MISCREG_TCR_EL2, ArmISA::MISCREG_TCR_EL3, ArmISA::MISCREG_TTBCR, ArmISA::MISCREG_VTCR, ArmISA::MISCREG_VTCR_EL2, ArmISA::TableWalker::WalkerState::mode, NoFault, panic, pending, pendingChange(), pendingQueue, ArmISA::TableWalker::WalkerState::physAddrRange, physAddrRange, processWalk(), processWalkAArch64(), processWalkLPAE(), ArmISA::purifyTaggedAddr(), ArmISA::TableWalker::WalkerState::pxnTable, ThreadContext::readMiscReg(), ArmISA::TableWalker::WalkerState::req, REQUESTED, ArmISA::TableWalker::WalkerState::rwTable, ArmISA::TableWalker::WalkerState::sctlr, sctlr, ArmISA::TableWalker::WalkerState::secureLookup, ArmISA::TableWalker::WalkerState::stage2Req, ArmISA::TableWalker::WalkerState::startTime, statRequestOrigin, statSquashedBefore, statWalks, statWalksLongDescriptor, statWalksShortDescriptor, ArmISA::TableWalker::WalkerState::tableWalker, ArmISA::TableWalker::WalkerState::tc, ArmISA::TableWalker::WalkerState::tcr, ArmISA::TableWalker::WalkerState::timing, ArmISA::TableWalker::WalkerState::transState, ArmISA::TableWalker::WalkerState::tranType, ArmISA::TableWalker::WalkerState::ttbcr, ArmISA::TableWalker::WalkerState::userTable, ArmISA::TableWalker::WalkerState::vaddr, ArmISA::TableWalker::WalkerState::vaddr_tainted, ArmISA::TableWalker::WalkerState::vmid, ArmISA::TableWalker::WalkerState::vtcr, BaseTLB::Write, and ArmISA::TableWalker::WalkerState::xnTable.
Referenced by ArmISA::TLB::getTE().
|
protected |
Definition at line 854 of file table_walker.hh.
Referenced by haveLargeAsid64().
|
protected |
Definition at line 851 of file table_walker.hh.
Referenced by haveLPAE(), and memAttrsLPAE().
|
protected |
Definition at line 852 of file table_walker.hh.
Referenced by haveVirtualization(), and walk().
|
staticprotected |
Definition at line 874 of file table_walker.hh.
Referenced by insertTableEntry().
|
protected |
Definition at line 840 of file table_walker.hh.
Referenced by doL1Descriptor(), doL1DescriptorWrapper(), doL2Descriptor(), doL2DescriptorWrapper(), doLongDescriptor(), doLongDescriptorWrapper(), drainResume(), fetchDescriptor(), insertTableEntry(), memAttrs(), memAttrsAArch64(), memAttrsLPAE(), pendingChange(), processWalk(), processWalkAArch64(), processWalkLPAE(), processWalkWrapper(), testWalk(), and walk().
|
private |
Definition at line 935 of file table_walker.hh.
Referenced by TableWalker().
|
private |
Definition at line 924 of file table_walker.hh.
Referenced by processWalk().
|
private |
Definition at line 938 of file table_walker.hh.
Referenced by TableWalker().
|
private |
Definition at line 929 of file table_walker.hh.
Referenced by doL1Descriptor().
|
private |
Definition at line 941 of file table_walker.hh.
Referenced by TableWalker().
|
private |
Definition at line 944 of file table_walker.hh.
Referenced by TableWalker().
|
private |
Definition at line 963 of file table_walker.hh.
Referenced by nextWalk().
|
protected |
Cached copies of system-level properties.
Definition at line 850 of file table_walker.hh.
Referenced by insertTableEntry(), processWalk(), and walk().
|
protected |
Indicates whether this table walker is part of the stage 2 mmu.
Definition at line 832 of file table_walker.hh.
Referenced by doL1Descriptor(), doL2Descriptor(), doLongDescriptor(), getMasterPort(), insertTableEntry(), processWalk(), processWalkAArch64(), processWalkLPAE(), processWalkWrapper(), and walk().
|
private |
Definition at line 947 of file table_walker.hh.
Referenced by doLongDescriptor(), and processWalkLPAE().
|
protected |
Master id assigned by the MMU.
Definition at line 829 of file table_walker.hh.
Referenced by fetchDescriptor(), and setMMU().
|
protected |
The number of walks belonging to squashed instructions that can be removed from the pendingQueue per cycle.
Definition at line 847 of file table_walker.hh.
Referenced by processWalkWrapper().
|
protected |
If a timing translation is currently in progress.
Definition at line 843 of file table_walker.hh.
Referenced by doL1DescriptorWrapper(), doL2DescriptorWrapper(), doLongDescriptorWrapper(), processWalk(), processWalkLPAE(), processWalkWrapper(), and walk().
|
mutableprotected |
Definition at line 871 of file table_walker.hh.
Referenced by pendingChange().
|
protected |
Queue of requests that have passed are waiting because the walker is currently busy.
Definition at line 820 of file table_walker.hh.
Referenced by completeDrain(), drain(), nextWalk(), pendingChange(), processWalkWrapper(), and walk().
|
mutableprotected |
Definition at line 870 of file table_walker.hh.
Referenced by pendingChange().
|
protected |
Definition at line 853 of file table_walker.hh.
Referenced by walk().
|
protected |
Port shared by the two table walkers.
Definition at line 826 of file table_walker.hh.
Referenced by fetchDescriptor(), getMasterPort(), init(), and setMMU().
|
staticprotected |
Definition at line 873 of file table_walker.hh.
Referenced by walk().
|
protected |
Cached copy of the sctlr as it existed when translation began.
Definition at line 838 of file table_walker.hh.
Referenced by walk().
|
protected |
The MMU to forward second stage look upts to.
Definition at line 823 of file table_walker.hh.
Referenced by fetchDescriptor(), init(), and setMMU().
|
protected |
Queues of requests for all the different lookup levels.
Definition at line 816 of file table_walker.hh.
Referenced by completeDrain(), doL1DescriptorWrapper(), doL2DescriptorWrapper(), doLongDescriptorWrapper(), drain(), and fetchDescriptor().
|
protected |
Definition at line 867 of file table_walker.hh.
Referenced by insertTableEntry(), and regStats().
|
protected |
Definition at line 866 of file table_walker.hh.
Referenced by pendingChange(), and regStats().
|
protected |
Definition at line 868 of file table_walker.hh.
Referenced by insertTableEntry(), regStats(), and walk().
|
protected |
Definition at line 863 of file table_walker.hh.
Referenced by regStats().
|
protected |
Definition at line 862 of file table_walker.hh.
Referenced by processWalkWrapper(), regStats(), and walk().
|
protected |
|
protected |
Definition at line 865 of file table_walker.hh.
Referenced by doL1DescriptorWrapper(), doL2DescriptorWrapper(), doLongDescriptorWrapper(), processWalkWrapper(), and regStats().
|
protected |
Definition at line 859 of file table_walker.hh.
Referenced by regStats(), and walk().
|
protected |
Definition at line 861 of file table_walker.hh.
Referenced by doLongDescriptorWrapper(), and regStats().
|
protected |
Definition at line 858 of file table_walker.hh.
Referenced by regStats(), and walk().
|
protected |
Definition at line 860 of file table_walker.hh.
Referenced by doL1DescriptorWrapper(), doL2DescriptorWrapper(), and regStats().
|
protected |
Definition at line 864 of file table_walker.hh.
Referenced by processWalk(), processWalkAArch64(), processWalkLPAE(), and regStats().
|
protected |
TLB that is initiating these table walks.
Definition at line 835 of file table_walker.hh.
Referenced by doL1DescriptorWrapper(), doL2DescriptorWrapper(), doLongDescriptorWrapper(), getTlb(), init(), insertTableEntry(), processWalkWrapper(), setTlb(), and testWalk().