Support for callout list FFDC
The FFDC contains relevent fields to a callout that otherwise would not
be displayed in the callout user data section.
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: Iadb71587b7219c4d352fa583ddd86f290de4a747
diff --git a/analyzer/resolution.cpp b/analyzer/resolution.cpp
index fe407b6..a20be83 100644
--- a/analyzer/resolution.cpp
+++ b/analyzer/resolution.cpp
@@ -5,6 +5,8 @@
namespace analyzer
{
+//------------------------------------------------------------------------------
+
void HardwareCalloutResolution::resolve(ServiceData& io_sd) const
{
// Get the chip target from the root cause signature.
@@ -34,7 +36,15 @@
io_sd.addCallout(callout);
// Add the guard info to the service data.
- io_sd.addGuard(entityPath, iv_guard);
+ Guard guard = io_sd.addGuard(entityPath, iv_guard);
+
+ // Add the callout FFDC to the service data.
+ nlohmann::json ffdc;
+ ffdc["Callout Type"] = "Hardware Callout";
+ ffdc["Target"] = entityPath;
+ ffdc["Priority"] = iv_priority.getRegistryString();
+ ffdc["Guard Type"] = guard.getString();
+ io_sd.addCalloutFFDC(ffdc);
}
//------------------------------------------------------------------------------
@@ -46,6 +56,13 @@
callout["Procedure"] = iv_procedure.getString();
callout["Priority"] = iv_priority.getUserDataString();
io_sd.addCallout(callout);
+
+ // Add the callout FFDC to the service data.
+ nlohmann::json ffdc;
+ ffdc["Callout Type"] = "Procedure Callout";
+ ffdc["Procedure"] = iv_procedure.getString();
+ ffdc["Priority"] = iv_priority.getRegistryString();
+ io_sd.addCalloutFFDC(ffdc);
}
//------------------------------------------------------------------------------