ReactOS 0.4.17-dev-1247-ge46f4bb
halinit.c File Reference
#include <hal.h>
#include "apicp.h"
#include <smp.h>
#include <debug.h>
Include dependency graph for halinit.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

VOID NTAPI ApicInitializeLocalApic (ULONG Cpu)
 
VOID NTAPI HalpInitProcessor (IN ULONG ProcessorNumber, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
 
VOID HalpInitPhase0 (IN PLOADER_PARAMETER_BLOCK LoaderBlock)
 
VOID HalpInitPhase1 (VOID)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 13 of file halinit.c.

Function Documentation

◆ ApicInitializeLocalApic()

VOID NTAPI ApicInitializeLocalApic ( ULONG  Cpu)

Referenced by HalpInitProcessor().

◆ HalpInitPhase0()

VOID HalpInitPhase0 ( IN PLOADER_PARAMETER_BLOCK  LoaderBlock)

Definition at line 46 of file halinit.c.

47{
48 DPRINT1("Using HAL: APIC %s %s\n",
49 (HalpBuildType & PRCB_BUILD_UNIPROCESSOR) ? "UP" : "SMP",
50 (HalpBuildType & PRCB_BUILD_DEBUG) ? "DBG" : "REL");
51
53
54 /* Enable clock interrupt handler */
56 0,
60 Latched);
61
62 /* Enable profile interrupt handler */
64 0,
68 Latched);
69}
#define APIC_CLOCK_VECTOR
Definition: apicp.h:45
#define APIC_PROFILE_VECTOR
Definition: apicp.h:51
#define APIC_PROFILE_LEVEL
Definition: apicp.h:58
#define DPRINT1
Definition: precomp.h:8
const USHORT HalpBuildType
Definition: buildtype.c:14
#define CLOCK2_LEVEL
Definition: env_spec_w32.h:700
VOID HalpClockInterrupt(VOID)
Definition: timer.c:30
VOID NTAPI HalpEnableInterruptHandler(IN UCHAR Flags, IN ULONG BusVector, IN ULONG SystemVector, IN KIRQL Irql, IN PVOID Handler, IN KINTERRUPT_MODE Mode)
Definition: usage.c:49
VOID HalpProfileInterrupt(VOID)
#define IDT_INTERNAL
Definition: halp.h:21
#define IDT_DEVICE
Definition: halp.h:22
VOID HalpPrintApicTables(VOID)
Definition: madt.c:315
#define PRCB_BUILD_UNIPROCESSOR
Definition: ketypes.h:339
#define PRCB_BUILD_DEBUG
Definition: ketypes.h:338
@ Latched
Definition: miniport.h:81

◆ HalpInitPhase1()

VOID HalpInitPhase1 ( VOID  )

Definition at line 72 of file halinit.c.

73{
74 /* Initialize DMA. NT does this in Phase 0 */
76}
VOID HalpInitDma(VOID)
Definition: dma.c:183

◆ HalpInitProcessor()

VOID NTAPI HalpInitProcessor ( IN ULONG  ProcessorNumber,
IN PLOADER_PARAMETER_BLOCK  LoaderBlock 
)

Definition at line 24 of file halinit.c.

27{
28 if (ProcessorNumber == 0)
29 {
30 HalpParseApicTables(LoaderBlock);
31 }
32
33 HalpSetupProcessorsTable(ProcessorNumber);
34
35 /* Initialize the local APIC for this cpu */
36 ApicInitializeLocalApic(ProcessorNumber);
37
38 /* Initialize profiling data (but don't start it) */
40
41 /* Initialize the timer */
42 //ApicInitializeTimer(ProcessorNumber);
43}
VOID NTAPI HalInitializeProfiling(VOID)
Definition: apictimer.c:76
VOID NTAPI ApicInitializeLocalApic(ULONG Cpu)
VOID HalpParseApicTables(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: madt.c:295
VOID HalpSetupProcessorsTable(_In_ UINT32 NTProcessorNumber)
Definition: up.c:37

Referenced by HalInitializeProcessor().