1864c0da9SLawrence Tang #ifndef CPER_SECTION_CCIX_PER_H
2864c0da9SLawrence Tang #define CPER_SECTION_CCIX_PER_H
3864c0da9SLawrence Tang 
4864c0da9SLawrence 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;
18864c0da9SLawrence Tang } EFI_CCIX_PER_LOG_DATA;
19864c0da9SLawrence Tang 
20864c0da9SLawrence Tang json_object* cper_section_ccix_per_to_ir(void* section, EFI_ERROR_SECTION_DESCRIPTOR* descriptor);
21*205dd1d7SLawrence Tang void ir_section_ccix_per_to_cper(json_object* section, FILE* out);
22864c0da9SLawrence Tang 
23864c0da9SLawrence Tang #endif