20 #ifndef KERNEL_PROCESSOR_X64_INTERRUPTMANAGER_H 21 #define KERNEL_PROCESSOR_X64_INTERRUPTMANAGER_H 23 #include "pedigree/kernel/Spinlock.h" 24 #include "pedigree/kernel/compiler.h" 25 #include "pedigree/kernel/processor/InterruptManager.h" 26 #include "pedigree/kernel/processor/state_forward.h" 27 #include "pedigree/kernel/processor/types.h" 78 void setIst(
size_t nInterruptNumber,
size_t ist);
virtual ~X64InterruptManager()
#define INITIALISATION_ONLY
X64InterruptManager & operator=(const X64InterruptManager &)
Handles interrupts and interrupt registrations from kernel components.
InterruptHandler * m_pHandler[256]
static X64InterruptManager m_Instance
X64InterruptManager() INITIALISATION_ONLY
virtual size_t getBreakpointInterruptNumber() PURE
static void interrupt(InterruptState &interruptState) USED
virtual size_t getDebugInterruptNumber() PURE
The exception was caused by a hardware task switch.
virtual bool registerInterruptHandlerDebugger(size_t nInterruptNumber, InterruptHandler *pHandler)
InterruptHandler * m_pDbgHandler[256]
void setInterruptGate(size_t nInterruptNumber, uintptr_t interruptHandler) INITIALISATION_ONLY
static void initialiseProcessor() INITIALISATION_ONLY
Abstract base class for interrupt-handlers.
virtual bool registerInterruptHandler(size_t nInterruptNumber, InterruptHandler *pHandler)
void setIst(size_t nInterruptNumber, size_t ist)
static X64InterruptManager & instance()
GateDescriptor m_IDT[256]