From 9e8e2f9ec6ae4ea3be8f5280a1ca4cb734e3e068 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 12 Oct 2008 22:42:10 -0700 Subject: X86: Make the x86 interrupt fault kick off the interrupt microcode. --- src/arch/x86/faults.hh | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/arch/x86/faults.hh') diff --git a/src/arch/x86/faults.hh b/src/arch/x86/faults.hh index b15ad15d1..b7948a638 100644 --- a/src/arch/x86/faults.hh +++ b/src/arch/x86/faults.hh @@ -137,9 +137,10 @@ namespace X86ISA class X86Interrupt : public X86FaultBase { protected: - X86Interrupt(const char * name, const char * mnem, + uint8_t vector; + X86Interrupt(const char * name, const char * mnem, uint8_t _vector, uint64_t _errorCode = 0) : - X86FaultBase(name, mnem, _errorCode) + X86FaultBase(name, mnem, _errorCode), vector(_vector) {} #if FULL_SYSTEM @@ -215,10 +216,9 @@ namespace X86ISA class NonMaskableInterrupt : public X86Interrupt { - uint8_t vector; public: NonMaskableInterrupt(uint8_t _vector) : - X86Interrupt("Non Maskable Interrupt", "#NMI"), vector(_vector) + X86Interrupt("Non Maskable Interrupt", "#NMI", _vector) {} }; @@ -352,10 +352,9 @@ namespace X86ISA class ExternalInterrupt : public X86Interrupt { - uint8_t vector; public: ExternalInterrupt(uint8_t _vector) : - X86Interrupt("External Interrupt", "#INTR"), vector(_vector) + X86Interrupt("External Interrupt", "#INTR", _vector) {} }; @@ -363,7 +362,7 @@ namespace X86ISA { public: SystemManagementInterrupt() : - X86Interrupt("System Management Interrupt", "#SMI") + X86Interrupt("System Management Interrupt", "#SMI", 0) {} }; @@ -372,15 +371,15 @@ namespace X86ISA uint8_t vector; public: InitInterrupt(uint8_t _vector) : - X86Interrupt("INIT Interrupt", "#INIT"), vector(_vector) + X86Interrupt("INIT Interrupt", "#INIT", _vector) {} }; class SoftwareInterrupt : public X86Interrupt { public: - SoftwareInterrupt() : - X86Interrupt("Software Interrupt", "INTn") + SoftwareInterrupt(uint8_t _vector) : + X86Interrupt("Software Interrupt", "INTn", _vector) {} }; -- cgit v1.2.3