Support to stringify CPER output

Initial commit to add a "message" property that provides a single line
description of some important properties. This makes it easier to parse
multiple CPERs in crowded logs.

For now, "message" is supported for nvidia, arm processor and memory
types. The other types contain generic messages.

Example output:

```
"sections":[
    {
      "message":"A Corrected CCPLEXSCF NVIDIA Error occurred on CPU 0",
      "Nvidia":{
        "signature":"CCPLEXSC",

 "sections":[
    {
      "message":"An ARM Processor Error occurred on CPU 0; Error Type(s): {Cache Error at Virtual Addr=0x41D6AA12D528 Physical Addr=0x80003A198DDA10}",
      "ArmProcessor":{
        "errorInfoNum":1,

"sections":[
    {
      "message":"A Multi-bit ECC Memory Error occurred at address 0x0000000080000000 at node 0",
```

Change-Id: I395d0370ec60579b8f7fede825b45a3ced8ff18f
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>
diff --git a/sections/cper-section-ccix-per.c b/sections/cper-section-ccix-per.c
index a8a5310..4f41a28 100644
--- a/sections/cper-section-ccix-per.c
+++ b/sections/cper-section-ccix-per.c
@@ -12,10 +12,24 @@
 #include <libcper/cper-utils.h>
 #include <libcper/sections/cper-section-ccix-per.h>
 #include <libcper/log.h>
+#include <string.h>
 
 //Converts a single CCIX PER log CPER section into JSON IR.
-json_object *cper_section_ccix_per_to_ir(const UINT8 *section, UINT32 size)
+json_object *cper_section_ccix_per_to_ir(const UINT8 *section, UINT32 size,
+					 char **desc_string)
 {
+	int outstr_len = 0;
+	*desc_string = malloc(SECTION_DESC_STRING_SIZE);
+	outstr_len = snprintf(*desc_string, SECTION_DESC_STRING_SIZE,
+			      "A CCIX PER Log Error occurred");
+	if (outstr_len < 0) {
+		cper_print_log(
+			"Error: Could not write to CCIX PER Log description string\n");
+	} else if (outstr_len > SECTION_DESC_STRING_SIZE) {
+		cper_print_log(
+			"Error: CCIX PER Log description string truncated\n");
+	}
+
 	if (size < sizeof(EFI_CCIX_PER_LOG_DATA)) {
 		return NULL;
 	}