Go to the documentation of this file.
31 #ifndef __ARCH_RISCV_FAULTS_HH__
32 #define __ARCH_RISCV_FAULTS_HH__
196 :
InstFault(
"Illegal instruction", inst),
210 :
InstFault(
"Unimplemented instruction", inst),
224 :
InstFault(
"Illegal floating-point rounding mode", inst),
276 panic(
"Unknown privilege mode %d.", prv);
287 #endif // __ARCH_RISCV_FAULTS_HH__
const std::string instName
const FaultType _fault_type
void invoke(ThreadContext *tc, const StaticInstPtr &inst) override
BreakpointFault(const PCStateBase &pc)
RegVal trap_value() const override
RegVal trap_value() const override
AddressFault(const Addr addr, ExceptionCode code)
If you want a reference counting pointer to a mutable object, create it like this:
NonMaskableInterruptFault()
IllegalInstFault(std::string r, const ExtMachInst inst)
const StaticInstPtr nullStaticInstPtr
Statically allocated null StaticInstPtr.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
RegVal trap_value() const override
UnimplementedFault(std::string name, const ExtMachInst inst)
FaultName name() const override
RiscvFault(FaultName n, FaultType ft, ExceptionCode c)
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
UnknownInstFault(const ExtMachInst inst)
InstFault(FaultName n, const ExtMachInst inst)
const typedef char * FaultName
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
ExceptionCode exception() const
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
SyscallFault(PrivilegeMode prv)
InterruptFault(ExceptionCode c)
virtual RegVal trap_value() const
FaultName name() const override
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
IllegalFrmFault(uint8_t r, const ExtMachInst inst)
virtual void invokeSE(ThreadContext *tc, const StaticInstPtr &inst)
bool isNonMaskableInterrupt() const
#define panic(...)
This implements a cprintf based panic() function.
Generated on Sun Jul 30 2023 01:56:47 for gem5 by doxygen 1.8.17