/*++

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