#ifndef CPER_PARSE_H #define CPER_PARSE_H #include #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