3 Copyright (c) Alex Ionescu. All rights reserved.
11 Function definitions for the HAL.
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
29 #ifndef NTOS_MODE_USER
32 // Private HAL Callbacks
34 #define HalHandlerForBus HALPRIVATEDISPATCH->HalHandlerForBus
35 #define HalHandlerForConfigSpace HALPRIVATEDISPATCH->HalHandlerForConfigSpace
36 #define HalLocateHiberRanges HALPRIVATEDISPATCH->HalLocateHiberRanges
37 #define HalRegisterBusHandler HALPRIVATEDISPATCH->HalRegisterBusHandler
38 #define HalSetWakeEnable HALPRIVATEDISPATCH->HalSetWakeEnable
39 #define HalSetWakeAlarm HALPRIVATEDISPATCH->HalSetWakeAlarm
40 #define HalPciTranslateBusAddress HALPRIVATEDISPATCH->HalPciTranslateBusAddress
41 #define HalPciAssignSlotResources HALPRIVATEDISPATCH->HalPciAssignSlotResources
42 #define HalHaltSystem HALPRIVATEDISPATCH->HalHaltSystem
43 #define HalFindBusAddressTranslation HALPRIVATEDISPATCH->HalFindBusAddressTranslation
44 #define HalResetDisplay HALPRIVATEDISPATCH->HalResetDisplay
45 #define HalAllocateMapRegisters HALPRIVATEDISPATCH->HalAllocateMapRegisters
46 #define KdSetupPciDeviceForDebugging HALPRIVATEDISPATCH->KdSetupPciDeviceForDebugging
47 #define KdReleasePciDeviceforDebugging HALPRIVATEDISPATCH->KdReleasePciDeviceforDebugging
48 #define KdGetAcpiTablePhase0 HALPRIVATEDISPATCH->KdGetAcpiTablePhase0
49 #define KdCheckPowerButton HALPRIVATEDISPATCH->KdCheckPowerButton
50 #define HalVectorToIDTEntry HALPRIVATEDISPATCH->HalVectorToIDTEntry
51 #define KdMapPhysicalMemory64 HALPRIVATEDISPATCH->KdMapPhysicalMemory64
52 #define KdUnmapVirtualAddress HALPRIVATEDISPATCH->KdUnmapVirtualAddress
65 // Initialization Functions
70 HalAllProcessorsStarted(
78 HalInitializeProcessor(
79 _In_ ULONG ProcessorNumber
,
80 _In_
struct _LOADER_PARAMETER_BLOCK
*LoaderBlock
88 _In_
struct _LOADER_PARAMETER_BLOCK
*LoaderBlock
94 HalStartNextProcessor(
95 _In_
struct _LOADER_PARAMETER_BLOCK
*LoaderBlock
,
96 _In_ PKPROCESSOR_STATE ProcessorState
105 _In_ FIRMWARE_REENTRY Action
119 // Interrupt Functions
124 HalBeginSystemInterrupt(
132 HalClearSoftwareInterrupt(
139 HalDisableSystemInterrupt(
147 HalEnableSystemInterrupt(
150 _In_ KINTERRUPT_MODE InterruptMode
157 HalEndSystemInterrupt(
159 _In_ PKTRAP_FRAME TrapFrame
165 HalEndSystemInterrupt(
171 #ifdef _ARM_ // FIXME: ndk/arm? armddk.h?
173 HalGetInterruptSource(
181 HalReportResourceUsage(
188 HalRequestSoftwareInterrupt(
189 _In_ KIRQL SoftwareInterruptRequested
196 _In_ KAFFINITY TargetSet
209 HalSystemVectorDispatchEntry(
211 _Out_ PKINTERRUPT_ROUTINE
**FlatDispatch
,
212 _Out_ PKINTERRUPT_ROUTINE
*NoConnection
221 HalAdjustResourceList(
222 _Inout_ PIO_RESOURCE_REQUIREMENTS_LIST
*pResourceList
226 // Environment Functions
232 HalSetEnvironmentVariable(
240 HalGetEnvironmentVariable(
248 // Profiling Functions
252 HalStartProfileInterrupt(
253 _In_ KPROFILE_SOURCE ProfileSource
259 HalStopProfileInterrupt(
260 _In_ KPROFILE_SOURCE ProfileSource
266 HalSetProfileInterval(
267 _In_ ULONG_PTR Interval
276 HalQueryRealTimeClock(
277 _In_ PTIME_FIELDS RtcTime
284 _In_ PTIME_FIELDS RtcTime