1 #pragma once
2 
3 #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
4 
5 typedef union _MCI_ADDR {
6   _ANONYMOUS_STRUCT struct {
7     ULONG Address;
8     ULONG Reserved;
9   } DUMMYSTRUCTNAME;
10   ULONGLONG QuadPart;
11 } MCI_ADDR, *PMCI_ADDR;
12 
13 typedef enum {
14   HAL_MCE_RECORD,
15   HAL_MCA_RECORD
16 } MCA_EXCEPTION_TYPE;
17 
18 #if defined(_AMD64_)
19 
20 #if (NTDDI_VERSION <= NTDDI_WINXP)
21 
22 typedef union _MCI_STATS {
23   struct {
24     USHORT McaCod;
25     USHORT ModelErrorCode;
26     ULONG OtherInfo:25;
27     ULONG Damage:1;
28     ULONG AddressValid:1;
29     ULONG MiscValid:1;
30     ULONG Enabled:1;
31     ULONG Uncorrected:1;
32     ULONG OverFlow:1;
33     ULONG Valid:1;
34   } MciStatus;
35   ULONG64 QuadPart;
36 } MCI_STATS, *PMCI_STATS;
37 
38 #else
39 
40 typedef union _MCI_STATS {
41   struct {
42     USHORT McaErrorCode;
43     USHORT ModelErrorCode;
44     ULONG OtherInformation:25;
45     ULONG ContextCorrupt:1;
46     ULONG AddressValid:1;
47     ULONG MiscValid:1;
48     ULONG ErrorEnabled:1;
49     ULONG UncorrectedError:1;
50     ULONG StatusOverFlow:1;
51     ULONG Valid:1;
52   } MciStatus;
53   ULONG64 QuadPart;
54 } MCI_STATS, *PMCI_STATS;
55 
56 #endif /* (NTDDI_VERSION <= NTDDI_WINXP) */
57 
58 #endif /* defined(_AMD64_) */
59 
60 #if defined(_X86_)
61 typedef union _MCI_STATS {
62   struct {
63     USHORT McaCod;
64     USHORT MsCod;
65     ULONG OtherInfo:25;
66     ULONG Damage:1;
67     ULONG AddressValid:1;
68     ULONG MiscValid:1;
69     ULONG Enabled:1;
70     ULONG UnCorrected:1;
71     ULONG OverFlow:1;
72     ULONG Valid:1;
73   } MciStats;
74   ULONGLONG QuadPart;
75 } MCI_STATS, *PMCI_STATS;
76 #endif
77 
78 #define MCA_EXTREG_V2MAX               24
79 
80 #if defined(_X86_) || defined(_AMD64_)
81 
82 #if (NTDDI_VERSION >= NTDDI_WINXP)
83 
84 typedef struct _MCA_EXCEPTION {
85   ULONG VersionNumber;
86   MCA_EXCEPTION_TYPE ExceptionType;
87   LARGE_INTEGER TimeStamp;
88   ULONG ProcessorNumber;
89   ULONG Reserved1;
90   union {
91     struct {
92       UCHAR BankNumber;
93       UCHAR Reserved2[7];
94       MCI_STATS Status;
95       MCI_ADDR Address;
96       ULONGLONG Misc;
97     } Mca;
98     struct {
99       ULONGLONG Address;
100       ULONGLONG Type;
101     } Mce;
102   } u;
103   ULONG ExtCnt;
104   ULONG Reserved3;
105   ULONGLONG ExtReg[MCA_EXTREG_V2MAX];
106 } MCA_EXCEPTION, *PMCA_EXCEPTION;
107 
108 #else
109 
110 typedef struct _MCA_EXCEPTION {
111   ULONG VersionNumber;
112   MCA_EXCEPTION_TYPE ExceptionType;
113   LARGE_INTEGER TimeStamp;
114   ULONG ProcessorNumber;
115   ULONG Reserved1;
116   union {
117     struct {
118       UCHAR BankNumber;
119       UCHAR Reserved2[7];
120       MCI_STATS Status;
121       MCI_ADDR Address;
122       ULONGLONG Misc;
123     } Mca;
124     struct {
125       ULONGLONG Address;
126       ULONGLONG Type;
127     } Mce;
128   } u;
129 } MCA_EXCEPTION, *PMCA_EXCEPTION;
130 
131 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
132 
133 typedef MCA_EXCEPTION CMC_EXCEPTION, *PCMC_EXCEPTION;
134 typedef MCA_EXCEPTION CPE_EXCEPTION, *PCPE_EXCEPTION;
135 
136 #if (NTDDI_VERSION >= NTDDI_WINXP)
137 #define MCA_EXCEPTION_V1_SIZE FIELD_OFFSET(MCA_EXCEPTION, ExtCnt)
138 #define MCA_EXCEPTION_V2_SIZE sizeof(struct _MCA_EXCEPTION)
139 #endif
140 
141 #endif /* defined(_X86_) || defined(_AMD64_) */
142 
143 #if defined(_AMD64_) || defined(_IA64_)
144 
145 typedef UCHAR ERROR_SEVERITY, *PERROR_SEVERITY;
146 
147 typedef enum _ERROR_SEVERITY_VALUE {
148   ErrorRecoverable = 0,
149   ErrorFatal = 1,
150   ErrorCorrected = 2,
151   ErrorOthers = 3,
152 } ERROR_SEVERITY_VALUE;
153 
154 #endif
155 
156 #if defined(_IA64_)
157 
158 typedef union _ERROR_REVISION {
159   USHORT Revision;
160   _ANONYMOUS_STRUCT struct {
161     UCHAR Minor;
162     UCHAR Major;
163   } DUMMYSTRUCTNAME;
164 } ERROR_REVISION, *PERROR_REVISION;
165 
166 #if (NTDDI_VERSION > NTDDI_WINXP)
167 #define ERROR_MAJOR_REVISION_SAL_03_00      0
168 #define ERROR_MINOR_REVISION_SAL_03_00      2
169 #define ERROR_REVISION_SAL_03_00 {ERROR_MINOR_REVISION_SAL_03_00,ERROR_MAJOR_REVISION_SAL_03_00}
170 #define ERROR_FIXED_SECTION_REVISION {2,0}
171 #else
172 #define ERROR_REVISION_SAL_03_00 {2,0}
173 #endif /* (NTDDI_VERSION > NTDDI_WINXP) */
174 
175 typedef union _ERROR_TIMESTAMP {
176   ULONGLONG TimeStamp;
177   _ANONYMOUS_STRUCT struct {
178     UCHAR Seconds;
179     UCHAR Minutes;
180     UCHAR Hours;
181     UCHAR Reserved;
182     UCHAR Day;
183     UCHAR Month;
184     UCHAR Year;
185     UCHAR Century;
186   } DUMMYSTRUCTNAME;
187 } ERROR_TIMESTAMP, *PERROR_TIMESTAMP;
188 
189 typedef struct _ERROR_GUID {
190   ULONG Data1;
191   USHORT Data2;
192   USHORT Data3;
193   UCHAR Data4[8];
194 } ERROR_GUID, *PERROR_GUID;
195 
196 typedef ERROR_GUID            _ERROR_DEVICE_GUID;
197 typedef _ERROR_DEVICE_GUID    ERROR_DEVICE_GUID, *PERROR_DEVICE_GUID;
198 
199 typedef ERROR_GUID            _ERROR_PLATFORM_GUID;
200 typedef _ERROR_PLATFORM_GUID  ERROR_PLATFORM_GUID, *PERROR_PLATFORM_GUID;
201 
202 typedef union _ERROR_RECORD_VALID {
203   UCHAR Valid;
204   _ANONYMOUS_STRUCT struct {
205     UCHAR OemPlatformID:1;
206     UCHAR Reserved:7;
207   } DUMMYSTRUCTNAME;
208 } ERROR_RECORD_VALID, *PERROR_RECORD_VALID;
209 
210 typedef struct _ERROR_RECORD_HEADER {
211   ULONGLONG Id;
212   ERROR_REVISION Revision;
213   ERROR_SEVERITY ErrorSeverity;
214   ERROR_RECORD_VALID Valid;
215   ULONG Length;
216   ERROR_TIMESTAMP TimeStamp;
217   UCHAR OemPlatformId[16];
218 } ERROR_RECORD_HEADER, *PERROR_RECORD_HEADER;
219 
220 typedef union _ERROR_RECOVERY_INFO {
221   UCHAR RecoveryInfo;
222   _ANONYMOUS_STRUCT struct {
223     UCHAR Corrected:1;
224     UCHAR NotContained:1;
225     UCHAR Reset:1;
226     UCHAR Reserved:4;
227     UCHAR Valid:1;
228   } DUMMYSTRUCTNAME;
229 } ERROR_RECOVERY_INFO, *PERROR_RECOVERY_INFO;
230 
231 typedef struct _ERROR_SECTION_HEADER {
232   ERROR_DEVICE_GUID Guid;
233   ERROR_REVISION Revision;
234   ERROR_RECOVERY_INFO RecoveryInfo;
235   UCHAR Reserved;
236   ULONG Length;
237 } ERROR_SECTION_HEADER, *PERROR_SECTION_HEADER;
238 
239 #if !defined(__midl)
240 __inline
241 USHORT
242 NTAPI
GetFwMceLogProcessorNumber(PERROR_RECORD_HEADER Log)243 GetFwMceLogProcessorNumber(
244   PERROR_RECORD_HEADER Log)
245 {
246   PERROR_SECTION_HEADER section = (PERROR_SECTION_HEADER)((ULONG64)Log + sizeof(*Log));
247   USHORT lid = (USHORT)((UCHAR)(section->Reserved));
248 #ifdef NONAMELESSUNION
249   lid |= (USHORT)((UCHAR)(Log->TimeStamp.s.Reserved) << 8);
250 #else
251   lid |= (USHORT)((UCHAR)(Log->TimeStamp.Reserved) << 8);
252 #endif
253   return( lid );
254 }
255 #endif /* !__midl */
256 
257 #define ERROR_PROCESSOR_GUID {0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
258 
259 typedef union _ERROR_MODINFO_VALID {
260   ULONGLONG Valid;
261   _ANONYMOUS_STRUCT struct {
262     ULONGLONG CheckInfo:1;
263     ULONGLONG RequestorIdentifier:1;
264     ULONGLONG ResponderIdentifier:1;
265     ULONGLONG TargetIdentifier:1;
266     ULONGLONG PreciseIP:1;
267     ULONGLONG Reserved:59;
268   } DUMMYSTRUCTNAME;
269 } ERROR_MODINFO_VALID, *PERROR_MODINFO_VALID;
270 
271 typedef enum _ERROR_CHECK_IS {
272   isIA64 = 0,
273   isIA32 = 1,
274 } ERROR_CHECK_IS;
275 
276 typedef enum _ERROR_CACHE_CHECK_OPERATION {
277   CacheUnknownOp = 0,
278   CacheLoad = 1,
279   CacheStore = 2,
280   CacheInstructionFetch = 3,
281   CacheDataPrefetch = 4,
282   CacheSnoop = 5,
283   CacheCastOut = 6,
284   CacheMoveIn = 7,
285 } ERROR_CACHE_CHECK_OPERATION;
286 
287 typedef enum _ERROR_CACHE_CHECK_MESI {
288   CacheInvalid = 0,
289   CacheHeldShared = 1,
290   CacheHeldExclusive = 2,
291   CacheModified = 3,
292 } ERROR_CACHE_CHECK_MESI;
293 
294 #if (NTDDI_VERSION >= NTDDI_VISTA)
295 
296 typedef union _ERROR_CACHE_CHECK {
297   ULONGLONG CacheCheck;
298   _ANONYMOUS_STRUCT struct {
299     ULONGLONG Operation:4;
300     ULONGLONG Level:2;
301     ULONGLONG Reserved1:2;
302     ULONGLONG DataLine:1;
303     ULONGLONG TagLine:1;
304     ULONGLONG DataCache:1;
305     ULONGLONG InstructionCache:1;
306     ULONGLONG MESI:3;
307     ULONGLONG MESIValid:1;
308     ULONGLONG Way:5;
309     ULONGLONG WayIndexValid:1;
310     ULONGLONG Reserved2:1;
311     ULONGLONG DP:1;
312     ULONGLONG Reserved3:8;
313     ULONGLONG Index:20;
314     ULONGLONG Reserved4:2;
315     ULONGLONG InstructionSet:1;
316     ULONGLONG InstructionSetValid:1;
317     ULONGLONG PrivilegeLevel:2;
318     ULONGLONG PrivilegeLevelValid:1;
319     ULONGLONG MachineCheckCorrected:1;
320     ULONGLONG TargetAddressValid:1;
321     ULONGLONG RequestIdValid:1;
322     ULONGLONG ResponderIdValid:1;
323     ULONGLONG PreciseIPValid:1;
324   } DUMMYSTRUCTNAME;
325 } ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
326 
327 # else
328 
329 typedef union _ERROR_CACHE_CHECK {
330   ULONGLONG CacheCheck;
331   _ANONYMOUS_STRUCT struct {
332     ULONGLONG Operation:4;
333     ULONGLONG Level:2;
334     ULONGLONG Reserved1:2;
335     ULONGLONG DataLine:1;
336     ULONGLONG TagLine:1;
337     ULONGLONG DataCache:1;
338     ULONGLONG InstructionCache:1;
339     ULONGLONG MESI:3;
340     ULONGLONG MESIValid:1;
341     ULONGLONG Way:5;
342     ULONGLONG WayIndexValid:1;
343     ULONGLONG Reserved2:10;
344     ULONGLONG Index:20;
345     ULONGLONG Reserved3:2;
346     ULONGLONG InstructionSet:1;
347     ULONGLONG InstructionSetValid:1;
348     ULONGLONG PrivilegeLevel:2;
349     ULONGLONG PrivilegeLevelValid:1;
350     ULONGLONG MachineCheckCorrected:1;
351     ULONGLONG TargetAddressValid:1;
352     ULONGLONG RequestIdValid:1;
353     ULONGLONG ResponderIdValid:1;
354     ULONGLONG PreciseIPValid:1;
355   } DUMMYSTRUCTNAME;
356 } ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
357 
358 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
359 
360 typedef enum _ERROR_TLB_CHECK_OPERATION {
361   TlbUnknownOp = 0,
362   TlbAccessWithLoad = 1,
363   TlbAccessWithStore = 2,
364   TlbAccessWithInstructionFetch = 3,
365   TlbAccessWithDataPrefetch = 4,
366   TlbShootDown = 5,
367   TlbProbe = 6,
368   TlbVhptFill = 7,
369   TlbPurge = 8,
370 } ERROR_TLB_CHECK_OPERATION;
371 
372 typedef union _ERROR_TLB_CHECK {
373   ULONGLONG TlbCheck;
374   _ANONYMOUS_STRUCT struct {
375     ULONGLONG TRSlot:8;
376     ULONGLONG TRSlotValid:1;
377     ULONGLONG Reserved1:1;
378     ULONGLONG Level:2;
379     ULONGLONG Reserved2:4;
380     ULONGLONG DataTransReg:1;
381     ULONGLONG InstructionTransReg:1;
382     ULONGLONG DataTransCache:1;
383     ULONGLONG InstructionTransCache:1;
384     ULONGLONG Operation:4;
385     ULONGLONG Reserved3:30;
386     ULONGLONG InstructionSet:1;
387     ULONGLONG InstructionSetValid:1;
388     ULONGLONG PrivilegeLevel:2;
389     ULONGLONG PrivilegeLevelValid:1;
390     ULONGLONG MachineCheckCorrected:1;
391     ULONGLONG TargetAddressValid:1;
392     ULONGLONG RequestIdValid:1;
393     ULONGLONG ResponderIdValid:1;
394     ULONGLONG PreciseIPValid:1;
395   } DUMMYSTRUCTNAME;
396 } ERROR_TLB_CHECK, *PERROR_TLB_CHECK;
397 
398 typedef enum _ERROR_BUS_CHECK_OPERATION {
399   BusUnknownOp = 0,
400   BusPartialRead = 1,
401   BusPartialWrite = 2,
402   BusFullLineRead = 3,
403   BusFullLineWrite = 4,
404   BusWriteBack = 5,
405   BusSnoopProbe = 6,
406   BusIncomingPtcG = 7,
407   BusWriteCoalescing = 8,
408 } ERROR_BUS_CHECK_OPERATION;
409 
410 #if (NTDDI_VERSION >= NTDDI_VISTA)
411 
412 typedef union _ERROR_BUS_CHECK {
413   ULONGLONG BusCheck;
414   _ANONYMOUS_STRUCT struct {
415     ULONGLONG Size:5;
416     ULONGLONG Internal:1;
417     ULONGLONG External:1;
418     ULONGLONG CacheTransfer:1;
419     ULONGLONG Type:8;
420     ULONGLONG Severity:5;
421     ULONGLONG Hierarchy:2;
422     ULONGLONG DP:1;
423     ULONGLONG Status:8;
424     ULONGLONG Reserved1:22;
425     ULONGLONG InstructionSet:1;
426     ULONGLONG InstructionSetValid:1;
427     ULONGLONG PrivilegeLevel:2;
428     ULONGLONG PrivilegeLevelValid:1;
429     ULONGLONG MachineCheckCorrected:1;
430     ULONGLONG TargetAddressValid:1;
431     ULONGLONG RequestIdValid:1;
432     ULONGLONG ResponderIdValid:1;
433     ULONGLONG PreciseIPValid:1;
434   } DUMMYSTRUCTNAME;
435 } ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
436 
437 #else
438 
439 typedef union _ERROR_BUS_CHECK {
440   ULONGLONG BusCheck;
441   _ANONYMOUS_STRUCT struct {
442     ULONGLONG Size:5;
443     ULONGLONG Internal:1;
444     ULONGLONG External:1;
445     ULONGLONG CacheTransfer:1;
446     ULONGLONG Type:8;
447     ULONGLONG Severity:5;
448     ULONGLONG Hierarchy:2;
449     ULONGLONG Reserved1:1;
450     ULONGLONG Status:8;
451     ULONGLONG Reserved2:22;
452     ULONGLONG InstructionSet:1;
453     ULONGLONG InstructionSetValid:1;
454     ULONGLONG PrivilegeLevel:2;
455     ULONGLONG PrivilegeLevelValid:1;
456     ULONGLONG MachineCheckCorrected:1;
457     ULONGLONG TargetAddressValid:1;
458     ULONGLONG RequestIdValid:1;
459     ULONGLONG ResponderIdValid:1;
460     ULONGLONG PreciseIPValid:1;
461   } DUMMYSTRUCTNAME;
462 } ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
463 
464 #endif
465 
466 typedef enum _ERROR_REGFILE_CHECK_IDENTIFIER {
467   RegFileUnknownId = 0,
468   GeneralRegisterBank1 = 1,
469   GeneralRegisterBank0 = 2,
470   FloatingPointRegister = 3,
471   BranchRegister = 4,
472   PredicateRegister = 5,
473   ApplicationRegister = 6,
474   ControlRegister = 7,
475   RegionRegister = 8,
476   ProtectionKeyRegister = 9,
477   DataBreakPointRegister = 10,
478   InstructionBreakPointRegister = 11,
479   PerformanceMonitorControlRegister = 12,
480   PerformanceMonitorDataRegister = 13,
481 } ERROR_REGFILE_CHECK_IDENTIFIER;
482 
483 typedef enum _ERROR_REGFILE_CHECK_OPERATION {
484   RegFileUnknownOp = 0,
485   RegFileRead = 1,
486   RegFileWrite = 2,
487 } ERROR_REGFILE_CHECK_OPERATION;
488 
489 typedef union _ERROR_REGFILE_CHECK {
490   ULONGLONG RegFileCheck;
491   _ANONYMOUS_STRUCT struct {
492     ULONGLONG Identifier:4;
493     ULONGLONG Operation:4;
494     ULONGLONG RegisterNumber:7;
495     ULONGLONG RegisterNumberValid:1;
496     ULONGLONG Reserved1:38;
497     ULONGLONG InstructionSet:1;
498     ULONGLONG InstructionSetValid:1;
499     ULONGLONG PrivilegeLevel:2;
500     ULONGLONG PrivilegeLevelValid:1;
501     ULONGLONG MachineCheckCorrected:1;
502     ULONGLONG Reserved2:3;
503     ULONGLONG PreciseIPValid:1;
504   } DUMMYSTRUCTNAME;
505 } ERROR_REGFILE_CHECK, *PERROR_REGFILE_CHECK;
506 
507 #if (NTDDK_VERSION <= WINXP)
508 typedef enum _ERROR_MS_CHECK_OPERATION {
509   MsUnknownOp = 0,
510   MsReadOrLoad = 1,
511   MsWriteOrStore = 2
512 } ERROR_MS_CHECK_OPERATION;
513 #else
514 typedef enum _ERROR_MS_CHECK_OPERATION {
515   MsUnknownOp = 0,
516   MsReadOrLoad = 1,
517   MsWriteOrStore = 2,
518   MsOverTemperature = 3,
519   MsNormalTemperature = 4
520 } ERROR_MS_CHECK_OPERATION;
521 #endif
522 
523 typedef union _ERROR_MS_CHECK {
524   ULONGLONG MsCheck;
525   _ANONYMOUS_STRUCT struct {
526     ULONGLONG StructureIdentifier:5;
527     ULONGLONG Level:3;
528     ULONGLONG ArrayId:4;
529     ULONGLONG Operation:4;
530     ULONGLONG Way:6;
531     ULONGLONG WayValid:1;
532     ULONGLONG IndexValid:1;
533     ULONGLONG Reserved1:8;
534     ULONGLONG Index:8;
535     ULONGLONG Reserved2:14;
536     ULONGLONG InstructionSet:1;
537     ULONGLONG InstructionSetValid:1;
538     ULONGLONG PrivilegeLevel:2;
539     ULONGLONG PrivilegeLevelValid:1;
540     ULONGLONG MachineCheckCorrected:1;
541     ULONGLONG TargetAddressValid:1;
542     ULONGLONG RequestIdValid:1;
543     ULONGLONG ResponderIdValid:1;
544     ULONGLONG PreciseIPValid:1;
545   } DUMMYSTRUCTNAME;
546 } ERROR_MS_CHECK, *PERROR_MS_CHECK;
547 
548 typedef union _ERROR_CHECK_INFO {
549   ULONGLONG CheckInfo;
550   ERROR_CACHE_CHECK CacheCheck;
551   ERROR_TLB_CHECK TlbCheck;
552   ERROR_BUS_CHECK BusCheck;
553   ERROR_REGFILE_CHECK RegFileCheck;
554   ERROR_MS_CHECK MsCheck;
555 } ERROR_CHECK_INFO, *PERROR_CHECK_INFO;
556 
557 typedef struct _ERROR_MODINFO {
558   ERROR_MODINFO_VALID Valid;
559   ERROR_CHECK_INFO CheckInfo;
560   ULONGLONG RequestorId;
561   ULONGLONG ResponderId;
562   ULONGLONG TargetId;
563   ULONGLONG PreciseIP;
564 } ERROR_MODINFO, *PERROR_MODINFO;
565 
566 typedef union _ERROR_PROCESSOR_VALID {
567   ULONGLONG Valid;
568   _ANONYMOUS_STRUCT struct {
569     ULONGLONG ErrorMap:1;
570     ULONGLONG StateParameter:1;
571     ULONGLONG CRLid:1;
572     ULONGLONG StaticStruct:1;
573     ULONGLONG CacheCheckNum:4;
574     ULONGLONG TlbCheckNum:4;
575     ULONGLONG BusCheckNum:4;
576     ULONGLONG RegFileCheckNum:4;
577     ULONGLONG MsCheckNum:4;
578     ULONGLONG CpuIdInfo:1;
579     ULONGLONG Reserved:39;
580   } DUMMYSTRUCTNAME;
581 } ERROR_PROCESSOR_VALID, *PERROR_PROCESSOR_VALID;
582 
583 typedef union _ERROR_PROCESSOR_ERROR_MAP {
584   ULONGLONG ErrorMap;
585   _ANONYMOUS_STRUCT struct {
586     ULONGLONG   Cid:4;
587     ULONGLONG   Tid:4;
588     ULONGLONG   Eic:4;
589     ULONGLONG   Edc:4;
590     ULONGLONG   Eit:4;
591     ULONGLONG   Edt:4;
592     ULONGLONG   Ebh:4;
593     ULONGLONG   Erf:4;
594     ULONGLONG   Ems:16;
595     ULONGLONG   Reserved:16;
596   } DUMMYSTRUCTNAME;
597 } ERROR_PROCESSOR_ERROR_MAP, *PERROR_PROCESSOR_ERROR_MAP;
598 
599 typedef ERROR_PROCESSOR_ERROR_MAP    _ERROR_PROCESSOR_LEVEL_INDEX;
600 typedef _ERROR_PROCESSOR_LEVEL_INDEX ERROR_PROCESSOR_LEVEL_INDEX, *PERROR_PROCESSOR_LEVEL_INDEX;
601 
602 typedef union _ERROR_PROCESSOR_STATE_PARAMETER {
603   ULONGLONG   StateParameter;
604   _ANONYMOUS_STRUCT struct {
605     ULONGLONG reserved0:2;
606     ULONGLONG rz:1;
607     ULONGLONG ra:1;
608     ULONGLONG me:1;
609     ULONGLONG mn:1;
610     ULONGLONG sy:1;
611     ULONGLONG co:1;
612     ULONGLONG ci:1;
613     ULONGLONG us:1;
614     ULONGLONG hd:1;
615     ULONGLONG tl:1;
616     ULONGLONG mi:1;
617     ULONGLONG pi:1;
618     ULONGLONG pm:1;
619     ULONGLONG dy:1;
620     ULONGLONG in:1;
621     ULONGLONG rs:1;
622     ULONGLONG cm:1;
623     ULONGLONG ex:1;
624     ULONGLONG cr:1;
625     ULONGLONG pc:1;
626     ULONGLONG dr:1;
627     ULONGLONG tr:1;
628     ULONGLONG rr:1;
629     ULONGLONG ar:1;
630     ULONGLONG br:1;
631     ULONGLONG pr:1;
632     ULONGLONG fp:1;
633     ULONGLONG b1:1;
634     ULONGLONG b0:1;
635     ULONGLONG gr:1;
636     ULONGLONG dsize:16;
637     ULONGLONG reserved1:11;
638     ULONGLONG cc:1;
639     ULONGLONG tc:1;
640     ULONGLONG bc:1;
641     ULONGLONG rc:1;
642     ULONGLONG uc:1;
643   } DUMMYSTRUCTNAME;
644 } ERROR_PROCESSOR_STATE_PARAMETER, *PERROR_PROCESSOR_STATE_PARAMETER;
645 
646 typedef union _PROCESSOR_LOCAL_ID {
647   ULONGLONG LocalId;
648   _ANONYMOUS_STRUCT struct {
649     ULONGLONG reserved:16;
650     ULONGLONG eid:8;
651     ULONGLONG id:8;
652     ULONGLONG ignored:32;
653   } DUMMYSTRUCTNAME;
654 } PROCESSOR_LOCAL_ID, *PPROCESSOR_LOCAL_ID;
655 
656 typedef struct _ERROR_PROCESSOR_MS {
657   ULONGLONG MsError[1];
658 } ERROR_PROCESSOR_MS, *PERROR_PROCESSOR_MS;
659 
660 typedef struct _ERROR_PROCESSOR_CPUID_INFO {
661   ULONGLONG CpuId0;
662   ULONGLONG CpuId1;
663   ULONGLONG CpuId2;
664   ULONGLONG CpuId3;
665   ULONGLONG CpuId4;
666   ULONGLONG Reserved;
667 } ERROR_PROCESSOR_CPUID_INFO, *PERROR_PROCESSOR_CPUID_INFO;
668 
669 typedef union _ERROR_PROCESSOR_STATIC_INFO_VALID {
670   ULONGLONG Valid;
671   _ANONYMOUS_STRUCT struct {
672     ULONGLONG MinState:1;
673     ULONGLONG BR:1;
674     ULONGLONG CR:1;
675     ULONGLONG AR:1;
676     ULONGLONG RR:1;
677     ULONGLONG FR:1;
678     ULONGLONG Reserved:58;
679   } DUMMYSTRUCTNAME;
680 } ERROR_PROCESSOR_STATIC_INFO_VALID, *PERROR_PROCESSOR_STATIC_INFO_VALID;
681 
682 typedef struct _ERROR_PROCESSOR_STATIC_INFO {
683   ERROR_PROCESSOR_STATIC_INFO_VALID Valid;
684   UCHAR MinState[1024];
685   ULONGLONG BR[8];
686   ULONGLONG CR[128];
687   ULONGLONG AR[128];
688   ULONGLONG RR[8];
689   ULONGLONG FR[2 * 128];
690 } ERROR_PROCESSOR_STATIC_INFO, *PERROR_PROCESSOR_STATIC_INFO;
691 
692 typedef struct _ERROR_PROCESSOR {
693   ERROR_SECTION_HEADER Header;
694   ERROR_PROCESSOR_VALID Valid;
695   ERROR_PROCESSOR_ERROR_MAP ErrorMap;
696   ERROR_PROCESSOR_STATE_PARAMETER StateParameter;
697   PROCESSOR_LOCAL_ID CRLid;
698 } ERROR_PROCESSOR, *PERROR_PROCESSOR;
699 
700 #define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_SHIFT         59
701 #define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_MASK          0x1
702 #define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_SHIFT           60
703 #define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_MASK            0x1
704 #define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_SHIFT           61
705 #define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_MASK            0x1
706 #define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_SHIFT           62
707 #define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_MASK            0x1
708 #define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT     63
709 #define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK      0x1
710 
711 #define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_SHIFT       ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT
712 #define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_MASK        ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK
713 
714 typedef enum _ERR_TYPES {
715   ERR_INTERNAL = 1,
716   ERR_BUS = 16,
717   ERR_MEM = 4,
718   ERR_TLB = 5,
719   ERR_CACHE = 6,
720   ERR_FUNCTION = 7,
721   ERR_SELFTEST = 8,
722   ERR_FLOW = 9,
723   ERR_MAP = 17,
724   ERR_IMPROPER = 18,
725   ERR_UNIMPL = 19,
726   ERR_LOL = 20,
727   ERR_RESPONSE = 21,
728   ERR_PARITY = 22,
729   ERR_PROTOCOL = 23,
730   ERR_ERROR = 24,
731   ERR_TIMEOUT = 25,
732   ERR_POISONED = 26,
733 } _ERR_TYPE;
734 
735 typedef union _ERROR_STATUS {
736   ULONGLONG Status;
737   _ANONYMOUS_STRUCT struct {
738     ULONGLONG Reserved0:8;
739     ULONGLONG Type:8;
740     ULONGLONG Address:1;
741     ULONGLONG Control:1;
742     ULONGLONG Data:1;
743     ULONGLONG Responder:1;
744     ULONGLONG Requestor:1;
745     ULONGLONG FirstError:1;
746     ULONGLONG Overflow:1;
747     ULONGLONG Reserved1:41;
748   } DUMMYSTRUCTNAME;
749 } ERROR_STATUS, *PERROR_STATUS;
750 
751 typedef struct _ERROR_OEM_DATA {
752   USHORT Length;
753 } ERROR_OEM_DATA, *PERROR_OEM_DATA;
754 
755 typedef union _ERROR_BUS_SPECIFIC_DATA {
756   ULONGLONG BusSpecificData;
757   _ANONYMOUS_STRUCT struct {
758     ULONGLONG LockAsserted:1;
759     ULONGLONG DeferLogged:1;
760     ULONGLONG IOQEmpty:1;
761     ULONGLONG DeferredTransaction:1;
762     ULONGLONG RetriedTransaction:1;
763     ULONGLONG MemoryClaimedTransaction:1;
764     ULONGLONG IOClaimedTransaction:1;
765     ULONGLONG ResponseParitySignal:1;
766     ULONGLONG DeferSignal:1;
767     ULONGLONG HitMSignal:1;
768     ULONGLONG HitSignal:1;
769     ULONGLONG RequestBusFirstCycle:6;
770     ULONGLONG RequestBusSecondCycle:6;
771     ULONGLONG AddressParityBusFirstCycle:2;
772     ULONGLONG AddressParityBusSecondCycle:2;
773     ULONGLONG ResponseBus:3;
774     ULONGLONG RequestParitySignalFirstCycle:1;
775     ULONGLONG RequestParitySignalSecondCycle:1;
776     ULONGLONG Reserved:32;
777   } DUMMYSTRUCTNAME;
778 } ERROR_BUS_SPECIFIC_DATA, *PERROR_BUS_SPECIFIC_DATA;
779 
780 #define ERROR_MEMORY_GUID {0xe429faf2, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
781 
782 typedef union _ERROR_MEMORY_VALID {
783   ULONGLONG Valid;
784   _ANONYMOUS_STRUCT struct {
785     ULONGLONG ErrorStatus:1;
786     ULONGLONG PhysicalAddress:1;
787     ULONGLONG AddressMask:1;
788     ULONGLONG Node:1;
789     ULONGLONG Card:1;
790     ULONGLONG Module:1;
791     ULONGLONG Bank:1;
792     ULONGLONG Device:1;
793     ULONGLONG Row:1;
794     ULONGLONG Column:1;
795     ULONGLONG BitPosition:1;
796     ULONGLONG RequestorId:1;
797     ULONGLONG ResponderId:1;
798     ULONGLONG TargetId:1;
799     ULONGLONG BusSpecificData:1;
800     ULONGLONG OemId:1;
801     ULONGLONG OemData:1;
802     ULONGLONG Reserved:47;
803   } DUMMYSTRUCTNAME;
804 } ERROR_MEMORY_VALID, *PERROR_MEMORY_VALID;
805 
806 typedef struct _ERROR_MEMORY {
807   ERROR_SECTION_HEADER Header;
808   ERROR_MEMORY_VALID Valid;
809   ERROR_STATUS ErrorStatus;
810   ULONGLONG PhysicalAddress;
811   ULONGLONG PhysicalAddressMask;
812   USHORT Node;
813   USHORT Card;
814   USHORT Module;
815   USHORT Bank;
816   USHORT Device;
817   USHORT Row;
818   USHORT Column;
819   USHORT BitPosition;
820   ULONGLONG RequestorId;
821   ULONGLONG ResponderId;
822   ULONGLONG TargetId;
823   ULONGLONG BusSpecificData;
824   UCHAR OemId[16];
825   ERROR_OEM_DATA OemData;
826 } ERROR_MEMORY, *PERROR_MEMORY;
827 
828 #define ERROR_PCI_BUS_GUID {0xe429faf4, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
829 
830 typedef union _ERROR_PCI_BUS_VALID {
831   ULONGLONG Valid;
832   _ANONYMOUS_STRUCT struct {
833     ULONGLONG ErrorStatus:1;
834     ULONGLONG ErrorType:1;
835     ULONGLONG Id:1;
836     ULONGLONG Address:1;
837     ULONGLONG Data:1;
838     ULONGLONG CmdType:1;
839     ULONGLONG RequestorId:1;
840     ULONGLONG ResponderId:1;
841     ULONGLONG TargetId:1;
842     ULONGLONG OemId:1;
843     ULONGLONG OemData:1;
844     ULONGLONG Reserved:53;
845   } DUMMYSTRUCTNAME;
846 } ERROR_PCI_BUS_VALID, *PERROR_PCI_BUS_VALID;
847 
848 typedef struct _ERROR_PCI_BUS_TYPE {
849   UCHAR Type;
850   UCHAR Reserved;
851 } ERROR_PCI_BUS_TYPE, *PERROR_PCI_BUS_TYPE;
852 
853 #define PciBusUnknownError       ((UCHAR)0)
854 #define PciBusDataParityError    ((UCHAR)1)
855 #define PciBusSystemError        ((UCHAR)2)
856 #define PciBusMasterAbort        ((UCHAR)3)
857 #define PciBusTimeOut            ((UCHAR)4)
858 #define PciMasterDataParityError ((UCHAR)5)
859 #define PciAddressParityError    ((UCHAR)6)
860 #define PciCommandParityError    ((UCHAR)7)
861 
862 typedef struct _ERROR_PCI_BUS_ID {
863   UCHAR BusNumber;
864   UCHAR SegmentNumber;
865 } ERROR_PCI_BUS_ID, *PERROR_PCI_BUS_ID;
866 
867 typedef struct _ERROR_PCI_BUS {
868   ERROR_SECTION_HEADER Header;
869   ERROR_PCI_BUS_VALID Valid;
870   ERROR_STATUS ErrorStatus;
871   ERROR_PCI_BUS_TYPE Type;
872   ERROR_PCI_BUS_ID Id;
873   UCHAR Reserved[4];
874   ULONGLONG Address;
875   ULONGLONG Data;
876   ULONGLONG CmdType;
877   ULONGLONG RequestorId;
878   ULONGLONG ResponderId;
879   ULONGLONG TargetId;
880   UCHAR OemId[16];
881   ERROR_OEM_DATA OemData;
882 } ERROR_PCI_BUS, *PERROR_PCI_BUS;
883 
884 #define ERROR_PCI_COMPONENT_GUID {0xe429faf6, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
885 
886 typedef union _ERROR_PCI_COMPONENT_VALID {
887   ULONGLONG Valid;
888   _ANONYMOUS_STRUCT struct {
889     ULONGLONG ErrorStatus:1;
890     ULONGLONG Info:1;
891     ULONGLONG MemoryMappedRegistersPairs:1;
892     ULONGLONG ProgrammedIORegistersPairs:1;
893     ULONGLONG RegistersDataPairs:1;
894     ULONGLONG OemData:1;
895     ULONGLONG Reserved:58;
896   } DUMMYSTRUCTNAME;
897 } ERROR_PCI_COMPONENT_VALID, *PERROR_PCI_COMPONENT_VALID;
898 
899 typedef struct _ERROR_PCI_COMPONENT_INFO {
900   USHORT VendorId;
901   USHORT DeviceId;
902   UCHAR ClassCodeInterface;
903   UCHAR ClassCodeSubClass;
904   UCHAR ClassCodeBaseClass;
905   UCHAR FunctionNumber;
906   UCHAR DeviceNumber;
907   UCHAR BusNumber;
908   UCHAR SegmentNumber;
909   UCHAR Reserved0;
910   ULONG Reserved1;
911 } ERROR_PCI_COMPONENT_INFO, *PERROR_PCI_COMPONENT_INFO;
912 
913 typedef struct _ERROR_PCI_COMPONENT {
914   ERROR_SECTION_HEADER Header;
915   ERROR_PCI_COMPONENT_VALID Valid;
916   ERROR_STATUS ErrorStatus;
917   ERROR_PCI_COMPONENT_INFO Info;
918   ULONG MemoryMappedRegistersPairs;
919   ULONG ProgrammedIORegistersPairs;
920 } ERROR_PCI_COMPONENT, *PERROR_PCI_COMPONENT;
921 
922 #define ERROR_SYSTEM_EVENT_LOG_GUID {0xe429faf3, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
923 
924 typedef union _ERROR_SYSTEM_EVENT_LOG_VALID {
925   ULONGLONG Valid;
926   _ANONYMOUS_STRUCT struct {
927     ULONGLONG RecordId:1;
928     ULONGLONG RecordType:1;
929     ULONGLONG GeneratorId:1;
930     ULONGLONG EVMRev:1;
931     ULONGLONG SensorType:1;
932     ULONGLONG SensorNum:1;
933     ULONGLONG EventDirType:1;
934     ULONGLONG EventData1:1;
935     ULONGLONG EventData2:1;
936     ULONGLONG EventData3:1;
937     ULONGLONG Reserved:54;
938   } DUMMYSTRUCTNAME;
939 } ERROR_SYSTEM_EVENT_LOG_VALID, *PSYSTEM_EVENT_LOG_VALID;
940 
941 typedef struct _ERROR_SYSTEM_EVENT_LOG {
942   ERROR_SECTION_HEADER Header;
943   ERROR_SYSTEM_EVENT_LOG_VALID Valid;
944   USHORT RecordId;
945   UCHAR RecordType;
946   ULONG TimeStamp;
947   USHORT GeneratorId;
948   UCHAR EVMRevision;
949   UCHAR SensorType;
950   UCHAR SensorNumber;
951   UCHAR EventDir;
952   UCHAR Data1;
953   UCHAR Data2;
954   UCHAR Data3;
955 } ERROR_SYSTEM_EVENT_LOG, *PERROR_SYSTEM_EVENT_LOG;
956 
957 #define ERROR_SMBIOS_GUID {0xe429faf5, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
958 
959 typedef union _ERROR_SMBIOS_VALID {
960   ULONGLONG Valid;
961   _ANONYMOUS_STRUCT struct {
962     ULONGLONG EventType:1;
963     ULONGLONG Length:1;
964     ULONGLONG TimeStamp:1;
965     ULONGLONG OemData:1;
966     ULONGLONG Reserved:60;
967   } DUMMYSTRUCTNAME;
968 } ERROR_SMBIOS_VALID, *PERROR_SMBIOS_VALID;
969 
970 typedef UCHAR ERROR_SMBIOS_EVENT_TYPE, *PERROR_SMBIOS_EVENT_TYPE;
971 
972 typedef struct _ERROR_SMBIOS {
973   ERROR_SECTION_HEADER Header;
974   ERROR_SMBIOS_VALID Valid;
975   ERROR_SMBIOS_EVENT_TYPE EventType;
976   UCHAR Length;
977   ERROR_TIMESTAMP TimeStamp;
978   ERROR_OEM_DATA OemData;
979 } ERROR_SMBIOS, *PERROR_SMBIOS;
980 
981 #define ERROR_PLATFORM_SPECIFIC_GUID {0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
982 
983 typedef union _ERROR_PLATFORM_SPECIFIC_VALID {
984   ULONGLONG Valid;
985   _ANONYMOUS_STRUCT struct {
986     ULONGLONG ErrorStatus:1;
987     ULONGLONG RequestorId:1;
988     ULONGLONG ResponderId:1;
989     ULONGLONG TargetId:1;
990     ULONGLONG BusSpecificData:1;
991     ULONGLONG OemId:1;
992     ULONGLONG OemData:1;
993     ULONGLONG OemDevicePath:1;
994     ULONGLONG Reserved:56;
995   } DUMMYSTRUCTNAME;
996 } ERROR_PLATFORM_SPECIFIC_VALID, *PERROR_PLATFORM_SPECIFIC_VALID;
997 
998 typedef struct _ERROR_PLATFORM_SPECIFIC {
999   ERROR_SECTION_HEADER Header;
1000   ERROR_PLATFORM_SPECIFIC_VALID Valid;
1001   ERROR_STATUS ErrorStatus;
1002   ULONGLONG RequestorId;
1003   ULONGLONG ResponderId;
1004   ULONGLONG TargetId;
1005   ERROR_BUS_SPECIFIC_DATA BusSpecificData;
1006   UCHAR OemId[16];
1007   ERROR_OEM_DATA OemData;
1008 } ERROR_PLATFORM_SPECIFIC, *PERROR_PLATFORM_SPECIFIC;
1009 
1010 #define ERROR_PLATFORM_BUS_GUID {0xe429faf9, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
1011 
1012 typedef union _ERROR_PLATFORM_BUS_VALID {
1013   ULONGLONG Valid;
1014   _ANONYMOUS_STRUCT struct {
1015     ULONGLONG ErrorStatus:1;
1016     ULONGLONG RequestorId:1;
1017     ULONGLONG ResponderId:1;
1018     ULONGLONG TargetId:1;
1019     ULONGLONG BusSpecificData:1;
1020     ULONGLONG OemId:1;
1021     ULONGLONG OemData:1;
1022     ULONGLONG OemDevicePath:1;
1023     ULONGLONG Reserved:56;
1024   } DUMMYSTRUCTNAME;
1025 } ERROR_PLATFORM_BUS_VALID, *PERROR_PLATFORM_BUS_VALID;
1026 
1027 typedef struct _ERROR_PLATFORM_BUS {
1028   ERROR_SECTION_HEADER Header;
1029   ERROR_PLATFORM_BUS_VALID Valid;
1030   ERROR_STATUS ErrorStatus;
1031   ULONGLONG RequestorId;
1032   ULONGLONG ResponderId;
1033   ULONGLONG TargetId;
1034   ERROR_BUS_SPECIFIC_DATA BusSpecificData;
1035   UCHAR OemId[16];
1036   ERROR_OEM_DATA OemData;
1037 } ERROR_PLATFORM_BUS, *PERROR_PLATFORM_BUS;
1038 
1039 #define ERROR_PLATFORM_HOST_CONTROLLER_GUID {0xe429faf8, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
1040 
1041 typedef union _ERROR_PLATFORM_HOST_CONTROLLER_VALID {
1042   ULONGLONG Valid;
1043   _ANONYMOUS_STRUCT struct {
1044     ULONGLONG ErrorStatus:1;
1045     ULONGLONG RequestorId:1;
1046     ULONGLONG ResponderId:1;
1047     ULONGLONG TargetId:1;
1048     ULONGLONG BusSpecificData:1;
1049     ULONGLONG OemId:1;
1050     ULONGLONG OemData:1;
1051     ULONGLONG OemDevicePath:1;
1052     ULONGLONG Reserved:56;
1053   } DUMMYSTRUCTNAME;
1054 } ERROR_PLATFORM_HOST_CONTROLLER_VALID, *PERROR_PLATFORM_HOST_CONTROLLER_VALID;
1055 
1056 typedef struct _ERROR_PLATFORM_HOST_CONTROLLER {
1057   ERROR_SECTION_HEADER Header;
1058   ERROR_PCI_COMPONENT_VALID Valid;
1059   ERROR_STATUS ErrorStatus;
1060   ULONGLONG RequestorId;
1061   ULONGLONG ResponderId;
1062   ULONGLONG TargetId;
1063   ERROR_BUS_SPECIFIC_DATA BusSpecificData;
1064   UCHAR OemId[16];
1065   ERROR_OEM_DATA OemData;
1066 } ERROR_PLATFORM_HOST_CONTROLLER, *PERROR_PLATFORM_HOST_CONTROLLER;
1067 
1068 typedef ERROR_RECORD_HEADER ERROR_LOGRECORD, *PERROR_LOGRECORD;
1069 typedef ERROR_RECORD_HEADER MCA_EXCEPTION, *PMCA_EXCEPTION;
1070 typedef ERROR_RECORD_HEADER CMC_EXCEPTION, *PCMC_EXCEPTION;
1071 typedef ERROR_RECORD_HEADER CPE_EXCEPTION, *PCPE_EXCEPTION;
1072 #if (NTDDI_VERSION > NTDDI_WINXP)
1073 typedef ERROR_RECORD_HEADER INIT_EXCEPTION, *PINIT_EXCEPTION;
1074 #endif
1075 
1076 #endif /* defined(_IA64_) */
1077 
1078 #endif /* defined(_X86_) || defined(_IA64_) || defined(_AMD64_) */
1079