blob: 86e277c12b5af824168c7b809dcb98c447e656db [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
John Chungf8fc7052024-05-03 20:05:29 +08007#define CCIX_PER_ERROR_VALID_BITFIELD_NAMES \
8 (const char *[]) \
9 { \
10 "ccixSourceIDValid", "ccixPortIDValid", "ccixPERLogValid" \
11 }
Lawrence Tang864c0da2022-07-06 15:55:40 +010012
13///
14/// CCIX PER Log Error Section
15///
16typedef struct {
John Chungf8fc7052024-05-03 20:05:29 +080017 UINT32 Length;
18 UINT64 ValidBits;
19 UINT8 CcixSourceId;
20 UINT8 CcixPortId;
21 UINT16 Reserved;
Lawrence Tang0a4b3f22022-07-21 10:40:10 +010022} __attribute__((packed, aligned(1))) EFI_CCIX_PER_LOG_DATA;
Lawrence Tang864c0da2022-07-06 15:55:40 +010023
John Chungf8fc7052024-05-03 20:05:29 +080024json_object *cper_section_ccix_per_to_ir(void *section);
25void ir_section_ccix_per_to_cper(json_object *section, FILE *out);
Lawrence Tang864c0da2022-07-06 15:55:40 +010026
John Chungf8fc7052024-05-03 20:05:29 +080027#endif