Make key types based on id
This commit separates out the libcper json output by section name.
Previously, each section was
i.e., for e.g., add "Nvidia" for the NVIDIA section
```
"sections": [
{
"Nvidia":{
"socket": 0
}
}
]
```
instead of
```
"sections": [
{
"socket": 0
}
]
```
This allows disambiguating between multiple fields with different types
and removes collisions between the field names.
Change-Id: I4e257f1e04fc5fbf2798955d3a5d93214c81f0fc
Signed-off-by: Karthik Rajagopalan <krajagopalan@nvidia.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/sections/cper-section.c b/sections/cper-section.c
index defecf6..63ce9f8 100644
--- a/sections/cper-section.c
+++ b/sections/cper-section.c
@@ -26,55 +26,59 @@
//Definitions of all sections available to the CPER parser.
CPER_SECTION_DEFINITION section_definitions[] = {
{ &gEfiProcessorGenericErrorSectionGuid, "Processor Generic",
- cper_section_generic_to_ir, ir_section_generic_to_cper },
- { &gEfiIa32X64ProcessorErrorSectionGuid, "IA32/X64",
+ "GenericProcessor", cper_section_generic_to_ir,
+ ir_section_generic_to_cper },
+ { &gEfiIa32X64ProcessorErrorSectionGuid, "IA32/X64", "Ia32x64Processor",
cper_section_ia32x64_to_ir, ir_section_ia32x64_to_cper },
- { &gEfiIpfProcessorErrorSectionGuid, "IPF", NULL, NULL },
- { &gEfiArmProcessorErrorSectionGuid, "ARM", cper_section_arm_to_ir,
- ir_section_arm_to_cper },
- { &gEfiPlatformMemoryErrorSectionGuid, "Platform Memory",
+ { &gEfiIpfProcessorErrorSectionGuid, "IPF", "IPF", NULL, NULL },
+ { &gEfiArmProcessorErrorSectionGuid, "ARM", "ArmProcessor",
+ cper_section_arm_to_ir, ir_section_arm_to_cper },
+ { &gEfiPlatformMemoryErrorSectionGuid, "Platform Memory", "Memory",
cper_section_platform_memory_to_ir, ir_section_memory_to_cper },
- { &gEfiPlatformMemoryError2SectionGuid, "Platform Memory 2",
+ { &gEfiPlatformMemoryError2SectionGuid, "Platform Memory 2", "Memory2",
cper_section_platform_memory2_to_ir, ir_section_memory2_to_cper },
- { &gEfiPcieErrorSectionGuid, "PCIe", cper_section_pcie_to_ir,
+ { &gEfiPcieErrorSectionGuid, "PCIe", "Pcie", cper_section_pcie_to_ir,
ir_section_pcie_to_cper },
{ &gEfiFirmwareErrorSectionGuid, "Firmware Error Record Reference",
- cper_section_firmware_to_ir, ir_section_firmware_to_cper },
- { &gEfiPciBusErrorSectionGuid, "PCI/PCI-X Bus",
+ "Firmware", cper_section_firmware_to_ir,
+ ir_section_firmware_to_cper },
+ { &gEfiPciBusErrorSectionGuid, "PCI/PCI-X Bus", "PciBus",
cper_section_pci_bus_to_ir, ir_section_pci_bus_to_cper },
- { &gEfiPciDevErrorSectionGuid, "PCI Component/Device",
+ { &gEfiPciDevErrorSectionGuid, "PCI Component/Device", "PciComponent",
cper_section_pci_dev_to_ir, ir_section_pci_dev_to_cper },
- { &gEfiDMArGenericErrorSectionGuid, "DMAr Generic",
+ { &gEfiDMArGenericErrorSectionGuid, "DMAr Generic", "GenericDmar",
cper_section_dmar_generic_to_ir, ir_section_dmar_generic_to_cper },
{ &gEfiDirectedIoDMArErrorSectionGuid,
- "Intel VT for Directed I/O Specific DMAr",
+ "Intel VT for Directed I/O Specific DMAr", "VtdDmar",
cper_section_dmar_vtd_to_ir, ir_section_dmar_vtd_to_cper },
- { &gEfiIommuDMArErrorSectionGuid, "IOMMU Specific DMAr",
+ { &gEfiIommuDMArErrorSectionGuid, "IOMMU Specific DMAr", "IommuDmar",
cper_section_dmar_iommu_to_ir, ir_section_dmar_iommu_to_cper },
- { &gEfiCcixPerLogErrorSectionGuid, "CCIX PER Log Error",
+ { &gEfiCcixPerLogErrorSectionGuid, "CCIX PER Log Error", "CcixPer",
cper_section_ccix_per_to_ir, ir_section_ccix_per_to_cper },
- { &gEfiCxlProtocolErrorSectionGuid, "CXL Protocol Error",
+ { &gEfiCxlProtocolErrorSectionGuid, "CXL Protocol Error", "CxlProtocol",
cper_section_cxl_protocol_to_ir, ir_section_cxl_protocol_to_cper },
{ &gEfiCxlGeneralMediaErrorSectionGuid,
- "CXL General Media Component Error", cper_section_cxl_component_to_ir,
- ir_section_cxl_component_to_cper },
- { &gEfiCxlDramEventErrorSectionGuid, "CXL DRAM Component Error",
+ "CXL General Media Component Error", "CxlComponent",
cper_section_cxl_component_to_ir, ir_section_cxl_component_to_cper },
- { &gEfiCxlMemoryModuleErrorSectionGuid,
- "CXL Memory Module Component Error", cper_section_cxl_component_to_ir,
+ { &gEfiCxlDramEventErrorSectionGuid, "CXL DRAM Component Error",
+ "CxlComponent", cper_section_cxl_component_to_ir,
ir_section_cxl_component_to_cper },
+ { &gEfiCxlMemoryModuleErrorSectionGuid,
+ "CXL Memory Module Component Error", "CxlComponent",
+ cper_section_cxl_component_to_ir, ir_section_cxl_component_to_cper },
{ &gEfiCxlPhysicalSwitchErrorSectionGuid,
- "CXL Physical Switch Component Error",
+ "CXL Physical Switch Component Error", "CxlComponent",
cper_section_cxl_component_to_ir, ir_section_cxl_component_to_cper },
{ &gEfiCxlVirtualSwitchErrorSectionGuid,
- "CXL Virtual Switch Component Error",
+ "CXL Virtual Switch Component Error", "CxlComponent",
cper_section_cxl_component_to_ir, ir_section_cxl_component_to_cper },
{ &gEfiCxlMldPortErrorSectionGuid, "CXL MLD Port Component Error",
- cper_section_cxl_component_to_ir, ir_section_cxl_component_to_cper },
- { &gEfiNvidiaErrorSectionGuid, "NVIDIA", cper_section_nvidia_to_ir,
- ir_section_nvidia_to_cper },
- { &gEfiAmpereErrorSectionGuid, "Ampere", cper_section_ampere_to_ir,
- ir_section_ampere_to_cper },
+ "CxlComponent", cper_section_cxl_component_to_ir,
+ ir_section_cxl_component_to_cper },
+ { &gEfiNvidiaErrorSectionGuid, "NVIDIA", "Nvidia",
+ cper_section_nvidia_to_ir, ir_section_nvidia_to_cper },
+ { &gEfiAmpereErrorSectionGuid, "Ampere", "Ampere",
+ cper_section_ampere_to_ir, ir_section_ampere_to_cper },
};
const size_t section_definitions_len =
sizeof(section_definitions) / sizeof(CPER_SECTION_DEFINITION);
diff --git a/sections/cper-section.h b/sections/cper-section.h
index 71cf4b1..4ccc178 100644
--- a/sections/cper-section.h
+++ b/sections/cper-section.h
@@ -14,6 +14,7 @@
typedef struct {
EFI_GUID *Guid;
const char *ReadableName;
+ const char *ShortName;
json_object *(*ToIR)(void *);
void (*ToCPER)(json_object *, FILE *);
} CPER_SECTION_DEFINITION;