xref: /reactos/hal/halx86/smp/ipi.c (revision dad056e0)
1 /*
2  * PROJECT:     ReactOS Kernel
3  * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4  * PURPOSE:     Source file for Inter-Processor Interrupts management
5  * COPYRIGHT:   Copyright 2023 Justin Miller <justin.miller@reactos.org>
6  */
7 
8 /* INCLUDES ******************************************************************/
9 
10 #include <hal.h>
11 #include <smp.h>
12 
13 #define NDEBUG
14 #include <debug.h>
15 
16 /* GLOBALS *******************************************************************/
17 
18 VOID
19 NTAPI
20 HalRequestIpi(
21     _In_ KAFFINITY TargetProcessors)
22 {
23     HalpRequestIpi(TargetProcessors);
24 }
25 
26 #ifdef _M_AMD64
27 
28 VOID
29 NTAPI
30 HalSendNMI(
31     _In_ KAFFINITY TargetSet)
32 {
33     HalpSendNMI(TargetSet);
34 }
35 
36 // See:
37 // - https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Runtime/r0drv/nt/internal-r0drv-nt.h#L53
38 // - https://github.com/mirror/vbox/blob/b9657cd5351cf17432b664009cc25bb480dc64c1/src/VBox/Runtime/r0drv/nt/mp-r0drv-nt.cpp#L683
39 VOID
40 NTAPI
41 HalSendSoftwareInterrupt(
42     _In_ KAFFINITY TargetSet,
43     _In_ KIRQL Irql)
44 {
45     HalpSendSoftwareInterrupt(TargetSet, Irql);
46 }
47 
48 #endif // _M_AMD64
49