ReactOS 0.4.16-dev-2207-geb15453
halp.h
Go to the documentation of this file.
1/*
2 *
3 */
4
5#pragma once
6
7#ifdef CONFIG_SMP
8#define HAL_BUILD_TYPE (DBG ? PRCB_BUILD_DEBUG : 0)
9#else
10#define HAL_BUILD_TYPE ((DBG ? PRCB_BUILD_DEBUG : 0) | PRCB_BUILD_UNIPROCESSOR)
11#endif
12
13/* Don't include this in freeloader */
14#ifndef _BLDR_
16
17#undef SYNCH_LEVEL
18#define SYNCH_LEVEL HalpIrqlSynchLevel
19#endif
20
21typedef struct _HAL_BIOS_FRAME
22{
37
38typedef
41 VOID
42);
43
44typedef
47 IN PKTRAP_FRAME TrapFrame
48);
49
50#define HAL_APC_REQUEST 0
51#define HAL_DPC_REQUEST 1
52
53/* HAL profiling offsets in KeGetPcr()->HalReserved[] */
54#define HAL_PROFILING_INTERVAL 0
55#define HAL_PROFILING_MULTIPLIER 1
56
57/* Usage flags */
58#define IDT_REGISTERED 0x01
59#define IDT_LATCHED 0x02
60#define IDT_READ_ONLY 0x04
61#define IDT_INTERNAL 0x11
62#define IDT_DEVICE 0x21
63
64#ifdef _M_AMD64
65#define HALP_LOW_STUB_SIZE_IN_PAGES 5
66#else
67#define HALP_LOW_STUB_SIZE_IN_PAGES 3
68#endif
69
73 _In_ UCHAR Bcd)
74{
75 return ((Bcd & 0xF0) >> 4) * 10 + (Bcd & 0x0F);
76}
77
82{
83 return ((Int / 10) << 4) + (Int % 10);
84}
85
86typedef
90 IN ULONG Irq,
92);
93
98 IN ULONG Irq,
100);
101
103NTAPI
105 IN KIRQL Irql,
106 IN ULONG Irq,
108);
109
111NTAPI
113 IN KIRQL Irql,
114 IN ULONG Irq,
116);
117
119NTAPI
121 IN KIRQL Irql,
122 IN ULONG Irq,
124);
125
127NTAPI
129 IN KIRQL Irql,
130 IN ULONG Irq,
132);
133
135NTAPI
137 IN KIRQL Irql,
138 IN ULONG Irq,
140);
141
143NTAPI
145 IN KIRQL Irql,
146 IN ULONG Irq,
148);
149
151NTAPI
153 IN KIRQL Irql,
154 IN ULONG Irq,
156);
157
158VOID
161 VOID
162);
163
164//
165// Hack Flags
166//
167#define HALP_REVISION_FROM_HACK_FLAGS(x) ((x) >> 24)
168#define HALP_REVISION_HACK_FLAGS(x) ((x) >> 12)
169#define HALP_HACK_FLAGS(x) ((x) & 0xFFF)
170
171//
172// Feature flags
173//
174#define HALP_CARD_FEATURE_FULL_DECODE 0x0001
175
176//
177// Match Flags
178//
179#define HALP_CHECK_CARD_REVISION_ID 0x10000
180#define HALP_CHECK_CARD_SUBVENDOR_ID 0x20000
181#define HALP_CHECK_CARD_SUBSYSTEM_ID 0x40000
182
183//
184// Mm PTE/PDE to Hal PTE/PDE
185//
186#define HalAddressToPde(x) (PHARDWARE_PTE)MiAddressToPde(x)
187#define HalAddressToPte(x) (PHARDWARE_PTE)MiAddressToPte(x)
188
189typedef struct _IDTUsageFlags
190{
191 UCHAR Flags;
193
194typedef struct
195{
196 KIRQL Irql;
197 UCHAR BusReleativeVector;
198} IDTUsage;
199
200typedef struct _HalAddressUsage
201{
203 CM_RESOURCE_TYPE Type;
205 struct
206 {
211
212/* adapter.c */
214
215/* sysinfo.c */
216CODE_SEG("INIT")
217VOID
218NTAPI
220 IN ULONG BusVector,
221 IN ULONG SystemVector,
222 IN KIRQL Irql);
223
224CODE_SEG("INIT")
225VOID
226NTAPI
228 IN ULONG BusVector,
229 IN ULONG SystemVector,
230 IN KIRQL Irql,
233
234/* pic.c */
241
242/* profil.c */
244
245/* timer.c */
250
252{
256
257VOID
258NTAPI
260
261/* pci.c */
263
264/* dma.c */
265CODE_SEG("INIT") VOID HalpInitDma (VOID);
266
267/* Non-generic initialization */
270
271VOID
272NTAPI
274
275//
276// KD Support
277//
278VOID
279NTAPI
281 VOID
282);
283
284CODE_SEG("INIT")
285VOID
286NTAPI
288 VOID
289);
290
291CODE_SEG("INIT")
293NTAPI
295 IN PVOID LoaderBlock,
297);
298
299CODE_SEG("INIT")
301NTAPI
304);
305
306//
307// Memory routines
308//
310NTAPI
312 IN PLOADER_PARAMETER_BLOCK LoaderBlock,
313 IN ULONG64 MaxAddress,
314 IN PFN_NUMBER PageCount,
315 IN BOOLEAN Aligned
316);
317
318PVOID
319NTAPI
322 IN PFN_COUNT PageCount,
323 IN BOOLEAN FlushCurrentTLB
324);
325
326VOID
327NTAPI
330 IN PFN_COUNT NumberPages,
331 IN BOOLEAN FlushCurrentTLB
332);
333
334PVOID
335NTAPI
338 IN PFN_COUNT PageCount
339);
340
341VOID
342NTAPI
345 IN PFN_COUNT NumberPages
346);
347
348/* sysinfo.c */
350NTAPI
352 _In_ BOOLEAN IsRead,
356);
357
359NTAPI
365);
366
368NTAPI
373);
374
375//
376// BIOS Routines
377//
379NTAPI
381 VOID
382);
383
384VOID
387 PKTRAP_FRAME TrapFrame
388);
389
390VOID
393 VOID
394);
395
396//
397// Processor Halt Routine
398//
399VOID
400NTAPI
402 VOID
403);
404
405//
406// CMOS Routines
407//
408CODE_SEG("INIT")
409VOID
410NTAPI
412 VOID
413);
414
416UCHAR
417NTAPI
419 IN UCHAR Reg
420);
421
423VOID
424NTAPI
426 IN UCHAR Reg,
428);
429
430//
431// Spinlock for protecting CMOS access
432//
434VOID
435NTAPI
437 VOID
438);
439
441VOID
442NTAPI
444 VOID
445);
446
447VOID
448NTAPI
450 VOID
451);
452
454NTAPI
461);
462
463CODE_SEG("INIT")
464VOID
465NTAPI
467 VOID
468);
469
470CODE_SEG("INIT")
472NTAPI
474 VOID
475);
476
477CODE_SEG("INIT")
478VOID
479NTAPI
481 VOID
482);
483
484CODE_SEG("INIT")
486NTAPI
488 VOID
489);
490
491CODE_SEG("INIT")
492VOID
493NTAPI
495 VOID
496);
497
498CODE_SEG("INIT")
499VOID
500NTAPI
504);
505
506CODE_SEG("INIT")
507ULONG
508NTAPI
510 VOID
511);
512
514NTAPI
517);
518
519VOID
522 IN PKTRAP_FRAME TrapFrame,
525);
526
527VOID
528NTAPI
530 _In_ PKTRAP_FRAME TrapFrame,
531 _In_ KIRQL Irql);
532
533CODE_SEG("INIT")
534VOID
535NTAPI
537 VOID
538);
539
541NTAPI
543 VOID
544);
545
546CODE_SEG("INIT")
547VOID
548NTAPI
550 IN PBUS_HANDLER BusHandler,
551 IN PCI_SLOT_NUMBER PciSlot,
552 IN ULONG i,
553 IN ULONG j,
554 IN ULONG k,
555 IN PPCI_COMMON_CONFIG PciData
556);
557
558VOID
559NTAPI
561 IN ULONG ProcessorNumber,
562 IN PLOADER_PARAMETER_BLOCK LoaderBlock
563);
564
565#if defined(SARCH_PC98)
567NTAPI
568HalpDismissIrq08(
570 _In_ ULONG Irq,
572);
573
575NTAPI
576HalpDismissIrq08Level(
578 _In_ ULONG Irq,
580);
581
582VOID
583NTAPI
585
586extern ULONG PIT_FREQUENCY;
587#endif /* SARCH_PC98 */
588
589VOID
590NTAPI
592 _In_ ULONG Phase,
593 _In_ PLOADER_PARAMETER_BLOCK LoaderBlock
594);
595
596#ifdef _M_AMD64
597#define KfLowerIrql KeLowerIrql
598#define KiEnterInterruptTrap(TrapFrame) /* We do all neccessary in asm code */
599#endif // _M_AMD64
600
601#ifdef _MINIHAL_
602#if defined(_M_IX86) || defined(_M_AMD64)
603/* Use intrinsics for IA-32 and amd64 */
604#include <ioaccess.h>
605
606#define READ_PORT_BUFFER_UCHAR(port, buffer, count) __inbytestring(H2I(port), buffer, count)
607#define READ_PORT_BUFFER_USHORT(port, buffer, count) __inwordstring(H2I(port), buffer, count)
608#define READ_PORT_BUFFER_ULONG(port, buffer, count) __indwordstring(H2I(port), buffer, count)
609#define WRITE_PORT_BUFFER_UCHAR(port, buffer, count) __outbytestring(H2I(port), buffer, count)
610#define WRITE_PORT_BUFFER_USHORT(port, buffer, count) __outwordstring(H2I(port), buffer, count)
611#define WRITE_PORT_BUFFER_ULONG(port, buffer, count) __outdwordstring(H2I(port), buffer, count)
612#endif
613#endif
614
616
618
620
622
624
626
629extern PWCHAR HalName;
630
632
634
635extern const USHORT HalpBuildType;
#define CODE_SEG(...)
ULONG_PTR PFN_NUMBER
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER Handler
Definition: acpixf.h:672
LONG NTSTATUS
Definition: precomp.h:26
@ Create
Definition: registry.c:563
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
Definition: batclass.h:188
Definition: bufpool.h:45
#define _Acquires_lock_(lock)
#define _Requires_lock_held_(lock)
#define _Releases_lock_(lock)
_Out_ PKIRQL Irql
Definition: csq.h:179
int Int
Definition: definitions.h:37
ULONG_PTR KAFFINITY
Definition: compat.h:85
#define __cdecl
Definition: corecrt.h:121
#define DECLSPEC_NORETURN
Definition: corecrt.h:131
static NTSTATUS EnableInterrupts(IN PPORT_DEVICE_EXTENSION DeviceExtension, IN UCHAR FlagsToDisable, IN UCHAR FlagsToEnable)
Definition: pnp.c:380
UCHAR KIRQL
Definition: env_spec_w32.h:591
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
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
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1713
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 HalpInitDma(VOID)
Definition: dma.c:185
VOID NTAPI HalpReleaseCmosSpinLock(VOID)
Definition: spinlock.c:243
VOID NTAPI HalpAcquireCmosSpinLock(VOID)
Definition: spinlock.c:226
VOID NTAPI HalpInitializeClockPc98(VOID)
Definition: clock.c:62
VOID NTAPI HalpWriteCmos(_In_ UCHAR Reg, _In_ UCHAR Value)
Definition: cmos.c:123
UCHAR NTAPI HalpReadCmos(_In_ UCHAR Reg)
Definition: cmos.c:114
VOID HalpClockInterrupt(VOID)
Definition: timer.c:30
struct _IDTUsageFlags IDTUsageFlags
VOID HalpInitPhase0(PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: halinit_mp.c:30
VOID NTAPI HalpRegisterVector(IN UCHAR Flags, IN ULONG BusVector, IN ULONG SystemVector, IN KIRQL Irql)
Definition: usage.c:34
VOID HalpProfileInterrupt(VOID)
VOID HalpInitializeClock(VOID)
Definition: timer.c:54
VOID HalpInitPhase1(VOID)
Definition: halinit_up.c:26
VOID NTAPI HalpEnableInterruptHandler(IN UCHAR Flags, IN ULONG BusVector, IN ULONG SystemVector, IN KIRQL Irql, IN PVOID Handler, IN KINTERRUPT_MODE Mode)
Definition: usage.c:49
#define PIT_FREQUENCY
Definition: halhw.h:61
KAFFINITY HalpDefaultInterruptAffinity
Definition: processor.c:18
BOOLEAN NTAPI HalpDismissIrq13(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:679
ULONG NTAPI HalpIs16BitPortDecodeSupported(VOID)
Definition: halacpi.c:1012
BOOLEAN NTAPI HalpDismissIrq13Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:861
VOID NTAPI HalpUnmapVirtualAddressVista(IN PVOID VirtualAddress, IN PFN_COUNT NumberPages, IN BOOLEAN FlushCurrentTLB)
Definition: memory.c:227
NTSTATUS NTAPI HalpMarkAcpiHal(VOID)
Definition: misc.c:57
VOID __cdecl HalpRealModeStart(VOID)
NTSTATUS NTAPI HaliHandlePCIConfigSpaceAccess(_In_ BOOLEAN IsRead, _In_ ULONG Port, _In_ ULONG Length, _Inout_ PULONG Buffer)
Definition: sysinfo.c:43
BOOLEAN NTAPI HalpDismissIrqLevel(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:816
DECLSPEC_NORETURN VOID FASTCALL HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
Definition: pic.c:1183
struct _HalAddressUsage * PADDRESS_USAGE
PHAL_SW_INTERRUPT_HANDLER __cdecl HalpDispatchInterrupt2(VOID)
Definition: pic.c:1199
VOID NTAPI HalpBuildAddressMap(VOID)
Definition: halacpi.c:995
BOOLEAN NTAPI HalpDismissIrq07(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:708
VOID NTAPI HalpCheckPowerButton(VOID)
Definition: misc.c:146
VOID FASTCALL KeUpdateSystemTime(IN PKTRAP_FRAME TrapFrame, IN ULONG Increment, IN KIRQL OldIrql)
Definition: time.c:64
VOID NTAPI HalpRegisterKdSupportFunctions(VOID)
Definition: busemul.c:22
VOID NTAPI HalpFlushTLB(VOID)
Definition: misc.c:156
NTSTATUS NTAPI HalpOpenRegistryKey(IN PHANDLE KeyHandle, IN HANDLE RootKey, IN PUNICODE_STRING KeyName, IN ACCESS_MASK DesiredAccess, IN BOOLEAN Create)
Definition: misc.c:104
KSPIN_LOCK HalpSystemHardwareLock
Definition: spinlock.c:25
PVOID NTAPI HalpMapPhysicalMemory64Vista(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount, IN BOOLEAN FlushCurrentTLB)
Definition: memory.c:156
VOID HalpInitPciBus(VOID)
IDTUsageFlags HalpIDTUsageFlags[MAXIMUM_IDTVECTOR+1]
Definition: usage.c:19
FORCEINLINE UCHAR BCD_INT(_In_ UCHAR Bcd)
Definition: halp.h:72
VOID NTAPI HalpUnmapVirtualAddress(IN PVOID VirtualAddress, IN PFN_COUNT NumberPages)
Definition: memory.c:148
NTSTATUS NTAPI HalpSetupPciDeviceForDebugging(IN PVOID LoaderBlock, IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
BOOLEAN NTAPI HalpDismissIrq15Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:826
VOID NTAPI HalpDebugPciDumpBus(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER PciSlot, IN ULONG i, IN ULONG j, IN ULONG k, IN PPCI_COMMON_CONFIG PciData)
Definition: bussupp.c:794
struct _HALP_ROLLOVER * PHALP_ROLLOVER
VOID NTAPI HalpInitializePICs(IN BOOLEAN EnableInterrupts)
Definition: apic.c:514
VOID NTAPI HalpInitBusHandlers(VOID)
Definition: halacpi.c:986
struct _HALP_ROLLOVER HALP_ROLLOVER
FORCEINLINE UCHAR INT_BCD(_In_ CSHORT Int)
Definition: halp.h:80
VOID NTAPI HalInitializeBios(_In_ ULONG Phase, _In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: x86bios.c:48
VOID NTAPI HalpInitProcessor(IN ULONG ProcessorNumber, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: halinit.c:24
VOID __cdecl HalpDispatchInterrupt(VOID)
VOID FASTCALL HalpExitToV86(PKTRAP_FRAME TrapFrame)
BOOLEAN HalDisableFirmwareMapper
Definition: halacpi.c:43
VOID NTAPI KeUpdateRunTime(_In_ PKTRAP_FRAME TrapFrame, _In_ KIRQL Irql)
BOOLEAN NTAPI HalpBiosDisplayReset(VOID)
Definition: bios.c:642
KAFFINITY HalpActiveProcessors
Definition: processor.c:17
VOID NTAPI HalpCalibrateStallExecution(VOID)
Definition: pchw.c:105
BOOLEAN NTAPI HalpDismissIrq15(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:644
PADAPTER_OBJECT NTAPI HalpAllocateAdapterEx(ULONG NumberOfMapRegisters, BOOLEAN IsMaster, BOOLEAN Dma32BitAddresses)
PWCHAR HalName
Definition: halacpi.c:45
VOID NTAPI HalpReportResourceUsage(IN PUNICODE_STRING HalName, IN INTERFACE_TYPE InterfaceType)
Definition: usage.c:26
VOID NTAPI HalpInitializeCmos(VOID)
Definition: cmos.c:160
BOOLEAN NTAPI HalpDismissIrqGeneric(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:634
VOID NTAPI HalpInitializeLegacyPICs(VOID)
Definition: pic.c:18
BOOLEAN NTAPI HalpGetDebugPortTable(VOID)
Definition: halacpi.c:1003
BOOLEAN(NTAPI * PHAL_DISMISS_INTERRUPT)(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: halp.h:88
VOID(FASTCALL * PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY)(IN PKTRAP_FRAME TrapFrame)
Definition: halp.h:46
PVOID NTAPI HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount)
Definition: memory.c:140
KIRQL HalpIrqlSynchLevel
Definition: buildtype.c:19
NTSTATUS NTAPI HaliInitPnpDriver(VOID)
Definition: halpnpdd.c:906
BOOLEAN NTAPI HalpDismissIrq07Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:890
VOID NTAPI HalpReportSerialNumber(VOID)
Definition: misc.c:26
BOOLEAN HalpNMIInProgress
Definition: nmi.c:18
PADDRESS_USAGE HalpAddressUsageList
Definition: usage.c:20
DECLSPEC_NORETURN VOID FASTCALL HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
Definition: pic.c:1134
NTSTATUS NTAPI HalpReleasePciDeviceForDebugging(IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
struct _HAL_BIOS_FRAME HAL_BIOS_FRAME
VOID NTAPI HaliHaltSystem(VOID)
Definition: processor.c:21
VOID(__cdecl * PHAL_SW_INTERRUPT_HANDLER)(VOID)
Definition: halp.h:40
PWCHAR HalHardwareIdString
Definition: halacpi.c:44
LARGE_INTEGER HalpPerfCounter
Definition: timer.c:23
VOID __cdecl HalpApcInterrupt(VOID)
ULONG64 NTAPI HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG64 MaxAddress, IN PFN_NUMBER PageCount, IN BOOLEAN Aligned)
Definition: memory.c:29
ADDRESS_USAGE HalpDefaultIoSpace
Definition: usage.c:42
struct _HalAddressUsage ADDRESS_USAGE
struct _HAL_BIOS_FRAME * PHAL_BIOS_FRAME
NTSTATUS NTAPI HaliSetSystemInformation(IN HAL_SET_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer)
Definition: sysinfo.c:31
VOID NTAPI HalpGetNMICrashFlag(VOID)
Definition: usage.c:595
VOID __cdecl HalpClockIpi(VOID)
VOID __cdecl HalpHardwareInterruptLevel(VOID)
NTSTATUS NTAPI HaliQuerySystemInformation(IN HAL_QUERY_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer, OUT PULONG ReturnedLength)
Definition: sysinfo.c:19
const USHORT HalpBuildType
Definition: buildtype.c:14
BOOLEAN HalpProfilingStopped
Definition: profil.c:18
NTSTATUS NTAPI HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
Definition: halacpi.c:1067
CPPORT Port[4]
Definition: headless.c:35
_In_ ULONG Mode
Definition: hubbusif.h:303
unsigned __int64 ULONG64
Definition: imports.h:198
int k
Definition: mpi.c:3369
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4715
#define MAXIMUM_IDTVECTOR
Definition: ketypes.h:346
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
ULONG ACCESS_MASK
Definition: nt_native.h:40
#define FASTCALL
Definition: nt_native.h:50
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
enum _INTERFACE_TYPE INTERFACE_TYPE
enum _KINTERRUPT_MODE KINTERRUPT_MODE
static PMEMKEY RootKey
Definition: registry.c:55
Definition: halp.h:30
ULONG Increment
Definition: halp.h:254
ULONG RollOver
Definition: halp.h:253
PKTRAP_FRAME TrapFrame
Definition: halp.h:28
ULONG CsLimit
Definition: halp.h:29
ULONG Eip
Definition: halp.h:27
ULONG SegSs
Definition: halp.h:23
ULONG SegCs
Definition: halp.h:26
ULONG SsLimit
Definition: halp.h:32
ULONG SsFlags
Definition: halp.h:34
ULONG CsFlags
Definition: halp.h:31
ULONG CsBase
Definition: halp.h:30
ULONG Prefix
Definition: halp.h:35
ULONG SsBase
Definition: halp.h:33
ULONG EFlags
Definition: halp.h:25
ULONG Esp
Definition: halp.h:24
ULONG Start
Definition: halp.h:207
struct _HalAddressUsage * Next
Definition: halp.h:202
CM_RESOURCE_TYPE Type
Definition: halp.h:203
struct _HalAddressUsage::@1666 Element[]
UCHAR Flags
Definition: halp.h:204
ULONG Length
Definition: halp.h:208
UCHAR Flags
Definition: halp.h:26
uint32_t * PULONG
Definition: typedefs.h:59
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
short CSHORT
Definition: umtypes.h:127
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
Definition: wdfdevice.h:2705
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:463
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
#define FORCEINLINE
Definition: wdftypes.h:67
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_Out_ PULONG NumberOfMapRegisters
Definition: halfuncs.h:209
enum _HAL_SET_INFORMATION_CLASS HAL_SET_INFORMATION_CLASS
enum _HAL_QUERY_INFORMATION_CLASS HAL_QUERY_INFORMATION_CLASS
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1098
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778
ULONG PFN_COUNT
Definition: mmtypes.h:102
unsigned char UCHAR
Definition: xmlstorage.h:181