xref: /openbmc/libcper/cper-parse.h (revision f8fc7052)
11b0b00e3SLawrence Tang #ifndef CPER_PARSE_H
21b0b00e3SLawrence Tang #define CPER_PARSE_H
35202bbb4SLawrence Tang #include <json.h>
41b0b00e3SLawrence Tang 
5*f8fc7052SJohn Chung #define CPER_HEADER_VALID_BITFIELD_NAMES                                       \
6*f8fc7052SJohn Chung 	(const char *[])                                                       \
7*f8fc7052SJohn Chung 	{                                                                      \
8*f8fc7052SJohn Chung 		"platformIDValid", "timestampValid", "partitionIDValid"        \
9*f8fc7052SJohn Chung 	}
10*f8fc7052SJohn Chung #define CPER_SECTION_DESCRIPTOR_VALID_BITFIELD_NAMES                           \
11*f8fc7052SJohn Chung 	(const char *[])                                                       \
12*f8fc7052SJohn Chung 	{                                                                      \
13*f8fc7052SJohn Chung 		"fruIDValid", "fruStringValid"                                 \
14*f8fc7052SJohn Chung 	}
15*f8fc7052SJohn Chung #define CPER_SECTION_DESCRIPTOR_FLAGS_BITFIELD_NAMES                           \
16*f8fc7052SJohn Chung 	(const char *[])                                                       \
17*f8fc7052SJohn Chung 	{                                                                      \
18*f8fc7052SJohn Chung 		"primary", "containmentWarning", "reset",                      \
19*f8fc7052SJohn Chung 			"errorThresholdExceeded", "resourceNotAccessible",     \
20*f8fc7052SJohn Chung 			"latentError", "propagated", "overflow"                \
21*f8fc7052SJohn Chung 	}
22*f8fc7052SJohn Chung #define CPER_HEADER_FLAG_TYPES_KEYS                                            \
23*f8fc7052SJohn Chung 	(int[])                                                                \
24*f8fc7052SJohn Chung 	{                                                                      \
25*f8fc7052SJohn Chung 		1, 2, 4                                                        \
26*f8fc7052SJohn Chung 	}
27*f8fc7052SJohn Chung #define CPER_HEADER_FLAG_TYPES_VALUES                                          \
28*f8fc7052SJohn Chung 	(const char *[])                                                       \
29*f8fc7052SJohn Chung 	{                                                                      \
30*f8fc7052SJohn Chung 		"HW_ERROR_FLAGS_RECOVERED", "HW_ERROR_FLAGS_PREVERR",          \
31*f8fc7052SJohn Chung 			"HW_ERROR_FLAGS_SIMULATED"                             \
32*f8fc7052SJohn Chung 	}
333c43f743SLawrence Tang 
34f0f95574SLawrence Tang json_object *cper_to_ir(FILE *cper_file);
35617949e4SLawrence Tang json_object *cper_single_section_to_ir(FILE *cper_section_file);
36f0f95574SLawrence Tang void ir_to_cper(json_object *ir, FILE *out);
37617949e4SLawrence Tang void ir_single_section_to_cper(json_object *ir, FILE *out);
381b0b00e3SLawrence Tang 
391b0b00e3SLawrence Tang #endif
40