20#ifndef KERNEL_PROCESSOR_X64_INTERRUPTMANAGER_H
21#define KERNEL_PROCESSOR_X64_INTERRUPTMANAGER_H
22#include "pedigree/kernel/Spinlock.h"
23#include "pedigree/kernel/compiler.h"
24#include "pedigree/kernel/processor/InterruptManager.h"
25#include "pedigree/kernel/processor/state_forward.h"
26#include "pedigree/kernel/processor/types.h"
67 static
void interrupt(InterruptState& interruptState)
USED;
81 void setIst(
size_t nInterruptNumber,
size_t ist);
Abstract base class for interrupt-handlers.
Handles interrupts and interrupt registrations from kernel components.
static void initialiseProcessorIst() INITIALISATION_ONLY
InterruptHandler * m_pHandler[256]
virtual size_t getBreakpointInterruptNumber() PURE
GateDescriptor m_BootstrapIDT[256]
GateDescriptor m_IDT[256]
void setIst(size_t nInterruptNumber, size_t ist)
static void initialiseProcessor() INITIALISATION_ONLY
virtual bool registerInterruptHandlerDebugger(size_t nInterruptNumber, InterruptHandler *pHandler)
void setInterruptGate(size_t nInterruptNumber, uintptr_t interruptHandler) INITIALISATION_ONLY
static X64InterruptManager & instance()
InterruptHandler * m_pDbgHandler[256]
virtual size_t getDebugInterruptNumber() PURE
static void returnFromInterrupt(InterruptState &interruptState) USED
virtual bool registerInterruptHandler(size_t nInterruptNumber, InterruptHandler *pHandler)
static X64InterruptManager m_Instance
#define INITIALISATION_ONLY