152 ULONG IrrBit = 1UL << VectorLow;
209 return (
KIRQL)__readcr8();
210#elif defined(APIC_LAZY_IRQL)
225#elif defined(APIC_LAZY_IRQL)
232#define ApicRaiseIrql ApicSetIrql
252#define ApicLowerIrql ApicSetIrql
761 if (CurrentIrql >=
Irql)
#define EFLAGS_INTERRUPT_MASK
VOID DECLSPEC_NORETURN FASTCALL HalpApcInterruptHandler(IN PKTRAP_FRAME TrapFrame)
const KIRQL HalVectorToIRQL[16]
VOID NTAPI ApicInitializeLocalApic(ULONG Cpu)
VOID FASTCALL KfLowerIrql(IN KIRQL OldIrql)
VOID NTAPI HalEndSystemInterrupt(IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame)
UCHAR FASTCALL HalpIrqToVector(UCHAR Irq)
UCHAR HalpVectorToIndex[256]
FORCEINLINE VOID ApicSetIrql(KIRQL Irql)
KIRQL FASTCALL HalpVectorToIrql(UCHAR Vector)
VOID NTAPI HalpInitializePICs(IN BOOLEAN EnableInterrupts)
VOID NTAPI ApicInitializeIOApic(VOID)
UCHAR NTAPI HalpAllocateSystemInterrupt(_In_ UCHAR Irq, _In_ UCHAR Vector)
FORCEINLINE VOID IOApicWrite(UCHAR Register, ULONG Value)
FORCEINLINE VOID ApicLowerIrql(KIRQL Irql)
FORCEINLINE VOID ApicRequestSelfInterrupt(IN UCHAR Vector, UCHAR TriggerMode)
FORCEINLINE VOID ApicWriteIORedirectionEntry(UCHAR Index, IOAPIC_REDIRECTION_REGISTER ReDirReg)
VOID DECLSPEC_NORETURN FASTCALL HalpDispatchInterruptHandler(IN PKTRAP_FRAME TrapFrame)
UCHAR FASTCALL HalpVectorToIrq(UCHAR Vector)
BOOLEAN NTAPI HalBeginSystemInterrupt(IN KIRQL Irql, IN ULONG Vector, OUT PKIRQL OldIrql)
FORCEINLINE VOID ApicSendEOI(void)
BOOLEAN NTAPI HalEnableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql, IN KINTERRUPT_MODE InterruptMode)
VOID NTAPI HalDisableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql)
FORCEINLINE KIRQL ApicGetProcessorIrql(VOID)
ULONG NTAPI HalpGetRootInterruptVector(_In_ ULONG BusInterruptLevel, _In_ ULONG BusInterruptVector, _Out_ PKIRQL OutIrql, _Out_ PKAFFINITY OutAffinity)
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
VOID NTAPI HalpSendEOI(VOID)
FORCEINLINE IOAPIC_REDIRECTION_REGISTER ApicReadIORedirectionEntry(UCHAR Index)
FORCEINLINE ULONG IOApicRead(UCHAR Register)
const UCHAR HalpIRQLtoTPR[32]
KIRQL FASTCALL KfRaiseIrql(IN KIRQL NewIrql)
VOID FASTCALL HalClearSoftwareInterrupt(IN KIRQL Irql)
FORCEINLINE KIRQL ApicGetCurrentIrql(VOID)
KIRQL NTAPI KeRaiseIrqlToSynchLevel(VOID)
#define APIC_CLOCK_VECTOR
#define APIC_SPURIOUS_VECTOR
#define APIC_ERROR_VECTOR
#define ApicLogicalId(Cpu)
VOID __cdecl ApicSpuriousService(VOID)
FORCEINLINE ULONG ApicRead(APIC_REGISTER Register)
#define APIC_RESERVED_VECTOR
FORCEINLINE VOID ApicWrite(APIC_REGISTER Register, ULONG Value)
#define IrqlToSoftVector(Irql)
VOID NTAPI KiDispatchInterrupt(VOID)
#define WRITE_REGISTER_ULONG(r, v)
#define READ_REGISTER_ULONG(r)
DECLSPEC_NORETURN VOID NTAPI KeBugCheck(ULONG BugCheckCode)
#define KeGetCurrentIrql()
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment KeRaiseIrqlToDpcLevel
KAFFINITY HalpDefaultInterruptAffinity
VOID HalpClockInterrupt(VOID)
VOID NTAPI HalpRegisterVector(IN UCHAR Flags, IN ULONG BusVector, IN ULONG SystemVector, IN KIRQL Irql)
VOID NTAPI HalpInitializeLegacyPICs(VOID)
VOID __cdecl HalpDispatchInterrupt(VOID)
#define HalAddressToPte(x)
VOID __cdecl HalpApcInterrupt(VOID)
VOID __cdecl HalpClockIpi(VOID)
void __cdecl _disable(void)
void __cdecl _enable(void)
#define _ReadWriteBarrier()
PPC_QUAL unsigned char __readfsbyte(const unsigned long Offset)
PPC_QUAL void __writemsr(const unsigned long Value)
PPC_QUAL unsigned long long __readmsr()
PPC_QUAL void __writefsbyte(const unsigned long Offset, const unsigned char Data)
__INTRIN_INLINE void __writeeflags(uintptr_t Value)
__INTRIN_INLINE uintptr_t __readeflags(void)
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
#define DECLSPEC_NORETURN
_In_ ULONG _In_ ULONG Offset
FORCEINLINE BOOLEAN KiUserTrap(IN PKTRAP_FRAME TrapFrame)
FORCEINLINE VOID KeRegisterInterruptHandler(IN ULONG Vector, IN PVOID Handler)
DECLSPEC_NORETURN VOID FASTCALL KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
VOID NTAPI KiDeliverApc(IN KPROCESSOR_MODE DeliveryMode, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
enum _KINTERRUPT_MODE KINTERRUPT_MODE
_Requires_lock_held_ SpinLock _Releases_lock_ SpinLock _In_ _IRQL_restores_ KIRQL NewIrql
FORCEINLINE VOID KiEnterInterruptTrap(IN PKTRAP_FRAME TrapFrame)
#define FIELD_OFFSET(t, f)
UINT64 DestinationShortHand
UINT32 FocusCPUCoreChecking
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Must_inspect_result_ _In_ ULONG Flags
_In_ ULONG _In_ ULONG BusInterruptLevel
_In_ ULONG _In_ ULONG _In_ ULONG BusInterruptVector
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql