Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / hal / halppc / include / halp.h
diff --git a/hal/halppc/include/halp.h b/hal/halppc/include/halp.h
new file mode 100644 (file)
index 0000000..0b21d70
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ *
+ */
+
+#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;