23 lines
851 B
C
23 lines
851 B
C
// HAL APIC implementation declarations. APIC details do not cross the HAL ABI.
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <ntlite/status.h>
|
|
#include <kernel/hal/hal_api.h>
|
|
|
|
void HalApicRouteIrq(uint8_t irq);
|
|
void HalApicMaskIrq(uint8_t irq);
|
|
void HalApicUnmaskIrq(uint8_t irq);
|
|
void HalApicSendEoi(void);
|
|
void HalApicInitialize(uintptr_t lapicPhys, uintptr_t ioapicPhys);
|
|
uint32_t HalApicGetBootProcessorId(void);
|
|
uint8_t HalApicUsingX2Apic(void);
|
|
uint8_t HalApicCanAddressId(uint32_t hardwareId);
|
|
void HalApicInitializeCurrentProcessor(void);
|
|
void HalApicBroadcastNmi(void);
|
|
void HalApicSendProcessorInterrupt(uint32_t hardwareId, uint8_t vector);
|
|
void HalApicSendProcessorNmi(uint32_t hardwareId);
|
|
KSTATUS HalApicStartProcessor(uint32_t hardwareId, uintptr_t startPhysical);
|
|
KSTATUS HalApicComposeMsi(uint8_t vector, HAL_MSI_MESSAGE* messageOut);
|