[HALX86] Some improvements / bugfixes for IPI support functions

This commit is contained in:
Timo Kreuzer 2023-11-30 14:08:12 +02:00
parent d8d46a00c3
commit 230f7c7f3c
3 changed files with 6 additions and 4 deletions

View file

@ -51,7 +51,7 @@ extern PPROCESSOR_IDENTITY HalpProcessorIdentity;
APIC_DSH_Destination APIC_DSH_Destination
APIC_DSH_Self APIC_DSH_Self
APIC_DSH_AllIncludingSelf APIC_DSH_AllIncludingSelf
APIC_DSH_AllExclusingSelf APIC_DSH_AllExcludingSelf
\see "AMD64 Architecture Programmer's Manual Volume 2 System Programming" \see "AMD64 Architecture Programmer's Manual Volume 2 System Programming"
Chapter 16 "Advanced Programmable Interrupt Controller (APIC)" Chapter 16 "Advanced Programmable Interrupt Controller (APIC)"
@ -170,7 +170,7 @@ HalRequestIpiSpecifyVector(
_In_ KAFFINITY TargetSet, _In_ KAFFINITY TargetSet,
_In_ UCHAR Vector) _In_ UCHAR Vector)
{ {
KAFFINITY ActiveProcessors = KeQueryActiveProcessors(); KAFFINITY ActiveProcessors = HalpActiveProcessors;
KAFFINITY RemainingSet, SetMember; KAFFINITY RemainingSet, SetMember;
ULONG ProcessorIndex; ULONG ProcessorIndex;
ULONG LApicId; ULONG LApicId;
@ -277,7 +277,7 @@ HalpSendNMI(
ULONG LApicId; ULONG LApicId;
/* Make sure we do not send an NMI to ourselves */ /* Make sure we do not send an NMI to ourselves */
ASSERT((TargetSet & ~KeGetCurrentPrcb()->SetMember) == 0); ASSERT((TargetSet & KeGetCurrentPrcb()->SetMember) == 0);
/* Loop while we have more processors */ /* Loop while we have more processors */
RemainingSet = TargetSet; RemainingSet = TargetSet;

View file

@ -40,6 +40,7 @@ NTAPI
HalSendNMI( HalSendNMI(
_In_ KAFFINITY TargetSet) _In_ KAFFINITY TargetSet)
{ {
NOTHING;
} }
VOID VOID
@ -48,6 +49,7 @@ HalSendSoftwareInterrupt(
_In_ KAFFINITY TargetSet, _In_ KAFFINITY TargetSet,
_In_ KIRQL Irql) _In_ KIRQL Irql)
{ {
NOTHING;
} }
#endif // _M_AMD64 #endif // _M_AMD64

View file

@ -35,7 +35,7 @@ HalSendNMI(
// See: // See:
// - https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Runtime/r0drv/nt/internal-r0drv-nt.h#L53 // - https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Runtime/r0drv/nt/internal-r0drv-nt.h#L53
// https://github.com/mirror/vbox/blob/b9657cd5351cf17432b664009cc25bb480dc64c1/src/VBox/Runtime/r0drv/nt/mp-r0drv-nt.cpp#L683 // - https://github.com/mirror/vbox/blob/b9657cd5351cf17432b664009cc25bb480dc64c1/src/VBox/Runtime/r0drv/nt/mp-r0drv-nt.cpp#L683
VOID VOID
NTAPI NTAPI
HalSendSoftwareInterrupt( HalSendSoftwareInterrupt(