Author: pschweitzer Date: Fri Mar 11 13:16:16 2011 New Revision: 51016
URL: http://svn.reactos.org/svn/reactos?rev=51016&view=rev Log: [NTOSKRNL] Add most of the missing HAL stubs for both public & private dispatch tables
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?re... ============================================================================== --- trunk/reactos/ntoskrnl/fstub/halstub.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/fstub/halstub.c [iso-8859-1] Fri Mar 11 13:16:16 2011 @@ -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 @@ 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/h... ============================================================================== --- trunk/reactos/ntoskrnl/include/internal/hal.h [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/include/internal/hal.h [iso-8859-1] Fri Mar 11 13:16:16 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@reactos.org) + * Pierre Schweitzer (pierre.schweitzer@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 +);
//