PEL: Add procedure callout for hwp errors

Added infrastructure to enable procedure callout support
for the HWP failure related PEL.

Signed-off-by: Jayanth Othayoth <ojayanth@in.ibm.com>
Change-Id: Ia688650a1f1c8a184aebb3d258d99bbb1a15d244
diff --git a/extensions/openpower-pels/fapi_data_process.cpp b/extensions/openpower-pels/fapi_data_process.cpp
index ad2957c..6ac6ebd 100644
--- a/extensions/openpower-pels/fapi_data_process.cpp
+++ b/extensions/openpower-pels/fapi_data_process.cpp
@@ -347,6 +347,30 @@
 
                 pelJSONFmtCalloutDataList.emplace_back(jsonCalloutData);
             });
+
+        // Adding procedure callout
+        calloutCount = 0;
+        for_each(ffdc.hwp_errorinfo.procedures_callout.begin(),
+                 ffdc.hwp_errorinfo.procedures_callout.end(),
+                 [&ffdcUserData, &calloutCount, &pelJSONFmtCalloutDataList](
+                     const ProcedureCallout& procCallout) -> void {
+                     calloutCount++;
+                     std::stringstream keyPrefix;
+                     keyPrefix << "HWP_PROC_CO_" << std::setfill('0')
+                               << std::setw(2) << calloutCount << "_";
+                     ffdcUserData.emplace_back(
+                         std::string(keyPrefix.str()).append("PRIORITY"),
+                         procCallout.callout_priority);
+                     ffdcUserData.emplace_back(
+                         std::string(keyPrefix.str()).append("MAINT_PROCEDURE"),
+                         procCallout.proc_callout);
+                     json jsonCalloutData;
+                     jsonCalloutData["Procedure"] = procCallout.proc_callout;
+                     std::string pelPriority =
+                         getPelPriority(procCallout.callout_priority);
+                     jsonCalloutData["Priority"] = pelPriority;
+                     pelJSONFmtCalloutDataList.emplace_back(jsonCalloutData);
+                 });
     }
     else if ((ffdc.ffdc_type != FFDC_TYPE_NONE) &&
              (ffdc.ffdc_type != FFDC_TYPE_UNSUPPORTED))