1864c0da9SLawrence Tang #ifndef CPER_SECTION_CCIX_PER_H 2864c0da9SLawrence Tang #define CPER_SECTION_CCIX_PER_H 3864c0da9SLawrence Tang 45202bbb4SLawrence Tang #include <json.h> 5864c0da9SLawrence Tang #include "../edk/Cper.h" 6864c0da9SLawrence Tang 7*f8fc7052SJohn Chung #define CCIX_PER_ERROR_VALID_BITFIELD_NAMES \ 8*f8fc7052SJohn Chung (const char *[]) \ 9*f8fc7052SJohn Chung { \ 10*f8fc7052SJohn Chung "ccixSourceIDValid", "ccixPortIDValid", "ccixPERLogValid" \ 11*f8fc7052SJohn Chung } 12864c0da9SLawrence Tang 13864c0da9SLawrence Tang /// 14864c0da9SLawrence Tang /// CCIX PER Log Error Section 15864c0da9SLawrence Tang /// 16864c0da9SLawrence Tang typedef struct { 17864c0da9SLawrence Tang UINT32 Length; 18864c0da9SLawrence Tang UINT64 ValidBits; 19864c0da9SLawrence Tang UINT8 CcixSourceId; 20864c0da9SLawrence Tang UINT8 CcixPortId; 21864c0da9SLawrence Tang UINT16 Reserved; 220a4b3f2dSLawrence Tang } __attribute__((packed, aligned(1))) EFI_CCIX_PER_LOG_DATA; 23864c0da9SLawrence Tang 24*f8fc7052SJohn Chung json_object *cper_section_ccix_per_to_ir(void *section); 25205dd1d7SLawrence Tang void ir_section_ccix_per_to_cper(json_object *section, FILE *out); 26864c0da9SLawrence Tang 27864c0da9SLawrence Tang #endif 28