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(
161 IN PDEVICE_DESCRIPTION DeviceDescription
,
162 OUT PULONG NumberOfMapRegisters
);
164 VOID
HaliInitBSP(VOID
);
165 VOID
HaliStartApplicationProcessor(ULONG Cpu
, ULONG Stack
);
167 extern PVOID HalpRealModeStart
;
168 extern PVOID HalpRealModeEnd
;
170 extern KSPIN_LOCK HalpSystemHardwareLock
;
172 #endif /* __INTERNAL_HAL_HAL_H */