[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_Self
APIC_DSH_AllIncludingSelf
APIC_DSH_AllExclusingSelf
APIC_DSH_AllExcludingSelf
\see "AMD64 Architecture Programmer's Manual Volume 2 System Programming"
Chapter 16 "Advanced Programmable Interrupt Controller (APIC)"
@ -170,7 +170,7 @@ HalRequestIpiSpecifyVector(
_In_ KAFFINITY TargetSet,
_In_ UCHAR Vector)
{
KAFFINITY ActiveProcessors = KeQueryActiveProcessors();
KAFFINITY ActiveProcessors = HalpActiveProcessors;
KAFFINITY RemainingSet, SetMember;
ULONG ProcessorIndex;
ULONG LApicId;
@ -277,7 +277,7 @@ HalpSendNMI(
ULONG LApicId;
/* 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 */
RemainingSet = TargetSet;

View file

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

View file

@ -35,7 +35,7 @@ HalSendNMI(
// See:
// - 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
NTAPI
HalSendSoftwareInterrupt(