[NTOSKRNL]
authorPierre Schweitzer <pierre@reactos.org>
Sat, 12 Mar 2011 12:56:36 +0000 (12:56 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sat, 12 Mar 2011 12:56:36 +0000 (12:56 +0000)
Revert r51017 that was reverting r51016.
In fact, it seems that cmlib assert error, whatever that eats randomly doesn't come from software issue inside ReactOS, but from a build issue.
Indeed, as you may see in the different tests I performed it shows that the same build produces the same failure, again and again. But, new build shows that there is no assert anylonger with that commit.
Don't ask me why or how it happens, I just don't get it.
But most of the time, it works, no one knows why ("as usual" (tm)). But it's cool.

Someone from BE team and/or buildslaves managers should take a serious look at this issue.

Just in case: if that commit re-hits cmlib assert, don't blame it immediatly, just commit something else, and see whether trunk is still broken.
But, as you can see in testman, we have now test results for r51016 ;-)

svn path=/trunk/; revision=51025

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
+);
 
 
 //