| #ifndef CPER_SECTION_GENERIC_H |
| #define CPER_SECTION_GENERIC_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <stdio.h> |
| #include <json.h> |
| #include <libcper/Cper.h> |
| |
| #define GENERIC_PROC_TYPES_KEYS (int[]){ 0, 1, 2 } |
| #define GENERIC_PROC_TYPES_VALUES (const char *[]){ "IA32/X64", "IA64", "ARM" } |
| #define GENERIC_ISA_TYPES_KEYS (int[]){ 0, 1, 2, 3, 4 } |
| #define GENERIC_ISA_TYPES_VALUES \ |
| (const char *[]){ "IA32", "IA64", "X64", "ARM A32/T32", "ARM A64" } |
| #define GENERIC_ERROR_TYPES_KEYS (int[]){ 0, 1, 2, 4, 8 } |
| #define GENERIC_ERROR_TYPES_VALUES \ |
| (const char *[]){ "Unknown", "Cache Error", "TLB Error", "Bus Error", \ |
| "Micro-Architectural Error" } |
| #define GENERIC_OPERATION_TYPES_KEYS (int[]){ 0, 1, 2, 3 } |
| #define GENERIC_OPERATION_TYPES_VALUES \ |
| (const char *[]){ "Unknown or Generic", "Data Read", "Data Write", \ |
| "Instruction Execution" } |
| #define GENERIC_VALIDATION_BITFIELD_NAMES \ |
| (const char *[]){ "processorTypeValid", \ |
| "processorISAValid", \ |
| "processorErrorTypeValid", \ |
| "operationValid", \ |
| "flagsValid", \ |
| "levelValid", \ |
| "cpuVersionValid", \ |
| "cpuBrandInfoValid", \ |
| "cpuIDValid", \ |
| "targetAddressValid", \ |
| "requestorIDValid", \ |
| "responderIDValid", \ |
| "instructionIPValid" } |
| #define GENERIC_FLAGS_BITFIELD_NAMES \ |
| (const char *[]){ "restartable", "preciseIP", "overflow", "corrected" } |
| |
| json_object *cper_section_generic_to_ir(const UINT8 *section, UINT32 size); |
| void ir_section_generic_to_cper(json_object *section, FILE *out); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |