#ifndef CPER_PARSE_H #define CPER_PARSE_H #include "json.h" #define CPER_HEADER_VALID_BITFIELD_NAMES (const char*[]) {"platformIDValid", "timestampValid", "partitionIDValid"} #define CPER_SECTION_DESCRIPTOR_VALID_BITFIELD_NAMES (const char*[]) {"fruIDValid", "fruStringValid"} #define CPER_SECTION_DESCRIPTOR_FLAGS_BITFIELD_NAMES (const char*[]) \ {"primary", "containmentWarning", "reset", "errorThresholdExceeded", "resourceNotAccessible", "latentError", \ "propagated", "overflow"} #define CPER_HEADER_FLAG_TYPES_KEYS (int []){1, 2, 4} #define CPER_HEADER_FLAG_TYPES_VALUES (const char*[]){"HW_ERROR_FLAGS_RECOVERED", "HW_ERROR_FLAGS_PREVERR", "HW_ERROR_FLAGS_SIMULATED"} json_object* cper_to_ir(FILE* cper_file); json_object* cper_single_section_to_ir(FILE* cper_section_file); void ir_to_cper(json_object* ir, FILE* out); void ir_single_section_to_cper(json_object* ir, FILE* out); #endif