[NTOSKRNL]
authorPierre Schweitzer <pierre@reactos.org>
Fri, 11 Mar 2011 13:16:16 +0000 (13:16 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Fri, 11 Mar 2011 13:16:16 +0000 (13:16 +0000)
Add most of the missing HAL stubs for both public & private dispatch tables

svn path=/trunk/; revision=51016

reactos/ntoskrnl/fstub/halstub.c
reactos/ntoskrnl/include/internal/hal.h

index a449f0b..a89ce80 100644 (file)
@@ -4,6 +4,7 @@
 * FILE:            ntoskrnl/fstub/halstub.c
 * PURPOSE:         I/O Stub HAL Routines
 * PROGRAMMERS:     Alex Ionescu (alex.ionescu@reactos.org)
+                   Pierre Schweitzer (pierre.schweitzer@reactos.org)
 */
 
 /* INCLUDES ******************************************************************/
 HAL_DISPATCH HalDispatchTable =
 {
     HAL_DISPATCH_VERSION,
-    (pHalQuerySystemInformation)NULL,
-    (pHalSetSystemInformation)NULL,
-    (pHalQueryBusSlots)NULL,
+    xHalQuerySystemInformation,
+    xHalSetSystemInformation,
+    xHalQueryBusSlots,
     0,
     xHalExamineMBR,
     xHalIoAssignDriveLetters,
     xHalIoReadPartitionTable,
     xHalIoSetPartitionInformation,
     xHalIoWritePartitionTable,
-    (pHalHandlerForBus)NULL,
-    (pHalReferenceBusHandler)NULL,
-    (pHalReferenceBusHandler)NULL,
-    (pHalInitPnpDriver)NULL,
-    (pHalInitPowerManagement)NULL,
+    xHalHandlerForBus,
+    xHalReferenceHandler,
+    xHalReferenceHandler,
+    xHalInitPnpDriver,
+    xHalInitPowerManagement,
     (pHalGetDmaAdapter) NULL,
     xHalGetInterruptTranslator,
-    (pHalStartMirroring)NULL,
-    (pHalEndMirroring)NULL,
-    (pHalMirrorPhysicalMemory)NULL,
+    xHalStartMirroring,
+    xHalEndMirroring,
+    xHalMirrorPhysicalMemory,
     xHalEndOfBoot,
-    (pHalMirrorVerify)NULL
+    xHalMirrorPhysicalMemory
 };
 
 HAL_PRIVATE_DISPATCH HalPrivateDispatchTable =
 {
     HAL_PRIVATE_DISPATCH_VERSION,
-    (pHalHandlerForBus)NULL,
-    (pHalHandlerForConfigSpace)NULL,
-    (pHalLocateHiberRanges)NULL,
-    (pHalRegisterBusHandler)NULL,
+    xHalHandlerForBus,
+    (pHalHandlerForConfigSpace)xHalHandlerForBus,
+    xHalLocateHiberRanges,
+    xHalRegisterBusHandler,
     xHalSetWakeEnable,
-    (pHalSetWakeAlarm)NULL,
-    (pHalTranslateBusAddress)NULL,
-    (pHalAssignSlotResources)NULL,
+    xHalSetWakeAlarm,
+    xHalTranslateBusAddress,
+    (pHalAssignSlotResources)xHalTranslateBusAddress,
     xHalHaltSystem,
     (pHalFindBusAddressTranslation)NULL,
     (pHalResetDisplay)NULL,
-    (pHalAllocateMapRegisters)NULL,
-    (pKdSetupPciDeviceForDebugging)NULL,
-    (pKdReleasePciDeviceForDebugging)NULL,
-    (pKdGetAcpiTablePhase0)NULL,
-    (pKdCheckPowerButton)NULL,
-    (pHalVectorToIDTEntry)xHalVectorToIDTEntry,
-    (pKdMapPhysicalMemory64)NULL,
-    (pKdUnmapVirtualAddress)NULL
+    xHalAllocateMapRegisters,
+    xKdSetupPciDeviceForDebugging,
+    xKdReleasePciDeviceForDebugging,
+    xKdGetAcpiTablePhase,
+    (pKdCheckPowerButton)xHalReferenceHandler,
+    xHalVectorToIDTEntry,
+    (pKdMapPhysicalMemory64)MatchAll,
+    (pKdUnmapVirtualAddress)xKdUnmapVirtualAddress
 };
 
 /* FUNCTIONS *****************************************************************/
@@ -86,6 +87,8 @@ VOID
 NTAPI
 xHalEndOfBoot(VOID)
 {
+    PAGED_CODE();
+
     /* Nothing */
     return;
 }
@@ -97,3 +100,193 @@ xHalSetWakeEnable(IN BOOLEAN Enable)
     /* Nothing */
     return;
 }
+
+PBUS_HANDLER
+FASTCALL
+xHalHandlerForBus(IN INTERFACE_TYPE InterfaceType,
+                  IN ULONG BusNumber)
+{
+    return NULL;
+}
+
+VOID
+FASTCALL
+xHalReferenceHandler(IN PBUS_HANDLER BusHandler)
+{
+    /* Nothing */
+    return;
+}
+
+NTSTATUS
+NTAPI
+xHalInitPnpDriver(VOID)
+{
+    return STATUS_NOT_SUPPORTED;
+}
+
+NTSTATUS
+NTAPI
+xHalInitPowerManagement(IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
+                        OUT PPM_DISPATCH_TABLE *PmHalDispatchTable)
+{
+    return STATUS_NOT_SUPPORTED;
+}
+
+NTSTATUS
+NTAPI
+xHalStartMirroring(VOID)
+{
+    PAGED_CODE();
+
+    return STATUS_NOT_SUPPORTED;
+}
+
+NTSTATUS
+NTAPI
+xHalEndMirroring(IN ULONG PassNumber)
+{
+    return STATUS_NOT_SUPPORTED;
+}
+
+NTSTATUS
+NTAPI
+xHalMirrorPhysicalMemory(IN PHYSICAL_ADDRESS PhysicalAddress,
+                         IN LARGE_INTEGER NumberOfBytes)
+{
+    return STATUS_NOT_SUPPORTED;
+}
+
+NTSTATUS
+NTAPI
+xHalQueryBusSlots(IN PBUS_HANDLER BusHandler,
+                  IN ULONG BufferSize,
+                  OUT PULONG SlotNumbers,
+                  OUT PULONG ReturnedLength)
+{
+    PAGED_CODE();
+
+    return STATUS_NOT_SUPPORTED;
+}
+
+NTSTATUS
+NTAPI
+xHalSetSystemInformation(IN HAL_SET_INFORMATION_CLASS InformationClass,
+                         IN ULONG BufferSize,
+                         IN PVOID Buffer)
+{
+    PAGED_CODE();
+
+    return STATUS_INVALID_LEVEL;
+}
+
+NTSTATUS
+NTAPI
+xHalQuerySystemInformation(IN HAL_QUERY_INFORMATION_CLASS InformationClass,
+                           IN ULONG BufferSize,
+                           IN OUT PVOID Buffer,
+                           OUT PULONG ReturnedLength)
+{
+    PAGED_CODE();
+
+    return STATUS_INVALID_LEVEL;
+}
+
+VOID
+NTAPI
+xHalLocateHiberRanges(IN PVOID MemoryMap)
+{
+    /* Nothing */
+    return;
+}
+
+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)
+{
+    PAGED_CODE();
+
+    return STATUS_NOT_SUPPORTED;
+}
+
+VOID
+NTAPI
+xHalSetWakeAlarm(IN ULONGLONG AlartTime,
+                 IN PTIME_FIELDS TimeFields)
+{
+    /* Nothing */
+    return;
+}
+
+BOOLEAN
+NTAPI
+xHalTranslateBusAddress(IN INTERFACE_TYPE InterfaceType,
+                        IN ULONG BusNumber,
+                        IN PHYSICAL_ADDRESS BusAddress,
+                        IN OUT PULONG AddressSpace,
+                        OUT PPHYSICAL_ADDRESS TranslatedAddress)
+{
+    KeBugCheckEx(HAL_INITIALIZATION_FAILED, 0, 0, 0, 0);
+
+    return FALSE;
+}
+
+NTSTATUS
+NTAPI
+xHalAllocateMapRegisters(IN PADAPTER_OBJECT AdapterObject,
+                         IN ULONG Unknown,
+                         IN ULONG Unknown2,
+                         PMAP_REGISTER_ENTRY Registers)
+{
+    PAGED_CODE();
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+NTSTATUS
+NTAPI
+xKdSetupPciDeviceForDebugging(IN PVOID LoaderBlock OPTIONAL,
+                              IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
+{
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+NTSTATUS
+NTAPI
+xKdReleasePciDeviceForDebugging(IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
+{
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+PVOID
+NTAPI
+xKdGetAcpiTablePhase(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+                     IN ULONG Signature)
+{
+    return NULL;
+}
+
+PVOID
+NTAPI
+MatchAll(IN PHYSICAL_ADDRESS PhysicalAddress,
+         IN ULONG NumberPages,
+         IN BOOLEAN FlushCurrentTLB)
+{
+    return NULL;
+}
+
+VOID
+NTAPI
+xKdUnmapVirtualAddress(IN PVOID VirtualAddress,
+                       IN ULONG NumberPages,
+                       IN BOOLEAN FlushCurrentTLB)
+{
+    /* Nothing */
+    return;
+}
index f465ad7..249ae64 100644 (file)
@@ -4,6 +4,7 @@
  * 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)
  */
 
 #pragma once
@@ -73,13 +74,167 @@ xHalVectorToIDTEntry(
 
 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);
+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
+);
 
 
 //