ReactOS
0.4.16-dev-125-g798ea90
halinit.c
Go to the documentation of this file.
1
/*
2
* PROJECT: Xbox HAL
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 "
halxbox.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
/* Initialize Xbox-specific disk hacks */
31
HalpXboxInitPartIo
();
32
}
33
34
VOID
35
HalpInitPhase1
(
VOID
)
36
{
37
/* Enable timer interrupt handler */
38
HalpEnableInterruptHandler
(
IDT_DEVICE
,
39
0,
40
PRIMARY_VECTOR_BASE
+
PIC_TIMER_IRQ
,
41
CLOCK2_LEVEL
,
42
HalpClockInterrupt
,
43
Latched
);
44
45
/* Enable RTC interrupt handler */
46
HalpEnableInterruptHandler
(
IDT_DEVICE
,
47
0,
48
PRIMARY_VECTOR_BASE
+
PIC_RTC_IRQ
,
49
PROFILE_LEVEL
,
50
HalpProfileInterrupt
,
51
Latched
);
52
53
/* Initialize DMA. NT does this in Phase 0 */
54
HalpInitDma
();
55
}
56
57
/* 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
halxbox.h
void
Definition:
nsiface.idl:2307
KeGetPcr
#define KeGetPcr()
Definition:
ketypes.h:81
HalpXboxInitPartIo
void HalpXboxInitPartIo(void)
Definition:
part_xbox.c:331
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
xbox
halinit.c
Generated on Mon Oct 14 2024 06:06:03 for ReactOS by
1.9.6