Reactos
at master 57 lines 1.5 kB view raw
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 */