Go to the documentation of this file.
38 #ifndef __ARCH_X86_FAULTS_HH__
39 #define __ARCH_X86_FAULTS_HH__
65 const uint8_t _vector, uint64_t _errorCode=(uint64_t)-1) :
73 virtual bool isSoft() {
return false; }
78 virtual std::string
describe()
const;
131 return "unimplemented_micro";
138 panic(
"Unimplemented instruction!");
190 X86Interrupt(
"Non Maskable Interrupt",
"#NMI", 2, _vector)
237 X86Fault(
"Invalid-TSS",
"#TS", 10, _errorCode)
245 X86Fault(
"Segment-Not-Present",
"#NP", 11, _errorCode)
260 X86Fault(
"General-Protection",
"#GP", 13, _errorCode)
279 X86Fault(
"Page-Fault",
"#PF", 14, _errorCode),
addr(_addr)
286 PageFaultErrorCode code = 0;
299 virtual std::string
describe()
const;
306 X86Fault(
"x87 Floating-Point Exception Pending",
"#MF", 16)
385 #endif // __ARCH_X86_FAULTS_HH__
StartupInterrupt(uint8_t _vector)
GeneralProtection(uint32_t _errorCode)
InitInterrupt(uint8_t _vector)
SoftwareInterrupt(uint8_t _vector)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
PageFault(Addr _addr, uint32_t _errorCode)
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
SegmentNotPresent(uint32_t _errorCode)
NonMaskableInterrupt(uint8_t _vector)
ExternalInterrupt(uint8_t _vector)
PageFault(Addr _addr, bool present, BaseMMU::Mode mode, bool user, bool reserved)
const StaticInstPtr nullStaticInstPtr
Statically allocated null StaticInstPtr.
StackFault(uint32_t _errorCode)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
EndBitUnion(PageFaultErrorCode) Addr addr
virtual uint8_t getVector() const
Get the vector of an interrupt.
SystemManagementInterrupt()
InvalidTSS(uint32_t _errorCode)
virtual std::string describe() const
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.
BitUnion32(PageFaultErrorCode) Bitfield< 0 > present
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
const char * name() const override
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
virtual const char * mnemonic() const
virtual std::string describe() const
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr)
#define panic(...)
This implements a cprintf based panic() function.
const char * name() const override
X86FaultBase(const char *_faultName, const char *_mnem, const uint8_t _vector, uint64_t _errorCode=(uint64_t) -1)
Generated on Tue Feb 8 2022 11:46:56 for gem5 by doxygen 1.8.17