blob: 69dbea2dae66020630a7be380907ecb5eed65d6c [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
Karthik Rajagopalan255bd812024-09-06 14:36:34 -07004#ifdef __cplusplus
5extern "C" {
6#endif
7
Lawrence Tang5202bbb2022-08-12 14:54:36 +01008#include <json.h>
Lawrence Tang864c0da2022-07-06 15:55:40 +01009#include "../edk/Cper.h"
10
John Chungf8fc7052024-05-03 20:05:29 +080011#define CCIX_PER_ERROR_VALID_BITFIELD_NAMES \
12 (const char *[]) \
13 { \
14 "ccixSourceIDValid", "ccixPortIDValid", "ccixPERLogValid" \
15 }
Lawrence Tang864c0da2022-07-06 15:55:40 +010016
17///
18/// CCIX PER Log Error Section
19///
20typedef struct {
John Chungf8fc7052024-05-03 20:05:29 +080021 UINT32 Length;
22 UINT64 ValidBits;
23 UINT8 CcixSourceId;
24 UINT8 CcixPortId;
25 UINT16 Reserved;
Lawrence Tang0a4b3f22022-07-21 10:40:10 +010026} __attribute__((packed, aligned(1))) EFI_CCIX_PER_LOG_DATA;
Lawrence Tang864c0da2022-07-06 15:55:40 +010027
John Chungf8fc7052024-05-03 20:05:29 +080028json_object *cper_section_ccix_per_to_ir(void *section);
29void ir_section_ccix_per_to_cper(json_object *section, FILE *out);
Lawrence Tang864c0da2022-07-06 15:55:40 +010030
Karthik Rajagopalan255bd812024-09-06 14:36:34 -070031#ifdef __cplusplus
32}
33#endif
34
John Chungf8fc7052024-05-03 20:05:29 +080035#endif