xref: /openbmc/libcper/include/libcper/sections/cper-section-generic.h (revision c97c041e571841f0ce67292208e083f6d858cf5c)
1 #ifndef CPER_SECTION_GENERIC_H
2 #define CPER_SECTION_GENERIC_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include <stdio.h>
9 #include <json.h>
10 #include <libcper/Cper.h>
11 
12 #define GENERIC_PROC_TYPES_KEYS	  (int[]){ 0, 1, 2 }
13 #define GENERIC_PROC_TYPES_VALUES (const char *[]){ "IA32/X64", "IA64", "ARM" }
14 #define GENERIC_ISA_TYPES_KEYS	  (int[]){ 0, 1, 2, 3, 4 }
15 #define GENERIC_ISA_TYPES_VALUES                                               \
16 	(const char *[]){ "IA32", "IA64", "X64", "ARM A32/T32", "ARM A64" }
17 #define GENERIC_ERROR_TYPES_KEYS (int[]){ 0, 1, 2, 4, 8 }
18 #define GENERIC_ERROR_TYPES_VALUES                                             \
19 	(const char *[]){ "Unknown", "Cache Error", "TLB Error", "Bus Error",  \
20 			  "Micro-Architectural Error" }
21 #define GENERIC_OPERATION_TYPES_KEYS (int[]){ 0, 1, 2, 3 }
22 #define GENERIC_OPERATION_TYPES_VALUES                                         \
23 	(const char *[]){ "Unknown or Generic", "Data Read", "Data Write",     \
24 			  "Instruction Execution" }
25 #define GENERIC_VALIDATION_BITFIELD_NAMES                                      \
26 	(const char *[]){ "processorTypeValid",                                \
27 			  "processorISAValid",                                 \
28 			  "processorErrorTypeValid",                           \
29 			  "operationValid",                                    \
30 			  "flagsValid",                                        \
31 			  "levelValid",                                        \
32 			  "cpuVersionValid",                                   \
33 			  "cpuBrandInfoValid",                                 \
34 			  "cpuIDValid",                                        \
35 			  "targetAddressValid",                                \
36 			  "requestorIDValid",                                  \
37 			  "responderIDValid",                                  \
38 			  "instructionIPValid" }
39 #define GENERIC_FLAGS_BITFIELD_NAMES                                           \
40 	(const char *[]){ "restartable", "preciseIP", "overflow", "corrected" }
41 
42 json_object *cper_section_generic_to_ir(void *section);
43 void ir_section_generic_to_cper(json_object *section, FILE *out);
44 
45 #ifdef __cplusplus
46 }
47 #endif
48 
49 #endif
50