20 #ifndef KERNEL_PROCESSOR_HOSTED_INTERRUPTMANAGER_H 21 #define KERNEL_PROCESSOR_HOSTED_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/types.h" 60 void signalShim(
int which,
void *siginfo,
void *meta);
66 static void interrupt(InterruptState &interruptState);
78 void setIst(
size_t nInterruptNumber,
size_t ist);
static HostedInterruptManager & instance()
void signalShim(int which, void *siginfo, void *meta)
#define INITIALISATION_ONLY
static void initialiseProcessor() INITIALISATION_ONLY
void setIst(size_t nInterruptNumber, size_t ist)
void setInterruptGate(size_t nInterruptNumber, uintptr_t interruptHandler) INITIALISATION_ONLY
Handles interrupts and interrupt registrations from kernel components.
virtual bool registerInterruptHandler(size_t nInterruptNumber, InterruptHandler *pHandler)
virtual bool registerInterruptHandlerDebugger(size_t nInterruptNumber, InterruptHandler *pHandler)
HostedInterruptManager & operator=(const HostedInterruptManager &)
virtual size_t getDebugInterruptNumber() PURE
virtual size_t getBreakpointInterruptNumber() PURE
virtual ~HostedInterruptManager()
InterruptHandler * m_pHandler[MAX_SIGNAL]
static HostedInterruptManager m_Instance
InterruptHandler * m_pDbgHandler[MAX_SIGNAL]
Abstract base class for interrupt-handlers.
static void interrupt(InterruptState &interruptState)
HostedInterruptManager() INITIALISATION_ONLY