Synchronize with trunk's revision r57629.
[reactos.git] / ntoskrnl / fstub / halstub.c
index a646945..99cc28c 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,
-    (pHalGetInterruptTranslator)NULL,
-    (pHalStartMirroring)NULL,
-    (pHalEndMirroring)NULL,
-    (pHalMirrorPhysicalMemory)NULL,
-    (pHalEndOfBoot)NULL,
-    (pHalMirrorVerify)NULL
+    xHalGetInterruptTranslator,
+    xHalStartMirroring,
+    xHalEndMirroring,
+    xHalMirrorPhysicalMemory,
+    xHalEndOfBoot,
+    xHalMirrorPhysicalMemory
 };
 
 HAL_PRIVATE_DISPATCH HalPrivateDispatchTable =
 {
     HAL_PRIVATE_DISPATCH_VERSION,
-    (pHalHandlerForBus)NULL,
-    (pHalHandlerForConfigSpace)NULL,
-    (pHalLocateHiberRanges)NULL,
-    (pHalRegisterBusHandler)NULL,
-    (pHalSetWakeEnable)NULL,
-    (pHalSetWakeAlarm)NULL,
-    (pHalTranslateBusAddress)NULL,
-    (pHalAssignSlotResources)NULL,
+    xHalHandlerForBus,
+    (pHalHandlerForConfigSpace)xHalHandlerForBus,
+    xHalLocateHiberRanges,
+    xHalRegisterBusHandler,
+    xHalSetWakeEnable,
+    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 *****************************************************************/
@@ -71,7 +72,7 @@ NTAPI
 xHalVectorToIDTEntry(IN ULONG Vector)
 {
     /* Return the vector */
-    return Vector;
+    return (UCHAR)Vector;
 }
 
 VOID
@@ -81,3 +82,211 @@ xHalHaltSystem(VOID)
     /* Halt execution */
     while (TRUE);
 }
+
+VOID
+NTAPI
+xHalEndOfBoot(VOID)
+{
+    PAGED_CODE();
+
+    /* Nothing */
+    return;
+}
+
+VOID
+NTAPI
+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;
+}