[SDK] Add PsGetCurrentThreadTeb() to the DDK
[reactos.git] / sdk / include / xdk / haltypes.h
1 /* Hardware Abstraction Layer Types */
2
3 $if (_NTDDK_)
4 typedef BOOLEAN
5 (NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
6 _In_ ULONG Columns,
7 _In_ ULONG Rows);
8
9 typedef PBUS_HANDLER
10 (FASTCALL *pHalHandlerForBus)(
11 _In_ INTERFACE_TYPE InterfaceType,
12 _In_ ULONG BusNumber);
13
14 typedef VOID
15 (FASTCALL *pHalReferenceBusHandler)(
16 _In_ PBUS_HANDLER BusHandler);
17
18 typedef enum _HAL_QUERY_INFORMATION_CLASS {
19 HalInstalledBusInformation,
20 HalProfileSourceInformation,
21 HalInformationClassUnused1,
22 HalPowerInformation,
23 HalProcessorSpeedInformation,
24 HalCallbackInformation,
25 HalMapRegisterInformation,
26 HalMcaLogInformation,
27 HalFrameBufferCachingInformation,
28 HalDisplayBiosInformation,
29 HalProcessorFeatureInformation,
30 HalNumaTopologyInterface,
31 HalErrorInformation,
32 HalCmcLogInformation,
33 HalCpeLogInformation,
34 HalQueryMcaInterface,
35 HalQueryAMLIIllegalIOPortAddresses,
36 HalQueryMaxHotPlugMemoryAddress,
37 HalPartitionIpiInterface,
38 HalPlatformInformation,
39 HalQueryProfileSourceList,
40 HalInitLogInformation,
41 HalFrequencyInformation,
42 HalProcessorBrandString,
43 HalHypervisorInformation,
44 HalPlatformTimerInformation,
45 HalAcpiAuditInformation
46 } HAL_QUERY_INFORMATION_CLASS, *PHAL_QUERY_INFORMATION_CLASS;
47
48 typedef enum _HAL_SET_INFORMATION_CLASS {
49 HalProfileSourceInterval,
50 HalProfileSourceInterruptHandler,
51 HalMcaRegisterDriver,
52 HalKernelErrorHandler,
53 HalCmcRegisterDriver,
54 HalCpeRegisterDriver,
55 HalMcaLog,
56 HalCmcLog,
57 HalCpeLog,
58 HalGenerateCmcInterrupt,
59 HalProfileSourceTimerHandler,
60 HalEnlightenment,
61 HalProfileDpgoSourceInterruptHandler
62 } HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
63
64 typedef NTSTATUS
65 (NTAPI *pHalQuerySystemInformation)(
66 _In_ HAL_QUERY_INFORMATION_CLASS InformationClass,
67 _In_ ULONG BufferSize,
68 _Inout_updates_bytes_to_(BufferSize, *ReturnedLength) PVOID Buffer,
69 _Out_ PULONG ReturnedLength);
70
71 typedef NTSTATUS
72 (NTAPI *pHalSetSystemInformation)(
73 _In_ HAL_SET_INFORMATION_CLASS InformationClass,
74 _In_ ULONG BufferSize,
75 _In_ PVOID Buffer);
76
77 typedef VOID
78 (FASTCALL *pHalExamineMBR)(
79 _In_ PDEVICE_OBJECT DeviceObject,
80 _In_ ULONG SectorSize,
81 _In_ ULONG MBRTypeIdentifier,
82 _Out_ PVOID *Buffer);
83
84 typedef NTSTATUS
85 (FASTCALL *pHalIoReadPartitionTable)(
86 _In_ PDEVICE_OBJECT DeviceObject,
87 _In_ ULONG SectorSize,
88 _In_ BOOLEAN ReturnRecognizedPartitions,
89 _Out_ struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
90
91 typedef NTSTATUS
92 (FASTCALL *pHalIoSetPartitionInformation)(
93 _In_ PDEVICE_OBJECT DeviceObject,
94 _In_ ULONG SectorSize,
95 _In_ ULONG PartitionNumber,
96 _In_ ULONG PartitionType);
97
98 typedef NTSTATUS
99 (FASTCALL *pHalIoWritePartitionTable)(
100 _In_ PDEVICE_OBJECT DeviceObject,
101 _In_ ULONG SectorSize,
102 _In_ ULONG SectorsPerTrack,
103 _In_ ULONG NumberOfHeads,
104 _In_ struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
105
106 typedef NTSTATUS
107 (NTAPI *pHalQueryBusSlots)(
108 _In_ PBUS_HANDLER BusHandler,
109 _In_ ULONG BufferSize,
110 _Out_ PULONG SlotNumbers,
111 _Out_ PULONG ReturnedLength);
112
113 typedef NTSTATUS
114 (NTAPI *pHalInitPnpDriver)(VOID);
115
116 typedef struct _PM_DISPATCH_TABLE {
117 ULONG Signature;
118 ULONG Version;
119 PVOID Function[1];
120 } PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE;
121
122 typedef NTSTATUS
123 (NTAPI *pHalInitPowerManagement)(
124 _In_ PPM_DISPATCH_TABLE PmDriverDispatchTable,
125 _Out_ PPM_DISPATCH_TABLE *PmHalDispatchTable);
126
127 typedef struct _DMA_ADAPTER*
128 (NTAPI *pHalGetDmaAdapter)(
129 _In_ PVOID Context,
130 _In_ struct _DEVICE_DESCRIPTION *DeviceDescriptor,
131 _Out_ PULONG NumberOfMapRegisters);
132
133 typedef NTSTATUS
134 (NTAPI *pHalGetInterruptTranslator)(
135 _In_ INTERFACE_TYPE ParentInterfaceType,
136 _In_ ULONG ParentBusNumber,
137 _In_ INTERFACE_TYPE BridgeInterfaceType,
138 _In_ USHORT Size,
139 _In_ USHORT Version,
140 _Out_ PTRANSLATOR_INTERFACE Translator,
141 _Out_ PULONG BridgeBusNumber);
142
143 typedef NTSTATUS
144 (NTAPI *pHalStartMirroring)(VOID);
145
146 typedef NTSTATUS
147 (NTAPI *pHalEndMirroring)(
148 _In_ ULONG PassNumber);
149
150 typedef NTSTATUS
151 (NTAPI *pHalMirrorPhysicalMemory)(
152 _In_ PHYSICAL_ADDRESS PhysicalAddress,
153 _In_ LARGE_INTEGER NumberOfBytes);
154
155 typedef NTSTATUS
156 (NTAPI *pHalMirrorVerify)(
157 _In_ PHYSICAL_ADDRESS PhysicalAddress,
158 _In_ LARGE_INTEGER NumberOfBytes);
159
160 typedef BOOLEAN
161 (NTAPI *pHalTranslateBusAddress)(
162 _In_ INTERFACE_TYPE InterfaceType,
163 _In_ ULONG BusNumber,
164 _In_ PHYSICAL_ADDRESS BusAddress,
165 _Inout_ PULONG AddressSpace,
166 _Out_ PPHYSICAL_ADDRESS TranslatedAddress);
167
168 typedef NTSTATUS
169 (NTAPI *pHalAssignSlotResources)(
170 _In_ PUNICODE_STRING RegistryPath,
171 _In_opt_ PUNICODE_STRING DriverClassName,
172 _In_ PDRIVER_OBJECT DriverObject,
173 _In_ PDEVICE_OBJECT DeviceObject,
174 _In_ INTERFACE_TYPE BusType,
175 _In_ ULONG BusNumber,
176 _In_ ULONG SlotNumber,
177 _Inout_ PCM_RESOURCE_LIST *AllocatedResources);
178
179 typedef VOID
180 (NTAPI *pHalHaltSystem)(VOID);
181
182 typedef BOOLEAN
183 (NTAPI *pHalResetDisplay)(VOID);
184
185 typedef struct _MAP_REGISTER_ENTRY {
186 PVOID MapRegister;
187 BOOLEAN WriteToDevice;
188 } MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY;
189
190 typedef UCHAR
191 (NTAPI *pHalVectorToIDTEntry)(
192 ULONG Vector);
193
194 typedef BOOLEAN
195 (NTAPI *pHalFindBusAddressTranslation)(
196 _In_ PHYSICAL_ADDRESS BusAddress,
197 _Inout_ PULONG AddressSpace,
198 _Out_ PPHYSICAL_ADDRESS TranslatedAddress,
199 _Inout_ PULONG_PTR Context,
200 _In_ BOOLEAN NextBus);
201
202 typedef VOID
203 (NTAPI *pHalEndOfBoot)(VOID);
204
205 typedef PVOID
206 (NTAPI *pHalGetAcpiTable)(
207 _In_ ULONG Signature,
208 _In_opt_ PCSTR OemId,
209 _In_opt_ PCSTR OemTableId);
210
211 #if defined(_IA64_)
212 typedef NTSTATUS
213 (*pHalGetErrorCapList)(
214 _Inout_ PULONG CapsListLength,
215 _Inout_updates_bytes_(*CapsListLength) PUCHAR ErrorCapList);
216
217 typedef NTSTATUS
218 (*pHalInjectError)(
219 _In_ ULONG BufferLength,
220 _In_reads_bytes_(BufferLength) PUCHAR Buffer);
221 #endif
222
223 typedef VOID
224 (NTAPI *PCI_ERROR_HANDLER_CALLBACK)(VOID);
225
226 typedef VOID
227 (NTAPI *pHalSetPciErrorHandlerCallback)(
228 _In_ PCI_ERROR_HANDLER_CALLBACK Callback);
229
230 #if 1 /* Not present in WDK 7600 */
231 typedef VOID
232 (FASTCALL *pHalIoAssignDriveLetters)(
233 _In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
234 _In_ PSTRING NtDeviceName,
235 _Out_ PUCHAR NtSystemPath,
236 _Out_ PSTRING NtSystemPathString);
237 #endif
238
239 typedef struct {
240 ULONG Version;
241 pHalQuerySystemInformation HalQuerySystemInformation;
242 pHalSetSystemInformation HalSetSystemInformation;
243 pHalQueryBusSlots HalQueryBusSlots;
244 ULONG Spare1;
245 pHalExamineMBR HalExamineMBR;
246 #if 1 /* Not present in WDK 7600 */
247 pHalIoAssignDriveLetters HalIoAssignDriveLetters;
248 #endif
249 pHalIoReadPartitionTable HalIoReadPartitionTable;
250 pHalIoSetPartitionInformation HalIoSetPartitionInformation;
251 pHalIoWritePartitionTable HalIoWritePartitionTable;
252 pHalHandlerForBus HalReferenceHandlerForBus;
253 pHalReferenceBusHandler HalReferenceBusHandler;
254 pHalReferenceBusHandler HalDereferenceBusHandler;
255 pHalInitPnpDriver HalInitPnpDriver;
256 pHalInitPowerManagement HalInitPowerManagement;
257 pHalGetDmaAdapter HalGetDmaAdapter;
258 pHalGetInterruptTranslator HalGetInterruptTranslator;
259 pHalStartMirroring HalStartMirroring;
260 pHalEndMirroring HalEndMirroring;
261 pHalMirrorPhysicalMemory HalMirrorPhysicalMemory;
262 pHalEndOfBoot HalEndOfBoot;
263 pHalMirrorVerify HalMirrorVerify;
264 pHalGetAcpiTable HalGetCachedAcpiTable;
265 pHalSetPciErrorHandlerCallback HalSetPciErrorHandlerCallback;
266 #if defined(_IA64_)
267 pHalGetErrorCapList HalGetErrorCapList;
268 pHalInjectError HalInjectError;
269 #endif
270 } HAL_DISPATCH, *PHAL_DISPATCH;
271
272 #ifdef _NTSYSTEM_
273 extern HAL_DISPATCH HalDispatchTable;
274 #define HALDISPATCH (&HalDispatchTable)
275 #else
276 __CREATE_NTOS_DATA_IMPORT_ALIAS(HalDispatchTable)
277 extern PHAL_DISPATCH HalDispatchTable;
278 #define HALDISPATCH HalDispatchTable
279 #endif
280
281 #define HAL_DISPATCH_VERSION 3 /* FIXME: when to use 4? */
282 #define HalDispatchTableVersion HALDISPATCH->Version
283 #define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation
284 #define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation
285 #define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots
286 #define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus
287 #define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler
288 #define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler
289 #define HalInitPnpDriver HALDISPATCH->HalInitPnpDriver
290 #define HalInitPowerManagement HALDISPATCH->HalInitPowerManagement
291 #define HalGetDmaAdapter HALDISPATCH->HalGetDmaAdapter
292 #define HalGetInterruptTranslator HALDISPATCH->HalGetInterruptTranslator
293 #define HalStartMirroring HALDISPATCH->HalStartMirroring
294 #define HalEndMirroring HALDISPATCH->HalEndMirroring
295 #define HalMirrorPhysicalMemory HALDISPATCH->HalMirrorPhysicalMemory
296 #define HalEndOfBoot HALDISPATCH->HalEndOfBoot
297 #define HalMirrorVerify HALDISPATCH->HalMirrorVerify
298 #define HalGetCachedAcpiTable HALDISPATCH->HalGetCachedAcpiTable
299 #define HalSetPciErrorHandlerCallback HALDISPATCH->HalSetPciErrorHandlerCallback
300 #if defined(_IA64_)
301 #define HalGetErrorCapList HALDISPATCH->HalGetErrorCapList
302 #define HalInjectError HALDISPATCH->HalInjectError
303 #endif
304
305 typedef struct _HAL_BUS_INFORMATION {
306 INTERFACE_TYPE BusType;
307 BUS_DATA_TYPE ConfigurationType;
308 ULONG BusNumber;
309 ULONG Reserved;
310 } HAL_BUS_INFORMATION, *PHAL_BUS_INFORMATION;
311
312 typedef struct _HAL_PROFILE_SOURCE_INFORMATION {
313 KPROFILE_SOURCE Source;
314 BOOLEAN Supported;
315 ULONG Interval;
316 } HAL_PROFILE_SOURCE_INFORMATION, *PHAL_PROFILE_SOURCE_INFORMATION;
317
318 typedef struct _HAL_PROFILE_SOURCE_INFORMATION_EX {
319 KPROFILE_SOURCE Source;
320 BOOLEAN Supported;
321 ULONG_PTR Interval;
322 ULONG_PTR DefInterval;
323 ULONG_PTR MaxInterval;
324 ULONG_PTR MinInterval;
325 } HAL_PROFILE_SOURCE_INFORMATION_EX, *PHAL_PROFILE_SOURCE_INFORMATION_EX;
326
327 typedef struct _HAL_PROFILE_SOURCE_INTERVAL {
328 KPROFILE_SOURCE Source;
329 ULONG_PTR Interval;
330 } HAL_PROFILE_SOURCE_INTERVAL, *PHAL_PROFILE_SOURCE_INTERVAL;
331
332 typedef struct _HAL_PROFILE_SOURCE_LIST {
333 KPROFILE_SOURCE Source;
334 PWSTR Description;
335 } HAL_PROFILE_SOURCE_LIST, *PHAL_PROFILE_SOURCE_LIST;
336
337 typedef enum _HAL_DISPLAY_BIOS_INFORMATION {
338 HalDisplayInt10Bios,
339 HalDisplayEmulatedBios,
340 HalDisplayNoBios
341 } HAL_DISPLAY_BIOS_INFORMATION, *PHAL_DISPLAY_BIOS_INFORMATION;
342
343 typedef struct _HAL_POWER_INFORMATION {
344 ULONG TBD;
345 } HAL_POWER_INFORMATION, *PHAL_POWER_INFORMATION;
346
347 typedef struct _HAL_PROCESSOR_SPEED_INFO {
348 ULONG ProcessorSpeed;
349 } HAL_PROCESSOR_SPEED_INFORMATION, *PHAL_PROCESSOR_SPEED_INFORMATION;
350
351 typedef struct _HAL_CALLBACKS {
352 PCALLBACK_OBJECT SetSystemInformation;
353 PCALLBACK_OBJECT BusCheck;
354 } HAL_CALLBACKS, *PHAL_CALLBACKS;
355
356 typedef struct _HAL_PROCESSOR_FEATURE {
357 ULONG UsableFeatureBits;
358 } HAL_PROCESSOR_FEATURE;
359
360 typedef NTSTATUS
361 (NTAPI *PHALIOREADWRITEHANDLER)(
362 _In_ BOOLEAN fRead,
363 _In_ ULONG dwAddr,
364 _In_ ULONG dwSize,
365 _Inout_ PULONG pdwData);
366
367 typedef struct _HAL_AMLI_BAD_IO_ADDRESS_LIST {
368 ULONG BadAddrBegin;
369 ULONG BadAddrSize;
370 ULONG OSVersionTrigger;
371 PHALIOREADWRITEHANDLER IOHandler;
372 } HAL_AMLI_BAD_IO_ADDRESS_LIST, *PHAL_AMLI_BAD_IO_ADDRESS_LIST;
373
374 #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
375
376 typedef VOID
377 (NTAPI *PHALMCAINTERFACELOCK)(VOID);
378
379 typedef VOID
380 (NTAPI *PHALMCAINTERFACEUNLOCK)(VOID);
381
382 typedef NTSTATUS
383 (NTAPI *PHALMCAINTERFACEREADREGISTER)(
384 _In_ UCHAR BankNumber,
385 _Inout_ PVOID Exception);
386
387 typedef struct _HAL_MCA_INTERFACE {
388 PHALMCAINTERFACELOCK Lock;
389 PHALMCAINTERFACEUNLOCK Unlock;
390 PHALMCAINTERFACEREADREGISTER ReadRegister;
391 } HAL_MCA_INTERFACE;
392
393 typedef enum {
394 ApicDestinationModePhysical = 1,
395 ApicDestinationModeLogicalFlat,
396 ApicDestinationModeLogicalClustered,
397 ApicDestinationModeUnknown
398 } HAL_APIC_DESTINATION_MODE, *PHAL_APIC_DESTINATION_MODE;
399
400 #if defined(_AMD64_)
401
402 struct _KTRAP_FRAME;
403 struct _KEXCEPTION_FRAME;
404
405 typedef ERROR_SEVERITY
406 (NTAPI *PDRIVER_EXCPTN_CALLBACK)(
407 _In_ PVOID Context,
408 _In_ struct _KTRAP_FRAME *TrapFrame,
409 _In_ struct _KEXCEPTION_FRAME *ExceptionFrame,
410 _In_ PMCA_EXCEPTION Exception);
411
412 #endif
413
414 #if defined(_X86_) || defined(_IA64_)
415 typedef
416 #if defined(_IA64_)
417 ERROR_SEVERITY
418 #else
419 VOID
420 #endif
421 (NTAPI *PDRIVER_EXCPTN_CALLBACK)(
422 _In_ PVOID Context,
423 _In_ PMCA_EXCEPTION BankLog);
424 #endif
425
426 typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK;
427
428 typedef struct _MCA_DRIVER_INFO {
429 PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback;
430 PKDEFERRED_ROUTINE DpcCallback;
431 PVOID DeviceContext;
432 } MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;
433
434 typedef struct _HAL_ERROR_INFO {
435 ULONG Version;
436 ULONG InitMaxSize;
437 ULONG McaMaxSize;
438 ULONG McaPreviousEventsCount;
439 ULONG McaCorrectedEventsCount;
440 ULONG McaKernelDeliveryFails;
441 ULONG McaDriverDpcQueueFails;
442 ULONG McaReserved;
443 ULONG CmcMaxSize;
444 ULONG CmcPollingInterval;
445 ULONG CmcInterruptsCount;
446 ULONG CmcKernelDeliveryFails;
447 ULONG CmcDriverDpcQueueFails;
448 ULONG CmcGetStateFails;
449 ULONG CmcClearStateFails;
450 ULONG CmcReserved;
451 ULONGLONG CmcLogId;
452 ULONG CpeMaxSize;
453 ULONG CpePollingInterval;
454 ULONG CpeInterruptsCount;
455 ULONG CpeKernelDeliveryFails;
456 ULONG CpeDriverDpcQueueFails;
457 ULONG CpeGetStateFails;
458 ULONG CpeClearStateFails;
459 ULONG CpeInterruptSources;
460 ULONGLONG CpeLogId;
461 ULONGLONG KernelReserved[4];
462 } HAL_ERROR_INFO, *PHAL_ERROR_INFO;
463
464 #define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1)
465 #define HAL_MCE_DISABLED ((ULONG)0)
466
467 #define HAL_CMC_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
468 #define HAL_CMC_DISABLED HAL_MCE_DISABLED
469
470 #define HAL_CPE_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
471 #define HAL_CPE_DISABLED HAL_MCE_DISABLED
472
473 #define HAL_MCA_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
474 #define HAL_MCA_DISABLED HAL_MCE_DISABLED
475
476 typedef VOID
477 (NTAPI *PDRIVER_CMC_EXCEPTION_CALLBACK)(
478 _In_ PVOID Context,
479 _In_ PCMC_EXCEPTION CmcLog);
480
481 typedef VOID
482 (NTAPI *PDRIVER_CPE_EXCEPTION_CALLBACK)(
483 _In_ PVOID Context,
484 _In_ PCPE_EXCEPTION CmcLog);
485
486 typedef struct _CMC_DRIVER_INFO {
487 PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback;
488 PKDEFERRED_ROUTINE DpcCallback;
489 PVOID DeviceContext;
490 } CMC_DRIVER_INFO, *PCMC_DRIVER_INFO;
491
492 typedef struct _CPE_DRIVER_INFO {
493 PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback;
494 PKDEFERRED_ROUTINE DpcCallback;
495 PVOID DeviceContext;
496 } CPE_DRIVER_INFO, *PCPE_DRIVER_INFO;
497
498 #endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
499
500 #if defined(_IA64_)
501
502 typedef NTSTATUS
503 (*HALSENDCROSSPARTITIONIPI)(
504 _In_ USHORT ProcessorID,
505 _In_ UCHAR HardwareVector);
506
507 typedef NTSTATUS
508 (*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
509 _Out_ PULONG Vector,
510 _Out_ PKIRQL Irql,
511 _Inout_ PGROUP_AFFINITY Affinity,
512 _Out_ PUCHAR HardwareVector);
513
514 typedef VOID
515 (*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
516 _In_ ULONG Vector,
517 _In_ PGROUP_AFFINITY Affinity);
518
519 typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
520 HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
521 HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
522 HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
523 } HAL_CROSS_PARTITION_IPI_INTERFACE;
524
525 #define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \
526 FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE, \
527 HalFreeCrossPartitionInterruptVector)
528
529 #endif /* defined(_IA64_) */
530
531 typedef struct _HAL_PLATFORM_INFORMATION {
532 ULONG PlatformFlags;
533 } HAL_PLATFORM_INFORMATION, *PHAL_PLATFORM_INFORMATION;
534
535 #define HAL_PLATFORM_DISABLE_WRITE_COMBINING 0x01L
536 #define HAL_PLATFORM_DISABLE_PTCG 0x04L
537 #define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY 0x08L
538 #define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO 0x10L
539 #define HAL_PLATFORM_ACPI_TABLES_CACHED 0x20L
540
541 $endif (_NTDDK_)