[CMAKE]
[reactos.git] / hal / halppc / generic / processor.c
1 /* $Id: processor.c 23907 2006-09-04 05:52:23Z arty $
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: hal/halx86/generic/processor.c
6 * PURPOSE: Intel MultiProcessor specification support
7 * PROGRAMMER: David Welch (welch@cwcom.net)
8 * Casper S. Hornstrup (chorns@users.sourceforge.net)
9 * NOTES: Parts adapted from linux SMP code
10 * UPDATE HISTORY:
11 * 22/05/1998 DW Created
12 * 12/04/2001 CSH Added MultiProcessor specification support
13 */
14
15 /* INCLUDES *****************************************************************/
16
17 #include <hal.h>
18 #define NDEBUG
19 #include <debug.h>
20
21 /* FUNCTIONS *****************************************************************/
22
23 #define INITIAL_STALL_COUNT 0x10000
24
25 VOID NTAPI
26 HalInitializeProcessor(ULONG ProcessorNumber,
27 PLOADER_PARAMETER_BLOCK LoaderBlock)
28 {
29 DPRINT("HalInitializeProcessor(%lu %p)\n", ProcessorNumber, LoaderBlock);
30 KeGetPcr()->StallScaleFactor = INITIAL_STALL_COUNT;
31 }
32
33 BOOLEAN NTAPI
34 HalAllProcessorsStarted (VOID)
35 {
36 DPRINT("HalAllProcessorsStarted()\n");
37
38 return TRUE;
39 }
40
41 NTHALAPI
42 BOOLEAN
43 NTAPI
44 HalStartNextProcessor(
45 IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
46 IN PKPROCESSOR_STATE ProcessorState
47 )
48 {
49 DPRINT("HalStartNextProcessor(0x%lx 0x%lx)\n", LoaderBlock, ProcessorState);
50
51 return TRUE;
52 }
53
54 /*
55 * @implemented
56 */
57 VOID
58 NTAPI
59 HalProcessorIdle(VOID)
60 {
61 /* Enable interrupts and halt the processor */
62 _enable();
63 }
64
65 /*
66 * @implemented
67 */
68 VOID
69 NTAPI
70 HalRequestIpi(ULONG Reserved)
71 {
72 /* Not implemented on NT */
73 __debugbreak();
74 }
75
76 /* EOF */