Add CCIX PER section support.
diff --git a/cper-parse.c b/cper-parse.c
index 6c743a1..a9c7bdc 100644
--- a/cper-parse.c
+++ b/cper-parse.c
@@ -21,6 +21,7 @@
#include "sections/cper-section-dmar-generic.h"
#include "sections/cper-section-dmar-vtd.h"
#include "sections/cper-section-dmar-iommu.h"
+#include "sections/cper-section-ccix-per.h"
//Private pre-definitions.
json_object* cper_header_to_ir(EFI_COMMON_ERROR_RECORD_HEADER* header);
@@ -239,29 +240,31 @@
char* section_type_readable = "Unknown";
if (guid_equal(§ion_descriptor->SectionType, &gEfiProcessorGenericErrorSectionGuid))
section_type_readable = "Processor Generic";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiIa32X64ProcessorErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiIa32X64ProcessorErrorSectionGuid))
section_type_readable = "IA32/X64";
//todo: Why does IPF have an overly long GUID?
// if (guid_equal(§ion_descriptor->SectionType, &gEfiIpfProcessorErrorSectionGuid))
// section_type_readable = "IPF";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiArmProcessorErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiArmProcessorErrorSectionGuid))
section_type_readable = "ARM";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiPlatformMemoryErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiPlatformMemoryErrorSectionGuid))
section_type_readable = "Platform Memory";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiPcieErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiPcieErrorSectionGuid))
section_type_readable = "PCIe";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiFirmwareErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiFirmwareErrorSectionGuid))
section_type_readable = "Firmware Error Record Reference";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiPciBusErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiPciBusErrorSectionGuid))
section_type_readable = "PCI/PCI-X Bus";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiPciDevErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiPciDevErrorSectionGuid))
section_type_readable = "PCI Component/Device";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiDMArGenericErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiDMArGenericErrorSectionGuid))
section_type_readable = "DMAr Generic";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiDirectedIoDMArErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiDirectedIoDMArErrorSectionGuid))
section_type_readable = "Intel VT for Directed I/O specific DMAr section";
- if (guid_equal(§ion_descriptor->SectionType, &gEfiIommuDMArErrorSectionGuid))
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiIommuDMArErrorSectionGuid))
section_type_readable = "IOMMU specific DMAr section";
+ else if (guid_equal(§ion_descriptor->SectionType, &gEfiCcixPerLogErrorSectionGuid))
+ section_type_readable = "CCIX PER Log Error";
//todo: How do you determine if this is a CXL component event?
// if (guid_equal(§ion_descriptor->SectionType, &gEfiProcessorGenericErrorSectionGuid))
@@ -333,6 +336,8 @@
result = cper_section_dmar_vtd_to_ir(section, descriptor);
else if (guid_equal(&descriptor->SectionType, &gEfiIommuDMArErrorSectionGuid))
result = cper_section_dmar_iommu_to_ir(section, descriptor);
+ else if (guid_equal(&descriptor->SectionType, &gEfiCcixPerLogErrorSectionGuid))
+ result = cper_section_ccix_per_to_ir(section, descriptor);
else
{
//Failed read, unknown GUID.