29#ifndef __SPARC_FAULTS_HH__
30#define __SPARC_FAULTS_HH__
146 public SparcFault<InstructionInvalidTSBEntry> {};
172 public SparcFault<InstructionRealTranslationMiss> {};
206 public SparcFault<FastInstructionAccessMMUMiss>
EnumeratedFault(uint32_t n)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
FastDataAccessMMUMiss(Addr addr)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
FastInstructionAccessMMUMiss(Addr addr)
FastInstructionAccessMMUMiss()
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
InterruptLevelN(uint32_t n)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
virtual PrivilegeLevel getNextLevel(PrivilegeLevel current)=0
virtual FaultPriority priority()=0
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
std::array< PrivilegeLevel, NumLevels > PrivilegeLevelSpec
virtual TrapType trapType()=0
PrivilegeLevel getNextLevel(PrivilegeLevel current)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
TrapInstruction(uint32_t n)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void getREDVector(RegVal TT, Addr &PC, Addr &NPC)
void getHyperVector(ThreadContext *tc, Addr &PC, Addr &NPC, RegVal TT)
void doREDFault(ThreadContext *tc, TrapType tt)
This sets everything up for a RED state trap except for actually jumping to the handler.
void getPrivVector(ThreadContext *tc, Addr &PC, Addr &NPC, RegVal TT, RegVal TL)
void enterREDState(ThreadContext *tc)
This causes the thread context to enter RED state.
void doNormalFault(ThreadContext *tc, TrapType tt, bool gotoHpriv)
This sets everything up for a normal trap except for actually jumping to the handler.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const StaticInstPtr nullStaticInstPtr
Statically allocated null StaticInstPtr.
const FaultPriority priority
FaultVals(const FaultName &name_, const TrapType &trapType_, const FaultPriority &priority_, const PrivilegeLevelSpec &il)
const PrivilegeLevelSpec nextPrivilegeLevel