ReactOS
0.4.16-dev-197-g92996da
halinit.c
Go to the documentation of this file.
1
/*
2
* PROJECT: ReactOS Hardware Abstraction Layer
3
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4
* PURPOSE: Initialize the x86 HAL
5
* COPYRIGHT: Copyright 1998 David Welch (welch@cwcom.net)
6
*/
7
8
/* INCLUDES *****************************************************************/
9
10
#include <hal.h>
11
12
#define NDEBUG
13
#include <debug.h>
14
15
/* FUNCTIONS ****************************************************************/
16
17
VOID
18
NTAPI
19
HalpInitProcessor
(
20
IN
ULONG
ProcessorNumber,
21
IN
PLOADER_PARAMETER_BLOCK
LoaderBlock)
22
{
23
/* Set default IDR */
24
KeGetPcr
()->IDR = 0xFFFFFFFF & ~(1 <<
PIC_CASCADE_IRQ
);
25
}
26
27
VOID
28
HalpInitPhase0
(
IN
PLOADER_PARAMETER_BLOCK
LoaderBlock)
29
{
30
31
}
32
33
VOID
34
HalpInitPhase1
(
VOID
)
35
{
36
/* Enable timer interrupt handler */
37
HalpEnableInterruptHandler
(
IDT_DEVICE
,
38
0,
39
PRIMARY_VECTOR_BASE
+
PIC_TIMER_IRQ
,
40
CLOCK2_LEVEL
,
41
HalpClockInterrupt
,
42
Latched
);
43
44
/* Enable RTC interrupt handler */
45
HalpEnableInterruptHandler
(
IDT_DEVICE
,
46
0,
47
PRIMARY_VECTOR_BASE
+
PIC_RTC_IRQ
,
48
PROFILE_LEVEL
,
49
HalpProfileInterrupt
,
50
Latched
);
51
52
/* Initialize DMA. NT does this in Phase 0 */
53
HalpInitDma
();
54
}
55
56
/* EOF */
CLOCK2_LEVEL
#define CLOCK2_LEVEL
Definition:
env_spec_w32.h:700
PROFILE_LEVEL
#define PROFILE_LEVEL
Definition:
env_spec_w32.h:698
HalpClockInterrupt
VOID HalpClockInterrupt(VOID)
Definition:
timer.c:30
HalpEnableInterruptHandler
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
HalpInitDma
VOID HalpInitDma(VOID)
Definition:
dma.c:185
HalpInitPhase0
VOID HalpInitPhase0(PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition:
halinit_mp.c:30
PRIMARY_VECTOR_BASE
#define PRIMARY_VECTOR_BASE
Definition:
halp.h:16
HalpProfileInterrupt
VOID HalpProfileInterrupt(VOID)
HalpInitPhase1
VOID HalpInitPhase1(VOID)
Definition:
halinit_up.c:26
IDT_DEVICE
#define IDT_DEVICE
Definition:
halp.h:22
PIC_RTC_IRQ
#define PIC_RTC_IRQ
Definition:
halhw.h:157
PIC_CASCADE_IRQ
#define PIC_CASCADE_IRQ
Definition:
halhw.h:156
PIC_TIMER_IRQ
#define PIC_TIMER_IRQ
Definition:
halhw.h:155
HalpInitProcessor
VOID NTAPI HalpInitProcessor(IN ULONG ProcessorNumber, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition:
halinit.c:24
void
Definition:
nsiface.idl:2307
KeGetPcr
#define KeGetPcr()
Definition:
ketypes.h:81
Latched
@ Latched
Definition:
miniport.h:81
_LOADER_PARAMETER_BLOCK
Definition:
arc.h:539
NTAPI
#define NTAPI
Definition:
typedefs.h:36
IN
#define IN
Definition:
typedefs.h:39
ULONG
uint32_t ULONG
Definition:
typedefs.h:59
hal
halx86
pic
halinit.c
Generated on Wed Oct 30 2024 06:05:54 for ReactOS by
1.9.6