gem5  v22.1.0.0
Public Member Functions | Protected Attributes | List of all members
gem5::DataTranslation< ExecContextPtr > Class Template Reference

This class represents part of a data address translation. More...

#include <translation.hh>

Inheritance diagram for gem5::DataTranslation< ExecContextPtr >:
gem5::BaseMMU::Translation

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, BaseMMU::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 gem5::BaseMMU::Translation
virtual ~Translation ()
 

Protected Attributes

ExecContextPtr xc
 
WholeTranslationStatestate
 
int index
 

Detailed Description

template<class ExecContextPtr>
class gem5::DataTranslation< ExecContextPtr >

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.

Constructor & Destructor Documentation

◆ DataTranslation() [1/2]

template<class ExecContextPtr >
gem5::DataTranslation< ExecContextPtr >::DataTranslation ( ExecContextPtr  _xc,
WholeTranslationState _state 
)
inline

Definition at line 227 of file translation.hh.

◆ DataTranslation() [2/2]

template<class ExecContextPtr >
gem5::DataTranslation< ExecContextPtr >::DataTranslation ( ExecContextPtr  _xc,
WholeTranslationState _state,
int  _index 
)
inline

Definition at line 232 of file translation.hh.

Member Function Documentation

◆ finish()

template<class ExecContextPtr >
void gem5::DataTranslation< ExecContextPtr >::finish ( const Fault fault,
const RequestPtr req,
ThreadContext tc,
BaseMMU::Mode  mode 
)
inlinevirtual

◆ markDelayed()

template<class ExecContextPtr >
void gem5::DataTranslation< ExecContextPtr >::markDelayed ( )
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.

◆ squashed()

template<class ExecContextPtr >
bool gem5::DataTranslation< ExecContextPtr >::squashed ( ) const
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.

Member Data Documentation

◆ index

template<class ExecContextPtr >
int gem5::DataTranslation< ExecContextPtr >::index
protected

Definition at line 224 of file translation.hh.

Referenced by gem5::DataTranslation< ExecContextPtr >::finish().

◆ state

template<class ExecContextPtr >
WholeTranslationState* gem5::DataTranslation< ExecContextPtr >::state
protected

◆ xc

template<class ExecContextPtr >
ExecContextPtr gem5::DataTranslation< ExecContextPtr >::xc
protected

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

Generated on Wed Dec 21 2022 10:23:15 for gem5 by doxygen 1.9.1