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();
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|