Author: pschweitzer
Date: Sat Mar 12 12:56:36 2011
New Revision: 51025
URL:
http://svn.reactos.org/svn/reactos?rev=51025&view=rev
Log:
[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 ;-)
Modified:
trunk/reactos/ntoskrnl/fstub/halstub.c
trunk/reactos/ntoskrnl/include/internal/hal.h
Modified: trunk/reactos/ntoskrnl/fstub/halstub.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/fstub/halstub.c?r…
==============================================================================
--- trunk/reactos/ntoskrnl/fstub/halstub.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/fstub/halstub.c [iso-8859-1] Sat Mar 12 12:56:36 2011
@@ -4,6 +4,7 @@
* FILE: ntoskrnl/fstub/halstub.c
* PURPOSE: I/O Stub HAL Routines
* PROGRAMMERS: Alex Ionescu (alex.ionescu(a)reactos.org)
+ Pierre Schweitzer (pierre.schweitzer(a)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 @@
NTAPI
xHalEndOfBoot(VOID)
{
+ PAGED_CODE();
+
/* Nothing */
return;
}
@@ -97,3 +100,193 @@
/* 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;
+}
Modified: trunk/reactos/ntoskrnl/include/internal/hal.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/hal.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/hal.h [iso-8859-1] Sat Mar 12 12:56:36 2011
@@ -4,6 +4,7 @@
* FILE: ntoskrnl/include/hal.h
* PURPOSE: Internal header for the I/O HAL Functions (Fstub)
* PROGRAMMERS: Alex Ionescu (alex.ionescu(a)reactos.org)
+ * Pierre Schweitzer (pierre.schweitzer(a)reactos.org)
*/
#pragma once
@@ -73,13 +74,167 @@
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
+);
//