Synchronize up to trunk's revision r57784.
[reactos.git] / 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 /* GCC/MSVC and WDK compatible declaration */
273 extern NTKERNELAPI HAL_DISPATCH HalDispatchTable;
274
275 #if defined(_NTOSKRNL_) || defined(_BLDR_)
276 #define HALDISPATCH (&HalDispatchTable)
277 #else
278 /* This is a WDK compatibility definition */
279 #define HalDispatchTable (&HalDispatchTable)
280 #define HALDISPATCH HalDispatchTable
281 #endif
282
283 #define HAL_DISPATCH_VERSION 3 /* FIXME: when to use 4? */
284 #define HalDispatchTableVersion HALDISPATCH->Version
285 #define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation
286 #define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation
287 #define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots
288 #define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus
289 #define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler
290 #define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler
291 #define HalInitPnpDriver HALDISPATCH->HalInitPnpDriver
292 #define HalInitPowerManagement HALDISPATCH->HalInitPowerManagement
293 #define HalGetDmaAdapter HALDISPATCH->HalGetDmaAdapter
294 #define HalGetInterruptTranslator HALDISPATCH->HalGetInterruptTranslator
295 #define HalStartMirroring HALDISPATCH->HalStartMirroring
296 #define HalEndMirroring HALDISPATCH->HalEndMirroring
297 #define HalMirrorPhysicalMemory HALDISPATCH->HalMirrorPhysicalMemory
298 #define HalEndOfBoot HALDISPATCH->HalEndOfBoot
299 #define HalMirrorVerify HALDISPATCH->HalMirrorVerify
300 #define HalGetCachedAcpiTable HALDISPATCH->HalGetCachedAcpiTable
301 #define HalSetPciErrorHandlerCallback HALDISPATCH->HalSetPciErrorHandlerCallback
302 #if defined(_IA64_)
303 #define HalGetErrorCapList HALDISPATCH->HalGetErrorCapList
304 #define HalInjectError HALDISPATCH->HalInjectError
305 #endif
306
307 typedef struct _HAL_BUS_INFORMATION {
308 INTERFACE_TYPE BusType;
309 BUS_DATA_TYPE ConfigurationType;
310 ULONG BusNumber;
311 ULONG Reserved;
312 } HAL_BUS_INFORMATION, *PHAL_BUS_INFORMATION;
313
314 typedef struct _HAL_PROFILE_SOURCE_INFORMATION {
315 KPROFILE_SOURCE Source;
316 BOOLEAN Supported;
317 ULONG Interval;
318 } HAL_PROFILE_SOURCE_INFORMATION, *PHAL_PROFILE_SOURCE_INFORMATION;
319
320 typedef struct _HAL_PROFILE_SOURCE_INFORMATION_EX {
321 KPROFILE_SOURCE Source;
322 BOOLEAN Supported;
323 ULONG_PTR Interval;
324 ULONG_PTR DefInterval;
325 ULONG_PTR MaxInterval;
326 ULONG_PTR MinInterval;
327 } HAL_PROFILE_SOURCE_INFORMATION_EX, *PHAL_PROFILE_SOURCE_INFORMATION_EX;
328
329 typedef struct _HAL_PROFILE_SOURCE_INTERVAL {
330 KPROFILE_SOURCE Source;
331 ULONG_PTR Interval;
332 } HAL_PROFILE_SOURCE_INTERVAL, *PHAL_PROFILE_SOURCE_INTERVAL;
333
334 typedef struct _HAL_PROFILE_SOURCE_LIST {
335 KPROFILE_SOURCE Source;
336 PWSTR Description;
337 } HAL_PROFILE_SOURCE_LIST, *PHAL_PROFILE_SOURCE_LIST;
338
339 typedef enum _HAL_DISPLAY_BIOS_INFORMATION {
340 HalDisplayInt10Bios,
341 HalDisplayEmulatedBios,
342 HalDisplayNoBios
343 } HAL_DISPLAY_BIOS_INFORMATION, *PHAL_DISPLAY_BIOS_INFORMATION;
344
345 typedef struct _HAL_POWER_INFORMATION {
346 ULONG TBD;
347 } HAL_POWER_INFORMATION, *PHAL_POWER_INFORMATION;
348
349 typedef struct _HAL_PROCESSOR_SPEED_INFO {
350 ULONG ProcessorSpeed;
351 } HAL_PROCESSOR_SPEED_INFORMATION, *PHAL_PROCESSOR_SPEED_INFORMATION;
352
353 typedef struct _HAL_CALLBACKS {
354 PCALLBACK_OBJECT SetSystemInformation;
355 PCALLBACK_OBJECT BusCheck;
356 } HAL_CALLBACKS, *PHAL_CALLBACKS;
357
358 typedef struct _HAL_PROCESSOR_FEATURE {
359 ULONG UsableFeatureBits;
360 } HAL_PROCESSOR_FEATURE;
361
362 typedef NTSTATUS
363 (NTAPI *PHALIOREADWRITEHANDLER)(
364 _In_ BOOLEAN fRead,
365 _In_ ULONG dwAddr,
366 _In_ ULONG dwSize,
367 _Inout_ PULONG pdwData);
368
369 typedef struct _HAL_AMLI_BAD_IO_ADDRESS_LIST {
370 ULONG BadAddrBegin;
371 ULONG BadAddrSize;
372 ULONG OSVersionTrigger;
373 PHALIOREADWRITEHANDLER IOHandler;
374 } HAL_AMLI_BAD_IO_ADDRESS_LIST, *PHAL_AMLI_BAD_IO_ADDRESS_LIST;
375
376 #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
377
378 typedef VOID
379 (NTAPI *PHALMCAINTERFACELOCK)(VOID);
380
381 typedef VOID
382 (NTAPI *PHALMCAINTERFACEUNLOCK)(VOID);
383
384 typedef NTSTATUS
385 (NTAPI *PHALMCAINTERFACEREADREGISTER)(
386 _In_ UCHAR BankNumber,
387 _Inout_ PVOID Exception);
388
389 typedef struct _HAL_MCA_INTERFACE {
390 PHALMCAINTERFACELOCK Lock;
391 PHALMCAINTERFACEUNLOCK Unlock;
392 PHALMCAINTERFACEREADREGISTER ReadRegister;
393 } HAL_MCA_INTERFACE;
394
395 typedef enum {
396 ApicDestinationModePhysical = 1,
397 ApicDestinationModeLogicalFlat,
398 ApicDestinationModeLogicalClustered,
399 ApicDestinationModeUnknown
400 } HAL_APIC_DESTINATION_MODE, *PHAL_APIC_DESTINATION_MODE;
401
402 #if defined(_AMD64_)
403
404 struct _KTRAP_FRAME;
405 struct _KEXCEPTION_FRAME;
406
407 typedef ERROR_SEVERITY
408 (NTAPI *PDRIVER_EXCPTN_CALLBACK)(
409 _In_ PVOID Context,
410 _In_ struct _KTRAP_FRAME *TrapFrame,
411 _In_ struct _KEXCEPTION_FRAME *ExceptionFrame,
412 _In_ PMCA_EXCEPTION Exception);
413
414 #endif
415
416 #if defined(_X86_) || defined(_IA64_)
417 typedef
418 #if defined(_IA64_)
419 ERROR_SEVERITY
420 #else
421 VOID
422 #endif
423 (NTAPI *PDRIVER_EXCPTN_CALLBACK)(
424 _In_ PVOID Context,
425 _In_ PMCA_EXCEPTION BankLog);
426 #endif
427
428 typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK;
429
430 typedef struct _MCA_DRIVER_INFO {
431 PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback;
432 PKDEFERRED_ROUTINE DpcCallback;
433 PVOID DeviceContext;
434 } MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;
435
436 typedef struct _HAL_ERROR_INFO {
437 ULONG Version;
438 ULONG InitMaxSize;
439 ULONG McaMaxSize;
440 ULONG McaPreviousEventsCount;
441 ULONG McaCorrectedEventsCount;
442 ULONG McaKernelDeliveryFails;
443 ULONG McaDriverDpcQueueFails;
444 ULONG McaReserved;
445 ULONG CmcMaxSize;
446 ULONG CmcPollingInterval;
447 ULONG CmcInterruptsCount;
448 ULONG CmcKernelDeliveryFails;
449 ULONG CmcDriverDpcQueueFails;
450 ULONG CmcGetStateFails;
451 ULONG CmcClearStateFails;
452 ULONG CmcReserved;
453 ULONGLONG CmcLogId;
454 ULONG CpeMaxSize;
455 ULONG CpePollingInterval;
456 ULONG CpeInterruptsCount;
457 ULONG CpeKernelDeliveryFails;
458 ULONG CpeDriverDpcQueueFails;
459 ULONG CpeGetStateFails;
460 ULONG CpeClearStateFails;
461 ULONG CpeInterruptSources;
462 ULONGLONG CpeLogId;
463 ULONGLONG KernelReserved[4];
464 } HAL_ERROR_INFO, *PHAL_ERROR_INFO;
465
466 #define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1)
467 #define HAL_MCE_DISABLED ((ULONG)0)
468
469 #define HAL_CMC_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
470 #define HAL_CMC_DISABLED HAL_MCE_DISABLED
471
472 #define HAL_CPE_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
473 #define HAL_CPE_DISABLED HAL_MCE_DISABLED
474
475 #define HAL_MCA_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
476 #define HAL_MCA_DISABLED HAL_MCE_DISABLED
477
478 typedef VOID
479 (NTAPI *PDRIVER_CMC_EXCEPTION_CALLBACK)(
480 _In_ PVOID Context,
481 _In_ PCMC_EXCEPTION CmcLog);
482
483 typedef VOID
484 (NTAPI *PDRIVER_CPE_EXCEPTION_CALLBACK)(
485 _In_ PVOID Context,
486 _In_ PCPE_EXCEPTION CmcLog);
487
488 typedef struct _CMC_DRIVER_INFO {
489 PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback;
490 PKDEFERRED_ROUTINE DpcCallback;
491 PVOID DeviceContext;
492 } CMC_DRIVER_INFO, *PCMC_DRIVER_INFO;
493
494 typedef struct _CPE_DRIVER_INFO {
495 PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback;
496 PKDEFERRED_ROUTINE DpcCallback;
497 PVOID DeviceContext;
498 } CPE_DRIVER_INFO, *PCPE_DRIVER_INFO;
499
500 #endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
501
502 #if defined(_IA64_)
503
504 typedef NTSTATUS
505 (*HALSENDCROSSPARTITIONIPI)(
506 _In_ USHORT ProcessorID,
507 _In_ UCHAR HardwareVector);
508
509 typedef NTSTATUS
510 (*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
511 _Out_ PULONG Vector,
512 _Out_ PKIRQL Irql,
513 _Inout_ PGROUP_AFFINITY Affinity,
514 _Out_ PUCHAR HardwareVector);
515
516 typedef VOID
517 (*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
518 _In_ ULONG Vector,
519 _In_ PGROUP_AFFINITY Affinity);
520
521 typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
522 HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
523 HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
524 HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
525 } HAL_CROSS_PARTITION_IPI_INTERFACE;
526
527 #define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \
528 FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE, \
529 HalFreeCrossPartitionInterruptVector)
530
531 #endif /* defined(_IA64_) */
532
533 typedef struct _HAL_PLATFORM_INFORMATION {
534 ULONG PlatformFlags;
535 } HAL_PLATFORM_INFORMATION, *PHAL_PLATFORM_INFORMATION;
536
537 #define HAL_PLATFORM_DISABLE_WRITE_COMBINING 0x01L
538 #define HAL_PLATFORM_DISABLE_PTCG 0x04L
539 #define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY 0x08L
540 #define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO 0x10L
541 #define HAL_PLATFORM_ACPI_TABLES_CACHED 0x20L
542
543 $endif (_NTDDK_)