+++ /dev/null
-/*
- * PROJECT: ReactOS Kernel
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: ntoskrnl/include/internal/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)
- */
-
-#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
-//
-#define PARTITION_TABLE_OFFSET (0x1BE / 2)
-#define BOOT_SIGNATURE_OFFSET ((0x200 / 2) - 1)
-#define BOOT_RECORD_RESERVED 0x1BC
-#define BOOT_RECORD_SIGNATURE 0xAA55
-#define NUM_PARTITION_TABLE_ENTRIES 4
-
-//
-// Helper Macros
-//
-#define GET_STARTING_SECTOR(p) \
- ((ULONG)(p->StartingSectorLsb0) + \
- (ULONG)(p->StartingSectorLsb1 << 8 ) + \
- (ULONG)(p->StartingSectorMsb0 << 16) + \
- (ULONG)(p->StartingSectorMsb1 << 24))
-
-#define GET_ENDING_S_OF_CHS(p) \
- ((UCHAR)(p->EndingCylinderLsb & 0x3F))
-
-#define GET_PARTITION_LENGTH(p) \
- ((ULONG)(p->PartitionLengthLsb0) + \
- (ULONG)(p->PartitionLengthLsb1 << 8) + \
- (ULONG)(p->PartitionLengthMsb0 << 16) + \
- (ULONG)(p->PartitionLengthMsb1 << 24))
-
-#define SET_PARTITION_LENGTH(p, l) \
- p->PartitionLengthLsb0 = l & 0xFF; \
- p->PartitionLengthLsb1 = (l >> 8) & 0xFF; \
- p->PartitionLengthMsb0 = (l >> 16) & 0xFF; \
- p->PartitionLengthMsb1 = (l >> 24) & 0xFF
-
-//
-// Structure describing a partition
-//
-typedef struct _PARTITION_DESCRIPTOR
-{
- UCHAR ActiveFlag;
- UCHAR StartingTrack;
- UCHAR StartingCylinderLsb;
- UCHAR StartingCylinderMsb;
- UCHAR PartitionType;
- UCHAR EndingTrack;
- UCHAR EndingCylinderLsb;
- UCHAR EndingCylinderMsb;
- UCHAR StartingSectorLsb0;
- UCHAR StartingSectorLsb1;
- UCHAR StartingSectorMsb0;
- UCHAR StartingSectorMsb1;
- UCHAR PartitionLengthLsb0;
- UCHAR PartitionLengthLsb1;
- UCHAR PartitionLengthMsb0;
- UCHAR PartitionLengthMsb1;
-} PARTITION_DESCRIPTOR, *PPARTITION_DESCRIPTOR;
-
-//
-// Structure describing a boot sector
-//
-typedef struct _BOOT_SECTOR_INFO
-{
- UCHAR JumpByte[1];
- UCHAR Ignore1[2];
- UCHAR OemData[8];
- UCHAR BytesPerSector[2];
- UCHAR Ignore2[6];
- UCHAR NumberOfSectors[2];
- UCHAR MediaByte[1];
- UCHAR Ignore3[2];
- UCHAR SectorsPerTrack[2];
- UCHAR NumberOfHeads[2];
-} BOOT_SECTOR_INFO, *PBOOT_SECTOR_INFO;
-
-//
-// Partition Table and Disk Layout
-//
-typedef struct _PARTITION_TABLE
-{
- PARTITION_INFORMATION PartitionEntry[4];
-} PARTITION_TABLE, *PPARTITION_TABLE;
-
-typedef struct _DISK_LAYOUT
-{
- ULONG TableCount;
- ULONG Signature;
- PARTITION_TABLE PartitionTable[1];
-} DISK_LAYOUT, *PDISK_LAYOUT;
-
-//
-// Partition Table Entry
-//
-typedef struct _PTE
-{
- UCHAR ActiveFlag;
- UCHAR StartingTrack;
- USHORT StartingCylinder;
- UCHAR PartitionType;
- UCHAR EndingTrack;
- USHORT EndingCylinder;
- ULONG StartingSector;
- ULONG PartitionLength;
-} PTE, *PPTE;