5 #ifndef __INTERNAL_HAL_HAL_H
6 #define __INTERNAL_HAL_HAL_H
9 #define KPCR_BASE 0xFF000000
12 #define KdComPortInUse _KdComPortInUse
14 #define HAL_APC_REQUEST 0
15 #define HAL_DPC_REQUEST 1
17 /* CMOS Registers and Ports */
18 #define CMOS_CONTROL_PORT (PUCHAR)0x70
19 #define CMOS_DATA_PORT (PUCHAR)0x71
20 #define RTC_REGISTER_A 0x0A
21 #define RTC_REGISTER_B 0x0B
22 #define RTC_REG_A_UIP 0x80
23 #define RTC_REGISTER_CENTURY 0x32
25 /* Timer Registers and Ports */
26 #define TIMER_CONTROL_PORT 0x43
27 #define TIMER_DATA_PORT0 0x40
29 #define TIMER_BOTH 0x30
32 /* Conversion functions */
33 #define BCD_INT(bcd) \
34 (((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F))
35 #define INT_BCD(int) \
36 (UCHAR)(((int / 10) << 4) + (int % 10))
39 PADAPTER_OBJECT STDCALL
HalpAllocateAdapterEx(ULONG NumberOfMapRegisters
,BOOLEAN IsMaster
, BOOLEAN Dma32BitAddresses
);
42 VOID NTAPI
HalpInitNonBusHandler (VOID
);
45 VOID NTAPI
HalpInitPICs(VOID
);
48 VOID NTAPI
HalpInitializeClock(VOID
);
51 VOID
HalpInitPciBus (VOID
);
54 VOID
HalpInitDma (VOID
);
56 /* Non-generic initialization */
57 VOID
HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock
);
58 VOID
HalpInitPhase1(VOID
);
59 VOID NTAPI
HalpClockInterrupt(VOID
);
72 HalpRegisterKdSupportFunctions(
78 HalpSetupPciDeviceForDebugging(
80 IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
85 HalpReleasePciDeviceForDebugging(
86 IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
94 HalpMapPhysicalMemory64(
95 IN PHYSICAL_ADDRESS PhysicalAddress
,
101 HalpUnmapVirtualAddress(
102 IN PVOID VirtualAddress
,
109 HaliQuerySystemInformation(
110 IN HAL_QUERY_INFORMATION_CLASS InformationClass
,
113 OUT PULONG ReturnedLength
118 HaliSetSystemInformation(
119 IN HAL_SET_INFORMATION_CLASS InformationClass
,
124 typedef struct tagHALP_HOOKS
126 void (*InitPciBus
)(ULONG BusNumber
, PBUS_HANDLER BusHandler
);
127 } HALP_HOOKS
, *PHALP_HOOKS
;
129 extern HALP_HOOKS HalpHooks
;
130 extern KSPIN_LOCK HalpSystemHardwareLock
;
132 #endif /* __INTERNAL_HAL_HAL_H */