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
);
45 VOID
HalpInitPciBus (VOID
);
48 VOID
HalpInitDma (VOID
);
50 /* Non-generic initialization */
51 VOID
HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock
);
52 VOID
HalpInitPhase1(VOID
);
53 VOID NTAPI
HalpClockInterrupt(VOID
);
66 HalpRegisterKdSupportFunctions(
72 HalpSetupPciDeviceForDebugging(
74 IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
79 HalpReleasePciDeviceForDebugging(
80 IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
88 HalpMapPhysicalMemory64(
89 IN PHYSICAL_ADDRESS PhysicalAddress
,
95 HalpUnmapVirtualAddress(
96 IN PVOID VirtualAddress
,
103 HaliQuerySystemInformation(
104 IN HAL_QUERY_INFORMATION_CLASS InformationClass
,
107 OUT PULONG ReturnedLength
112 HaliSetSystemInformation(
113 IN HAL_SET_INFORMATION_CLASS InformationClass
,
123 HalpBiosDisplayReset(
158 #define KfLowerIrql KeLowerIrql
160 /* On UP builds, spinlocks don't exist at IRQL >= DISPATCH */
161 #define KiAcquireSpinLock(SpinLock)
162 #define KiReleaseSpinLock(SpinLock)
163 #define KfAcquireSpinLock(SpinLock) KfRaiseIrql(DISPATCH_LEVEL);
164 #define KfReleaseSpinLock(SpinLock, OldIrql) KeLowerIrql(OldIrql);
165 #endif // !CONFIG_SMP
168 extern PVOID HalpRealModeStart
;
169 extern PVOID HalpRealModeEnd
;
171 extern KSPIN_LOCK HalpSystemHardwareLock
;
173 #endif /* __INTERNAL_HAL_HAL_H */