gem5  v21.1.0.2
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
gem5::X86ISA::X86FaultBase Class Reference

#include <faults.hh>

Inheritance diagram for gem5::X86ISA::X86FaultBase:
gem5::FaultBase gem5::X86ISA::DebugException gem5::X86ISA::SecurityException gem5::X86ISA::X86Abort gem5::X86ISA::X86Fault gem5::X86ISA::X86Interrupt gem5::X86ISA::X86Trap gem5::X86ISA::DoubleFault gem5::X86ISA::MachineCheck gem5::X86ISA::AlignmentCheck gem5::X86ISA::BoundRange gem5::X86ISA::DeviceNotAvailable gem5::X86ISA::DivideError gem5::X86ISA::GeneralProtection gem5::X86ISA::InvalidOpcode gem5::X86ISA::InvalidTSS gem5::X86ISA::PageFault gem5::X86ISA::SegmentNotPresent gem5::X86ISA::SIMDFloatingPointFault gem5::X86ISA::StackFault gem5::X86ISA::X87FpExceptionPending gem5::X86ISA::ExternalInterrupt gem5::X86ISA::InitInterrupt gem5::X86ISA::NonMaskableInterrupt gem5::X86ISA::SoftwareInterrupt gem5::X86ISA::StartupInterrupt gem5::X86ISA::SystemManagementInterrupt gem5::X86ISA::Breakpoint gem5::X86ISA::OverflowTrap

Public Member Functions

virtual uint8_t getVector () const
 Get the vector of an interrupt. More...
 
- Public Member Functions inherited from gem5::FaultBase
virtual ~FaultBase ()
 

Protected Member Functions

 X86FaultBase (const char *_faultName, const char *_mnem, const uint8_t _vector, uint64_t _errorCode=(uint64_t) -1)
 
const char * name () const override
 
virtual bool isBenign ()
 
virtual const char * mnemonic () const
 
virtual bool isSoft ()
 
void invoke (ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
 
virtual std::string describe () const
 

Protected Attributes

const char * faultName
 
const char * mnem
 
uint8_t vector
 
uint64_t errorCode
 

Detailed Description

Definition at line 56 of file faults.hh.

Constructor & Destructor Documentation

◆ X86FaultBase()

gem5::X86ISA::X86FaultBase::X86FaultBase ( const char *  _faultName,
const char *  _mnem,
const uint8_t  _vector,
uint64_t  _errorCode = (uint64_t)-1 
)
inlineprotected

Definition at line 64 of file faults.hh.

Member Function Documentation

◆ describe()

std::string gem5::X86ISA::X86FaultBase::describe ( ) const
protectedvirtual

Reimplemented in gem5::X86ISA::PageFault.

Definition at line 99 of file faults.cc.

References gem5::ccprintf(), errorCode, mnemonic(), and ss.

Referenced by gem5::X86ISA::PageFault::describe(), and invoke().

◆ getVector()

virtual uint8_t gem5::X86ISA::X86FaultBase::getVector ( ) const
inlinevirtual

Get the vector of an interrupt.

Returns
interrupt vector number.

Definition at line 86 of file faults.hh.

References vector.

Referenced by gem5::X86KvmCPU::deliverInterrupts().

◆ invoke()

void gem5::X86ISA::X86FaultBase::invoke ( ThreadContext tc,
const StaticInstPtr inst = nullStaticInstPtr 
)
overrideprotectedvirtual

◆ isBenign()

virtual bool gem5::X86ISA::X86FaultBase::isBenign ( )
inlineprotectedvirtual

Definition at line 71 of file faults.hh.

◆ isSoft()

virtual bool gem5::X86ISA::X86FaultBase::isSoft ( )
inlineprotectedvirtual

Reimplemented in gem5::X86ISA::SoftwareInterrupt.

Definition at line 73 of file faults.hh.

Referenced by invoke().

◆ mnemonic()

virtual const char* gem5::X86ISA::X86FaultBase::mnemonic ( ) const
inlineprotectedvirtual

Definition at line 72 of file faults.hh.

References mnem.

Referenced by describe().

◆ name()

const char* gem5::X86ISA::X86FaultBase::name ( ) const
inlineoverrideprotectedvirtual

Implements gem5::FaultBase.

Definition at line 70 of file faults.hh.

References faultName.

Member Data Documentation

◆ errorCode

uint64_t gem5::X86ISA::X86FaultBase::errorCode
protected

◆ faultName

const char* gem5::X86ISA::X86FaultBase::faultName
protected

Definition at line 59 of file faults.hh.

Referenced by name().

◆ mnem

const char* gem5::X86ISA::X86FaultBase::mnem
protected

Definition at line 60 of file faults.hh.

Referenced by mnemonic().

◆ vector

uint8_t gem5::X86ISA::X86FaultBase::vector
protected

Definition at line 61 of file faults.hh.

Referenced by getVector(), invoke(), and gem5::X86ISA::StartupInterrupt::invoke().


The documentation for this class was generated from the following files:

Generated on Tue Sep 21 2021 12:35:01 for gem5 by doxygen 1.8.17