The Pedigree Project 0.1
kernel/core/processor/arm64/InterruptManager.h
1#ifndef KERNEL_PROCESSOR_ARM64_INTERRUPTMANAGER_H
2#define KERNEL_PROCESSOR_ARM64_INTERRUPTMANAGER_H
3
4#include "pedigree/kernel/processor/InterruptManager.h"
5#include "pedigree/kernel/processor/state_forward.h"
6
8 public:
9 static Arm64InterruptManager& instance();
10 bool registerInterruptHandler(size_t number, InterruptHandler* handler) override;
11#if DEBUGGER
12 bool registerInterruptHandlerDebugger(size_t number, InterruptHandler* handler) override;
13 size_t getBreakpointInterruptNumber() override {
14 return 3;
15 }
16 size_t getDebugInterruptNumber() override {
17 return 1;
18 }
19#endif
20 void dispatch(size_t number, InterruptState& state);
21
22 private:
24 InterruptHandler* m_Handlers[32];
25#if DEBUGGER
26 InterruptHandler* m_DebugHandlers[32];
27#endif
28};
29
30#endif
bool registerInterruptHandlerDebugger(size_t number, InterruptHandler *handler) override
bool registerInterruptHandler(size_t number, InterruptHandler *handler) override
Abstract base class for interrupt-handlers.
Handles interrupts and interrupt registrations from kernel components.