|
gem5 v25.0.0.1
|
#include <pagetable_walker.hh>
Public Member Functions | |
| WalkerState (Walker *_walker, BaseMMU::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false) | |
| void | initState (ThreadContext *_tc, BaseMMU::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 |
| BaseMMU::Translation * | translation |
| BaseMMU::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 82 of file pagetable_walker.hh.
|
private |
| Enumerator | |
|---|---|
| Ready | |
| Waiting | |
| LongPML4 | |
| LongPDP | |
| LongPD | |
| LongPTE | |
| PAEPDP | |
| PAEPD | |
| PAEPTE | |
| PSEPD | |
| PD | |
| PTE | |
Definition at line 86 of file pagetable_walker.hh.
|
inline |
Definition at line 119 of file pagetable_walker.hh.
References functional, inflight, nextState, Ready, req, retrying, squashed, started, state, timing, translation, Walker, and walker.
|
private |
Definition at line 558 of file pagetable_walker.cc.
References nextState, read, and Ready.
Referenced by stepWalk().
| void gem5::X86ISA::Walker::WalkerState::initState | ( | ThreadContext * | _tc, |
| BaseMMU::Mode | _mode, | ||
| bool | _isTiming = false ) |
Definition at line 182 of file pagetable_walker.cc.
References mode, Ready, started, state, tc, and timing.
Referenced by gem5::X86ISA::Walker::start().
| bool gem5::X86ISA::Walker::WalkerState::isRetrying | ( | ) |
Definition at line 718 of file pagetable_walker.cc.
References retrying.
Referenced by gem5::X86ISA::Walker::recvReqRetry().
| bool gem5::X86ISA::Walker::WalkerState::isTiming | ( | ) |
Definition at line 724 of file pagetable_walker.cc.
References timing.
Referenced by gem5::X86ISA::Walker::start().
|
inline |
Definition at line 139 of file pagetable_walker.hh.
References walker.
| unsigned gem5::X86ISA::Walker::WalkerState::numInflight | ( | ) | const |
Definition at line 712 of file pagetable_walker.cc.
References inflight.
Referenced by gem5::X86ISA::Walker::startWalkWrapper().
|
private |
Definition at line 749 of file pagetable_walker.cc.
References DPRINTF, enableNX, entry, gem5::BaseMMU::Execute, gem5::X86ISA::misc_reg::M5Reg, mode, gem5::X86ISA::present, gem5::BaseMMU::Read, and tc.
Referenced by stepWalk().
| bool gem5::X86ISA::Walker::WalkerState::recvPacket | ( | PacketPtr | pkt | ) |
Definition at line 619 of file pagetable_walker.cc.
References gem5::Packet::headerDelay, inflight, gem5::Packet::isRead(), gem5::Packet::isResponse(), mode, nextState, gem5::NoFault, gem5::Packet::payloadDelay, read, Ready, req, sendPackets(), squashed, state, stepWalk(), tc, timingFault, translation, Waiting, walker, and writes.
Referenced by gem5::X86ISA::Walker::recvTimingResp().
| void gem5::X86ISA::Walker::WalkerState::retry | ( | ) |
Definition at line 742 of file pagetable_walker.cc.
References retrying, and sendPackets().
Referenced by gem5::X86ISA::Walker::recvReqRetry().
|
private |
Definition at line 679 of file pagetable_walker.cc.
References inflight, read, retrying, walker, and writes.
Referenced by recvPacket(), retry(), and startWalk().
|
private |
Definition at line 566 of file pagetable_walker.cc.
References gem5::X86ISA::addr, gem5::X86ISA::misc_reg::Cr3, gem5::X86ISA::misc_reg::Cr4, dataSize, gem5::X86ISA::misc_reg::Efer, enableNX, entry, LongPML4, nextState, PAEPDP, PD, gem5::Request::PHYSICAL, PSEPD, read, gem5::MemCmd::ReadReq, Ready, gem5::Flags< T >::set(), state, tc, gem5::Request::UNCACHEABLE, gem5::MipsISA::vaddr, and walker.
Referenced by startFunctional(), and startWalk().
| void gem5::X86ISA::Walker::WalkerState::squash | ( | ) |
Definition at line 736 of file pagetable_walker.cc.
References squashed.
Referenced by gem5::X86ISA::Walker::startWalkWrapper().
Definition at line 262 of file pagetable_walker.cc.
References gem5::X86ISA::addr, entry, nextState, gem5::NoFault, read, Ready, setupWalk(), started, state, stepWalk(), and walker.
| Fault gem5::X86ISA::Walker::WalkerState::startWalk | ( | ) |
Definition at line 230 of file pagetable_walker.cc.
References nextState, gem5::NoFault, read, Ready, req, sendPackets(), setupWalk(), started, state, stepWalk(), timing, timingFault, Waiting, and walker.
Referenced by gem5::X86ISA::Walker::start(), and gem5::X86ISA::Walker::startWalkWrapper().
Definition at line 290 of file pagetable_walker.cc.
References gem5::bits(), gem5::Packet::cmd, gem5::X86ISA::misc_reg::Cr3, gem5::X86ISA::misc_reg::Cr4, dataSize, DPRINTF, enableNX, endWalk(), entry, gem5::BaseMMU::Execute, functional, gem5::Packet::getSize(), LongPD, LongPDP, LongPML4, LongPTE, gem5::mbits(), mode, nextState, gem5::NoFault, PAEPD, PAEPDP, PAEPTE, pageFault(), panic, PD, PSEPD, PTE, read, gem5::MemCmd::ReadReq, Ready, gem5::Packet::req, gem5::Flags< T >::set(), gem5::Packet::setLE(), state, tc, gem5::Request::UNCACHEABLE, gem5::MipsISA::vaddr, Waiting, walker, and gem5::MemCmd::WriteReq.
Referenced by recvPacket(), startFunctional(), and startWalk().
| bool gem5::X86ISA::Walker::WalkerState::wasStarted | ( | ) |
Definition at line 730 of file pagetable_walker.cc.
References started.
Referenced by gem5::X86ISA::Walker::startWalkWrapper().
|
friend |
Definition at line 84 of file pagetable_walker.hh.
References Walker.
Referenced by Walker, and WalkerState().
|
protected |
Definition at line 104 of file pagetable_walker.hh.
Referenced by setupWalk(), and stepWalk().
|
protected |
Definition at line 105 of file pagetable_walker.hh.
Referenced by pageFault(), setupWalk(), and stepWalk().
|
protected |
Definition at line 107 of file pagetable_walker.hh.
Referenced by pageFault(), setupWalk(), startFunctional(), and stepWalk().
|
protected |
Definition at line 113 of file pagetable_walker.hh.
Referenced by stepWalk(), and WalkerState().
|
protected |
Definition at line 106 of file pagetable_walker.hh.
Referenced by numInflight(), recvPacket(), sendPackets(), and WalkerState().
|
protected |
Definition at line 112 of file pagetable_walker.hh.
Referenced by initState(), pageFault(), recvPacket(), gem5::X86ISA::Walker::startWalkWrapper(), and stepWalk().
|
protected |
Definition at line 103 of file pagetable_walker.hh.
Referenced by endWalk(), recvPacket(), setupWalk(), startFunctional(), startWalk(), stepWalk(), and WalkerState().
|
protected |
Definition at line 108 of file pagetable_walker.hh.
Referenced by endWalk(), recvPacket(), sendPackets(), setupWalk(), startFunctional(), startWalk(), and stepWalk().
|
protected |
Definition at line 101 of file pagetable_walker.hh.
Referenced by recvPacket(), startWalk(), gem5::X86ISA::Walker::startWalkWrapper(), and WalkerState().
|
protected |
Definition at line 115 of file pagetable_walker.hh.
Referenced by isRetrying(), retry(), sendPackets(), and WalkerState().
|
protected |
Definition at line 117 of file pagetable_walker.hh.
Referenced by recvPacket(), squash(), and WalkerState().
|
protected |
Definition at line 116 of file pagetable_walker.hh.
Referenced by initState(), startFunctional(), startWalk(), WalkerState(), and wasStarted().
|
protected |
Definition at line 102 of file pagetable_walker.hh.
Referenced by initState(), recvPacket(), setupWalk(), startFunctional(), startWalk(), stepWalk(), and WalkerState().
|
protected |
Definition at line 100 of file pagetable_walker.hh.
Referenced by initState(), pageFault(), recvPacket(), setupWalk(), gem5::X86ISA::Walker::startWalkWrapper(), and stepWalk().
|
protected |
Definition at line 114 of file pagetable_walker.hh.
Referenced by initState(), isTiming(), startWalk(), and WalkerState().
|
protected |
Definition at line 110 of file pagetable_walker.hh.
Referenced by recvPacket(), and startWalk().
|
protected |
Definition at line 111 of file pagetable_walker.hh.
Referenced by recvPacket(), gem5::X86ISA::Walker::startWalkWrapper(), and WalkerState().
|
protected |
Definition at line 99 of file pagetable_walker.hh.
Referenced by name(), recvPacket(), sendPackets(), setupWalk(), startFunctional(), startWalk(), stepWalk(), and WalkerState().
|
protected |
Definition at line 109 of file pagetable_walker.hh.
Referenced by recvPacket(), and sendPackets().