gem5 v24.0.0.0
|
#include <faults.hh>
Classes | |
struct | FaultVals |
Public Types | |
enum | PrivilegeLevel { U , User = U , P , Privileged = P , H , Hyperprivileged = H , NumLevels , SH = -1 , ShouldntHappen = SH } |
using | PrivilegeLevelSpec = std::array<PrivilegeLevel, NumLevels> |
Public Member Functions | |
void | invoke (ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) |
virtual TrapType | trapType ()=0 |
virtual FaultPriority | priority ()=0 |
virtual PrivilegeLevel | getNextLevel (PrivilegeLevel current)=0 |
Public Member Functions inherited from gem5::FaultBase | |
virtual FaultName | name () const =0 |
virtual | ~FaultBase () |
using gem5::SparcISA::SparcFaultBase::PrivilegeLevelSpec = std::array<PrivilegeLevel, NumLevels> |
|
pure virtual |
Implemented in gem5::SparcISA::SparcFault< T >, gem5::SparcISA::SparcFault< CleanWindow >, gem5::SparcISA::SparcFault< CpuMondo >, gem5::SparcISA::SparcFault< DataAccessError >, gem5::SparcISA::SparcFault< DataAccessException >, gem5::SparcISA::SparcFault< DataAccessProtection >, gem5::SparcISA::SparcFault< DataInvalidTSBEntry >, gem5::SparcISA::SparcFault< DataRealTranslationMiss >, gem5::SparcISA::SparcFault< DevMondo >, gem5::SparcISA::SparcFault< DivisionByZero >, gem5::SparcISA::SparcFault< ExternallyInitiatedReset >, gem5::SparcISA::SparcFault< FastDataAccessMMUMiss >, gem5::SparcISA::SparcFault< FastDataAccessProtection >, gem5::SparcISA::SparcFault< FastInstructionAccessMMUMiss >, gem5::SparcISA::SparcFault< FillNNormal >, gem5::SparcISA::SparcFault< FillNOther >, gem5::SparcISA::SparcFault< FpDisabled >, gem5::SparcISA::SparcFault< FpExceptionIEEE754 >, gem5::SparcISA::SparcFault< FpExceptionOther >, gem5::SparcISA::SparcFault< HstickMatch >, gem5::SparcISA::SparcFault< IllegalInstruction >, gem5::SparcISA::SparcFault< InstructionAccessError >, gem5::SparcISA::SparcFault< InstructionAccessException >, gem5::SparcISA::SparcFault< InstructionBreakpoint >, gem5::SparcISA::SparcFault< InstructionInvalidTSBEntry >, gem5::SparcISA::SparcFault< InstructionRealTranslationMiss >, gem5::SparcISA::SparcFault< InternalProcessorError >, gem5::SparcISA::SparcFault< InterruptLevelN >, gem5::SparcISA::SparcFault< InterruptVector >, gem5::SparcISA::SparcFault< LDDFMemAddressNotAligned >, gem5::SparcISA::SparcFault< LDQFMemAddressNotAligned >, gem5::SparcISA::SparcFault< MemAddressNotAligned >, gem5::SparcISA::SparcFault< PAWatchpoint >, gem5::SparcISA::SparcFault< PowerOnReset >, gem5::SparcISA::SparcFault< PrivilegedAction >, gem5::SparcISA::SparcFault< PrivilegedOpcode >, gem5::SparcISA::SparcFault< REDStateException >, gem5::SparcISA::SparcFault< ResumableError >, gem5::SparcISA::SparcFault< SoftwareInitiatedReset >, gem5::SparcISA::SparcFault< SpillNNormal >, gem5::SparcISA::SparcFault< SpillNOther >, gem5::SparcISA::SparcFault< STDFMemAddressNotAligned >, gem5::SparcISA::SparcFault< StoreError >, gem5::SparcISA::SparcFault< STQFMemAddressNotAligned >, gem5::SparcISA::SparcFault< TagOverflow >, gem5::SparcISA::SparcFault< TrapInstruction >, gem5::SparcISA::SparcFault< TrapLevelZero >, gem5::SparcISA::SparcFault< VAWatchpoint >, gem5::SparcISA::SparcFault< VecDisabled >, and gem5::SparcISA::SparcFault< WatchDogReset >.
Referenced by invoke().
|
virtual |
Reimplemented from gem5::FaultBase.
Reimplemented in gem5::SparcISA::SpillNNormal, and gem5::SparcISA::TrapInstruction.
Definition at line 497 of file faults.cc.
References gem5::SparcISA::doNormalFault(), gem5::SparcISA::doREDFault(), gem5::SparcISA::enterREDState(), gem5::FullSystem, gem5::SparcISA::getHyperVector(), getNextLevel(), gem5::SparcISA::getPrivVector(), gem5::SparcISA::getREDVector(), Hyperprivileged, gem5::FaultBase::invoke(), gem5::X86ISA::level, gem5::SparcISA::MaxPTL, gem5::SparcISA::MaxTL, gem5::SparcISA::MISCREG_HPSTATE, gem5::SparcISA::MISCREG_PSTATE, gem5::SparcISA::MISCREG_TL, gem5::SparcISA::MISCREG_TT, panic, gem5::GenericISA::PCStateWithNext::pc(), gem5::MipsISA::pc, gem5::ThreadContext::pcState(), Privileged, gem5::ThreadContext::readMiscRegNoEffect(), gem5::MipsISA::tl, trapType(), and User.
Referenced by gem5::Iob::generateIpi(), gem5::SparcISA::FastDataAccessMMUMiss::invoke(), gem5::SparcISA::FastInstructionAccessMMUMiss::invoke(), gem5::SparcISA::FillNNormal::invoke(), gem5::SparcISA::SpillNNormal::invoke(), and gem5::SparcISA::TrapInstruction::invoke().
|
pure virtual |
Implemented in gem5::SparcISA::InterruptLevelN, gem5::SparcISA::SparcFault< T >, gem5::SparcISA::SparcFault< CleanWindow >, gem5::SparcISA::SparcFault< CpuMondo >, gem5::SparcISA::SparcFault< DataAccessError >, gem5::SparcISA::SparcFault< DataAccessException >, gem5::SparcISA::SparcFault< DataAccessProtection >, gem5::SparcISA::SparcFault< DataInvalidTSBEntry >, gem5::SparcISA::SparcFault< DataRealTranslationMiss >, gem5::SparcISA::SparcFault< DevMondo >, gem5::SparcISA::SparcFault< DivisionByZero >, gem5::SparcISA::SparcFault< ExternallyInitiatedReset >, gem5::SparcISA::SparcFault< FastDataAccessMMUMiss >, gem5::SparcISA::SparcFault< FastDataAccessProtection >, gem5::SparcISA::SparcFault< FastInstructionAccessMMUMiss >, gem5::SparcISA::SparcFault< FillNNormal >, gem5::SparcISA::SparcFault< FillNOther >, gem5::SparcISA::SparcFault< FpDisabled >, gem5::SparcISA::SparcFault< FpExceptionIEEE754 >, gem5::SparcISA::SparcFault< FpExceptionOther >, gem5::SparcISA::SparcFault< HstickMatch >, gem5::SparcISA::SparcFault< IllegalInstruction >, gem5::SparcISA::SparcFault< InstructionAccessError >, gem5::SparcISA::SparcFault< InstructionAccessException >, gem5::SparcISA::SparcFault< InstructionBreakpoint >, gem5::SparcISA::SparcFault< InstructionInvalidTSBEntry >, gem5::SparcISA::SparcFault< InstructionRealTranslationMiss >, gem5::SparcISA::SparcFault< InternalProcessorError >, gem5::SparcISA::SparcFault< InterruptLevelN >, gem5::SparcISA::SparcFault< InterruptVector >, gem5::SparcISA::SparcFault< LDDFMemAddressNotAligned >, gem5::SparcISA::SparcFault< LDQFMemAddressNotAligned >, gem5::SparcISA::SparcFault< MemAddressNotAligned >, gem5::SparcISA::SparcFault< PAWatchpoint >, gem5::SparcISA::SparcFault< PowerOnReset >, gem5::SparcISA::SparcFault< PrivilegedAction >, gem5::SparcISA::SparcFault< PrivilegedOpcode >, gem5::SparcISA::SparcFault< REDStateException >, gem5::SparcISA::SparcFault< ResumableError >, gem5::SparcISA::SparcFault< SoftwareInitiatedReset >, gem5::SparcISA::SparcFault< SpillNNormal >, gem5::SparcISA::SparcFault< SpillNOther >, gem5::SparcISA::SparcFault< STDFMemAddressNotAligned >, gem5::SparcISA::SparcFault< StoreError >, gem5::SparcISA::SparcFault< STQFMemAddressNotAligned >, gem5::SparcISA::SparcFault< TagOverflow >, gem5::SparcISA::SparcFault< TrapInstruction >, gem5::SparcISA::SparcFault< TrapLevelZero >, gem5::SparcISA::SparcFault< VAWatchpoint >, gem5::SparcISA::SparcFault< VecDisabled >, and gem5::SparcISA::SparcFault< WatchDogReset >.
|
pure virtual |
Implemented in gem5::SparcISA::EnumeratedFault< T >, gem5::SparcISA::EnumeratedFault< FillNNormal >, gem5::SparcISA::EnumeratedFault< FillNOther >, gem5::SparcISA::EnumeratedFault< InterruptLevelN >, gem5::SparcISA::EnumeratedFault< SpillNNormal >, gem5::SparcISA::EnumeratedFault< SpillNOther >, gem5::SparcISA::EnumeratedFault< TrapInstruction >, gem5::SparcISA::SparcFault< T >, gem5::SparcISA::SparcFault< CleanWindow >, gem5::SparcISA::SparcFault< CpuMondo >, gem5::SparcISA::SparcFault< DataAccessError >, gem5::SparcISA::SparcFault< DataAccessException >, gem5::SparcISA::SparcFault< DataAccessProtection >, gem5::SparcISA::SparcFault< DataInvalidTSBEntry >, gem5::SparcISA::SparcFault< DataRealTranslationMiss >, gem5::SparcISA::SparcFault< DevMondo >, gem5::SparcISA::SparcFault< DivisionByZero >, gem5::SparcISA::SparcFault< ExternallyInitiatedReset >, gem5::SparcISA::SparcFault< FastDataAccessMMUMiss >, gem5::SparcISA::SparcFault< FastDataAccessProtection >, gem5::SparcISA::SparcFault< FastInstructionAccessMMUMiss >, gem5::SparcISA::SparcFault< FillNNormal >, gem5::SparcISA::SparcFault< FillNOther >, gem5::SparcISA::SparcFault< FpDisabled >, gem5::SparcISA::SparcFault< FpExceptionIEEE754 >, gem5::SparcISA::SparcFault< FpExceptionOther >, gem5::SparcISA::SparcFault< HstickMatch >, gem5::SparcISA::SparcFault< IllegalInstruction >, gem5::SparcISA::SparcFault< InstructionAccessError >, gem5::SparcISA::SparcFault< InstructionAccessException >, gem5::SparcISA::SparcFault< InstructionBreakpoint >, gem5::SparcISA::SparcFault< InstructionInvalidTSBEntry >, gem5::SparcISA::SparcFault< InstructionRealTranslationMiss >, gem5::SparcISA::SparcFault< InternalProcessorError >, gem5::SparcISA::SparcFault< InterruptLevelN >, gem5::SparcISA::SparcFault< InterruptVector >, gem5::SparcISA::SparcFault< LDDFMemAddressNotAligned >, gem5::SparcISA::SparcFault< LDQFMemAddressNotAligned >, gem5::SparcISA::SparcFault< MemAddressNotAligned >, gem5::SparcISA::SparcFault< PAWatchpoint >, gem5::SparcISA::SparcFault< PowerOnReset >, gem5::SparcISA::SparcFault< PrivilegedAction >, gem5::SparcISA::SparcFault< PrivilegedOpcode >, gem5::SparcISA::SparcFault< REDStateException >, gem5::SparcISA::SparcFault< ResumableError >, gem5::SparcISA::SparcFault< SoftwareInitiatedReset >, gem5::SparcISA::SparcFault< SpillNNormal >, gem5::SparcISA::SparcFault< SpillNOther >, gem5::SparcISA::SparcFault< STDFMemAddressNotAligned >, gem5::SparcISA::SparcFault< StoreError >, gem5::SparcISA::SparcFault< STQFMemAddressNotAligned >, gem5::SparcISA::SparcFault< TagOverflow >, gem5::SparcISA::SparcFault< TrapInstruction >, gem5::SparcISA::SparcFault< TrapLevelZero >, gem5::SparcISA::SparcFault< VAWatchpoint >, gem5::SparcISA::SparcFault< VecDisabled >, and gem5::SparcISA::SparcFault< WatchDogReset >.
Referenced by invoke().