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 */ 58