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

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

#include <translation.hh>

Inheritance diagram for DataTranslation< ExecContextPtr >:
BaseTLB::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, 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
 
WholeTranslationStatestate
 
int index
 

Detailed Description

template<class ExecContextPtr>
class 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 215 of file translation.hh.

Constructor & Destructor Documentation

◆ DataTranslation() [1/2]

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

Definition at line 223 of file translation.hh.

◆ DataTranslation() [2/2]

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

Definition at line 228 of file translation.hh.

Member Function Documentation

◆ finish()

template<class ExecContextPtr >
void DataTranslation< ExecContextPtr >::finish ( const Fault fault,
const RequestPtr req,
ThreadContext tc,
BaseTLB::Mode  mode 
)
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.

◆ markDelayed()

template<class ExecContextPtr >
void 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 BaseTLB::Translation.

Definition at line 239 of file translation.hh.

References WholeTranslationState::delay, and DataTranslation< ExecContextPtr >::state.

◆ squashed()

template<class ExecContextPtr >
bool 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 BaseTLB::Translation.

Definition at line 265 of file translation.hh.

References DataTranslation< ExecContextPtr >::xc.

Member Data Documentation

◆ index

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

Definition at line 220 of file translation.hh.

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

◆ state

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

◆ xc

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

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

Generated on Wed Sep 30 2020 14:02:23 for gem5 by doxygen 1.8.17