gem5 v24.0.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. | |
void | finish (const Fault &fault, const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode) |
Finish this part of the translation and indicate that the whole translation is complete if the state says so. | |
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. | |
Public Member Functions inherited from gem5::BaseMMU::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 219 of file translation.hh.
|
inline |
Definition at line 227 of file translation.hh.
|
inline |
Definition at line 232 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 gem5::BaseMMU::Translation.
Definition at line 253 of file translation.hh.
References gem5::WholeTranslationState::finish(), gem5::WholeTranslationState::getFault(), gem5::DataTranslation< ExecContextPtr >::index, gem5::ArmISA::mode, gem5::WholeTranslationState::mode, gem5::NoFault, gem5::DataTranslation< ExecContextPtr >::state, and gem5::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 gem5::BaseMMU::Translation.
Definition at line 243 of file translation.hh.
References gem5::WholeTranslationState::delay, and gem5::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 gem5::BaseMMU::Translation.
Definition at line 269 of file translation.hh.
References gem5::DataTranslation< ExecContextPtr >::xc.
|
protected |
Definition at line 224 of file translation.hh.
Referenced by gem5::DataTranslation< ExecContextPtr >::finish().
|
protected |
Definition at line 223 of file translation.hh.
Referenced by gem5::DataTranslation< ExecContextPtr >::finish(), and gem5::DataTranslation< ExecContextPtr >::markDelayed().
|
protected |
Definition at line 222 of file translation.hh.
Referenced by gem5::DataTranslation< ExecContextPtr >::finish(), and gem5::DataTranslation< ExecContextPtr >::squashed().