Add ARM CPER out, fix struct misalignment.
diff --git a/cper-utils.c b/cper-utils.c
index db41381..ba8cd63 100644
--- a/cper-utils.c
+++ b/cper-utils.c
@@ -66,6 +66,28 @@
return result;
}
+//Converts a single object containing UINT32s into a uniform struct.
+void ir_to_uniform_struct64(json_object* ir, UINT64* start, int len, const char* names[])
+{
+ UINT64* cur = start;
+ for (int i=0; i<len; i++)
+ {
+ *cur = json_object_get_uint64(json_object_object_get(ir, names[i]));
+ cur++;
+ }
+}
+
+//Converts a single object containing UINT32s into a uniform struct.
+void ir_to_uniform_struct(json_object* ir, UINT32* start, int len, const char* names[])
+{
+ UINT32* cur = start;
+ for (int i=0; i<len; i++)
+ {
+ *cur = (UINT32)json_object_get_uint64(json_object_object_get(ir, names[i]));
+ cur++;
+ }
+}
+
//Converts a single integer value to an object containing a value, and a readable name if possible.
json_object* integer_to_readable_pair(UINT64 value, int len, int keys[], const char* values[], const char* default_value)
{