gem5
|
This class represents part of a data address translation. More...
#include <translation.hh>
Public Member Functions | |
DataTranslation (ExecContextPtr _xc, WholeTranslationState *_state) | |
DataTranslation (ExecContextPtr _xc, WholeTranslationState *_state, int _index) | |
void | markDelayed () |
Signal the translation state 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) |
Finish this part of the translation and indicate that the whole translation is complete if the state says so. More... | |
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... | |
Public Member Functions inherited from BaseTLB::Translation | |
virtual | ~Translation () |
Protected Attributes | |
ExecContextPtr | xc |
WholeTranslationState * | state |
int | index |
This class represents part of a data address translation.
All state for the translation is held in WholeTranslationState (above). Therefore this class does not need to know whether the translation is split or not. The index variable determines this but is simply passed on to the state class. When this part of the translation is completed, finish is called. If the translation state class indicate that the whole translation is complete then the execution context is informed.
Definition at line 218 of file translation.hh.
|
inline |
Definition at line 226 of file translation.hh.
|
inline |
Definition at line 231 of file translation.hh.
|
inlinevirtual |
Finish this part of the translation and indicate that the whole translation is complete if the state says so.
Implements BaseTLB::Translation.
Definition at line 252 of file translation.hh.
References WholeTranslationState::finish(), WholeTranslationState::getFault(), DataTranslation< ExecContextPtr >::index, WholeTranslationState::mode, NoFault, Request::setTranslateLatency(), DataTranslation< ExecContextPtr >::state, and DataTranslation< ExecContextPtr >::xc.
|
inlinevirtual |
Signal the translation state that the translation has been delayed due to a hw page table walk.
Split requests are transparently handled.
Implements BaseTLB::Translation.
Definition at line 242 of file translation.hh.
References WholeTranslationState::delay, and DataTranslation< ExecContextPtr >::state.
|
inlinevirtual |
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.
@ return Is the instruction that requested this translation squashed?
Reimplemented from BaseTLB::Translation.
Definition at line 268 of file translation.hh.
References DataTranslation< ExecContextPtr >::xc.
|
protected |
Definition at line 223 of file translation.hh.
Referenced by DataTranslation< ExecContextPtr >::finish().
|
protected |
Definition at line 222 of file translation.hh.
Referenced by DataTranslation< ExecContextPtr >::finish(), and DataTranslation< ExecContextPtr >::markDelayed().
|
protected |
Definition at line 221 of file translation.hh.
Referenced by DataTranslation< ExecContextPtr >::finish(), and DataTranslation< ExecContextPtr >::squashed().