gem5
v20.1.0.0
|
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, const 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 215 of file translation.hh.
|
inline |
Definition at line 223 of file translation.hh.
|
inline |
Definition at line 228 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 249 of file translation.hh.
References WholeTranslationState::finish(), WholeTranslationState::getFault(), DataTranslation< ExecContextPtr >::index, ArmISA::mode, WholeTranslationState::mode, NoFault, 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 239 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 265 of file translation.hh.
References DataTranslation< ExecContextPtr >::xc.
|
protected |
Definition at line 220 of file translation.hh.
Referenced by DataTranslation< ExecContextPtr >::finish().
|
protected |
Definition at line 219 of file translation.hh.
Referenced by DataTranslation< ExecContextPtr >::finish(), and DataTranslation< ExecContextPtr >::markDelayed().
|
protected |
Definition at line 218 of file translation.hh.
Referenced by DataTranslation< ExecContextPtr >::finish(), and DataTranslation< ExecContextPtr >::squashed().