/* * */ #pragma once /* Temporary hack */ #define KPCR_BASE 0xFF000000 #define HAL_APC_REQUEST 0 #define HAL_DPC_REQUEST 1 /* CMOS Registers and Ports */ #define CMOS_CONTROL_PORT (PUCHAR)0x70 #define CMOS_DATA_PORT (PUCHAR)0x71 #define RTC_REGISTER_A 0x0A #define RTC_REGISTER_B 0x0B #define RTC_REG_A_UIP 0x80 #define RTC_REGISTER_CENTURY 0x32 /* Timer Registers and Ports */ #define TIMER_CONTROL_PORT 0x43 #define TIMER_DATA_PORT0 0x40 #define TIMER_SC0 0 #define TIMER_BOTH 0x30 #define TIMER_MD2 0x4 /* Conversion functions */ #define BCD_INT(bcd) \ (((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F)) #define INT_BCD(int) \ (UCHAR)(((int / 10) << 4) + (int % 10)) /* adapter.c */ PADAPTER_OBJECT NTAPI HalpAllocateAdapterEx(ULONG NumberOfMapRegisters,BOOLEAN IsMaster, BOOLEAN Dma32BitAddresses); /* bus.c */ VOID NTAPI HalpInitNonBusHandler (VOID); /* irql.c */ VOID NTAPI HalpInitPICs(VOID); /* udelay.c */ VOID NTAPI HalpInitializeClock(VOID); /* pci.c */ VOID HalpInitPciBus (VOID); /* dma.c */ VOID HalpInitDma (VOID); /* Non-generic initialization */ VOID HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock); VOID HalpInitPhase1(VOID); VOID NTAPI HalpClockInterrupt(VOID); // // KD Support // VOID NTAPI HalpCheckPowerButton( VOID ); VOID NTAPI HalpRegisterKdSupportFunctions( VOID ); NTSTATUS NTAPI HalpSetupPciDeviceForDebugging( IN PVOID LoaderBlock, IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice ); NTSTATUS NTAPI HalpReleasePciDeviceForDebugging( IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice ); // // Memory routines // PVOID NTAPI HalpMapPhysicalMemory64( IN PHYSICAL_ADDRESS PhysicalAddress, IN ULONG NumberPage ); VOID NTAPI HalpUnmapVirtualAddress( IN PVOID VirtualAddress, IN ULONG NumberPages ); /* sysinfo.c */ NTSTATUS NTAPI HaliQuerySystemInformation( IN HAL_QUERY_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer, OUT PULONG ReturnedLength ); NTSTATUS NTAPI HaliSetSystemInformation( IN HAL_SET_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer ); typedef struct tagHALP_HOOKS { void (*InitPciBus)(ULONG BusNumber, PBUS_HANDLER BusHandler); } HALP_HOOKS, *PHALP_HOOKS; extern HALP_HOOKS HalpHooks; extern KSPIN_LOCK HalpSystemHardwareLock;