xref: /reactos/hal/halx86/smp/mps/mps.c (revision 2c8d083f)
10fc21e5aSJustin Miller /*
20fc21e5aSJustin Miller  * PROJECT:     ReactOS Kernel
30fc21e5aSJustin Miller  * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
40fc21e5aSJustin Miller  * PURPOSE:     Source File for MPS specific functions
50fc21e5aSJustin Miller  * COPYRIGHT:   Copyright 2021 Justin Miller <justinmiller100@gmail.com>
60fc21e5aSJustin Miller  */
70fc21e5aSJustin Miller 
80fc21e5aSJustin Miller /* INCLUDES *******************************************************************/
90fc21e5aSJustin Miller 
100fc21e5aSJustin Miller #include <hal.h>
110fc21e5aSJustin Miller #include <smp.h>
12*2c8d083fSSerge Gautherie 
130fc21e5aSJustin Miller #define NDEBUG
140fc21e5aSJustin Miller #include <debug.h>
150fc21e5aSJustin Miller 
165c799005SJustin Miller /* GLOBALS ********************************************************************/
175c799005SJustin Miller 
18*2c8d083fSSerge Gautherie static // TODO: While HalpParseApicTables() is UNIMPLEMENTED.
19*2c8d083fSSerge Gautherie ULONG PhysicalProcessorCount;
20*2c8d083fSSerge Gautherie 
21*2c8d083fSSerge Gautherie static PROCESSOR_IDENTITY HalpStaticProcessorIdentity[MAXIMUM_PROCESSORS];
22*2c8d083fSSerge Gautherie const PPROCESSOR_IDENTITY HalpProcessorIdentity = HalpStaticProcessorIdentity;
235c799005SJustin Miller 
240fc21e5aSJustin Miller /* FUNCTIONS ******************************************************************/
250fc21e5aSJustin Miller 
260fc21e5aSJustin Miller VOID
HalpParseApicTables(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock)270fc21e5aSJustin Miller HalpParseApicTables(
280fc21e5aSJustin Miller     _In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
290fc21e5aSJustin Miller {
30*2c8d083fSSerge Gautherie     UNREFERENCED_PARAMETER(LoaderBlock);
31*2c8d083fSSerge Gautherie 
32*2c8d083fSSerge Gautherie     // TODO: Fill HalpStaticProcessorIdentity[].
330fc21e5aSJustin Miller     UNIMPLEMENTED;
340fc21e5aSJustin Miller }
355c799005SJustin Miller 
365c799005SJustin Miller VOID
HalpPrintApicTables(VOID)375c799005SJustin Miller HalpPrintApicTables(VOID)
385c799005SJustin Miller {
39*2c8d083fSSerge Gautherie #if DBG
40*2c8d083fSSerge Gautherie     ULONG i;
415c799005SJustin Miller 
42*2c8d083fSSerge Gautherie     DPRINT1("Physical processor count: %lu\n", PhysicalProcessorCount);
435c799005SJustin Miller     for (i = 0; i < PhysicalProcessorCount; i++)
445c799005SJustin Miller     {
45*2c8d083fSSerge Gautherie         DPRINT1(" Processor %lu: ProcessorId %u, LapicId %u, ProcessorStarted %u, BSPCheck %u, ProcessorPrcb %p\n",
46*2c8d083fSSerge Gautherie                 i,
47*2c8d083fSSerge Gautherie                 HalpProcessorIdentity[i].ProcessorId,
48*2c8d083fSSerge Gautherie                 HalpProcessorIdentity[i].LapicId,
49*2c8d083fSSerge Gautherie                 HalpProcessorIdentity[i].ProcessorStarted,
50*2c8d083fSSerge Gautherie                 HalpProcessorIdentity[i].BSPCheck,
51*2c8d083fSSerge Gautherie                 HalpProcessorIdentity[i].ProcessorPrcb);
525c799005SJustin Miller     }
53*2c8d083fSSerge Gautherie #endif
545c799005SJustin Miller }
55