gem5
|
#include <stage2_lookup.hh>
Public Member Functions | |
Stage2LookUp (TLB *s1Tlb, TLB *s2Tlb, TlbEntry s1Te, RequestPtr _req, TLB::Translation *_transState, BaseTLB::Mode _mode, bool _timing, bool _functional, TLB::ArmTranslationType _tranType) | |
Fault | getTe (ThreadContext *tc, TlbEntry *destTe) |
void | mergeTe (RequestPtr req, BaseTLB::Mode mode) |
void | setSelfDelete () |
bool | isComplete () const |
void | markDelayed () |
Signal that the translation has been delayed due to a hw page table walk. More... | |
void | finish (const Fault &fault, RequestPtr req, ThreadContext *tc, BaseTLB::Mode mode) |
Public Member Functions inherited from BaseTLB::Translation | |
virtual | ~Translation () |
virtual bool | squashed () const |
This function is used by the page table walker to determine if it should translate the a pending request or if the underlying request has been squashed. More... | |
Private Attributes | |
TLB * | stage1Tlb |
TLB * | stage2Tlb |
TlbEntry | stage1Te |
RequestPtr | s1Req |
TLB::Translation * | transState |
BaseTLB::Mode | mode |
bool | timing |
bool | functional |
TLB::ArmTranslationType | tranType |
TlbEntry * | stage2Te |
Request | req |
Fault | fault |
bool | complete |
bool | selfDelete |
Definition at line 58 of file stage2_lookup.hh.
|
inline |
Definition at line 77 of file stage2_lookup.hh.
References Request::getFlags(), Request::getSize(), Request::getVaddr(), Request::masterId(), ArmISA::TlbEntry::pAddr(), req, s1Req, and Request::setVirt().
|
virtual |
Implements BaseTLB::Translation.
Definition at line 178 of file stage2_lookup.cc.
References fault, BaseTLB::Translation::finish(), functional, ArmISA::TLB::getTE(), mergeTe(), NoFault, s1Req, selfDelete, stage1Tlb, stage2Te, stage2Tlb, timing, ArmISA::TLB::translateComplete(), transState, and tranType.
Fault Stage2LookUp::getTe | ( | ThreadContext * | tc, |
TlbEntry * | destTe | ||
) |
Definition at line 57 of file stage2_lookup.cc.
References ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), fault, functional, ArmISA::TLB::getTE(), ArmISA::inAArch64(), mergeTe(), mode, NoFault, req, stage1Te, stage2Te, stage2Tlb, timing, and tranType.
Referenced by ArmISA::TLB::getResultTe().
|
inline |
Definition at line 95 of file stage2_lookup.hh.
References complete.
Referenced by ArmISA::TLB::getResultTe().
|
inlinevirtual |
Signal that the translation has been delayed due to a hw page table walk.
Implements BaseTLB::Translation.
Definition at line 97 of file stage2_lookup.hh.
void Stage2LookUp::mergeTe | ( | RequestPtr | req, |
BaseTLB::Mode | mode | ||
) |
Definition at line 82 of file stage2_lookup.cc.
References complete, ArmISA::TlbEntry::Device, fault, Request::getVaddr(), ArmISA::TlbEntry::innerAttrs, ArmISA::TlbEntry::mtype, ArmISA::TlbEntry::N, NoFault, ArmISA::TlbEntry::nonCacheable, ArmISA::TlbEntry::Normal, ArmISA::TlbEntry::outerAttrs, ArmISA::TlbEntry::outerShareable, ArmISA::ArmFault::OVA, ArmISA::TlbEntry::pfn, s1Req, ArmISA::TlbEntry::shareable, ArmISA::TlbEntry::size, stage1Te, stage2Te, ArmISA::TlbEntry::StronglyOrdered, ArmISA::TlbEntry::updateAttributes(), ArmISA::TlbEntry::vpn, and ArmISA::TlbEntry::xn.
|
inline |
Definition at line 93 of file stage2_lookup.hh.
References selfDelete.
Referenced by ArmISA::TLB::getResultTe().
|
private |
Definition at line 73 of file stage2_lookup.hh.
Referenced by isComplete(), and mergeTe().
|
private |
Definition at line 72 of file stage2_lookup.hh.
|
private |
Definition at line 68 of file stage2_lookup.hh.
|
private |
Definition at line 66 of file stage2_lookup.hh.
Referenced by getTe().
|
private |
Definition at line 71 of file stage2_lookup.hh.
Referenced by getTe(), and Stage2LookUp().
|
private |
Definition at line 64 of file stage2_lookup.hh.
Referenced by finish(), mergeTe(), and Stage2LookUp().
|
private |
Definition at line 74 of file stage2_lookup.hh.
Referenced by finish(), and setSelfDelete().
|
private |
Definition at line 63 of file stage2_lookup.hh.
|
private |
Definition at line 61 of file stage2_lookup.hh.
Referenced by finish().
|
private |
Definition at line 70 of file stage2_lookup.hh.
|
private |
Definition at line 62 of file stage2_lookup.hh.
|
private |
Definition at line 67 of file stage2_lookup.hh.
|
private |
Definition at line 65 of file stage2_lookup.hh.
Referenced by finish().
|
private |
Definition at line 69 of file stage2_lookup.hh.