|
gem5 v25.0.0.1
|
#include <faults.hh>
Protected Member Functions | |
| RiscvFault (FaultName n, FaultType ft, ExceptionCode c) | |
| FaultName | name () const override |
| bool | isInterrupt () const |
| bool | isNonMaskableInterrupt () const |
| bool | isResumableNonMaskableInterrupt (ISA *isa) const |
| bool | isPlainException () const |
| bool | isGuestPageFault () const |
| ExceptionCode | exception () const |
| virtual RegVal | trap_value () const |
| virtual RegVal | trap_value2 () const |
| virtual bool | mustSetGva () const |
| virtual void | invokeSE (ThreadContext *tc, const StaticInstPtr &inst) |
| void | invoke (ThreadContext *tc, const StaticInstPtr &inst) override |
Protected Attributes | |
| const FaultName | _name |
| const FaultType | _fault_type |
| ExceptionCode | _code |
Additional Inherited Members | |
| Public Member Functions inherited from gem5::FaultBase | |
| virtual | ~FaultBase () |
|
inlineprotected |
Definition at line 65 of file faults.hh.
References _code, _fault_type, _name, gem5::RiscvISA::c, and gem5::ArmISA::n.
Referenced by gem5::RiscvISA::AddressFault::AddressFault(), gem5::RiscvISA::BreakpointFault::BreakpointFault(), gem5::RiscvISA::InstFault::InstFault(), gem5::RiscvISA::InterruptFault::InterruptFault(), gem5::RiscvISA::NonMaskableInterruptFault::NonMaskableInterruptFault(), gem5::RiscvISA::SyscallFault::SyscallFault(), and gem5::RiscvISA::VirtualInstFault::VirtualInstFault().
|
inlineprotected |
|
overrideprotectedvirtual |
Reimplemented from gem5::FaultBase.
Definition at line 60 of file faults.cc.
References _code, gem5::X86ISA::addr, gem5::PCStateBase::as(), gem5::bits(), gem5::RiscvISA::CAUSE_INTERRUPT_MASKS, gem5::ThreadContext::contextId(), DPRINTFS, exception(), gem5::FullSystem, gem5::ThreadContext::getCpuPtr(), gem5::ThreadContext::getIsaPtr(), gem5::RiscvISA::INT_EXT_SUPER, gem5::RiscvISA::INT_EXT_VIRTUAL_SUPER, gem5::RiscvISA::INT_SOFTWARE_SUPER, gem5::RiscvISA::INT_SOFTWARE_VIRTUAL_SUPER, gem5::RiscvISA::INT_TIMER_SUPER, gem5::RiscvISA::INT_TIMER_VIRTUAL_SUPER, invokeSE(), isGuestPageFault(), isInterrupt(), isNonMaskableInterrupt(), isResumableNonMaskableInterrupt(), gem5::RiscvISA::MISCREG_HEDELEG, gem5::RiscvISA::MISCREG_HIDELEG, gem5::RiscvISA::MISCREG_HSTATUS, gem5::RiscvISA::MISCREG_HTVAL, gem5::RiscvISA::MISCREG_ISA, gem5::RiscvISA::MISCREG_MCAUSE, gem5::RiscvISA::MISCREG_MEDELEG, gem5::RiscvISA::MISCREG_MEPC, gem5::RiscvISA::MISCREG_MIDELEG, gem5::RiscvISA::MISCREG_MNCAUSE, gem5::RiscvISA::MISCREG_MNEPC, gem5::RiscvISA::MISCREG_MNSTATUS, gem5::RiscvISA::MISCREG_MTVAL, gem5::RiscvISA::MISCREG_MTVAL2, gem5::RiscvISA::MISCREG_MTVEC, gem5::RiscvISA::MISCREG_NMIE, gem5::RiscvISA::MISCREG_NMIVEC, gem5::RiscvISA::MISCREG_PRV, gem5::RiscvISA::MISCREG_SCAUSE, gem5::RiscvISA::MISCREG_SEPC, gem5::RiscvISA::MISCREG_STATUS, gem5::RiscvISA::MISCREG_STVAL, gem5::RiscvISA::MISCREG_STVEC, gem5::RiscvISA::MISCREG_VSCAUSE, gem5::RiscvISA::MISCREG_VSEPC, gem5::RiscvISA::MISCREG_VSSTATUS, gem5::RiscvISA::MISCREG_VSTVAL, gem5::RiscvISA::MISCREG_VSTVEC, mustSetGva(), name(), panic, gem5::ThreadContext::pcState(), gem5::RiscvISA::PRV_HS, gem5::RiscvISA::PRV_M, gem5::RiscvISA::PRV_S, gem5::RiscvISA::PRV_U, gem5::ThreadContext::readMiscReg(), gem5::ThreadContext::readMiscRegNoEffect(), gem5::RiscvISA::resetV(), gem5::ThreadContext::setMiscReg(), gem5::ArmISA::status, trap_value(), trap_value2(), gem5::RiscvISA::virtualizationEnabled(), and warn_if.
|
protectedvirtual |
Reimplemented in gem5::RiscvISA::BreakpointFault, gem5::RiscvISA::IllegalFrmFault, gem5::RiscvISA::IllegalInstFault, gem5::RiscvISA::SyscallFault, gem5::RiscvISA::UnimplementedFault, and gem5::RiscvISA::UnknownInstFault.
Definition at line 54 of file faults.cc.
References name(), panic, and gem5::ThreadContext::pcState().
Referenced by invoke().
|
inlineprotected |
Definition at line 83 of file faults.hh.
References _code, gem5::RiscvISA::AMO_GUEST_PAGE, gem5::RiscvISA::INST_GUEST_PAGE, gem5::RiscvISA::LOAD_GUEST_PAGE, and gem5::RiscvISA::STORE_GUEST_PAGE.
Referenced by invoke().
|
inlineprotected |
Definition at line 70 of file faults.hh.
References _fault_type, and gem5::RiscvISA::INTERRUPT.
Referenced by invoke().
|
inlineprotected |
Definition at line 71 of file faults.hh.
References _fault_type, and gem5::RiscvISA::NON_MASKABLE_INTERRUPT.
Referenced by invoke(), and isResumableNonMaskableInterrupt().
|
inlineprotected |
Definition at line 80 of file faults.hh.
References _fault_type, and gem5::RiscvISA::OTHERS.
|
inlineprotected |
Definition at line 75 of file faults.hh.
References gem5::RiscvISA::ISA::enableSmrnmi(), and isNonMaskableInterrupt().
Referenced by invoke().
|
inlineprotectedvirtual |
Reimplemented in gem5::RiscvISA::AddressFault, and gem5::RiscvISA::BreakpointFault.
Definition at line 91 of file faults.hh.
Referenced by invoke().
|
inlineoverrideprotectedvirtual |
Implements gem5::FaultBase.
Definition at line 69 of file faults.hh.
References _name.
Referenced by invoke(), invokeSE(), and gem5::RiscvISA::UnimplementedFault::UnimplementedFault().
|
inlineprotectedvirtual |
Reimplemented in gem5::RiscvISA::AddressFault, gem5::RiscvISA::BreakpointFault, gem5::RiscvISA::InstFault, and gem5::RiscvISA::VirtualInstFault.
Definition at line 89 of file faults.hh.
Referenced by invoke().
|
inlineprotectedvirtual |
Reimplemented in gem5::RiscvISA::AddressFault.
Definition at line 90 of file faults.hh.
Referenced by invoke().
|
protected |
Definition at line 63 of file faults.hh.
Referenced by exception(), invoke(), isGuestPageFault(), gem5::RiscvISA::AddressFault::mustSetGva(), RiscvFault(), and gem5::RiscvISA::SyscallFault::SyscallFault().
|
protected |
Definition at line 62 of file faults.hh.
Referenced by isInterrupt(), isNonMaskableInterrupt(), isPlainException(), and RiscvFault().
|
protected |
Definition at line 61 of file faults.hh.
Referenced by name(), and RiscvFault().