blob: a6a557c9214f8080b92c8084318b8c1d689c0b5c [file] [log] [blame]
Lawrence Tang864c0da2022-07-06 15:55:40 +01001#ifndef CPER_SECTION_CCIX_PER_H
2#define CPER_SECTION_CCIX_PER_H
3
Lawrence Tang5202bbb2022-08-12 14:54:36 +01004#include <json.h>
Lawrence Tang864c0da2022-07-06 15:55:40 +01005#include "../edk/Cper.h"
6
7#define CCIX_PER_ERROR_VALID_BITFIELD_NAMES (const char*[]) {"ccixSourceIDValid", "ccixPortIDValid", "ccixPERLogValid"}
8
9///
10/// CCIX PER Log Error Section
11///
12typedef struct {
13 UINT32 Length;
14 UINT64 ValidBits;
15 UINT8 CcixSourceId;
16 UINT8 CcixPortId;
17 UINT16 Reserved;
Lawrence Tang0a4b3f22022-07-21 10:40:10 +010018} __attribute__((packed, aligned(1))) EFI_CCIX_PER_LOG_DATA;
Lawrence Tang864c0da2022-07-06 15:55:40 +010019
20json_object* cper_section_ccix_per_to_ir(void* section, EFI_ERROR_SECTION_DESCRIPTOR* descriptor);
Lawrence Tang205dd1d2022-07-14 16:23:38 +010021void ir_section_ccix_per_to_cper(json_object* section, FILE* out);
Lawrence Tang864c0da2022-07-06 15:55:40 +010022
23#endif