1864c0da9SLawrence Tang #ifndef CPER_SECTION_CCIX_PER_H 2864c0da9SLawrence Tang #define CPER_SECTION_CCIX_PER_H 3864c0da9SLawrence Tang 4*5202bbb4SLawrence Tang #include <json.h> 5864c0da9SLawrence Tang #include "../edk/Cper.h" 6864c0da9SLawrence Tang 7864c0da9SLawrence Tang #define CCIX_PER_ERROR_VALID_BITFIELD_NAMES (const char*[]) {"ccixSourceIDValid", "ccixPortIDValid", "ccixPERLogValid"} 8864c0da9SLawrence Tang 9864c0da9SLawrence Tang /// 10864c0da9SLawrence Tang /// CCIX PER Log Error Section 11864c0da9SLawrence Tang /// 12864c0da9SLawrence Tang typedef struct { 13864c0da9SLawrence Tang UINT32 Length; 14864c0da9SLawrence Tang UINT64 ValidBits; 15864c0da9SLawrence Tang UINT8 CcixSourceId; 16864c0da9SLawrence Tang UINT8 CcixPortId; 17864c0da9SLawrence Tang UINT16 Reserved; 180a4b3f2dSLawrence Tang } __attribute__((packed, aligned(1))) EFI_CCIX_PER_LOG_DATA; 19864c0da9SLawrence Tang 20864c0da9SLawrence Tang json_object* cper_section_ccix_per_to_ir(void* section, EFI_ERROR_SECTION_DESCRIPTOR* descriptor); 21205dd1d7SLawrence Tang void ir_section_ccix_per_to_cper(json_object* section, FILE* out); 22864c0da9SLawrence Tang 23864c0da9SLawrence Tang #endif