xref: /openbmc/libcper/cper-utils.h (revision 3b7f45b5)
1 #ifndef CPER_UTILS_H
2 #define CPER_UTILS_H
3 
4 #define GUID_STRING_LENGTH 30
5 #define TIMESTAMP_LENGTH 24
6 
7 json_object* cper_generic_error_status_to_ir(EFI_GENERIC_ERROR_STATUS* error_status);
8 void ir_generic_error_status_to_cper(json_object* error_status, EFI_GENERIC_ERROR_STATUS* error_status_cper);
9 json_object* uniform_struct_to_ir(UINT32* start, int len, const char* names[]);
10 json_object* uniform_struct64_to_ir(UINT64* start, int len, const char* names[]);
11 void ir_to_uniform_struct(json_object* ir, UINT32* start, int len, const char* names[]);
12 void ir_to_uniform_struct64(json_object* ir, UINT64* start, int len, const char* names[]);
13 json_object* integer_to_readable_pair(UINT64 value, int len, int keys[], const char* values[], const char* default_value);
14 json_object* integer_to_readable_pair_with_desc(int value, int len, int keys[], const char* values[], const char* descriptions[], const char* default_value);
15 UINT64 readable_pair_to_integer(json_object* pair);
16 json_object* bitfield_to_ir(UINT64 bitfield, int num_fields, const char* names[]);
17 UINT64 ir_to_bitfield(json_object* ir, int num_fields, const char* names[]);
18 json_object* uint64_array_to_ir_array(UINT64* array, int len);
19 json_object* revision_to_ir(UINT16 revision);
20 const char* severity_to_string(UINT8 severity);
21 void timestamp_to_string(char* out, EFI_ERROR_TIME_STAMP* timestamp);
22 void string_to_timestamp(EFI_ERROR_TIME_STAMP* out, const char* timestamp);
23 void guid_to_string(char* out, EFI_GUID* guid);
24 void string_to_guid(EFI_GUID* out, const char* guid);
25 int guid_equal(EFI_GUID* a, EFI_GUID* b);
26 int bcd_to_int(UINT8 bcd);
27 UINT8 int_to_bcd(int value);
28 
29 //The available severity types for CPER.
30 extern const char* CPER_SEVERITY_TYPES[4];
31 
32 #endif