[NTOSKRNL]

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
This commit is contained in:
Pierre Schweitzer 2011-03-12 12:56:36 +00:00
parent 57664d7105
commit dc102df1d6
2 changed files with 382 additions and 34 deletions

View 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 ******************************************************************/
@ -17,51 +18,51 @@
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;
}

View 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,
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);
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
);
//