Reactos
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
17VOID
18NTAPI
19HalpInitProcessor(
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
27VOID
28HalpInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
29{
30 /* Initialize Xbox-specific disk hacks */
31 HalpXboxInitPartIo();
32}
33
34VOID
35HalpInitPhase1(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 */