blob: bc7c112fd41c702588bc48a13eb7508ac9b74189 [file] [log] [blame]
#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