mirror of
https://github.com/reactos/reactos.git
synced 2024-11-11 01:04:11 +00:00
98 lines
1.9 KiB
C
98 lines
1.9 KiB
C
|
/*
|
||
|
* PROJECT: ReactOS HAL
|
||
|
* LICENSE: GPL - See COPYING in the top level directory
|
||
|
* FILE: hal/halx86/amd64/processor.c
|
||
|
* PURPOSE: HAL Processor Routines
|
||
|
* PROGRAMMERS: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||
|
*/
|
||
|
|
||
|
/* INCLUDES ******************************************************************/
|
||
|
|
||
|
#include <hal.h>
|
||
|
#define NDEBUG
|
||
|
#include <debug.h>
|
||
|
|
||
|
KAFFINITY HalpActiveProcessors;
|
||
|
KAFFINITY HalpDefaultInterruptAffinity;
|
||
|
|
||
|
/* PRIVATE FUNCTIONS *********************************************************/
|
||
|
|
||
|
VOID
|
||
|
NTAPI
|
||
|
HaliHaltSystem(VOID)
|
||
|
{
|
||
|
/* Disable interrupts and halt the CPU */
|
||
|
_disable();
|
||
|
__halt();
|
||
|
}
|
||
|
|
||
|
/* FUNCTIONS *****************************************************************/
|
||
|
|
||
|
/*
|
||
|
* @implemented
|
||
|
*/
|
||
|
VOID
|
||
|
NTAPI
|
||
|
HalInitializeProcessor(IN ULONG ProcessorNumber,
|
||
|
IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||
|
{
|
||
|
/* Set default stall count */
|
||
|
KeGetPcr()->StallScaleFactor = INITIAL_STALL_COUNT;
|
||
|
|
||
|
/* Update the interrupt affinity and processor mask */
|
||
|
InterlockedBitTestAndSet((PLONG)&HalpActiveProcessors, ProcessorNumber);
|
||
|
InterlockedBitTestAndSet((PLONG)&HalpDefaultInterruptAffinity,
|
||
|
ProcessorNumber);
|
||
|
|
||
|
/* Register routines for KDCOM */
|
||
|
//HalpRegisterKdSupportFunctions();
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* @implemented
|
||
|
*/
|
||
|
BOOLEAN
|
||
|
NTAPI
|
||
|
HalAllProcessorsStarted(VOID)
|
||
|
{
|
||
|
/* Do nothing */
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* @implemented
|
||
|
*/
|
||
|
BOOLEAN
|
||
|
NTAPI
|
||
|
HalStartNextProcessor(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
|
||
|
IN PKPROCESSOR_STATE ProcessorState)
|
||
|
{
|
||
|
/* Ready to start */
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* @implemented
|
||
|
*/
|
||
|
VOID
|
||
|
NTAPI
|
||
|
HalProcessorIdle(VOID)
|
||
|
{
|
||
|
/* Enable interrupts and halt the processor */
|
||
|
_enable();
|
||
|
__halt();
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* @implemented
|
||
|
*/
|
||
|
VOID
|
||
|
NTAPI
|
||
|
HalRequestIpi(KAFFINITY TargetProcessors)
|
||
|
{
|
||
|
UNIMPLEMENTED;
|
||
|
__debugbreak();
|
||
|
}
|
||
|
|
||
|
/* EOF */
|