* FILE: ntoskrnl/include/hal.h
* PURPOSE: Internal header for the I/O HAL Functions (Fstub)
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
+ * Pierre Schweitzer (pierre.schweitzer@reactos.org)
*/
-#ifndef _HAL_
-#define _HAL_
+
+#pragma once
+
+//
+// Default implementations of HAL dispatch table
+//
+VOID
+FASTCALL
+xHalExamineMBR(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG MbrTypeIdentifier,
+ OUT PVOID *MbrBuffer);
+
+VOID
+FASTCALL
+xHalIoAssignDriveLetters(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
+ IN PSTRING NtDeviceName,
+ OUT PUCHAR NtSystemPath,
+ OUT PSTRING NtSystemPathString);
+
+NTSTATUS
+FASTCALL
+xHalIoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN BOOLEAN ReturnRecognizedPartitions,
+ IN OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer);
+
+NTSTATUS
+FASTCALL
+xHalIoSetPartitionInformation(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG PartitionNumber,
+ IN ULONG PartitionType);
+
+NTSTATUS
+FASTCALL
+xHalIoWritePartitionTable(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG SectorsPerTrack,
+ IN ULONG NumberOfHeads,
+ IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer);
+
+VOID
+NTAPI
+xHalHaltSystem(
+ VOID
+);
+
+VOID
+NTAPI
+xHalEndOfBoot(
+ VOID
+);
+
+VOID
+NTAPI
+xHalSetWakeEnable(
+ IN BOOLEAN Enable
+);
+
+UCHAR
+NTAPI
+xHalVectorToIDTEntry(
+ IN ULONG Vector
+);
+
+NTSTATUS
+NTAPI
+xHalGetInterruptTranslator(
+ IN INTERFACE_TYPE ParentInterfaceType,
+ IN ULONG ParentBusNumber,
+ IN INTERFACE_TYPE BridgeInterfaceType,
+ IN USHORT Size,
+ IN USHORT Version,
+ OUT PTRANSLATOR_INTERFACE Translator,
+ OUT PULONG BridgeBusNumber
+);
+
+PBUS_HANDLER
+FASTCALL
+xHalHandlerForBus(
+ IN INTERFACE_TYPE InterfaceType,
+ IN ULONG BusNumber
+);
+
+VOID
+FASTCALL
+xHalReferenceHandler(
+ IN PBUS_HANDLER BusHandler
+);
+
+NTSTATUS
+NTAPI
+xHalInitPnpDriver(
+ VOID
+);
+
+NTSTATUS
+NTAPI
+xHalInitPowerManagement(
+ IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
+ OUT PPM_DISPATCH_TABLE *PmHalDispatchTable
+);
+
+NTSTATUS
+NTAPI
+xHalStartMirroring(
+ VOID
+);
+
+NTSTATUS
+NTAPI
+xHalEndMirroring(
+ IN ULONG PassNumber
+);
+
+NTSTATUS
+NTAPI
+xHalMirrorPhysicalMemory(
+ IN PHYSICAL_ADDRESS PhysicalAddress,
+ IN LARGE_INTEGER NumberOfBytes
+);
+
+NTSTATUS
+NTAPI
+xHalQueryBusSlots(
+ IN PBUS_HANDLER BusHandler,
+ IN ULONG BufferSize,
+ OUT PULONG SlotNumbers,
+ OUT PULONG ReturnedLength
+);
+
+NTSTATUS
+NTAPI
+xHalSetSystemInformation(
+ IN HAL_SET_INFORMATION_CLASS InformationClass,
+ IN ULONG BufferSize,
+ IN PVOID Buffer
+);
+
+NTSTATUS
+NTAPI
+xHalQuerySystemInformation(
+ IN HAL_QUERY_INFORMATION_CLASS InformationClass,
+ IN ULONG BufferSize,
+ IN OUT PVOID Buffer,
+ OUT PULONG ReturnedLength
+);
+
+VOID
+NTAPI
+xHalLocateHiberRanges(
+ IN PVOID MemoryMap
+);
+
+NTSTATUS
+NTAPI
+xHalRegisterBusHandler(
+ IN INTERFACE_TYPE InterfaceType,
+ IN BUS_DATA_TYPE ConfigSpace,
+ IN ULONG BusNumber,
+ IN INTERFACE_TYPE ParentInterfaceType,
+ IN ULONG ParentBusNumber,
+ IN ULONG ContextSize,
+ IN PINSTALL_BUS_HANDLER InstallCallback,
+ OUT PBUS_HANDLER *BusHandler
+);
+
+VOID
+NTAPI
+xHalSetWakeAlarm(
+ IN ULONGLONG AlartTime,
+ IN PTIME_FIELDS TimeFields
+);
+
+BOOLEAN
+NTAPI
+xHalTranslateBusAddress(
+ IN INTERFACE_TYPE InterfaceType,
+ IN ULONG BusNumber,
+ IN PHYSICAL_ADDRESS BusAddress,
+ IN OUT PULONG AddressSpace,
+ OUT PPHYSICAL_ADDRESS TranslatedAddress
+);
+
+NTSTATUS
+NTAPI
+xHalAllocateMapRegisters(
+ IN PADAPTER_OBJECT AdapterObject,
+ IN ULONG Unknown,
+ IN ULONG Unknown2,
+ PMAP_REGISTER_ENTRY Registers
+);
+
+NTSTATUS
+NTAPI
+xKdSetupPciDeviceForDebugging(
+ IN PVOID LoaderBlock OPTIONAL,
+ IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
+);
+
+NTSTATUS
+NTAPI
+xKdReleasePciDeviceForDebugging(
+ IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
+);
+
+PVOID
+NTAPI
+xKdGetAcpiTablePhase(
+ IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+ IN ULONG Signature
+);
+
+PVOID
+NTAPI
+MatchAll(
+ IN PHYSICAL_ADDRESS PhysicalAddress,
+ IN ULONG NumberPages,
+ IN BOOLEAN FlushCurrentTLB
+);
+
+VOID
+NTAPI
+xKdUnmapVirtualAddress(
+ IN PVOID VirtualAddress,
+ IN ULONG NumberPages,
+ IN BOOLEAN FlushCurrentTLB
+);
+
//
// Various offsets in the boot record
ULONG StartingSector;
ULONG PartitionLength;
} PTE, *PPTE;
-
-#endif