ReactOS 0.4.16-dev-2633-g8dc9e50
halfuncs.h File Reference
#include <umtypes.h>
#include <haltypes.h>
#include <ketypes.h>
#include <section_attribs.h>
Include dependency graph for halfuncs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define HalHandlerForBus   HALPRIVATEDISPATCH->HalHandlerForBus
 
#define HalHandlerForConfigSpace   HALPRIVATEDISPATCH->HalHandlerForConfigSpace
 
#define HalLocateHiberRanges   HALPRIVATEDISPATCH->HalLocateHiberRanges
 
#define HalRegisterBusHandler   HALPRIVATEDISPATCH->HalRegisterBusHandler
 
#define HalSetWakeEnable   HALPRIVATEDISPATCH->HalSetWakeEnable
 
#define HalSetWakeAlarm   HALPRIVATEDISPATCH->HalSetWakeAlarm
 
#define HalPciTranslateBusAddress   HALPRIVATEDISPATCH->HalPciTranslateBusAddress
 
#define HalPciAssignSlotResources   HALPRIVATEDISPATCH->HalPciAssignSlotResources
 
#define HalHaltSystem   HALPRIVATEDISPATCH->HalHaltSystem
 
#define HalFindBusAddressTranslation   HALPRIVATEDISPATCH->HalFindBusAddressTranslation
 
#define HalResetDisplay   HALPRIVATEDISPATCH->HalResetDisplay
 
#define HalAllocateMapRegisters   HALPRIVATEDISPATCH->HalAllocateMapRegisters
 
#define KdSetupPciDeviceForDebugging   HALPRIVATEDISPATCH->KdSetupPciDeviceForDebugging
 
#define KdReleasePciDeviceforDebugging   HALPRIVATEDISPATCH->KdReleasePciDeviceforDebugging
 
#define KdGetAcpiTablePhase0   HALPRIVATEDISPATCH->KdGetAcpiTablePhase0
 
#define KdCheckPowerButton   HALPRIVATEDISPATCH->KdCheckPowerButton
 
#define HalVectorToIDTEntry   HALPRIVATEDISPATCH->HalVectorToIDTEntry
 
#define KdMapPhysicalMemory64   HALPRIVATEDISPATCH->KdMapPhysicalMemory64
 
#define KdUnmapVirtualAddress   HALPRIVATEDISPATCH->KdUnmapVirtualAddress
 
#define KdGetPciDataByOffset   HALPRIVATEDISPATCH->KdGetPciDataByOffset
 
#define KdSetPciDataByOffset   HALPRIVATEDISPATCH->KdSetPciDataByOffset
 
#define HalGetInterruptVectorOverride   HALPRIVATEDISPATCH->HalGetInterruptVectorOverride
 
#define HalGetVectorInputOverride   HALPRIVATEDISPATCH->HalGetVectorInputOverride
 
#define HalLoadMicrocode   HALPRIVATEDISPATCH->HalLoadMicrocode
 
#define HalUnloadMicrocode   HALPRIVATEDISPATCH->HalUnloadMicrocode
 
#define HalPostMicrocodeUpdate   HALPRIVATEDISPATCH->HalPostMicrocodeUpdate
 
#define HalAllocateMessageTargetOverride   HALPRIVATEDISPATCH->HalAllocateMessageTargetOverride
 
#define HalFreeMessageTargetOverride   HALPRIVATEDISPATCH->HalFreeMessageTargetOverride
 
#define HalDpReplaceBegin   HALPRIVATEDISPATCH->HalDpReplaceBegin
 
#define HalDpReplaceTarget   HALPRIVATEDISPATCH->HalDpReplaceTarget
 
#define HalDpReplaceControl   HALPRIVATEDISPATCH->HalDpReplaceControl
 
#define HalDpReplaceEnd   HALPRIVATEDISPATCH->HalDpReplaceEnd
 
#define HalPrepareForBugcheck   HALPRIVATEDISPATCH->HalPrepareForBugcheck
 
#define HalQueryWakeTime   HALPRIVATEDISPATCH->HalQueryWakeTime
 
#define HalReportIdleStateUsage   HALPRIVATEDISPATCH->HalReportIdleStateUsage
 
#define HalTscSynchronization   HALPRIVATEDISPATCH->HalTscSynchronization
 
#define HalWheaInitProcessorGenericSection   HALPRIVATEDISPATCH->HalWheaInitProcessorGenericSection
 
#define HalStopLegacyUsbInterrupts   HALPRIVATEDISPATCH->HalStopLegacyUsbInterrupts
 
#define HalReadWheaPhysicalMemory   HALPRIVATEDISPATCH->HalReadWheaPhysicalMemory
 
#define HalWriteWheaPhysicalMemory   HALPRIVATEDISPATCH->HalWriteWheaPhysicalMemory
 
#define HalDpMaskLevelTriggeredInterrupts   HALPRIVATEDISPATCH->HalDpMaskLevelTriggeredInterrupts
 
#define HalDpUnmaskLevelTriggeredInterrupts   HALPRIVATEDISPATCH->HalDpUnmaskLevelTriggeredInterrupts
 
#define HalDpGetInterruptReplayState   HALPRIVATEDISPATCH->HalDpGetInterruptReplayState
 
#define HalDpReplayInterrupts   HALPRIVATEDISPATCH->HalDpReplayInterrupts
 
#define HalQueryIoPortAccessSupported   HALPRIVATEDISPATCH->HalQueryIoPortAccessSupported
 
#define KdSetupIntegratedDeviceForDebugging   HALPRIVATEDISPATCH->KdSetupIntegratedDeviceForDebugging
 
#define KdReleaseIntegratedDeviceForDebugging   HALPRIVATEDISPATCH->KdReleaseIntegratedDeviceForDebugging
 
#define HalGetEnlightenmentInformation   HALPRIVATEDISPATCH->HalGetEnlightenmentInformation
 
#define HalAllocateEarlyPages   HALPRIVATEDISPATCH->HalAllocateEarlyPages
 
#define HalMapEarlyPages   HALPRIVATEDISPATCH->HalMapEarlyPages
 
#define HalGetClockOwner   HALPRIVATEDISPATCH->HalGetClockOwner
 
#define HalGetClockConfiguration   HALPRIVATEDISPATCH->HalGetClockConfiguration
 
#define HalNotifyProcessorFreeze   HALPRIVATEDISPATCH->HalNotifyProcessorFreeze
 
#define HalPrepareProcessorForIdle   HALPRIVATEDISPATCH->HalPrepareProcessorForIdle
 
#define HalRegisterLogRoutine   HALPRIVATEDISPATCH->HalRegisterLogRoutine
 
#define HalResumeProcessorFromIdle   HALPRIVATEDISPATCH->HalResumeProcessorFromIdle
 
#define HalVectorToIDTEntryEx   HALPRIVATEDISPATCH->HalVectorToIDTEntryEx
 
#define HalSecondaryInterruptQueryPrimaryInformation   HALPRIVATEDISPATCH->HalSecondaryInterruptQueryPrimaryInformation
 
#define HalMaskInterrupt   HALPRIVATEDISPATCH->HalMaskInterrupt
 
#define HalUnmaskInterrupt   HALPRIVATEDISPATCH->HalUnmaskInterrupt
 
#define HalIsInterruptTypeSecondary   HALPRIVATEDISPATCH->HalIsInterruptTypeSecondary
 
#define HalAllocateGsivForSecondaryInterrupt   HALPRIVATEDISPATCH->HalAllocateGsivForSecondaryInterrupt
 
#define HalAddInterruptRemapping   HALPRIVATEDISPATCH->HalAddInterruptRemapping
 
#define HalRemoveInterruptRemapping   HALPRIVATEDISPATCH->HalRemoveInterruptRemapping
 
#define HalSaveAndDisableHvEnlightenment   HALPRIVATEDISPATCH->HalSaveAndDisableHvEnlightenment
 
#define HalRestoreHvEnlightenment   HALPRIVATEDISPATCH->HalRestoreHvEnlightenment
 
#define HalFlushIoBuffersExternalCache   HALPRIVATEDISPATCH->HalFlushIoBuffersExternalCache
 
#define HalFlushExternalCache   HALPRIVATEDISPATCH->HalFlushExternalCache
 
#define HalPciEarlyRestore   HALPRIVATEDISPATCH->HalPciEarlyRestore
 
#define HalGetProcessorId   HALPRIVATEDISPATCH->HalGetProcessorId
 
#define HalAllocatePmcCounterSet   HALPRIVATEDISPATCH->HalAllocatePmcCounterSet
 
#define HalCollectPmcCounters   HALPRIVATEDISPATCH->HalCollectPmcCounters
 
#define HalFreePmcCounterSet   HALPRIVATEDISPATCH->HalFreePmcCounterSet
 
#define HalProcessorHalt   HALPRIVATEDISPATCH->HalProcessorHalt
 
#define HalTimerQueryCycleCounter   HALPRIVATEDISPATCH->HalTimerQueryCycleCounter
 
#define HalGetNextTickDuration   HALPRIVATEDISPATCH->HalGetNextTickDuration
 
#define HalPciMarkHiberPhase   HALPRIVATEDISPATCH->HalPciMarkHiberPhase
 
#define HalQueryProcessorRestartEntryPoint   HALPRIVATEDISPATCH->HalQueryProcessorRestartEntryPoint
 
#define HalRequestInterrupt   HALPRIVATEDISPATCH->HalRequestInterrupt
 
#define HalEnumerateUnmaskedInterrupts   HALPRIVATEDISPATCH->HalEnumerateUnmaskedInterrupts
 
#define HalFlushAndInvalidatePageExternalCache   HALPRIVATEDISPATCH->HalFlushAndInvalidatePageExternalCache
 
#define KdEnumerateDebuggingDevices   HALPRIVATEDISPATCH->KdEnumerateDebuggingDevices
 
#define HalFlushIoRectangleExternalCache   HALPRIVATEDISPATCH->HalFlushIoRectangleExternalCache
 
#define HalPowerEarlyRestore   HALPRIVATEDISPATCH->HalPowerEarlyRestore
 
#define HalQueryCapsuleCapabilities   HALPRIVATEDISPATCH->HalQueryCapsuleCapabilities
 
#define HalUpdateCapsule   HALPRIVATEDISPATCH->HalUpdateCapsule
 
#define HalPciMultiStageResumeCapable   HALPRIVATEDISPATCH->HalPciMultiStageResumeCapable
 
#define HalDmaFreeCrashDumpRegisters   HALPRIVATEDISPATCH->HalDmaFreeCrashDumpRegisters
 
#define HalAcpiAoacCapable   HALPRIVATEDISPATCH->HalAcpiAoacCapable
 
#define HalInterruptSetDestination   HALPRIVATEDISPATCH->HalInterruptSetDestination
 
#define HalGetClockConfiguration   HALPRIVATEDISPATCH->HalGetClockConfiguration
 
#define HalClockTimerActivate   HALPRIVATEDISPATCH->HalClockTimerActivate
 
#define HalClockTimerInitialize   HALPRIVATEDISPATCH->HalClockTimerInitialize
 
#define HalClockTimerStop   HALPRIVATEDISPATCH->HalClockTimerStop
 
#define HalClockTimerArm   HALPRIVATEDISPATCH->HalClockTimerArm
 
#define HalTimerOnlyClockInterruptPending   HALPRIVATEDISPATCH->HalTimerOnlyClockInterruptPending
 
#define HalAcpiGetMultiNode   HALPRIVATEDISPATCH->HalAcpiGetMultiNode
 
#define HalPowerSetRebootHandler   HALPRIVATEDISPATCH->HalPowerSetRebootHandler
 
#define HalIommuRegisterDispatchTable   HALPRIVATEDISPATCH->HalIommuRegisterDispatchTable
 
#define HalTimerWatchdogStart   HALPRIVATEDISPATCH->HalTimerWatchdogStart
 
#define HalTimerWatchdogResetCountdown   HALPRIVATEDISPATCH->HalTimerWatchdogResetCountdown
 
#define HalTimerWatchdogStop   HALPRIVATEDISPATCH->HalTimerWatchdogStop
 
#define HalTimerWatchdogGeneratedLastReset   HALPRIVATEDISPATCH->HalTimerWatchdogGeneratedLastReset
 
#define HalTimerWatchdogTriggerSystemReset   HALPRIVATEDISPATCH->HalTimerWatchdogTriggerSystemReset
 
#define HalInterruptVectorDataToGsiv   HALPRIVATEDISPATCH->HalInterruptVectorDataToGsiv
 
#define HalInterruptGetHighestPriorityInterrupt   HALPRIVATEDISPATCH->HalInterruptGetHighestPriorityInterrupt
 
#define HalProcessorOn   HALPRIVATEDISPATCH->HalProcessorOn
 
#define HalProcessorOff   HALPRIVATEDISPATCH->HalProcessorOff
 
#define HalProcessorFreeze   HALPRIVATEDISPATCH->HalProcessorFreeze
 
#define HalDmaLinkDeviceObjectByToken   HALPRIVATEDISPATCH->HalDmaLinkDeviceObjectByToken
 
#define HalDmaCheckAdapterToken   HALPRIVATEDISPATCH->HalDmaCheckAdapterToken
 
#define HalPciLateRestore   HALPRIVATEDISPATCH->HalPciLateRestore
 
#define HalTimerConvertPerformanceCounterToAuxiliaryCounter   HALPRIVATEDISPATCH->HalTimerConvertPerformanceCounterToAuxiliaryCounter
 
#define HalTimerConvertAuxiliaryCounterToPerformanceCounter   HALPRIVATEDISPATCH->HalTimerConvertAuxiliaryCounterToPerformanceCounter
 
#define HalTimerQueryAuxiliaryCounterFrequency   HALPRIVATEDISPATCH->HalTimerQueryAuxiliaryCounterFrequency
 
#define HalConnectThermalInterrupt   HALPRIVATEDISPATCH->HalConnectThermalInterrupt
 
#define HalIsEFIRuntimeActive   HALPRIVATEDISPATCH->HalIsEFIRuntimeActive
 
#define HalIommuSupportEnabled   HalIommuDispatch->HalIommuSupportEnabled
 
#define HalIommuGetConfiguration   HalIommuDispatch->HalIommuGetConfiguration
 
#define HalIommuGetLibraryContext   HalIommuDispatch->HalIommuGetLibraryContext
 
#define HalIommuMapDevice   HalIommuDispatch->HalIommuMapDevice
 
#define HalIommuEnableDevicePasid   HalIommuDispatch->HalIommuEnableDevicePasid
 
#define HalIommuSetAddressSpace   HalIommuDispatch->HalIommuSetAddressSpace
 
#define HalIommuDisableDevicePasid   HalIommuDispatch->HalIommuDisableDevicePasid
 
#define HalIommuUnmapDevice   HalIommuDispatch->HalIommuUnmapDevice
 
#define HalIommuFreeLibraryContext   HalIommuDispatch->HalIommuFreeLibraryContext
 
#define HalIommuFlushTb   HalIommuDispatch->HalIommuFlushTb
 
#define HalIommuFlushAllPasid   HalIommuDispatch->HalIommuFlushAllPasid
 
#define HalIommuProcessPageRequestQueue   HalIommuDispatch->HalIommuProcessPageRequestQueue
 
#define HalIommuFaultRoutine   HalIommuDispatch->HalIommuFaultRoutine
 
#define HalIommuReferenceAsid   HalIommuDispatch->HalIommuReferenceAsid
 
#define HalIommuDereferenceAsid   HalIommuDispatch->HalIommuDereferenceAsid
 
#define HalIommuServicePageFault   HalIommuDispatch->HalIommuServicePageFault
 
#define HalIommuDevicePowerChange   HalIommuDispatch->HalIommuDevicePowerChange
 

Functions

NTHALAPI VOID NTAPI HalDisplayString (_In_ PCSTR String)
 
NTHALAPI BOOLEAN NTAPI HalAllProcessorsStarted (VOID)
 
NTHALAPI VOID NTAPI HalReturnToFirmware (_In_ FIRMWARE_REENTRY Action)
 
NTHALAPI VOID NTAPI HalProcessorIdle (VOID)
 
NTHALAPI BOOLEAN NTAPI HalBeginSystemInterrupt (_In_ KIRQL Irql, _In_ ULONG Vector, _Out_ PKIRQL OldIrql)
 
NTHALAPI VOID FASTCALL HalClearSoftwareInterrupt (_In_ KIRQL Request)
 
NTHALAPI VOID NTAPI HalDisableSystemInterrupt (_In_ ULONG Vector, _In_ KIRQL Irql)
 
NTHALAPI BOOLEAN NTAPI HalEnableSystemInterrupt (_In_ ULONG Vector, _In_ KIRQL Irql, _In_ KINTERRUPT_MODE InterruptMode)
 
NTHALAPI VOID NTAPI HalEndSystemInterrupt (_In_ KIRQL Irql, _In_ UCHAR Vector)
 
NTHALAPI VOID NTAPI HalReportResourceUsage (VOID)
 
NTHALAPI VOID FASTCALL HalRequestSoftwareInterrupt (_In_ KIRQL SoftwareInterruptRequested)
 
NTHALAPI VOID NTAPI HalRequestIpi (_In_ KAFFINITY TargetSet)
 
NTHALAPI VOID NTAPI HalHandleNMI (PVOID NmiInfo)
 
NTHALAPI UCHAR FASTCALL HalSystemVectorDispatchEntry (_In_ ULONG Vector, _Out_ PKINTERRUPT_ROUTINE **FlatDispatch, _Out_ PKINTERRUPT_ROUTINE *NoConnection)
 
NTHALAPI NTSTATUS NTAPI HalAdjustResourceList (_Inout_ PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList)
 
NTHALAPI VOID NTAPI HalStartProfileInterrupt (_In_ KPROFILE_SOURCE ProfileSource)
 
NTHALAPI VOID NTAPI HalStopProfileInterrupt (_In_ KPROFILE_SOURCE ProfileSource)
 
NTHALAPI ULONG_PTR NTAPI HalSetProfileInterval (_In_ ULONG_PTR Interval)
 
NTHALAPI BOOLEAN NTAPI HalQueryRealTimeClock (_In_ PTIME_FIELDS RtcTime)
 
NTHALAPI BOOLEAN NTAPI HalSetRealTimeClock (_In_ PTIME_FIELDS RtcTime)
 
NTHALAPI ULONG NTAPI HalSetTimeIncrement (_In_ ULONG Increment)
 
NTHALAPI NTSTATUS NTAPI x86BiosAllocateBuffer (_Inout_ ULONG *Size, _Out_ USHORT *Segment, _Out_ USHORT *Offset)
 
NTHALAPI NTSTATUS NTAPI x86BiosFreeBuffer (_In_ USHORT Segment, _In_ USHORT Offset)
 
NTHALAPI NTSTATUS NTAPI x86BiosReadMemory (_In_ USHORT Segment, _In_ USHORT Offset, _Out_writes_bytes_(Size) PVOID Buffer, _In_ ULONG Size)
 
NTHALAPI NTSTATUS NTAPI x86BiosWriteMemory (_In_ USHORT Segment, _In_ USHORT Offset, _In_reads_bytes_(Size) PVOID Buffer, _In_ ULONG Size)
 
NTHALAPI BOOLEAN NTAPI x86BiosCall (_In_ ULONG InterruptNumber, _Inout_ PX86_BIOS_REGISTERS Registers)
 

Macro Definition Documentation

◆ HalAcpiAoacCapable

#define HalAcpiAoacCapable   HALPRIVATEDISPATCH->HalAcpiAoacCapable

Definition at line 142 of file halfuncs.h.

◆ HalAcpiGetMultiNode

#define HalAcpiGetMultiNode   HALPRIVATEDISPATCH->HalAcpiGetMultiNode

Definition at line 152 of file halfuncs.h.

◆ HalAddInterruptRemapping

#define HalAddInterruptRemapping   HALPRIVATEDISPATCH->HalAddInterruptRemapping

Definition at line 114 of file halfuncs.h.

◆ HalAllocateEarlyPages

#define HalAllocateEarlyPages   HALPRIVATEDISPATCH->HalAllocateEarlyPages

Definition at line 98 of file halfuncs.h.

◆ HalAllocateGsivForSecondaryInterrupt

#define HalAllocateGsivForSecondaryInterrupt   HALPRIVATEDISPATCH->HalAllocateGsivForSecondaryInterrupt

Definition at line 113 of file halfuncs.h.

◆ HalAllocateMapRegisters

#define HalAllocateMapRegisters   HALPRIVATEDISPATCH->HalAllocateMapRegisters

Definition at line 47 of file halfuncs.h.

◆ HalAllocateMessageTargetOverride

#define HalAllocateMessageTargetOverride   HALPRIVATEDISPATCH->HalAllocateMessageTargetOverride

Definition at line 68 of file halfuncs.h.

◆ HalAllocatePmcCounterSet

#define HalAllocatePmcCounterSet   HALPRIVATEDISPATCH->HalAllocatePmcCounterSet

Definition at line 122 of file halfuncs.h.

◆ HalClockTimerActivate

#define HalClockTimerActivate   HALPRIVATEDISPATCH->HalClockTimerActivate

Definition at line 147 of file halfuncs.h.

◆ HalClockTimerArm

#define HalClockTimerArm   HALPRIVATEDISPATCH->HalClockTimerArm

Definition at line 150 of file halfuncs.h.

◆ HalClockTimerInitialize

#define HalClockTimerInitialize   HALPRIVATEDISPATCH->HalClockTimerInitialize

Definition at line 148 of file halfuncs.h.

◆ HalClockTimerStop

#define HalClockTimerStop   HALPRIVATEDISPATCH->HalClockTimerStop

Definition at line 149 of file halfuncs.h.

◆ HalCollectPmcCounters

#define HalCollectPmcCounters   HALPRIVATEDISPATCH->HalCollectPmcCounters

Definition at line 123 of file halfuncs.h.

◆ HalConnectThermalInterrupt

#define HalConnectThermalInterrupt   HALPRIVATEDISPATCH->HalConnectThermalInterrupt

Definition at line 173 of file halfuncs.h.

◆ HalDmaCheckAdapterToken

#define HalDmaCheckAdapterToken   HALPRIVATEDISPATCH->HalDmaCheckAdapterToken

Definition at line 168 of file halfuncs.h.

◆ HalDmaFreeCrashDumpRegisters

#define HalDmaFreeCrashDumpRegisters   HALPRIVATEDISPATCH->HalDmaFreeCrashDumpRegisters

Definition at line 141 of file halfuncs.h.

◆ HalDmaLinkDeviceObjectByToken

#define HalDmaLinkDeviceObjectByToken   HALPRIVATEDISPATCH->HalDmaLinkDeviceObjectByToken

Definition at line 167 of file halfuncs.h.

◆ HalDpGetInterruptReplayState

#define HalDpGetInterruptReplayState   HALPRIVATEDISPATCH->HalDpGetInterruptReplayState

Definition at line 90 of file halfuncs.h.

◆ HalDpMaskLevelTriggeredInterrupts

#define HalDpMaskLevelTriggeredInterrupts   HALPRIVATEDISPATCH->HalDpMaskLevelTriggeredInterrupts

Definition at line 88 of file halfuncs.h.

◆ HalDpReplaceBegin

#define HalDpReplaceBegin   HALPRIVATEDISPATCH->HalDpReplaceBegin

Definition at line 70 of file halfuncs.h.

◆ HalDpReplaceControl

#define HalDpReplaceControl   HALPRIVATEDISPATCH->HalDpReplaceControl

Definition at line 72 of file halfuncs.h.

◆ HalDpReplaceEnd

#define HalDpReplaceEnd   HALPRIVATEDISPATCH->HalDpReplaceEnd

Definition at line 73 of file halfuncs.h.

◆ HalDpReplaceTarget

#define HalDpReplaceTarget   HALPRIVATEDISPATCH->HalDpReplaceTarget

Definition at line 71 of file halfuncs.h.

◆ HalDpReplayInterrupts

#define HalDpReplayInterrupts   HALPRIVATEDISPATCH->HalDpReplayInterrupts

Definition at line 91 of file halfuncs.h.

◆ HalDpUnmaskLevelTriggeredInterrupts

#define HalDpUnmaskLevelTriggeredInterrupts   HALPRIVATEDISPATCH->HalDpUnmaskLevelTriggeredInterrupts

Definition at line 89 of file halfuncs.h.

◆ HalEnumerateUnmaskedInterrupts

#define HalEnumerateUnmaskedInterrupts   HALPRIVATEDISPATCH->HalEnumerateUnmaskedInterrupts

Definition at line 133 of file halfuncs.h.

◆ HalFindBusAddressTranslation

#define HalFindBusAddressTranslation   HALPRIVATEDISPATCH->HalFindBusAddressTranslation

Definition at line 44 of file halfuncs.h.

◆ HalFlushAndInvalidatePageExternalCache

#define HalFlushAndInvalidatePageExternalCache   HALPRIVATEDISPATCH->HalFlushAndInvalidatePageExternalCache

Definition at line 134 of file halfuncs.h.

◆ HalFlushExternalCache

#define HalFlushExternalCache   HALPRIVATEDISPATCH->HalFlushExternalCache

Definition at line 119 of file halfuncs.h.

◆ HalFlushIoBuffersExternalCache

#define HalFlushIoBuffersExternalCache   HALPRIVATEDISPATCH->HalFlushIoBuffersExternalCache

Definition at line 118 of file halfuncs.h.

◆ HalFlushIoRectangleExternalCache

#define HalFlushIoRectangleExternalCache   HALPRIVATEDISPATCH->HalFlushIoRectangleExternalCache

Definition at line 136 of file halfuncs.h.

◆ HalFreeMessageTargetOverride

#define HalFreeMessageTargetOverride   HALPRIVATEDISPATCH->HalFreeMessageTargetOverride

Definition at line 69 of file halfuncs.h.

◆ HalFreePmcCounterSet

#define HalFreePmcCounterSet   HALPRIVATEDISPATCH->HalFreePmcCounterSet

Definition at line 124 of file halfuncs.h.

◆ HalGetClockConfiguration [1/2]

#define HalGetClockConfiguration   HALPRIVATEDISPATCH->HalGetClockConfiguration

Definition at line 146 of file halfuncs.h.

◆ HalGetClockConfiguration [2/2]

#define HalGetClockConfiguration   HALPRIVATEDISPATCH->HalGetClockConfiguration

Definition at line 146 of file halfuncs.h.

◆ HalGetClockOwner

#define HalGetClockOwner   HALPRIVATEDISPATCH->HalGetClockOwner

Definition at line 101 of file halfuncs.h.

◆ HalGetEnlightenmentInformation

#define HalGetEnlightenmentInformation   HALPRIVATEDISPATCH->HalGetEnlightenmentInformation

Definition at line 97 of file halfuncs.h.

◆ HalGetInterruptVectorOverride

#define HalGetInterruptVectorOverride   HALPRIVATEDISPATCH->HalGetInterruptVectorOverride

Definition at line 61 of file halfuncs.h.

◆ HalGetNextTickDuration

#define HalGetNextTickDuration   HALPRIVATEDISPATCH->HalGetNextTickDuration

Definition at line 128 of file halfuncs.h.

◆ HalGetProcessorId

#define HalGetProcessorId   HALPRIVATEDISPATCH->HalGetProcessorId

Definition at line 121 of file halfuncs.h.

◆ HalGetVectorInputOverride

#define HalGetVectorInputOverride   HALPRIVATEDISPATCH->HalGetVectorInputOverride

Definition at line 62 of file halfuncs.h.

◆ HalHaltSystem

#define HalHaltSystem   HALPRIVATEDISPATCH->HalHaltSystem

Definition at line 43 of file halfuncs.h.

◆ HalHandlerForBus

#define HalHandlerForBus   HALPRIVATEDISPATCH->HalHandlerForBus

Definition at line 35 of file halfuncs.h.

◆ HalHandlerForConfigSpace

#define HalHandlerForConfigSpace   HALPRIVATEDISPATCH->HalHandlerForConfigSpace

Definition at line 36 of file halfuncs.h.

◆ HalInterruptGetHighestPriorityInterrupt

#define HalInterruptGetHighestPriorityInterrupt   HALPRIVATEDISPATCH->HalInterruptGetHighestPriorityInterrupt

Definition at line 163 of file halfuncs.h.

◆ HalInterruptSetDestination

#define HalInterruptSetDestination   HALPRIVATEDISPATCH->HalInterruptSetDestination

Definition at line 145 of file halfuncs.h.

◆ HalInterruptVectorDataToGsiv

#define HalInterruptVectorDataToGsiv   HALPRIVATEDISPATCH->HalInterruptVectorDataToGsiv

Definition at line 162 of file halfuncs.h.

◆ HalIommuDereferenceAsid

#define HalIommuDereferenceAsid   HalIommuDispatch->HalIommuDereferenceAsid

Definition at line 194 of file halfuncs.h.

◆ HalIommuDevicePowerChange

#define HalIommuDevicePowerChange   HalIommuDispatch->HalIommuDevicePowerChange

Definition at line 196 of file halfuncs.h.

◆ HalIommuDisableDevicePasid

#define HalIommuDisableDevicePasid   HalIommuDispatch->HalIommuDisableDevicePasid

Definition at line 186 of file halfuncs.h.

◆ HalIommuEnableDevicePasid

#define HalIommuEnableDevicePasid   HalIommuDispatch->HalIommuEnableDevicePasid

Definition at line 184 of file halfuncs.h.

◆ HalIommuFaultRoutine

#define HalIommuFaultRoutine   HalIommuDispatch->HalIommuFaultRoutine

Definition at line 192 of file halfuncs.h.

◆ HalIommuFlushAllPasid

#define HalIommuFlushAllPasid   HalIommuDispatch->HalIommuFlushAllPasid

Definition at line 190 of file halfuncs.h.

◆ HalIommuFlushTb

#define HalIommuFlushTb   HalIommuDispatch->HalIommuFlushTb

Definition at line 189 of file halfuncs.h.

◆ HalIommuFreeLibraryContext

#define HalIommuFreeLibraryContext   HalIommuDispatch->HalIommuFreeLibraryContext

Definition at line 188 of file halfuncs.h.

◆ HalIommuGetConfiguration

#define HalIommuGetConfiguration   HalIommuDispatch->HalIommuGetConfiguration

Definition at line 181 of file halfuncs.h.

◆ HalIommuGetLibraryContext

#define HalIommuGetLibraryContext   HalIommuDispatch->HalIommuGetLibraryContext

Definition at line 182 of file halfuncs.h.

◆ HalIommuMapDevice

#define HalIommuMapDevice   HalIommuDispatch->HalIommuMapDevice

Definition at line 183 of file halfuncs.h.

◆ HalIommuProcessPageRequestQueue

#define HalIommuProcessPageRequestQueue   HalIommuDispatch->HalIommuProcessPageRequestQueue

Definition at line 191 of file halfuncs.h.

◆ HalIommuReferenceAsid

#define HalIommuReferenceAsid   HalIommuDispatch->HalIommuReferenceAsid

Definition at line 193 of file halfuncs.h.

◆ HalIommuRegisterDispatchTable

#define HalIommuRegisterDispatchTable   HALPRIVATEDISPATCH->HalIommuRegisterDispatchTable

Definition at line 154 of file halfuncs.h.

◆ HalIommuServicePageFault

#define HalIommuServicePageFault   HalIommuDispatch->HalIommuServicePageFault

Definition at line 195 of file halfuncs.h.

◆ HalIommuSetAddressSpace

#define HalIommuSetAddressSpace   HalIommuDispatch->HalIommuSetAddressSpace

Definition at line 185 of file halfuncs.h.

◆ HalIommuSupportEnabled

#define HalIommuSupportEnabled   HalIommuDispatch->HalIommuSupportEnabled

Definition at line 180 of file halfuncs.h.

◆ HalIommuUnmapDevice

#define HalIommuUnmapDevice   HalIommuDispatch->HalIommuUnmapDevice

Definition at line 187 of file halfuncs.h.

◆ HalIsEFIRuntimeActive

#define HalIsEFIRuntimeActive   HALPRIVATEDISPATCH->HalIsEFIRuntimeActive

Definition at line 174 of file halfuncs.h.

◆ HalIsInterruptTypeSecondary

#define HalIsInterruptTypeSecondary   HALPRIVATEDISPATCH->HalIsInterruptTypeSecondary

Definition at line 112 of file halfuncs.h.

◆ HalLoadMicrocode

#define HalLoadMicrocode   HALPRIVATEDISPATCH->HalLoadMicrocode

Definition at line 63 of file halfuncs.h.

◆ HalLocateHiberRanges

#define HalLocateHiberRanges   HALPRIVATEDISPATCH->HalLocateHiberRanges

Definition at line 37 of file halfuncs.h.

◆ HalMapEarlyPages

#define HalMapEarlyPages   HALPRIVATEDISPATCH->HalMapEarlyPages

Definition at line 99 of file halfuncs.h.

◆ HalMaskInterrupt

#define HalMaskInterrupt   HALPRIVATEDISPATCH->HalMaskInterrupt

Definition at line 110 of file halfuncs.h.

◆ HalNotifyProcessorFreeze

#define HalNotifyProcessorFreeze   HALPRIVATEDISPATCH->HalNotifyProcessorFreeze

Definition at line 104 of file halfuncs.h.

◆ HalPciAssignSlotResources

#define HalPciAssignSlotResources   HALPRIVATEDISPATCH->HalPciAssignSlotResources

Definition at line 42 of file halfuncs.h.

◆ HalPciEarlyRestore

#define HalPciEarlyRestore   HALPRIVATEDISPATCH->HalPciEarlyRestore

Definition at line 120 of file halfuncs.h.

◆ HalPciLateRestore

#define HalPciLateRestore   HALPRIVATEDISPATCH->HalPciLateRestore

Definition at line 169 of file halfuncs.h.

◆ HalPciMarkHiberPhase

#define HalPciMarkHiberPhase   HALPRIVATEDISPATCH->HalPciMarkHiberPhase

Definition at line 130 of file halfuncs.h.

◆ HalPciMultiStageResumeCapable

#define HalPciMultiStageResumeCapable   HALPRIVATEDISPATCH->HalPciMultiStageResumeCapable

Definition at line 140 of file halfuncs.h.

◆ HalPciTranslateBusAddress

#define HalPciTranslateBusAddress   HALPRIVATEDISPATCH->HalPciTranslateBusAddress

Definition at line 41 of file halfuncs.h.

◆ HalPostMicrocodeUpdate

#define HalPostMicrocodeUpdate   HALPRIVATEDISPATCH->HalPostMicrocodeUpdate

Definition at line 65 of file halfuncs.h.

◆ HalPowerEarlyRestore

#define HalPowerEarlyRestore   HALPRIVATEDISPATCH->HalPowerEarlyRestore

Definition at line 137 of file halfuncs.h.

◆ HalPowerSetRebootHandler

#define HalPowerSetRebootHandler   HALPRIVATEDISPATCH->HalPowerSetRebootHandler

Definition at line 153 of file halfuncs.h.

◆ HalPrepareForBugcheck

#define HalPrepareForBugcheck   HALPRIVATEDISPATCH->HalPrepareForBugcheck

Definition at line 74 of file halfuncs.h.

◆ HalPrepareProcessorForIdle

#define HalPrepareProcessorForIdle   HALPRIVATEDISPATCH->HalPrepareProcessorForIdle

Definition at line 105 of file halfuncs.h.

◆ HalProcessorFreeze

#define HalProcessorFreeze   HALPRIVATEDISPATCH->HalProcessorFreeze

Definition at line 166 of file halfuncs.h.

◆ HalProcessorHalt

#define HalProcessorHalt   HALPRIVATEDISPATCH->HalProcessorHalt

Definition at line 125 of file halfuncs.h.

◆ HalProcessorOff

#define HalProcessorOff   HALPRIVATEDISPATCH->HalProcessorOff

Definition at line 165 of file halfuncs.h.

◆ HalProcessorOn

#define HalProcessorOn   HALPRIVATEDISPATCH->HalProcessorOn

Definition at line 164 of file halfuncs.h.

◆ HalQueryCapsuleCapabilities

#define HalQueryCapsuleCapabilities   HALPRIVATEDISPATCH->HalQueryCapsuleCapabilities

Definition at line 138 of file halfuncs.h.

◆ HalQueryIoPortAccessSupported

#define HalQueryIoPortAccessSupported   HALPRIVATEDISPATCH->HalQueryIoPortAccessSupported

Definition at line 92 of file halfuncs.h.

◆ HalQueryProcessorRestartEntryPoint

#define HalQueryProcessorRestartEntryPoint   HALPRIVATEDISPATCH->HalQueryProcessorRestartEntryPoint

Definition at line 131 of file halfuncs.h.

◆ HalQueryWakeTime

#define HalQueryWakeTime   HALPRIVATEDISPATCH->HalQueryWakeTime

Definition at line 77 of file halfuncs.h.

◆ HalReadWheaPhysicalMemory

#define HalReadWheaPhysicalMemory   HALPRIVATEDISPATCH->HalReadWheaPhysicalMemory

Definition at line 84 of file halfuncs.h.

◆ HalRegisterBusHandler

#define HalRegisterBusHandler   HALPRIVATEDISPATCH->HalRegisterBusHandler

Definition at line 38 of file halfuncs.h.

◆ HalRegisterLogRoutine

#define HalRegisterLogRoutine   HALPRIVATEDISPATCH->HalRegisterLogRoutine

Definition at line 106 of file halfuncs.h.

◆ HalRemoveInterruptRemapping

#define HalRemoveInterruptRemapping   HALPRIVATEDISPATCH->HalRemoveInterruptRemapping

Definition at line 115 of file halfuncs.h.

◆ HalReportIdleStateUsage

#define HalReportIdleStateUsage   HALPRIVATEDISPATCH->HalReportIdleStateUsage

Definition at line 78 of file halfuncs.h.

◆ HalRequestInterrupt

#define HalRequestInterrupt   HALPRIVATEDISPATCH->HalRequestInterrupt

Definition at line 132 of file halfuncs.h.

◆ HalResetDisplay

#define HalResetDisplay   HALPRIVATEDISPATCH->HalResetDisplay

Definition at line 45 of file halfuncs.h.

◆ HalRestoreHvEnlightenment

#define HalRestoreHvEnlightenment   HALPRIVATEDISPATCH->HalRestoreHvEnlightenment

Definition at line 117 of file halfuncs.h.

◆ HalResumeProcessorFromIdle

#define HalResumeProcessorFromIdle   HALPRIVATEDISPATCH->HalResumeProcessorFromIdle

Definition at line 107 of file halfuncs.h.

◆ HalSaveAndDisableHvEnlightenment

#define HalSaveAndDisableHvEnlightenment   HALPRIVATEDISPATCH->HalSaveAndDisableHvEnlightenment

Definition at line 116 of file halfuncs.h.

◆ HalSecondaryInterruptQueryPrimaryInformation

#define HalSecondaryInterruptQueryPrimaryInformation   HALPRIVATEDISPATCH->HalSecondaryInterruptQueryPrimaryInformation

Definition at line 109 of file halfuncs.h.

◆ HalSetWakeAlarm

#define HalSetWakeAlarm   HALPRIVATEDISPATCH->HalSetWakeAlarm

Definition at line 40 of file halfuncs.h.

◆ HalSetWakeEnable

#define HalSetWakeEnable   HALPRIVATEDISPATCH->HalSetWakeEnable

Definition at line 39 of file halfuncs.h.

◆ HalStopLegacyUsbInterrupts

#define HalStopLegacyUsbInterrupts   HALPRIVATEDISPATCH->HalStopLegacyUsbInterrupts

Definition at line 81 of file halfuncs.h.

◆ HalTimerConvertAuxiliaryCounterToPerformanceCounter

#define HalTimerConvertAuxiliaryCounterToPerformanceCounter   HALPRIVATEDISPATCH->HalTimerConvertAuxiliaryCounterToPerformanceCounter

Definition at line 171 of file halfuncs.h.

◆ HalTimerConvertPerformanceCounterToAuxiliaryCounter

#define HalTimerConvertPerformanceCounterToAuxiliaryCounter   HALPRIVATEDISPATCH->HalTimerConvertPerformanceCounterToAuxiliaryCounter

Definition at line 170 of file halfuncs.h.

◆ HalTimerOnlyClockInterruptPending

#define HalTimerOnlyClockInterruptPending   HALPRIVATEDISPATCH->HalTimerOnlyClockInterruptPending

Definition at line 151 of file halfuncs.h.

◆ HalTimerQueryAuxiliaryCounterFrequency

#define HalTimerQueryAuxiliaryCounterFrequency   HALPRIVATEDISPATCH->HalTimerQueryAuxiliaryCounterFrequency

Definition at line 172 of file halfuncs.h.

◆ HalTimerQueryCycleCounter

#define HalTimerQueryCycleCounter   HALPRIVATEDISPATCH->HalTimerQueryCycleCounter

Definition at line 126 of file halfuncs.h.

◆ HalTimerWatchdogGeneratedLastReset

#define HalTimerWatchdogGeneratedLastReset   HALPRIVATEDISPATCH->HalTimerWatchdogGeneratedLastReset

Definition at line 158 of file halfuncs.h.

◆ HalTimerWatchdogResetCountdown

#define HalTimerWatchdogResetCountdown   HALPRIVATEDISPATCH->HalTimerWatchdogResetCountdown

Definition at line 156 of file halfuncs.h.

◆ HalTimerWatchdogStart

#define HalTimerWatchdogStart   HALPRIVATEDISPATCH->HalTimerWatchdogStart

Definition at line 155 of file halfuncs.h.

◆ HalTimerWatchdogStop

#define HalTimerWatchdogStop   HALPRIVATEDISPATCH->HalTimerWatchdogStop

Definition at line 157 of file halfuncs.h.

◆ HalTimerWatchdogTriggerSystemReset

#define HalTimerWatchdogTriggerSystemReset   HALPRIVATEDISPATCH->HalTimerWatchdogTriggerSystemReset

Definition at line 159 of file halfuncs.h.

◆ HalTscSynchronization

#define HalTscSynchronization   HALPRIVATEDISPATCH->HalTscSynchronization

Definition at line 79 of file halfuncs.h.

◆ HalUnloadMicrocode

#define HalUnloadMicrocode   HALPRIVATEDISPATCH->HalUnloadMicrocode

Definition at line 64 of file halfuncs.h.

◆ HalUnmaskInterrupt

#define HalUnmaskInterrupt   HALPRIVATEDISPATCH->HalUnmaskInterrupt

Definition at line 111 of file halfuncs.h.

◆ HalUpdateCapsule

#define HalUpdateCapsule   HALPRIVATEDISPATCH->HalUpdateCapsule

Definition at line 139 of file halfuncs.h.

◆ HalVectorToIDTEntry

#define HalVectorToIDTEntry   HALPRIVATEDISPATCH->HalVectorToIDTEntry

Definition at line 54 of file halfuncs.h.

◆ HalVectorToIDTEntryEx

#define HalVectorToIDTEntryEx   HALPRIVATEDISPATCH->HalVectorToIDTEntryEx

Definition at line 108 of file halfuncs.h.

◆ HalWheaInitProcessorGenericSection

#define HalWheaInitProcessorGenericSection   HALPRIVATEDISPATCH->HalWheaInitProcessorGenericSection

Definition at line 80 of file halfuncs.h.

◆ HalWriteWheaPhysicalMemory

#define HalWriteWheaPhysicalMemory   HALPRIVATEDISPATCH->HalWriteWheaPhysicalMemory

Definition at line 85 of file halfuncs.h.

◆ KdCheckPowerButton

#define KdCheckPowerButton   HALPRIVATEDISPATCH->KdCheckPowerButton

Definition at line 53 of file halfuncs.h.

◆ KdEnumerateDebuggingDevices

#define KdEnumerateDebuggingDevices   HALPRIVATEDISPATCH->KdEnumerateDebuggingDevices

Definition at line 135 of file halfuncs.h.

◆ KdGetAcpiTablePhase0

#define KdGetAcpiTablePhase0   HALPRIVATEDISPATCH->KdGetAcpiTablePhase0

Definition at line 52 of file halfuncs.h.

◆ KdGetPciDataByOffset

#define KdGetPciDataByOffset   HALPRIVATEDISPATCH->KdGetPciDataByOffset

Definition at line 59 of file halfuncs.h.

◆ KdMapPhysicalMemory64

#define KdMapPhysicalMemory64   HALPRIVATEDISPATCH->KdMapPhysicalMemory64

Definition at line 55 of file halfuncs.h.

◆ KdReleaseIntegratedDeviceForDebugging

#define KdReleaseIntegratedDeviceForDebugging   HALPRIVATEDISPATCH->KdReleaseIntegratedDeviceForDebugging

Definition at line 96 of file halfuncs.h.

◆ KdReleasePciDeviceforDebugging

#define KdReleasePciDeviceforDebugging   HALPRIVATEDISPATCH->KdReleasePciDeviceforDebugging

Definition at line 51 of file halfuncs.h.

◆ KdSetPciDataByOffset

#define KdSetPciDataByOffset   HALPRIVATEDISPATCH->KdSetPciDataByOffset

Definition at line 60 of file halfuncs.h.

◆ KdSetupIntegratedDeviceForDebugging

#define KdSetupIntegratedDeviceForDebugging   HALPRIVATEDISPATCH->KdSetupIntegratedDeviceForDebugging

Definition at line 95 of file halfuncs.h.

◆ KdSetupPciDeviceForDebugging

#define KdSetupPciDeviceForDebugging   HALPRIVATEDISPATCH->KdSetupPciDeviceForDebugging

Definition at line 50 of file halfuncs.h.

◆ KdUnmapVirtualAddress

#define KdUnmapVirtualAddress   HALPRIVATEDISPATCH->KdUnmapVirtualAddress

Definition at line 56 of file halfuncs.h.

Function Documentation

◆ HalAdjustResourceList()

NTHALAPI NTSTATUS NTAPI HalAdjustResourceList ( _Inout_ PIO_RESOURCE_REQUIREMENTS_LIST pResourceList)

◆ HalAllProcessorsStarted()

NTHALAPI BOOLEAN NTAPI HalAllProcessorsStarted ( VOID  )

Definition at line 60 of file processor.c.

61{
62 /* Do nothing */
63 return TRUE;
64}
#define TRUE
Definition: types.h:120

Referenced by Phase1InitializationDiscard().

◆ HalBeginSystemInterrupt()

NTHALAPI BOOLEAN NTAPI HalBeginSystemInterrupt ( _In_ KIRQL  Irql,
_In_ ULONG  Vector,
_Out_ PKIRQL  OldIrql 
)

◆ HalClearSoftwareInterrupt()

NTHALAPI VOID FASTCALL HalClearSoftwareInterrupt ( _In_ KIRQL  Request)

◆ HalDisableSystemInterrupt()

NTHALAPI VOID NTAPI HalDisableSystemInterrupt ( _In_ ULONG  Vector,
_In_ KIRQL  Irql 
)

◆ HalDisplayString()

NTHALAPI VOID NTAPI HalDisplayString ( _In_ PCSTR  String)

Definition at line 31 of file display.c.

33{
34 /* Call the Inbv driver */
36}
BOOLEAN NTAPI InbvDisplayString(_In_ PCSTR String)
Definition: inbv.c:335
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2439

◆ HalEnableSystemInterrupt()

NTHALAPI BOOLEAN NTAPI HalEnableSystemInterrupt ( _In_ ULONG  Vector,
_In_ KIRQL  Irql,
_In_ KINTERRUPT_MODE  InterruptMode 
)

◆ HalEndSystemInterrupt()

NTHALAPI VOID NTAPI HalEndSystemInterrupt ( _In_ KIRQL  Irql,
_In_ UCHAR  Vector 
)

◆ HalHandleNMI()

NTHALAPI VOID NTAPI HalHandleNMI ( PVOID  NmiInfo)

◆ HalProcessorIdle()

NTHALAPI VOID NTAPI HalProcessorIdle ( VOID  )

Definition at line 83 of file processor.c.

84{
85 /* Enable interrupts and halt the processor */
86 _enable();
88 while (TRUE);
89}
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
void __cdecl _enable(void)
Definition: intrin_arm.h:373

Referenced by PopIdle0().

◆ HalQueryRealTimeClock()

NTHALAPI BOOLEAN NTAPI HalQueryRealTimeClock ( _In_ PTIME_FIELDS  RtcTime)

◆ HalReportResourceUsage()

NTHALAPI VOID NTAPI HalReportResourceUsage ( VOID  )

Definition at line 67 of file usage.c.

68{
69 UNICODE_STRING HalString;
70
71 /* Build HAL usage */
72 RtlInitUnicodeString(&HalString, L"ARM Versatile HAL");
74}
#define L(x)
Definition: resources.c:13
VOID NTAPI HalpReportResourceUsage(IN PUNICODE_STRING HalName, IN INTERFACE_TYPE InterfaceType)
Definition: usage.c:26
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
@ Internal
Definition: restypes.h:121

Referenced by Phase1InitializationDiscard().

◆ HalRequestIpi()

NTHALAPI VOID NTAPI HalRequestIpi ( _In_ KAFFINITY  TargetSet)

Definition at line 19 of file up.c.

21{
22 /* This should never be called in UP mode */
24}
void __cdecl __debugbreak(void)
Definition: intrin_ppc.h:698

◆ HalRequestSoftwareInterrupt()

NTHALAPI VOID FASTCALL HalRequestSoftwareInterrupt ( _In_ KIRQL  SoftwareInterruptRequested)

◆ HalReturnToFirmware()

NTHALAPI VOID NTAPI HalReturnToFirmware ( _In_ FIRMWARE_REENTRY  Action)

Definition at line 21 of file reboot.c.

23{
24 /* Check what kind of action this is */
25 switch (Action)
26 {
27 /* All recognized actions */
28 case HalHaltRoutine:
32 {
33 /* Acquire the display */
35 // TODO: Reboot
36 }
37
38 /* Anything else */
39 default:
40 {
41 /* Print message and break */
42 DbgPrint("HalReturnToFirmware called!\n");
44 }
45 }
46}
#define DbgPrint
Definition: hal.h:12
VOID NTAPI InbvAcquireDisplayOwnership(VOID)
Definition: inbv.c:293
@ HalRestartRoutine
Definition: haltypes.h:159
@ HalHaltRoutine
Definition: haltypes.h:157
@ HalPowerDownRoutine
Definition: haltypes.h:158
@ HalRebootRoutine
Definition: haltypes.h:160
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
Definition: wdfiotarget.h:510
NTSYSAPI void WINAPI DbgBreakPoint(void)

Referenced by KdbpCmdReboot(), KdpSendWaitContinue(), KeBugCheckWithTf(), and PopShutdownSystem().

◆ HalSetProfileInterval()

NTHALAPI ULONG_PTR NTAPI HalSetProfileInterval ( _In_ ULONG_PTR  Interval)

Definition at line 58 of file profil.c.

60{
61 /*
62 * FIXME:
63 * 1) What is the maximum and minimum interrupt frequency for the RTC?
64 * 2) Find the maximum possible clock divisor value.
65 */
67
68 /* Update interval */
71
72 /* For now... */
73 return Interval;
74}
VOID NTAPI HalStartProfileInterrupt(_In_ KPROFILE_SOURCE ProfileSource)
Definition: profil.c:41
BOOLEAN HalpProfilingStopped
Definition: profil.c:17
DWORD Interval
Definition: netstat.c:28

◆ HalSetRealTimeClock()

NTHALAPI BOOLEAN NTAPI HalSetRealTimeClock ( _In_ PTIME_FIELDS  RtcTime)

Definition at line 279 of file cmos.c.

281{
282 UCHAR i, j;
283 UCHAR SysTime[6];
284
286
287 HalpRtcWriteCommand(RTC_CMD_REGISTER_SHIFT);
288
289 SysTime[0] = INT_BCD(Time->Second);
290 SysTime[1] = INT_BCD(Time->Minute);
291 SysTime[2] = INT_BCD(Time->Hour);
292 SysTime[3] = INT_BCD(Time->Day);
293 SysTime[4] = (Time->Month << 4) | (Time->Weekday & 0x0F);
294 SysTime[5] = INT_BCD(Time->Year % 100);
295
296 /* Write time fields to RTC */
297 for (i = 0; i < 6; i++)
298 {
299 for (j = 0; j < 8; j++)
300 HalpRtcWriteBit(SysTime[i] >> j);
301 }
302
303 HalpRtcWriteCommand(RTC_CMD_TIME_SET_COUNTER_HOLD);
304 HalpRtcWriteCommand(RTC_CMD_REGISTER_HOLD);
305
307
308 return TRUE;
309}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
VOID NTAPI HalpReleaseCmosSpinLock(VOID)
Definition: spinlock.c:243
VOID NTAPI HalpAcquireCmosSpinLock(VOID)
Definition: spinlock.c:226
FORCEINLINE UCHAR INT_BCD(_In_ CSHORT Int)
Definition: halp.h:80
static PLARGE_INTEGER Time
Definition: time.c:105
#define RTC_CMD_REGISTER_HOLD
Definition: rtc.h:16
#define RTC_CMD_TIME_SET_COUNTER_HOLD
Definition: rtc.h:18
#define RTC_CMD_REGISTER_SHIFT
Definition: rtc.h:17
unsigned char UCHAR
Definition: typedefs.h:53

◆ HalSetTimeIncrement()

NTHALAPI ULONG NTAPI HalSetTimeIncrement ( _In_ ULONG  Increment)

◆ HalStartProfileInterrupt()

NTHALAPI VOID NTAPI HalStartProfileInterrupt ( _In_ KPROFILE_SOURCE  ProfileSource)

Definition at line 41 of file profil.c.

43{
44 UNREFERENCED_PARAMETER(ProfileSource);
45
47
49
50 /* Configure the clock divisor for generating periodic interrupts */
52
54}
#define FALSE
Definition: types.h:117
UCHAR HalpProfileRate
Definition: profil.c:18
PPC_QUAL void __outbyte(unsigned long const Port, const unsigned char Data)
Definition: intrin_ppc.h:605
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
#define RTC_IO_o_INT_CLOCK_DIVISOR
Definition: rtc.h:37

◆ HalStopProfileInterrupt()

NTHALAPI VOID NTAPI HalStopProfileInterrupt ( _In_ KPROFILE_SOURCE  ProfileSource)

Definition at line 24 of file profil.c.

26{
27 UNREFERENCED_PARAMETER(ProfileSource);
28
30
31 /* Clear the interrupt flag */
33
35
37}
#define VOID
Definition: acefi.h:82
PPC_QUAL unsigned char __inbyte(const unsigned long Port)
Definition: intrin_ppc.h:539
#define RTC_IO_i_INTERRUPT_RESET
Definition: rtc.h:44

◆ HalSystemVectorDispatchEntry()

NTHALAPI UCHAR FASTCALL HalSystemVectorDispatchEntry ( _In_ ULONG  Vector,
_Out_ PKINTERRUPT_ROUTINE **  FlatDispatch,
_Out_ PKINTERRUPT_ROUTINE NoConnection 
)

◆ x86BiosAllocateBuffer()

NTHALAPI NTSTATUS NTAPI x86BiosAllocateBuffer ( _Inout_ ULONG Size,
_Out_ USHORT Segment,
_Out_ USHORT Offset 
)

Definition at line 154 of file x86bios.c.

158{
159 /* Check if the system is initialized and the buffer is large enough */
161 {
162 /* Something was wrong, fail! */
164 }
165
166 /* Check if the buffer is already allocated */
168 {
169 /* Buffer was already allocated, fail */
171 }
172
173 /* The buffer is sufficient, return hardcoded address and size */
174 *Size = PAGE_SIZE;
176 *Offset = 0;
177
178 return STATUS_SUCCESS;
179}
#define PAGE_SIZE
Definition: env_spec_w32.h:49
#define InterlockedBitTestAndSet
Definition: interlocked.h:30
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
#define STATUS_SUCCESS
Definition: shellext.h:65
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
LONG x86BiosBufferIsAllocated
Definition: x86bios.c:23
BOOLEAN x86BiosIsInitialized
Definition: x86bios.c:22
ULONG64 x86BiosBufferPhysical
Definition: x86bios.c:27
_Inout_ PVOID Segment
Definition: exfuncs.h:1101

Referenced by IntInitializeX86Emu(), and IntInt10AllocateBufferEmu().

◆ x86BiosCall()

NTHALAPI BOOLEAN NTAPI x86BiosCall ( _In_ ULONG  InterruptNumber,
_Inout_ PX86_BIOS_REGISTERS  Registers 
)

Definition at line 413 of file x86bios.c.

416{
417 const ULONG StackBase = 0x2000;
418 FAST486_STATE EmulatorContext;
419 ULONG FlatIp;
420 PUCHAR InstructionPointer;
421
423 return FALSE;
424
425 /* Initialize the emulator context */
429 x86IoRead,
431 x86BOP,
432 x86IntAck,
433 NULL, // FpuCallback,
434 NULL); // Tlb
435
436 /* Copy the GP registers */
437 EmulatorContext.GeneralRegs[FAST486_REG_EAX].Long = Registers->Eax;
438 EmulatorContext.GeneralRegs[FAST486_REG_EBX].Long = Registers->Ebx;
439 EmulatorContext.GeneralRegs[FAST486_REG_ECX].Long = Registers->Ecx;
440 EmulatorContext.GeneralRegs[FAST486_REG_EDX].Long = Registers->Edx;
441 EmulatorContext.GeneralRegs[FAST486_REG_ESI].Long = Registers->Esi;
442 EmulatorContext.GeneralRegs[FAST486_REG_EDI].Long = Registers->Edi;
443
444 /* Initialize segment registers */
445 Fast486SetSegment(&EmulatorContext, FAST486_REG_DS, Registers->SegDs);
446 Fast486SetSegment(&EmulatorContext, FAST486_REG_ES, Registers->SegEs);
447
448 /* Set Eflags */
449 EmulatorContext.Flags.Long = 0;
450 EmulatorContext.Flags.AlwaysSet = 1;
451 EmulatorContext.Flags.If = 1;
452
453 /* Set up the INT stub */
454 FlatIp = StackBase - 4;
455 InstructionPointer = x86BiosMemoryMapping + FlatIp;
456 InstructionPointer[0] = 0xCD; // INT instruction
457 InstructionPointer[1] = (UCHAR)InterruptNumber;
458 InstructionPointer[2] = 0x90; // NOP. We will stop at this address.
459
460 /* Set the stack pointer */
461 Fast486SetStack(&EmulatorContext, 0, StackBase - 8);
462
463 /* Start execution at the INT stub */
464 Fast486ExecuteAt(&EmulatorContext, 0x00, FlatIp);
465
466 while (TRUE)
467 {
468 /* Get the current flat IP */
469 FlatIp = (EmulatorContext.SegmentRegs[FAST486_REG_CS].Selector << 4) +
470 EmulatorContext.InstPtr.Long;
471
472 /* Make sure we haven't left the allowed memory range */
473 if (FlatIp >= 0x100000)
474 {
475 DPRINT1("x86BiosCall: invalid IP (0x%lx) during BIOS execution\n", FlatIp);
476 return FALSE;
477 }
478
479 /* Check if we returned from our int stub */
480 if (FlatIp == (StackBase - 2))
481 {
482 /* We are done! */
483 break;
484 }
485
486 /* Emulate one instruction */
488 }
489
490 /* Copy the registers back */
491 Registers->Eax = EmulatorContext.GeneralRegs[FAST486_REG_EAX].Long;
492 Registers->Ebx = EmulatorContext.GeneralRegs[FAST486_REG_EBX].Long;
493 Registers->Ecx = EmulatorContext.GeneralRegs[FAST486_REG_ECX].Long;
494 Registers->Edx = EmulatorContext.GeneralRegs[FAST486_REG_EDX].Long;
495 Registers->Esi = EmulatorContext.GeneralRegs[FAST486_REG_ESI].Long;
496 Registers->Edi = EmulatorContext.GeneralRegs[FAST486_REG_EDI].Long;
497 Registers->SegDs = EmulatorContext.SegmentRegs[FAST486_REG_DS].Selector;
498 Registers->SegEs = EmulatorContext.SegmentRegs[FAST486_REG_ES].Selector;
499
500 return TRUE;
501}
#define DPRINT1
Definition: precomp.h:8
#define NULL
Definition: types.h:112
VOID NTAPI Fast486SetStack(PFAST486_STATE State, USHORT Segment, ULONG Offset)
Definition: fast486.c:227
VOID NTAPI Fast486Initialize(PFAST486_STATE State, FAST486_MEM_READ_PROC MemReadCallback, FAST486_MEM_WRITE_PROC MemWriteCallback, FAST486_IO_READ_PROC IoReadCallback, FAST486_IO_WRITE_PROC IoWriteCallback, FAST486_BOP_PROC BopCallback, FAST486_INT_ACK_PROC IntAckCallback, FAST486_FPU_PROC FpuCallback, PULONG Tlb)
Definition: fast486.c:103
VOID NTAPI Fast486SetSegment(PFAST486_STATE State, FAST486_SEG_REGS Segment, USHORT Selector)
Definition: fast486.c:242
VOID NTAPI Fast486ExecuteAt(PFAST486_STATE State, USHORT Segment, ULONG Offset)
Definition: fast486.c:212
if(dx< 0)
Definition: linetemp.h:194
VOID NTAPI Fast486StepInto(PFAST486_STATE State)
Definition: debug.c:248
FAST486_STATE EmulatorContext
Definition: cpu.c:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
static VOID FASTCALL x86IoRead(PFAST486_STATE State, USHORT Port, PVOID Buffer, ULONG DataCount, UCHAR DataSize)
Definition: x86bios.c:346
static VOID FASTCALL x86MemWrite(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
Definition: x86bios.c:283
static VOID FASTCALL x86MemRead(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
Definition: x86bios.c:262
PUCHAR x86BiosMemoryMapping
Definition: x86bios.c:24
static UCHAR FASTCALL x86IntAck(PFAST486_STATE State)
Definition: x86bios.c:404
static VOID FASTCALL x86IoWrite(PFAST486_STATE State, USHORT Port, PVOID Buffer, ULONG DataCount, UCHAR DataSize)
Definition: x86bios.c:370
static VOID FASTCALL x86BOP(PFAST486_STATE State, UCHAR BopCode)
Definition: x86bios.c:394

Referenced by IntInitializeX86Emu(), and IntInt10CallBiosEmu().

◆ x86BiosFreeBuffer()

NTHALAPI NTSTATUS NTAPI x86BiosFreeBuffer ( _In_ USHORT  Segment,
_In_ USHORT  Offset 
)

Definition at line 183 of file x86bios.c.

186{
187 /* Check if the system is initialized and if the address matches */
188 if (!x86BiosIsInitialized || (Segment != 0x2000) || (Offset != 0))
189 {
190 /* Something was wrong, fail */
192 }
193
194 /* Check if the buffer was allocated */
196 {
197 /* It was not, fail */
199 }
200
201 /* Buffer is freed, nothing more to do */
202 return STATUS_SUCCESS;
203}
#define InterlockedBitTestAndReset
Definition: interlocked.h:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

Referenced by IntInitializeX86Emu(), and IntInt10FreeBufferEmu().

◆ x86BiosReadMemory()

NTHALAPI NTSTATUS NTAPI x86BiosReadMemory ( _In_ USHORT  Segment,
_In_ USHORT  Offset,
_Out_writes_bytes_(Size) PVOID  Buffer,
_In_ ULONG  Size 
)

Definition at line 207 of file x86bios.c.

212{
214
215 /* Calculate the physical address */
216 Address = (Segment << 4) + Offset;
217
218 /* Check if it's valid */
219 if (!x86BiosIsInitialized || ((Address + Size) > 0x100000))
220 {
221 /* Invalid */
223 }
224
225 /* Copy the memory to the buffer */
227
228 /* Return success */
229 return STATUS_SUCCESS;
230}
Definition: bufpool.h:45
static WCHAR Address[46]
Definition: ping.c:68
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
uint32_t ULONG_PTR
Definition: typedefs.h:65

Referenced by IntInitializeX86Emu(), and IntInt10ReadMemoryEmu().

◆ x86BiosWriteMemory()

NTHALAPI NTSTATUS NTAPI x86BiosWriteMemory ( _In_ USHORT  Segment,
_In_ USHORT  Offset,
_In_reads_bytes_(Size) PVOID  Buffer,
_In_ ULONG  Size 
)

Definition at line 234 of file x86bios.c.

239{
241
242 /* Calculate the physical address */
243 Address = (Segment << 4) + Offset;
244
245 /* Check if it's valid */
246 if (!x86BiosIsInitialized || ((Address + Size) > 0x100000))
247 {
248 /* Invalid */
250 }
251
252 /* Copy the memory from the buffer */
254
255 /* Return success */
256 return STATUS_SUCCESS;
257}

Referenced by IntInitializeX86Emu(), and IntInt10WriteMemoryEmu().