{L"Reserved", 4, 16, L"0x%x", NULL, NULL, NULL, NULL}\r
};\r
\r
+/**\r
+ An ACPI_PARSER array describing the IO APIC Structure.\r
+**/\r
+STATIC CONST ACPI_PARSER IoApic[] = {\r
+ {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL},\r
+ {L"I/O APIC ID", 1, 2, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Reserved", 1, 3, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"I/O APIC Address", 4, 4, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Global System Interrupt Base", 4, 8, L"0x%x", NULL, NULL, NULL, NULL}\r
+};\r
+\r
+/**\r
+ An ACPI_PARSER array describing the Interrupt Source Override Structure.\r
+**/\r
+STATIC CONST ACPI_PARSER InterruptSourceOverride[] = {\r
+ {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL},\r
+ {L"Bus", 1, 2, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Source", 1, 3, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Global System Interrupt", 4, 4, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Flags", 2, 8, L"0x%x", NULL, NULL, NULL, NULL}\r
+};\r
+\r
+\r
+/**\r
+ An ACPI_PARSER array describing the Processor Local x2APIC Structure.\r
+**/\r
+STATIC CONST ACPI_PARSER ProcessorLocalX2Apic[] = {\r
+ {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL},\r
+ {L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL},\r
+\r
+ {L"X2APIC ID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Flags", 4, 8, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"ACPI Processor UID", 4, 12, L"0x%x", NULL, NULL, NULL, NULL}\r
+};\r
+\r
+/**\r
+ An ACPI_PARSER array describing the Local x2APIC NMI Structure.\r
+**/\r
+STATIC CONST ACPI_PARSER LocalX2ApicNmi[] = {\r
+ {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL},\r
+ {L"Flags", 2, 2, L"0x%x", NULL, NULL, NULL, NULL},\r
+\r
+ {L"ACPI Processor UID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Local x2APIC LINT#", 1, 8, L"0x%x", NULL, NULL, NULL, NULL},\r
+ {L"Reserved", 3, 9, L"0x%x%x%x", Dump3Chars, NULL, NULL, NULL}\r
+};\r
+\r
/**\r
An ACPI_PARSER array describing the ACPI MADT Table.\r
**/\r
break;\r
}\r
\r
+ case EFI_ACPI_6_3_IO_APIC: {\r
+ ParseAcpi (\r
+ TRUE,\r
+ 2,\r
+ "IO APIC",\r
+ InterruptContollerPtr,\r
+ *MadtInterruptControllerLength,\r
+ PARSER_PARAMS (IoApic)\r
+ );\r
+ break;\r
+ }\r
+\r
+ case EFI_ACPI_6_3_INTERRUPT_SOURCE_OVERRIDE: {\r
+ ParseAcpi (\r
+ TRUE,\r
+ 2,\r
+ "INTERRUPT SOURCE OVERRIDE",\r
+ InterruptContollerPtr,\r
+ *MadtInterruptControllerLength,\r
+ PARSER_PARAMS (InterruptSourceOverride)\r
+ );\r
+ break;\r
+ }\r
+\r
+ case EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC: {\r
+ ParseAcpi (\r
+ TRUE,\r
+ 2,\r
+ "PROCESSOR LOCAL X2APIC",\r
+ InterruptContollerPtr,\r
+ *MadtInterruptControllerLength,\r
+ PARSER_PARAMS (ProcessorLocalX2Apic)\r
+ );\r
+ break;\r
+ }\r
+\r
+ case EFI_ACPI_6_3_LOCAL_X2APIC_NMI: {\r
+ ParseAcpi (\r
+ TRUE,\r
+ 2,\r
+ "LOCAL x2APIC NMI",\r
+ InterruptContollerPtr,\r
+ *MadtInterruptControllerLength,\r
+ PARSER_PARAMS (LocalX2ApicNmi)\r
+ );\r
+ break;\r
+ }\r
+\r
default: {\r
IncrementErrorCount ();\r
Print (\r