gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
ArmISA::AbortFault< T > Class Template Reference

#include <faults.hh>

Inheritance diagram for ArmISA::AbortFault< T >:
ArmISA::ArmFaultVals< T > ArmISA::ArmFault FaultBase

Public Member Functions

 AbortFault (Addr _faultAddr, bool _write, TlbEntry::DomainType _domain, uint8_t _source, bool _stage2, ArmFault::TranMethod _tranMethod=ArmFault::UnknownTran)
 
void invoke (ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
 
FSR getFsr (ThreadContext *tc)
 
bool abortDisable (ThreadContext *tc)
 
uint32_t iss () const
 
bool isStage2 () const
 
void annotate (ArmFault::AnnotationIDs id, uint64_t val)
 
bool isMMUFault () const
 
- Public Member Functions inherited from ArmISA::ArmFaultVals< T >
 ArmFaultVals (ExtMachInst _machInst=0, uint32_t _iss=0)
 
FaultName name () const
 
FaultStatcountStat ()
 
FaultOffset offset (ThreadContext *tc)
 
FaultOffset offset64 ()
 
OperatingMode nextMode ()
 
virtual bool routeToMonitor (ThreadContext *tc) const
 
uint8_t armPcOffset (bool isHyp)
 
uint8_t thumbPcOffset (bool isHyp)
 
uint8_t armPcElrOffset ()
 
uint8_t thumbPcElrOffset ()
 
virtual bool fiqDisable (ThreadContext *tc)
 
virtual ExceptionClass ec (ThreadContext *tc) const
 
- Public Member Functions inherited from ArmISA::ArmFault
 ArmFault (ExtMachInst _machInst=0, uint32_t _iss=0)
 
MiscRegIndex getSyndromeReg64 () const
 
MiscRegIndex getFaultAddrReg64 () const
 
void invoke64 (ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
 
virtual bool routeToHyp (ThreadContext *tc) const
 
virtual void setSyndrome (ThreadContext *tc, MiscRegIndex syndrome_reg)
 

Protected Attributes

Addr faultAddr
 The virtual address the fault occured at. More...
 
Addr OVAddr
 Original virtual address. More...
 
bool write
 
TlbEntry::DomainType domain
 
uint8_t source
 
uint8_t srcEncoded
 
bool stage2
 
bool s1ptw
 
ArmFault::TranMethod tranMethod
 
- Protected Attributes inherited from ArmISA::ArmFault
ExtMachInst machInst
 
uint32_t issRaw
 
bool from64
 
bool to64
 
ExceptionLevel fromEL
 
ExceptionLevel toEL
 
OperatingMode fromMode
 

Additional Inherited Members

- Public Types inherited from ArmISA::ArmFault
enum  FaultSource {
  AlignmentFault = 0, InstructionCacheMaintenance, SynchExtAbtOnTranslTableWalkLL, SynchPtyErrOnTranslTableWalkLL = SynchExtAbtOnTranslTableWalkLL + 4,
  TranslationLL = SynchPtyErrOnTranslTableWalkLL + 4, AccessFlagLL = TranslationLL + 4, DomainLL = AccessFlagLL + 4, PermissionLL = DomainLL + 4,
  DebugEvent = PermissionLL + 4, SynchronousExternalAbort, TLBConflictAbort, SynchPtyErrOnMemoryAccess,
  AsynchronousExternalAbort, AsynchPtyErrOnMemoryAccess, AddressSizeLL, PrefetchTLBMiss = AddressSizeLL + 4,
  PrefetchUncacheable, NumFaultSources, FaultSourceInvalid = 0xff
}
 Generic fault source enums used to index into {short/long/aarch64}DescFaultSources[] to get the actual encodings based on the current register width state and the translation table format in use. More...
 
enum  AnnotationIDs {
  S1PTW, OVA, SAS, SSE,
  SRT, SF, AR
}
 
enum  TranMethod { LpaeTran, VmsaTran, UnknownTran }
 
- Static Public Attributes inherited from ArmISA::ArmFault
static uint8_t shortDescFaultSources [NumFaultSources]
 Encodings of the fault sources when the short-desc. More...
 
static uint8_t longDescFaultSources [NumFaultSources]
 Encodings of the fault sources when the long-desc. More...
 
static uint8_t aarch64FaultSources [NumFaultSources]
 Encodings of the fault sources in AArch64 state. More...
 
- Protected Member Functions inherited from ArmISA::ArmFaultVals< T >
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
template<>
ArmFault::FaultVals vals
 
- Protected Member Functions inherited from ArmISA::ArmFault
Addr getVector (ThreadContext *tc)
 
Addr getVector64 (ThreadContext *tc)
 
- Static Protected Attributes inherited from ArmISA::ArmFaultVals< T >
static FaultVals vals
 

Detailed Description

template<class T>
class ArmISA::AbortFault< T >

Definition at line 376 of file faults.hh.

Constructor & Destructor Documentation

template<class T>
ArmISA::AbortFault< T >::AbortFault ( Addr  _faultAddr,
bool  _write,
TlbEntry::DomainType  _domain,
uint8_t  _source,
bool  _stage2,
ArmFault::TranMethod  _tranMethod = ArmFault::UnknownTran 
)
inline

Definition at line 401 of file faults.hh.

Member Function Documentation

template<class T >
bool ArmISA::AbortFault< T >::abortDisable ( ThreadContext tc)
virtual
template<class T >
void ArmISA::AbortFault< T >::annotate ( ArmFault::AnnotationIDs  id,
uint64_t  val 
)
virtual

Reimplemented from ArmISA::ArmFault.

Definition at line 1032 of file faults.cc.

References ArmISA::ArmFault::OVA, ArmISA::ArmFault::S1PTW, and X86ISA::val.

Referenced by ArmISA::DataAbort::annotate().

template<class T >
FSR ArmISA::AbortFault< T >::getFsr ( ThreadContext tc)
virtual
template<class T >
void ArmISA::AbortFault< T >::invoke ( ThreadContext tc,
const StaticInstPtr inst = StaticInst::nullStaticInstPtr 
)
virtual
template<class T >
bool ArmISA::AbortFault< T >::isMMUFault ( ) const
template<class T >
uint32_t ArmISA::AbortFault< T >::iss ( ) const
virtual

Reimplemented from ArmISA::ArmFaultVals< T >.

Definition at line 1051 of file faults.cc.

References X86ISA::val.

Referenced by ArmISA::DataAbort::iss().

template<class T>
bool ArmISA::AbortFault< T >::isStage2 ( ) const
inlinevirtual

Reimplemented from ArmISA::ArmFault.

Definition at line 415 of file faults.hh.

Member Data Documentation

template<class T>
TlbEntry::DomainType ArmISA::AbortFault< T >::domain
protected

Definition at line 393 of file faults.hh.

template<class T>
Addr ArmISA::AbortFault< T >::faultAddr
protected

The virtual address the fault occured at.

If 2 stages of translation are being used then this is the intermediate physical address that is the starting point for the second stage of translation.

Definition at line 385 of file faults.hh.

template<class T>
Addr ArmISA::AbortFault< T >::OVAddr
protected

Original virtual address.

If the fault was generated on the second stage of translation then this variable stores the virtual address used in the original stage 1 translation.

Definition at line 391 of file faults.hh.

template<class T>
bool ArmISA::AbortFault< T >::s1ptw
protected

Definition at line 397 of file faults.hh.

template<class T>
uint8_t ArmISA::AbortFault< T >::source
protected

Definition at line 394 of file faults.hh.

template<class T>
uint8_t ArmISA::AbortFault< T >::srcEncoded
protected

Definition at line 395 of file faults.hh.

template<class T>
bool ArmISA::AbortFault< T >::stage2
protected

Definition at line 396 of file faults.hh.

Referenced by ArmISA::AbortFault< DataAbort >::isStage2().

template<class T>
ArmFault::TranMethod ArmISA::AbortFault< T >::tranMethod
protected

Definition at line 398 of file faults.hh.

template<class T>
bool ArmISA::AbortFault< T >::write
protected

Definition at line 392 of file faults.hh.


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

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