Files
nt-lite/code/public/ntlite/ddk/interrupt.h
T

25 lines
718 B
C

// Public nt-lite DDK interrupt declarations.
#pragma once
#include <stdint.h>
#include <ntlite/status.h>
typedef struct NTL_DDK_MSI_MESSAGE {
uint64_t Address;
uint32_t Data;
uint32_t Reserved;
} NTL_DDK_MSI_MESSAGE;
// Driver-visible interrupt services.
typedef struct NTL_DDK_INTERRUPT {
KSTATUS (*AllocateMsiVector)(uint8_t* outIrq);
KSTATUS (*ComposeMsiMessage)(uint8_t irq, NTL_DDK_MSI_MESSAGE* messageOut);
} NTL_DDK_INTERRUPT;
// Allocates one kernel IRQ slot for MSI delivery.
__declspec(dllexport) KSTATUS KeIrqAllocateMsiVector(uint8_t* outIrq);
// Registers a legacy interrupt handler for an IRQ slot.
__declspec(dllexport) void KeIrqRegister(uint8_t irq, void (*handler)(void));