/* * PROJECT: ReactOS Kernel * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) * PURPOSE: IPI code for x64 * COPYRIGHT: Copyright 2023 Timo Kreuzer */ /* INCLUDES *******************************************************************/ #include #define NDEBUG #include /* FUNCTIONS *****************************************************************/ VOID FASTCALL KiIpiSend( _In_ KAFFINITY TargetSet, _In_ ULONG IpiRequest) { /* Check if we can send the IPI directly */ if (IpiRequest == IPI_APC) { HalSendSoftwareInterrupt(TargetSet, APC_LEVEL); } else if (IpiRequest == IPI_DPC) { HalSendSoftwareInterrupt(TargetSet, DISPATCH_LEVEL); } else if (IpiRequest == IPI_FREEZE) { /* On x64 the freeze IPI is an NMI */ HalSendNMI(TargetSet); } else { ASSERT(FALSE); } } ULONG_PTR NTAPI KeIpiGenericCall( _In_ PKIPI_BROADCAST_WORKER Function, _In_ ULONG_PTR Argument) { __debugbreak(); return 0; }