1*4dbe3d72SLawrence Tang #ifndef CPER_SECTION_PCIE_H
2*4dbe3d72SLawrence Tang #define CPER_SECTION_PCIE_H
3*4dbe3d72SLawrence Tang 
4*4dbe3d72SLawrence Tang #include "json.h"
5*4dbe3d72SLawrence Tang #include "../edk/Cper.h"
6*4dbe3d72SLawrence Tang 
7*4dbe3d72SLawrence Tang #define PCIE_ERROR_VALID_BITFIELD_NAMES (const char*[]) {"portTypeValid", "versionValid", "commandStatusValid", \
8*4dbe3d72SLawrence Tang     "deviceIDValid", "deviceSerialNumberValid", "bridgeControlStatusValid", "capabilityStructureStatusValid", \
9*4dbe3d72SLawrence Tang     "aerInfoValid"}
10*4dbe3d72SLawrence Tang #define PCIE_ERROR_PORT_TYPES_KEYS (int []){0, 1, 4, 5, 6, 7, 8, 9, 10}
11*4dbe3d72SLawrence Tang #define PCIE_ERROR_PORT_TYPES_VALUES (const char*[]){"PCI Express End Point", "Legacy PCI End Point Device", \
12*4dbe3d72SLawrence Tang     "Root Port", "Upstream Switch Port", "Downstream Switch Port", "PCI Express to PCI/PCI-X Bridge", \
13*4dbe3d72SLawrence Tang     "PCI/PCI-X Bridge to PCI Express Bridge", "Root Complex Integrated Endpoint Device", "Root Complex Event Collector"}
14*4dbe3d72SLawrence Tang 
15*4dbe3d72SLawrence Tang json_object* cper_section_pcie_to_ir(void* section, EFI_ERROR_SECTION_DESCRIPTOR* descriptor);
16*4dbe3d72SLawrence Tang 
17*4dbe3d72SLawrence Tang #endif