gem5
v20.1.0.0
|
#include <pagetable_walker.hh>
Public Member Functions | |
WalkerState (Walker *_walker, BaseTLB::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false) | |
void | initState (ThreadContext *_tc, BaseTLB::Mode _mode, bool _isTiming=false) |
Fault | startWalk () |
Fault | startFunctional (Addr &addr, unsigned &logBytes) |
bool | recvPacket (PacketPtr pkt) |
unsigned | numInflight () const |
bool | isRetrying () |
bool | wasStarted () |
bool | isTiming () |
void | retry () |
void | squash () |
std::string | name () const |
Protected Attributes | |
Walker * | walker |
ThreadContext * | tc |
RequestPtr | req |
State | state |
State | nextState |
int | dataSize |
bool | enableNX |
unsigned | inflight |
TlbEntry | entry |
PacketPtr | read |
std::vector< PacketPtr > | writes |
Fault | timingFault |
TLB::Translation * | translation |
BaseTLB::Mode | mode |
bool | functional |
bool | timing |
bool | retrying |
bool | started |
bool | squashed |
Private Types | |
enum | State { Ready, Waiting, LongPML4, LongPDP, LongPD, LongPTE, PAEPDP, PAEPD, PAEPTE, PSEPD, PD, PTE } |
Private Member Functions | |
void | setupWalk (Addr vaddr) |
Fault | stepWalk (PacketPtr &write) |
void | sendPackets () |
void | endWalk () |
Fault | pageFault (bool present) |
Friends | |
class | Walker |
Definition at line 78 of file pagetable_walker.hh.
|
private |
Enumerator | |
---|---|
Ready | |
Waiting | |
LongPML4 | |
LongPDP | |
LongPD | |
LongPTE | |
PAEPDP | |
PAEPD | |
PAEPTE | |
PSEPD | |
PD | |
PTE |
Definition at line 82 of file pagetable_walker.hh.
|
inline |
Definition at line 114 of file pagetable_walker.hh.
|
private |
Definition at line 540 of file pagetable_walker.cc.
void X86ISA::Walker::WalkerState::initState | ( | ThreadContext * | _tc, |
BaseTLB::Mode | _mode, | ||
bool | _isTiming = false |
||
) |
Definition at line 178 of file pagetable_walker.cc.
References ArmISA::mode.
Referenced by X86ISA::Walker::start(), and X86ISA::Walker::startFunctional().
bool X86ISA::Walker::WalkerState::isRetrying | ( | ) |
Definition at line 697 of file pagetable_walker.cc.
Referenced by X86ISA::Walker::recvReqRetry().
bool X86ISA::Walker::WalkerState::isTiming | ( | ) |
Definition at line 703 of file pagetable_walker.cc.
Referenced by X86ISA::Walker::start().
|
inline |
Definition at line 134 of file pagetable_walker.hh.
References SimObject::name(), and walker.
unsigned X86ISA::Walker::WalkerState::numInflight | ( | ) | const |
Definition at line 691 of file pagetable_walker.cc.
Referenced by X86ISA::Walker::startWalkWrapper().
|
private |
Definition at line 728 of file pagetable_walker.cc.
References DPRINTF, BaseTLB::Execute, X86ISA::MISCREG_M5_REG, ArmISA::mode, X86ISA::present, and BaseTLB::Read.
bool X86ISA::Walker::WalkerState::recvPacket | ( | PacketPtr | pkt | ) |
Definition at line 598 of file pagetable_walker.cc.
References Packet::headerDelay, Packet::isRead(), Packet::isResponse(), ArmISA::mode, NoFault, and Packet::payloadDelay.
Referenced by X86ISA::Walker::recvTimingResp().
void X86ISA::Walker::WalkerState::retry | ( | ) |
Definition at line 721 of file pagetable_walker.cc.
Referenced by X86ISA::Walker::recvReqRetry().
|
private |
Definition at line 658 of file pagetable_walker.cc.
|
private |
Definition at line 548 of file pagetable_walker.cc.
References X86ISA::addr, X86ISA::MISCREG_CR3, X86ISA::MISCREG_CR4, X86ISA::MISCREG_EFER, Request::PHYSICAL, MemCmd::ReadReq, Flags< T >::set(), Request::UNCACHEABLE, and MipsISA::vaddr.
void X86ISA::Walker::WalkerState::squash | ( | ) |
Definition at line 715 of file pagetable_walker.cc.
Referenced by X86ISA::Walker::startWalkWrapper().
Definition at line 255 of file pagetable_walker.cc.
References X86ISA::addr, and NoFault.
Referenced by X86ISA::Walker::startFunctional().
Fault X86ISA::Walker::WalkerState::startWalk | ( | ) |
Definition at line 226 of file pagetable_walker.cc.
References NoFault.
Referenced by X86ISA::Walker::start(), and X86ISA::Walker::startWalkWrapper().
Definition at line 279 of file pagetable_walker.cc.
References bits(), Packet::cmd, DPRINTF, BaseTLB::Execute, Packet::getLE(), Packet::getSize(), X86ISA::mask, ArmISA::mode, NoFault, panic, MemCmd::ReadReq, Packet::req, Flags< T >::set(), Packet::setLE(), Request::UNCACHEABLE, MipsISA::vaddr, and MemCmd::WriteReq.
bool X86ISA::Walker::WalkerState::wasStarted | ( | ) |
Definition at line 709 of file pagetable_walker.cc.
Referenced by X86ISA::Walker::startWalkWrapper().
|
friend |
Definition at line 80 of file pagetable_walker.hh.
|
protected |
Definition at line 99 of file pagetable_walker.hh.
|
protected |
Definition at line 100 of file pagetable_walker.hh.
|
protected |
Definition at line 102 of file pagetable_walker.hh.
|
protected |
Definition at line 108 of file pagetable_walker.hh.
|
protected |
Definition at line 101 of file pagetable_walker.hh.
|
protected |
Definition at line 107 of file pagetable_walker.hh.
Referenced by X86ISA::Walker::startWalkWrapper().
|
protected |
Definition at line 98 of file pagetable_walker.hh.
|
protected |
Definition at line 103 of file pagetable_walker.hh.
|
protected |
Definition at line 96 of file pagetable_walker.hh.
Referenced by X86ISA::Walker::startWalkWrapper().
|
protected |
Definition at line 110 of file pagetable_walker.hh.
|
protected |
Definition at line 112 of file pagetable_walker.hh.
|
protected |
Definition at line 111 of file pagetable_walker.hh.
|
protected |
Definition at line 97 of file pagetable_walker.hh.
|
protected |
Definition at line 95 of file pagetable_walker.hh.
Referenced by X86ISA::Walker::startWalkWrapper().
|
protected |
Definition at line 109 of file pagetable_walker.hh.
|
protected |
Definition at line 105 of file pagetable_walker.hh.
|
protected |
Definition at line 106 of file pagetable_walker.hh.
Referenced by X86ISA::Walker::startWalkWrapper().
|
protected |
Definition at line 94 of file pagetable_walker.hh.
Referenced by name().
|
protected |
Definition at line 104 of file pagetable_walker.hh.