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?r…
==============================================================================
--- 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(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] 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(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
+);
//