96 lines
1.3 KiB
C
96 lines
1.3 KiB
C
/*++
|
|
|
|
Copyright (c) 2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ixipi.c
|
|
|
|
Abstract:
|
|
|
|
Provides the HAL support for Interprocessor Interrupts.
|
|
This is the UP version.
|
|
|
|
Author:
|
|
|
|
John Vert (jvert) 16-Jul-1991
|
|
|
|
Revision History:
|
|
|
|
Forrest Foltz (forrestf) 23-Oct-2000
|
|
Ported from ixipi.asm to ixipi.c
|
|
|
|
--*/
|
|
|
|
#include "halcmn.h"
|
|
|
|
VOID
|
|
HalInitializeProcessor(
|
|
ULONG Number,
|
|
PLOADER_PARAMETER_BLOCK LoaderBlock
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Initialize hal pcr values for current processor (if any)
|
|
(called shortly after processor reaches kernel, before
|
|
HalInitSystem if P0)
|
|
|
|
IPI's and KeReadir/LowerIrq's must be available once this function
|
|
returns. (IPI's are only used once two or more processors are
|
|
available)
|
|
|
|
Arguments:
|
|
|
|
Number - Logical processor number of calling processor
|
|
|
|
Return Value:
|
|
|
|
None.
|
|
|
|
--*/
|
|
|
|
{
|
|
KAFFINITY mask;
|
|
|
|
mask = (KAFFINITY)1 << Number;
|
|
|
|
HalpDefaultInterruptAffinity |= mask;
|
|
HalpActiveProcessors |= mask;
|
|
|
|
HalpRegisterKdSupportFunctions(LoaderBlock);
|
|
}
|
|
|
|
VOID
|
|
HalRequestIpi (
|
|
IN KAFFINITY Mask
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Requests an interprocessor interrupt
|
|
|
|
Arguments:
|
|
|
|
Mask - Supplies a mask of the processors to interrupt
|
|
|
|
Return Value:
|
|
|
|
None.
|
|
|
|
--*/
|
|
|
|
{
|
|
KdBreakPoint();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|