20 #ifndef KERNEL_PROCESSOR_ARMV7_INTERRUPTMANAGER_H 21 #define KERNEL_PROCESSOR_ARMV7_INTERRUPTMANAGER_H 23 #include "pedigree/kernel/compiler.h" 24 #include "pedigree/kernel/processor/InterruptManager.h" 25 #include "pedigree/kernel/processor/MemoryRegion.h" 26 #include "pedigree/kernel/processor/SyscallManager.h" 27 #include "pedigree/kernel/processor/types.h" 59 Service_t service, uintptr_t
function, uintptr_t p1 = 0,
60 uintptr_t p2 = 0, uintptr_t p3 = 0, uintptr_t p4 = 0, uintptr_t p5 = 0);
70 static void interrupt(InterruptState &interruptState);
101 INTCPS_REVISION = 0x00,
102 INTCPS_SYSCONFIG = 0x10 / 4,
103 INTCPS_SYSSTATUS = 0x14 / 4,
104 INTCPS_SIR_IRQ = 0x40 / 4,
105 INTCPS_SIR_FIQ = 0x44 / 4,
106 INTCPS_CONTROL = 0x48 / 4,
107 INTCPS_PROTECTION = 0x4C / 4,
108 INTCPS_IDLE = 0x50 / 4,
109 INTCPS_IRQ_PRIORITY = 0x60 / 4,
110 INTCPS_FIQ_PRIORITY = 0x64 / 4,
111 INTCPS_THRESHOLD = 0x68 / 4,
112 INTCPS_ITR = 0x80 / 4,
113 INTCPS_MIR = 0x84 / 4,
114 INTCPS_MIR_CLEAR = 0x88 / 4,
115 INTCPS_MIR_SET = 0x8C / 4,
116 INTCPS_ISR_SET = 0x90 / 4,
117 INTCPS_ISR_CLEAR = 0x94 / 4,
118 INTCPS_PENDING_IRQ = 0x98 / 4,
119 INTCPS_PENDING_FIQ = 0x9C / 4,
120 INTCPS_ILR = 0x100 / 4,
static MemoryRegion m_MPUINTCRegion
virtual size_t getBreakpointInterruptNumber() PURE
virtual bool registerInterruptHandlerDebugger(size_t interruptNumber, InterruptHandler *handler)
InterruptHandler * m_DbgHandler[256]
virtual bool registerInterruptHandler(size_t interruptNumber, InterruptHandler *handler)
Handles interrupts and interrupt registrations from kernel components.
static void interrupt(InterruptState &interruptState)
virtual uintptr_t syscall(Service_t service, uintptr_t function, uintptr_t p1=0, uintptr_t p2=0, uintptr_t p3=0, uintptr_t p4=0, uintptr_t p5=0)
SyscallHandler * m_SyscallHandler[serviceEnd]
ARMV7InterruptManager & operator=(const ARMV7InterruptManager &)
Special memory entity in the kernel's virtual address space.
virtual ~ARMV7InterruptManager()
static void initialiseProcessor()
static ARMV7InterruptManager m_Instance
Abstract base class for interrupt-handlers.
virtual bool registerSyscallHandler(Service_t Service, SyscallHandler *handler)
virtual size_t getDebugInterruptNumber() PURE
static ARMV7InterruptManager & instance()