19 lines
763 B
C
19 lines
763 B
C
// Kernel ke irq declarations shared by implementation files and kernel clients.
|
|
|
|
#pragma once
|
|
#include <stdint.h>
|
|
#include <ntlite/ddi/hal_api.h>
|
|
#include <ntlite/status.h>
|
|
|
|
void KeIrqInitialize(const HAL_API *hal);
|
|
__declspec(dllexport) KSTATUS KeIrqAllocateMsiVector(uint8_t* outIrq);
|
|
__declspec(dllexport) void KeIrqRegister(uint8_t irq, void (*handler)(void));
|
|
void KeIrqDispatch(uint8_t irq); // called from ke_syscall.asm
|
|
|
|
// Low-level interrupt entry/exit hooks. These are called by the common IRQ
|
|
// assembly stub around KeIrqDispatch. The exit hook is where deferred
|
|
// interrupt-time scheduling now happens, so IRQ handlers never switch away
|
|
// before KeIrqDispatch has returned and sent EOI.
|
|
void KiEnterInterrupt(void);
|
|
void KiExitInterrupt(void);
|