gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
X86ISA::GpuTLB::TranslationState Struct Reference

TLB TranslationState: this currently is a somewhat bastardization of the usage of SenderState, whereby the receiver of a packet is not usually supposed to need to look at the contents of the senderState, you're really only supposed to look at what you pushed on, pop it off, and send it back. More...

#include <gpu_tlb.hh>

Inheritance diagram for X86ISA::GpuTLB::TranslationState:
Packet::SenderState

Public Member Functions

 TranslationState (Mode tlb_mode, ThreadContext *_tc, bool _prefetch=false, Packet::SenderState *_saved=nullptr)
 
- Public Member Functions inherited from Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 

Public Attributes

Mode tlbMode
 
ThreadContexttc
 
GpuTlbEntrytlbEntry
 
bool prefetch
 
uint64_t issueTime
 
std::vector< SlavePort * > ports
 
std::vector< int > reqCnt
 
int hitLevel
 
Packet::SenderStatesaved
 
- Public Attributes inherited from Packet::SenderState
SenderStatepredecessor
 

Detailed Description

TLB TranslationState: this currently is a somewhat bastardization of the usage of SenderState, whereby the receiver of a packet is not usually supposed to need to look at the contents of the senderState, you're really only supposed to look at what you pushed on, pop it off, and send it back.

However, since there is state that we want to pass to the TLBs using the send/recv Timing/Functional/etc. APIs, which don't allow for new arguments, we need a common TLB senderState to pass between TLBs, both "forwards" and "backwards."

So, basically, the rule is that any packet received by a TLB port (cpuside OR memside) must be safely castable to a TranslationState.

Definition at line 343 of file gpu_tlb.hh.

Constructor & Destructor Documentation

X86ISA::GpuTLB::TranslationState::TranslationState ( Mode  tlb_mode,
ThreadContext _tc,
bool  _prefetch = false,
Packet::SenderState _saved = nullptr 
)
inline

Definition at line 370 of file gpu_tlb.hh.

Member Data Documentation

int X86ISA::GpuTLB::TranslationState::hitLevel

Definition at line 367 of file gpu_tlb.hh.

Referenced by X86ISA::GpuTLB::CpuSidePort::recvFunctional().

uint64_t X86ISA::GpuTLB::TranslationState::issueTime

Definition at line 359 of file gpu_tlb.hh.

std::vector<SlavePort*> X86ISA::GpuTLB::TranslationState::ports

Definition at line 361 of file gpu_tlb.hh.

bool X86ISA::GpuTLB::TranslationState::prefetch
std::vector<int> X86ISA::GpuTLB::TranslationState::reqCnt
Packet::SenderState* X86ISA::GpuTLB::TranslationState::saved

Definition at line 368 of file gpu_tlb.hh.

Referenced by ComputeUnit::sendRequest().

ThreadContext* X86ISA::GpuTLB::TranslationState::tc
GpuTlbEntry* X86ISA::GpuTLB::TranslationState::tlbEntry
Mode X86ISA::GpuTLB::TranslationState::tlbMode

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

Generated on Fri Jun 9 2017 13:04:43 for gem5 by doxygen 1.8.6