5 #ifndef __INTERNAL_HAL_HAL_H
6 #define __INTERNAL_HAL_HAL_H
8 #define HAL_APC_REQUEST 0
9 #define HAL_DPC_REQUEST 1
11 /* CMOS Registers and Ports */
12 #define CMOS_CONTROL_PORT (PUCHAR)0x70
13 #define CMOS_DATA_PORT (PUCHAR)0x71
14 #define RTC_REGISTER_A 0x0A
15 #define RTC_REGISTER_B 0x0B
16 #define RTC_REG_A_UIP 0x80
17 #define RTC_REGISTER_CENTURY 0x32
19 /* Timer Registers and Ports */
20 #define TIMER_CONTROL_PORT 0x43
21 #define TIMER_DATA_PORT0 0x40
23 #define TIMER_BOTH 0x30
26 /* Conversion functions */
27 #define BCD_INT(bcd) \
28 (((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F))
29 #define INT_BCD(int) \
30 (UCHAR)(((int / 10) << 4) + (int % 10))
33 PADAPTER_OBJECT NTAPI
HalpAllocateAdapterEx(ULONG NumberOfMapRegisters
,BOOLEAN IsMaster
, BOOLEAN Dma32BitAddresses
);
36 VOID NTAPI
HalpInitNonBusHandler (VOID
);
39 VOID NTAPI
HalpInitPICs(VOID
);
42 VOID NTAPI
HalpInitializeClock(VOID
);
46 HalpCalibrateStallExecution(VOID
);
55 VOID
HalpInitPciBus (VOID
);
58 VOID
HalpInitDma (VOID
);
60 /* Non-generic initialization */
61 VOID
HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock
);
62 VOID
HalpInitPhase1(VOID
);
63 VOID NTAPI
HalpClockInterrupt(VOID
);
76 HalpRegisterKdSupportFunctions(
82 HalpSetupPciDeviceForDebugging(
84 IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
89 HalpReleasePciDeviceForDebugging(
90 IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
98 HalpMapPhysicalMemory64(
99 IN PHYSICAL_ADDRESS PhysicalAddress
,
105 HalpUnmapVirtualAddress(
106 IN PVOID VirtualAddress
,
113 HaliQuerySystemInformation(
114 IN HAL_QUERY_INFORMATION_CLASS InformationClass
,
117 OUT PULONG ReturnedLength
122 HaliSetSystemInformation(
123 IN HAL_SET_INFORMATION_CLASS InformationClass
,
133 HalpBiosDisplayReset(
168 // Processor Halt Routine
177 #define KfLowerIrql KeLowerIrql
179 /* On UP builds, spinlocks don't exist at IRQL >= DISPATCH */
180 #define KiAcquireSpinLock(SpinLock)
181 #define KiReleaseSpinLock(SpinLock)
182 #define KfAcquireSpinLock(SpinLock) KfRaiseIrql(DISPATCH_LEVEL);
183 #define KfReleaseSpinLock(SpinLock, OldIrql) KeLowerIrql(OldIrql);
184 #endif // !CONFIG_SMP
187 extern PVOID HalpRealModeStart
;
188 extern PVOID HalpRealModeEnd
;
190 extern KSPIN_LOCK HalpSystemHardwareLock
;
192 #endif /* __INTERNAL_HAL_HAL_H */