gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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, 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 218 of file translation.hh.

Constructor & Destructor Documentation

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

Definition at line 226 of file translation.hh.

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

Definition at line 231 of file translation.hh.

Member Function Documentation

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

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

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 268 of file translation.hh.

References DataTranslation< ExecContextPtr >::xc.

Member Data Documentation

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

Definition at line 223 of file translation.hh.

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

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

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

Generated on Fri Jun 9 2017 13:04:06 for gem5 by doxygen 1.8.6