ReactOS  0.4.14-dev-1280-ga5a725a
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 typedef struct _HAL_BIOS_FRAME
14 {
29 
30 typedef
31 VOID
33  VOID
34 );
35 
36 typedef
37 VOID
39  IN PKTRAP_FRAME TrapFrame
40 );
41 
42 #define HAL_APC_REQUEST 0
43 #define HAL_DPC_REQUEST 1
44 
45 /* HAL profiling offsets in KeGetPcr()->HalReserved[] */
46 #define HAL_PROFILING_INTERVAL 0
47 #define HAL_PROFILING_MULTIPLIER 1
48 
49 /* Usage flags */
50 #define IDT_REGISTERED 0x01
51 #define IDT_LATCHED 0x02
52 #define IDT_READ_ONLY 0x04
53 #define IDT_INTERNAL 0x11
54 #define IDT_DEVICE 0x21
55 
56 /* Conversion functions */
57 #define BCD_INT(bcd) \
58  (((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F))
59 #define INT_BCD(int) \
60  (UCHAR)(((int / 10) << 4) + (int % 10))
61 
62 typedef
63 BOOLEAN
65  IN KIRQL Irql,
66  IN ULONG Irq,
68 );
69 
70 BOOLEAN
71 NTAPI
73  IN KIRQL Irql,
74  IN ULONG Irq,
76 );
77 
78 BOOLEAN
79 NTAPI
81  IN KIRQL Irql,
82  IN ULONG Irq,
84 );
85 
86 BOOLEAN
87 NTAPI
89  IN KIRQL Irql,
90  IN ULONG Irq,
92 );
93 
94 BOOLEAN
95 NTAPI
97  IN KIRQL Irql,
98  IN ULONG Irq,
100 );
101 
102 BOOLEAN
103 NTAPI
105  IN KIRQL Irql,
106  IN ULONG Irq,
108 );
109 
110 BOOLEAN
111 NTAPI
113  IN KIRQL Irql,
114  IN ULONG Irq,
116 );
117 
118 BOOLEAN
119 NTAPI
121  IN KIRQL Irql,
122  IN ULONG Irq,
124 );
125 
126 BOOLEAN
127 NTAPI
129  IN KIRQL Irql,
130  IN ULONG Irq,
132 );
133 
134 VOID
135 __cdecl
137  VOID
138 );
139 
140 //
141 // Hack Flags
142 //
143 #define HALP_REVISION_FROM_HACK_FLAGS(x) ((x) >> 24)
144 #define HALP_REVISION_HACK_FLAGS(x) ((x) >> 12)
145 #define HALP_HACK_FLAGS(x) ((x) & 0xFFF)
146 
147 //
148 // Feature flags
149 //
150 #define HALP_CARD_FEATURE_FULL_DECODE 0x0001
151 
152 //
153 // Match Flags
154 //
155 #define HALP_CHECK_CARD_REVISION_ID 0x10000
156 #define HALP_CHECK_CARD_SUBVENDOR_ID 0x20000
157 #define HALP_CHECK_CARD_SUBSYSTEM_ID 0x40000
158 
159 //
160 // Mm PTE/PDE to Hal PTE/PDE
161 //
162 #define HalAddressToPde(x) (PHARDWARE_PTE)MiAddressToPde(x)
163 #define HalAddressToPte(x) (PHARDWARE_PTE)MiAddressToPte(x)
164 
165 typedef struct _IDTUsageFlags
166 {
167  UCHAR Flags;
168 } IDTUsageFlags;
169 
170 typedef struct
171 {
172  KIRQL Irql;
173  UCHAR BusReleativeVector;
174 } IDTUsage;
175 
176 typedef struct _HalAddressUsage
177 {
179  CM_RESOURCE_TYPE Type;
181  struct
182  {
185  } Element[];
187 
188 /* adapter.c */
190 
191 /* sysinfo.c */
192 INIT_FUNCTION
193 VOID
194 NTAPI
196  IN ULONG BusVector,
197  IN ULONG SystemVector,
198  IN KIRQL Irql);
199 
200 INIT_FUNCTION
201 VOID
202 NTAPI
204  IN ULONG BusVector,
205  IN ULONG SystemVector,
206  IN KIRQL Irql,
207  IN PVOID Handler,
209 
210 /* pic.c */
217 
218 /* profil.c */
220 
221 /* timer.c */
222 INIT_FUNCTION VOID NTAPI HalpInitializeClock(VOID);
225 
226 VOID
227 NTAPI
229 
230 /* pci.c */
232 
233 /* dma.c */
234 INIT_FUNCTION VOID HalpInitDma (VOID);
235 
236 /* Non-generic initialization */
239 
240 VOID
241 NTAPI
243 
244 //
245 // KD Support
246 //
247 VOID
248 NTAPI
250  VOID
251 );
252 
253 INIT_FUNCTION
254 VOID
255 NTAPI
257  VOID
258 );
259 
260 INIT_FUNCTION
261 NTSTATUS
262 NTAPI
264  IN PVOID LoaderBlock,
266 );
267 
268 INIT_FUNCTION
269 NTSTATUS
270 NTAPI
273 );
274 
275 //
276 // Memory routines
277 //
278 ULONG64
279 NTAPI
281  IN PLOADER_PARAMETER_BLOCK LoaderBlock,
282  IN ULONG64 MaxAddress,
283  IN PFN_NUMBER PageCount,
284  IN BOOLEAN Aligned
285 );
286 
287 PVOID
288 NTAPI
291  IN PFN_COUNT PageCount,
292  IN BOOLEAN FlushCurrentTLB
293 );
294 
295 VOID
296 NTAPI
299  IN PFN_COUNT NumberPages,
300  IN BOOLEAN FlushCurrentTLB
301 );
302 
303 PVOID
304 NTAPI
307  IN PFN_COUNT PageCount
308 );
309 
310 VOID
311 NTAPI
314  IN PFN_COUNT NumberPages
315 );
316 
317 /* sysinfo.c */
318 NTSTATUS
319 NTAPI
323  IN OUT PVOID Buffer,
325 );
326 
327 NTSTATUS
328 NTAPI
333 );
334 
335 //
336 // BIOS Routines
337 //
338 BOOLEAN
339 NTAPI
341  VOID
342 );
343 
344 VOID
345 FASTCALL
347  PKTRAP_FRAME TrapFrame
348 );
349 
350 VOID
351 __cdecl
353  VOID
354 );
355 
356 //
357 // Processor Halt Routine
358 //
359 VOID
360 NTAPI
362  VOID
363 );
364 
365 //
366 // CMOS Routines
367 //
368 INIT_FUNCTION
369 VOID
370 NTAPI
372  VOID
373 );
374 
375 UCHAR
376 NTAPI
378  IN UCHAR Reg
379 );
380 
381 VOID
382 NTAPI
384  IN UCHAR Reg,
385  IN UCHAR Value
386 );
387 
388 //
389 // Spinlock for protecting CMOS access
390 //
391 VOID
392 NTAPI
394  VOID
395 );
396 
397 VOID
398 NTAPI
400  VOID
401 );
402 
403 VOID
404 NTAPI
406  VOID
407 );
408 
409 NTSTATUS
410 NTAPI
413  IN HANDLE RootKey,
417 );
418 
419 INIT_FUNCTION
420 VOID
421 NTAPI
423  VOID
424 );
425 
426 INIT_FUNCTION
427 BOOLEAN
428 NTAPI
430  VOID
431 );
432 
433 INIT_FUNCTION
434 VOID
435 NTAPI
437  VOID
438 );
439 
440 INIT_FUNCTION
441 NTSTATUS
442 NTAPI
444  VOID
445 );
446 
447 INIT_FUNCTION
448 VOID
449 NTAPI
451  VOID
452 );
453 
454 INIT_FUNCTION
455 VOID
456 NTAPI
459  IN INTERFACE_TYPE InterfaceType
460 );
461 
462 INIT_FUNCTION
463 ULONG
464 NTAPI
466  VOID
467 );
468 
469 NTSTATUS
470 NTAPI
472  OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements
473 );
474 
475 VOID
476 FASTCALL
478  IN PKTRAP_FRAME TrapFrame,
481 );
482 
483 INIT_FUNCTION
484 VOID
485 NTAPI
487  VOID
488 );
489 
490 NTSTATUS
491 NTAPI
493  VOID
494 );
495 
496 INIT_FUNCTION
497 VOID
498 NTAPI
500  IN ULONG i,
501  IN ULONG j,
502  IN ULONG k,
503  IN PPCI_COMMON_CONFIG PciData
504 );
505 
506 VOID
507 NTAPI
509  IN ULONG ProcessorNumber,
510  IN PLOADER_PARAMETER_BLOCK LoaderBlock
511 );
512 
513 #ifdef _M_AMD64
514 
515 VOID
516 NTAPI
519  _In_ PLOADER_PARAMETER_BLOCK LoaderBlock
520 );
521 
522 #define KfLowerIrql KeLowerIrql
523 #define KiEnterInterruptTrap(TrapFrame) /* We do all neccessary in asm code */
524 #define KiEoiHelper(TrapFrame) return /* Just return to the caller */
525 #define HalBeginSystemInterrupt(Irql, Vector, OldIrql) ((*(OldIrql) = PASSIVE_LEVEL), TRUE)
526 #ifndef CONFIG_SMP
527 /* On UP builds, spinlocks don't exist at IRQL >= DISPATCH */
528 #define KiAcquireSpinLock(SpinLock)
529 #define KiReleaseSpinLock(SpinLock)
530 #define KfAcquireSpinLock(SpinLock) KfRaiseIrql(DISPATCH_LEVEL);
531 #define KfReleaseSpinLock(SpinLock, OldIrql) KeLowerIrql(OldIrql);
532 #endif // !CONFIG_SMP
533 #endif // _M_AMD64
534 
536 
538 
540 
542 
544 
546 
549 extern PWCHAR HalName;
550 
552 
554 
555 extern const USHORT HalpBuildType;
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2374
ULONG Length
Definition: halp.h:184
ULONG CsLimit
Definition: halp.h:21
NTSTATUS NTAPI HaliQuerySystemInformation(IN HAL_QUERY_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer, OUT PULONG ReturnedLength)
Definition: sysinfo.c:19
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING KeyName
Definition: ndis.h:4711
#define IN
Definition: typedefs.h:39
static NTSTATUS EnableInterrupts(IN PPORT_DEVICE_EXTENSION DeviceExtension, IN UCHAR FlagsToDisable, IN UCHAR FlagsToEnable)
Definition: pnp.c:380
VOID FASTCALL HalpExitToV86(PKTRAP_FRAME TrapFrame)
PADAPTER_OBJECT NTAPI HalpAllocateAdapterEx(ULONG NumberOfMapRegisters, BOOLEAN IsMaster, BOOLEAN Dma32BitAddresses)
enum _INTERFACE_TYPE INTERFACE_TYPE
static PMEMKEY RootKey
Definition: registry.c:55
VOID NTAPI HalpRegisterVector(IN UCHAR Flags, IN ULONG BusVector, IN ULONG SystemVector, IN KIRQL Irql)
Definition: usage.c:34
_Out_ PULONG NumberOfMapRegisters
Definition: halfuncs.h:209
#define __cdecl
Definition: accygwin.h:79
_In_ ULONG Mode
Definition: hubbusif.h:303
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
BOOLEAN NTAPI HalpDismissIrqLevel(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:937
ULONG PFN_COUNT
Definition: mmtypes.h:102
VOID HalpClockInterrupt(VOID)
Definition: timer.c:30
INIT_FUNCTION BOOLEAN NTAPI HalpGetDebugPortTable(VOID)
Definition: halacpi.c:952
_In_ BOOLEAN Create
Definition: pstypes.h:511
INIT_FUNCTION NTSTATUS NTAPI HalpMarkAcpiHal(VOID)
Definition: misc.c:64
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS NTAPI HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
Definition: halacpi.c:1016
INIT_FUNCTION VOID NTAPI HalpReportResourceUsage(IN PUNICODE_STRING HalName, IN INTERFACE_TYPE InterfaceType)
Definition: usage.c:26
ULONG CsBase
Definition: halp.h:22
struct _HalAddressUsage::@1501 Element[]
UCHAR NTAPI HalpReadCmos(IN UCHAR Reg)
Definition: cmos.c:24
ULONG SsFlags
Definition: halp.h:26
uint16_t * PWCHAR
Definition: typedefs.h:55
VOID HalpInitializeClock(VOID)
Definition: timer.c:54
PADDRESS_USAGE HalpAddressUsageList
Definition: usage.c:59
VOID NTAPI HalpCheckPowerButton(VOID)
Definition: misc.c:20
#define FASTCALL
Definition: nt_native.h:50
_Out_ PKIRQL Irql
Definition: csq.h:179
#define DECLSPEC_NORETURN
Definition: ntbasedef.h:176
INIT_FUNCTION ULONG NTAPI HalpIs16BitPortDecodeSupported(VOID)
Definition: halacpi.c:961
BOOLEAN NTAPI HalpDismissIrq15(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:804
PVOID NTAPI HalpMapPhysicalMemory64Vista(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount, IN BOOLEAN FlushCurrentTLB)
Definition: memory.c:156
INIT_FUNCTION VOID NTAPI HalpDebugPciDumpBus(IN ULONG i, IN ULONG j, IN ULONG k, IN PPCI_COMMON_CONFIG PciData)
Definition: bussupp.c:807
DECLSPEC_NORETURN VOID FASTCALL HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
Definition: pic.c:1288
VOID FASTCALL KeUpdateSystemTime(IN PKTRAP_FRAME TrapFrame, IN ULONG Increment, IN KIRQL OldIrql)
Definition: time.c:64
UCHAR KIRQL
Definition: env_spec_w32.h:591
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
VOID HalpInitPhase1(VOID)
Definition: halinit_up.c:26
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
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
ULONG PFN_NUMBER
Definition: ke.h:8
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
NTSTATUS NTAPI HalpSetupPciDeviceForDebugging(IN PVOID LoaderBlock, IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
Definition: pci.c:473
VOID NTAPI HalpUnmapVirtualAddress(IN PVOID VirtualAddress, IN ULONG NumberPages)
Definition: misc.c:39
PWCHAR HalName
Definition: halacpi.c:45
struct _HAL_BIOS_FRAME HAL_BIOS_FRAME
DECLSPEC_NORETURN VOID FASTCALL HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
Definition: pic.c:1239
ULONG Start
Definition: halp.h:183
VOID __cdecl HalpDispatchInterrupt(VOID)
ULONG Esp
Definition: halp.h:16
unsigned char BOOLEAN
BOOLEAN HalDisableFirmwareMapper
Definition: halacpi.c:43
VOID HalpProfileInterrupt(VOID)
enum _KINTERRUPT_MODE KINTERRUPT_MODE
UCHAR Flags
Definition: halp.h:26
VOID NTAPI HalpWriteCmos(IN UCHAR Reg, IN UCHAR Value)
Definition: cmos.c:35
VOID(FASTCALL * PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY)(IN PKTRAP_FRAME TrapFrame)
Definition: halp.h:38
ULONG EFlags
Definition: halp.h:17
Definition: bufpool.h:45
ULONG SsBase
Definition: halp.h:25
VOID NTAPI HalpFlushTLB(VOID)
Definition: misc.c:163
BOOLEAN NTAPI HalpBiosDisplayReset(VOID)
Definition: x86bios.c:455
VOID NTAPI HalpAcquireCmosSpinLock(VOID)
Definition: spinlock.c:227
CM_RESOURCE_TYPE Type
Definition: halp.h:179
enum _HAL_QUERY_INFORMATION_CLASS HAL_QUERY_INFORMATION_CLASS
VOID HalpInitPciBus(VOID)
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 HalpInitPhase0(PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: halinit_mp.c:31
INIT_FUNCTION VOID NTAPI HalpBuildAddressMap(VOID)
Definition: halacpi.c:944
ULONG CsFlags
Definition: halp.h:23
BOOLEAN HalpProfilingStopped
Definition: profil.c:18
NTSTATUS NTAPI HalpReleasePciDeviceForDebugging(IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
Definition: pci.c:482
VOID NTAPI HalpCalibrateStallExecution(VOID)
Definition: pchw.c:105
KAFFINITY HalpActiveProcessors
Definition: processor.c:17
struct _HalAddressUsage * PADDRESS_USAGE
ULONG SegSs
Definition: halp.h:15
ULONG SegCs
Definition: halp.h:18
#define BufferSize
Definition: classpnp.h:419
ADDRESS_USAGE HalpDefaultIoSpace
Definition: usage.c:81
const USHORT HalpBuildType
Definition: halinit_apic.c:22
struct _HAL_BIOS_FRAME * PHAL_BIOS_FRAME
KSPIN_LOCK HalpSystemHardwareLock
Definition: cmos.c:18
ULONG SsLimit
Definition: halp.h:24
NTSTATUS NTAPI HaliInitPnpDriver(VOID)
Definition: halpnpdd.c:902
INIT_FUNCTION VOID NTAPI HalpInitializeCmos(VOID)
Definition: cmos.c:160
BOOLEAN NTAPI HalpDismissIrq15Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:947
PWCHAR HalHardwareIdString
Definition: halacpi.c:44
unsigned __int64 ULONG64
Definition: imports.h:198
enum _HAL_SET_INFORMATION_CLASS HAL_SET_INFORMATION_CLASS
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1061
unsigned char UCHAR
Definition: xmlstorage.h:181
struct _IDTUsageFlags IDTUsageFlags
ULONG Eip
Definition: halp.h:19
INIT_FUNCTION VOID NTAPI HalpInitBusHandlers(VOID)
Definition: halacpi.c:935
VOID __cdecl HalpApcInterrupt(VOID)
KAFFINITY HalpDefaultInterruptAffinity
Definition: processor.c:18
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:790
struct _HalAddressUsage ADDRESS_USAGE
LARGE_INTEGER HalpPerfCounter
Definition: timer.c:25
VOID NTAPI HalInitializeBios(_In_ ULONG Unknown, _In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: x86bios.c:46
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
#define VOID
Definition: acefi.h:82
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
Definition: batclass.h:187
VOID NTAPI HalpReleaseCmosSpinLock(VOID)
Definition: spinlock.c:244
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
VOID NTAPI HalpUnmapVirtualAddressVista(IN PVOID VirtualAddress, IN PFN_COUNT NumberPages, IN BOOLEAN FlushCurrentTLB)
Definition: memory.c:227
BOOLEAN NTAPI HalpDismissIrqGeneric(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:794
_In_ ULONG _In_ BOOLEAN _Must_inspect_result_ PVOID * VirtualAddress
Definition: ndis.h:3791
UCHAR Flags
Definition: halp.h:180
ULONG64 NTAPI HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG64 MaxAddress, IN PFN_NUMBER PageCount, IN BOOLEAN Aligned)
Definition: memory.c:29
BOOLEAN NTAPI HalpDismissIrq13(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:840
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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:668
PHAL_SW_INTERRUPT_HANDLER __cdecl HalpDispatchInterrupt2(VOID)
Definition: pic.c:1304
#define _In_
Definition: no_sal2.h:204
NTSTATUS NTAPI HalpOpenRegistryKey(IN PHANDLE KeyHandle, IN HANDLE RootKey, IN PUNICODE_STRING KeyName, IN ACCESS_MASK DesiredAccess, IN BOOLEAN Create)
Definition: misc.c:111
VOID NTAPI HaliHaltSystem(VOID)
Definition: processor.c:22
unsigned short USHORT
Definition: pedump.c:61
BOOLEAN NTAPI HalpDismissIrq13Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:982
ULONG_PTR KAFFINITY
Definition: compat.h:75
BOOLEAN NTAPI HalpDismissIrq07(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:853
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK DesiredAccess
Definition: create.c:4157
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
unsigned int * PULONG
Definition: retypes.h:1
VOID __cdecl HalpRealModeStart(VOID)
IDTUsageFlags HalpIDTUsageFlags[MAXIMUM_IDTVECTOR+1]
Definition: usage.c:19
NTSTATUS NTAPI HaliSetSystemInformation(IN HAL_SET_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer)
Definition: sysinfo.c:31
INIT_FUNCTION VOID NTAPI HalpGetNMICrashFlag(VOID)
Definition: usage.c:571
Definition: halp.h:29
#define BOOLEAN
Definition: pedump.c:73
#define OUT
Definition: typedefs.h:40
VOID HalpInitDma(VOID)
Definition: dma.c:121
VOID NTAPI HalpInitializePICs(IN BOOLEAN EnableInterrupts)
Definition: apic.c:445
unsigned int ULONG
Definition: retypes.h:1
PVOID NTAPI HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress, IN ULONG NumberPage)
Definition: misc.c:28
BOOLEAN(NTAPI * PHAL_DISMISS_INTERRUPT)(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: halp.h:64
struct _HalAddressUsage * Next
Definition: halp.h:178
PKTRAP_FRAME TrapFrame
Definition: halp.h:20
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1714
VOID __cdecl HalpHardwareInterruptLevel(VOID)
VOID NTAPI HalpInitializeLegacyPICs(VOID)
Definition: pic.c:18
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG Increment
Definition: CrNtStubs.h:42
VOID NTAPI HalpRegisterKdSupportFunctions(VOID)
Definition: bus.c:23
INIT_FUNCTION VOID NTAPI HalpReportSerialNumber(VOID)
Definition: misc.c:33
ULONG Prefix
Definition: halp.h:27
BOOLEAN HalpNMIInProgress
Definition: misc.c:22
int k
Definition: mpi.c:3369
VOID NTAPI HalpInitProcessor(IN ULONG ProcessorNumber, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: halinit_apic.c:28
ULONG ACCESS_MASK
Definition: nt_native.h:40
#define MAXIMUM_IDTVECTOR
Definition: asm.h:277
VOID(__cdecl * PHAL_SW_INTERRUPT_HANDLER)(VOID)
Definition: halp.h:32
BOOLEAN NTAPI HalpDismissIrq07Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition: pic.c:995