#pragma once #include typedef void (*interrupt_callback_func_t)(uint64_t); typedef struct interrupt { struct interrupt *_l, *_r; uint32_t _d; uint64_t priority; interrupt_callback_func_t func; uint64_t param; int is_start; } interrupt_t; void enable_interrupt(void); void disable_interrupt(void); void add_interrupt_task(uint64_t priority, interrupt_callback_func_t func, uint64_t param); void irq_handler(void); void wfe(void); extern interrupt_t *global_interrupt_pool;