ApertureOS
interrupt_manager.h
Go to the documentation of this file.
1 #ifndef _INTERRUPT_MANAGER_H_
2 #define _INTERRUPT_MANAGER_H_
3 
4 #include "types.h"
5 #include "idt.h"
6 
7 typedef uint32_t (*InterruptHandler)(Registers*);
8 
9 #define INTERRUPT_HANDLER_SLOTS 128
10 #define INTERRUPT_COUNT IDT_ENTRY_COUNT
11 #define IRQ(n) (n + 32)
12 #define INTR(n) (n)
13 
14 void Interrupts_Setup();
16 void Interrupts_RegisterHandler(uint8_t intrpt, uint8_t slot, InterruptHandler handler);
17 uint8_t Interrupts_GetFreeSlot(uint8_t intrpt);
18 void Interrupts_EmptySlot(uint8_t intrpt, uint8_t slot);
19 void Interrupts_GetHandler(uint8_t intrpt, uint8_t slot, InterruptHandler* o_handler);
20 void Interrupts_SetInterruptEnableMode(uint8_t intrpt, bool masked);
23 
24 void Interrupts_Lock();
25 void Interrupts_Unlock();
26 
27 #endif /* end of include guard: _INTERRUPT_MANAGER_H_ */
SysID Interrupts_GetSysID()
Definition: interrupt_manager.c:146
void Interrupts_Virtualize()
Definition: interrupt_manager.c:30
Definition: idt.h:10
void Interrupts_SetInterruptEnableMode(uint8_t intrpt, bool masked)
Definition: interrupt_manager.c:130
bool Interrupts_IsAPICEnabled()
Definition: interrupt_manager.c:151
uint8_t Interrupts_GetFreeSlot(uint8_t intrpt)
Definition: interrupt_manager.c:110
UID SysID
Definition: types.h:9
void Interrupts_GetHandler(uint8_t intrpt, uint8_t slot, InterruptHandler *o_handler)
Definition: interrupt_manager.c:122
void Interrupts_Lock()
Definition: interrupt_manager.c:158
uint32_t(* InterruptHandler)(Registers *)
Definition: interrupt_manager.h:7
void Interrupts_EmptySlot(uint8_t intrpt, uint8_t slot)
Definition: interrupt_manager.c:117
void Interrupts_Setup()
Definition: interrupt_manager.c:18
void Interrupts_RegisterHandler(uint8_t intrpt, uint8_t slot, InterruptHandler handler)
Definition: interrupt_manager.c:105
void Interrupts_Unlock()
Definition: interrupt_manager.c:172