Add CCIX PER section support.
diff --git a/sections/cper-section-ccix-per.c b/sections/cper-section-ccix-per.c
new file mode 100644
index 0000000..ae8a797
--- /dev/null
+++ b/sections/cper-section-ccix-per.c
@@ -0,0 +1,35 @@
+/**
+ * Describes functions for converting CCIX PER log CPER sections from binary and JSON format
+ * into an intermediate format.
+ * 
+ * Author: Lawrence.Tang@arm.com
+ **/
+#include <stdio.h>
+#include "json.h"
+#include "../edk/Cper.h"
+#include "../cper-utils.h"
+#include "cper-section-ccix-per.h"
+
+//Converts a single CCIX PER log CPER section into JSON IR.
+json_object* cper_section_ccix_per_to_ir(void* section, EFI_ERROR_SECTION_DESCRIPTOR* descriptor)
+{
+    EFI_CCIX_PER_LOG_DATA* ccix_error = (EFI_CCIX_PER_LOG_DATA*)section;
+    json_object* section_ir = json_object_new_object();
+
+    //Length (bytes) for the entire structure.
+    json_object_object_add(section_ir, "length", json_object_new_uint64(ccix_error->Length));
+
+    //Validation bits.
+    json_object* validation = bitfield_to_ir(ccix_error->ValidBits, 3, CCIX_PER_ERROR_VALID_BITFIELD_NAMES);
+    json_object_object_add(section_ir, "validationBits", validation);
+
+    //CCIX source/port IDs.
+    json_object_object_add(section_ir, "ccixSourceID", json_object_new_int(ccix_error->CcixSourceId));
+    json_object_object_add(section_ir, "ccixPortID", json_object_new_int(ccix_error->CcixPortId));
+    
+    //CCIX PER Log.
+    //todo: implement as described in Section 7.3.2 of CCIX Base Specification (Rev 1.0)
+    //the PER Log structure notes the number of DWORDs in the record.
+
+    return section_ir;
+}
\ No newline at end of file