ReactOS 0.4.16-dev-1946-g52006dd
halfuncs.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 halfuncs.h
8
9Abstract:
10
11 Function definitions for the HAL.
12
13Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17--*/
18
19#ifndef _HALFUNCS_H
20#define _HALFUNCS_H
21
22//
23// Dependencies
24//
25#include <umtypes.h>
26#include <haltypes.h>
27#include <ketypes.h>
28#include <section_attribs.h>
29
30#ifndef NTOS_MODE_USER
31
32//
33// Private HAL Callbacks
34//
35#define HalHandlerForBus HALPRIVATEDISPATCH->HalHandlerForBus
36#define HalHandlerForConfigSpace HALPRIVATEDISPATCH->HalHandlerForConfigSpace
37#define HalLocateHiberRanges HALPRIVATEDISPATCH->HalLocateHiberRanges
38#define HalRegisterBusHandler HALPRIVATEDISPATCH->HalRegisterBusHandler
39#define HalSetWakeEnable HALPRIVATEDISPATCH->HalSetWakeEnable
40#define HalSetWakeAlarm HALPRIVATEDISPATCH->HalSetWakeAlarm
41#define HalPciTranslateBusAddress HALPRIVATEDISPATCH->HalPciTranslateBusAddress
42#define HalPciAssignSlotResources HALPRIVATEDISPATCH->HalPciAssignSlotResources
43#define HalHaltSystem HALPRIVATEDISPATCH->HalHaltSystem
44#define HalFindBusAddressTranslation HALPRIVATEDISPATCH->HalFindBusAddressTranslation
45#define HalResetDisplay HALPRIVATEDISPATCH->HalResetDisplay
46#define HalAllocateMapRegisters HALPRIVATEDISPATCH->HalAllocateMapRegisters
47#define KdSetupPciDeviceForDebugging HALPRIVATEDISPATCH->KdSetupPciDeviceForDebugging
48#define KdReleasePciDeviceforDebugging HALPRIVATEDISPATCH->KdReleasePciDeviceforDebugging
49#define KdGetAcpiTablePhase0 HALPRIVATEDISPATCH->KdGetAcpiTablePhase0
50#define KdCheckPowerButton HALPRIVATEDISPATCH->KdCheckPowerButton
51#define HalVectorToIDTEntry HALPRIVATEDISPATCH->HalVectorToIDTEntry
52#define KdMapPhysicalMemory64 HALPRIVATEDISPATCH->KdMapPhysicalMemory64
53#define KdUnmapVirtualAddress HALPRIVATEDISPATCH->KdUnmapVirtualAddress
54
55//
56// Display Functions
57//
59VOID
63);
64
65//
66// Initialization Functions
67//
72 VOID
73);
74
75#ifdef _ARC_
77VOID
80 _In_ ULONG ProcessorNumber,
81 _In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock
82);
83
84CODE_SEG("INIT")
89 _In_ ULONG BootPhase,
91);
92
98 _In_ PKPROCESSOR_STATE ProcessorState
99);
100
101#endif
102
104VOID
105NTAPI
108);
109
110//
111// CPU Routines
112//
114VOID
115NTAPI
117 VOID
118);
119
120//
121// Interrupt Functions
122//
125NTAPI
130);
131
133VOID
137);
138
140VOID
141NTAPI
145);
146
149NTAPI
154);
155
156#ifdef __REACTOS__
158VOID
159NTAPI
162 _In_ PKTRAP_FRAME TrapFrame
163);
164#else
166VOID
167NTAPI
171);
172#endif
173
174#ifdef _ARM_ // FIXME: ndk/arm? armddk.h?
176ULONG
178 VOID
179);
180#endif
181
182CODE_SEG("INIT")
184VOID
185NTAPI
187 VOID
188);
189
191VOID
194 _In_ KIRQL SoftwareInterruptRequested
195);
196
197#ifdef _M_AMD64
198
200VOID
201NTAPI
202HalSendNMI(
203 _In_ KAFFINITY TargetSet);
204
206VOID
207NTAPI
208HalSendSoftwareInterrupt(
209 _In_ KAFFINITY TargetSet,
210 _In_ KIRQL Irql);
211
212#endif // _M_AMD64
213
215VOID
216NTAPI
218 _In_ KAFFINITY TargetSet
219);
220
222VOID
223NTAPI
225 PVOID NmiInfo
226);
227
229UCHAR
233 _Out_ PKINTERRUPT_ROUTINE **FlatDispatch,
234 _Out_ PKINTERRUPT_ROUTINE *NoConnection
235);
236
237//
238// Bus Functions
239//
242NTAPI
245);
246
247//
248// Environment Functions
249//
250#ifdef _ARC_
253NTAPI
255 _In_ PCH Name,
257);
258
261NTAPI
263 _In_ PCH Variable,
266);
267#endif
268
269//
270// Profiling Functions
271//
273VOID
274NTAPI
276 _In_ KPROFILE_SOURCE ProfileSource
277);
278
280VOID
281NTAPI
283 _In_ KPROFILE_SOURCE ProfileSource
284);
285
288NTAPI
291);
292
293//
294// Time Functions
295//
298NTAPI
300 _In_ PTIME_FIELDS RtcTime
301);
302
305NTAPI
307 _In_ PTIME_FIELDS RtcTime
308);
309
311ULONG
312NTAPI
315);
316
317
318//
319// BIOS call API
320//
323NTAPI
328
331NTAPI
335
338NTAPI
343 _In_ ULONG Size);
344
347NTAPI
352 _In_ ULONG Size);
353
356NTAPI
358 _In_ ULONG InterruptNumber,
359 _Inout_ PX86_BIOS_REGISTERS Registers);
360
361#endif // NTOS_MODE_USER
362#endif // _HALFUNCS_H
#define CODE_SEG(...)
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
_Out_ PKIRQL Irql
Definition: csq.h:179
LPWSTR Name
Definition: desk.c:124
ULONG_PTR KAFFINITY
Definition: compat.h:85
UCHAR KIRQL
Definition: env_spec_w32.h:591
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG Increment
Definition: CrNtStubs.h:46
ULONG HalGetInterruptSource(VOID)
Definition: pic.c:108
BOOLEAN NTAPI HalStartNextProcessor(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PKPROCESSOR_STATE ProcessorState)
Definition: processor.c:71
VOID NTAPI HalInitializeProcessor(IN ULONG ProcessorNumber, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: processor.c:48
BOOLEAN NTAPI HalInitSystem(_In_ ULONG BootPhase, _In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: halinit.c:45
enum _KPROFILE_SOURCE KPROFILE_SOURCE
NTHALAPI NTSTATUS NTAPI x86BiosWriteMemory(_In_ USHORT Segment, _In_ USHORT Offset, _In_reads_bytes_(Size) PVOID Buffer, _In_ ULONG Size)
Definition: x86bios.c:231
NTHALAPI NTSTATUS NTAPI HalAdjustResourceList(_Inout_ PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList)
NTHALAPI BOOLEAN NTAPI HalAllProcessorsStarted(VOID)
Definition: processor.c:60
NTHALAPI NTSTATUS NTAPI x86BiosReadMemory(_In_ USHORT Segment, _In_ USHORT Offset, _Out_writes_bytes_(Size) PVOID Buffer, _In_ ULONG Size)
Definition: x86bios.c:204
NTHALAPI BOOLEAN NTAPI x86BiosCall(_In_ ULONG InterruptNumber, _Inout_ PX86_BIOS_REGISTERS Registers)
Definition: x86bios.c:410
NTHALAPI VOID NTAPI HalRequestIpi(_In_ KAFFINITY TargetSet)
Definition: up.c:19
NTHALAPI VOID FASTCALL HalRequestSoftwareInterrupt(_In_ KIRQL SoftwareInterruptRequested)
NTHALAPI VOID NTAPI HalReturnToFirmware(_In_ FIRMWARE_REENTRY Action)
Definition: reboot.c:21
NTHALAPI UCHAR FASTCALL HalSystemVectorDispatchEntry(_In_ ULONG Vector, _Out_ PKINTERRUPT_ROUTINE **FlatDispatch, _Out_ PKINTERRUPT_ROUTINE *NoConnection)
NTHALAPI NTSTATUS NTAPI x86BiosAllocateBuffer(_Inout_ ULONG *Size, _Out_ USHORT *Segment, _Out_ USHORT *Offset)
Definition: x86bios.c:151
NTHALAPI NTSTATUS NTAPI x86BiosFreeBuffer(_In_ USHORT Segment, _In_ USHORT Offset)
Definition: x86bios.c:180
NTHALAPI BOOLEAN NTAPI HalQueryRealTimeClock(_In_ PTIME_FIELDS RtcTime)
NTHALAPI VOID NTAPI HalHandleNMI(PVOID NmiInfo)
NTHALAPI BOOLEAN NTAPI HalEnableSystemInterrupt(_In_ ULONG Vector, _In_ KIRQL Irql, _In_ KINTERRUPT_MODE InterruptMode)
NTHALAPI VOID NTAPI HalProcessorIdle(VOID)
Definition: processor.c:83
NTHALAPI ULONG NTAPI HalSetTimeIncrement(_In_ ULONG Increment)
NTHALAPI VOID NTAPI HalEndSystemInterrupt(_In_ KIRQL Irql, _In_ UCHAR Vector)
NTHALAPI VOID NTAPI HalDisableSystemInterrupt(_In_ ULONG Vector, _In_ KIRQL Irql)
NTHALAPI VOID NTAPI HalStopProfileInterrupt(_In_ KPROFILE_SOURCE ProfileSource)
Definition: profil.c:24
NTHALAPI BOOLEAN NTAPI HalSetRealTimeClock(_In_ PTIME_FIELDS RtcTime)
Definition: cmos.c:288
NTHALAPI VOID NTAPI HalReportResourceUsage(VOID)
Definition: usage.c:67
NTHALAPI VOID NTAPI HalStartProfileInterrupt(_In_ KPROFILE_SOURCE ProfileSource)
Definition: profil.c:41
NTHALAPI BOOLEAN NTAPI HalBeginSystemInterrupt(_In_ KIRQL Irql, _In_ ULONG Vector, _Out_ PKIRQL OldIrql)
NTHALAPI VOID FASTCALL HalClearSoftwareInterrupt(_In_ KIRQL Request)
NTHALAPI ULONG_PTR NTAPI HalSetProfileInterval(_In_ ULONG_PTR Interval)
Definition: profil.c:58
NTHALAPI VOID NTAPI HalDisplayString(_In_ PCHAR String)
enum _FIRMWARE_REENTRY FIRMWARE_REENTRY
DWORD Interval
Definition: netstat.c:30
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
#define FASTCALL
Definition: nt_native.h:50
CHAR * PCH
Definition: ntbasedef.h:403
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
#define NTHALAPI
Definition: ntoskrnl.h:40
unsigned short USHORT
Definition: pedump.c:61
ARC_STATUS NTAPI HalGetEnvironmentVariable(IN PCH Name, IN USHORT ValueLength, IN PCH Value)
Definition: rtc.c:70
ARC_STATUS NTAPI HalSetEnvironmentVariable(IN PCH Name, IN PCH Value)
Definition: rtc.c:57
enum _KINTERRUPT_MODE KINTERRUPT_MODE
ULONG ARC_STATUS
Definition: arc.h:4
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2439
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
Definition: wdfiotarget.h:510
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_Inout_ PVOID Segment
Definition: exfuncs.h:1101
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
Definition: iofuncs.h:806
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778
VOID(NTAPI * PKINTERRUPT_ROUTINE)(VOID)
Definition: ketypes.h:554
unsigned char UCHAR
Definition: xmlstorage.h:181