Kernelite 0.1.0
Kernelite is a minimalist, educational operating system kernel built from scratch. The project aims to recreate core components of the Linux architecture to explore the fundamentals of operating system design and hardware-software interaction.
Loading...
Searching...
No Matches
gicv3.h
Go to the documentation of this file.
1
12#ifndef DRIVERS_GICV3_H
13#define DRIVERS_GICV3_H
14
15#include "icu/icu.h"
16
17#include <stdbool.h>
18#include <stdint.h>
19
26void gicv3_init(const void *fdt);
27
42bool gicv3_register_irq(uint32_t irq_num, handler_data_t handler_data);
43
53void gicv3_unregister_irq(uint32_t irq_num);
54
64void gicv3_handle_irq(void);
65
66#ifdef RUN_TESTS
67
76void gicv3_trigger_sgi(uint32_t intid, uint32_t target_aff0);
77
83uint32_t gicv3_read_gicd_ctlr(void);
84
91uint32_t gicv3_read_gicd_typer(void);
92
98volatile uint32_t *gicv3_get_waker(void);
99
100#endif /* RUN_TESTS */
101
102#endif /* DRIVERS_GICV3_H */
bool gicv3_register_irq(uint32_t irq_num, handler_data_t handler_data)
Register a handler for a hardware interrupt source and enable it.
Definition gicv3.c:2489
void gicv3_handle_irq(void)
EL1 IRQ handler.
Definition gicv3.c:2535
void gicv3_unregister_irq(uint32_t irq_num)
Unregister a handler for a hardware interrupt source and disable it.
Definition gicv3.c:2516
void gicv3_init(const void *fdt)
Initialize the ARM GICv3 interrupt controller.
Definition gicv3.c:2415
Interrupt Controller Unit (ICU) interface.
Interrupt handler registration entry.
Definition icu.h:25