PEL: Print action flags into JSON aligned
"User Header": {
"Section Version": "1",
"Sub-section type": "0",
"Log Committed by": "0x4552",
"Subsystem": "System Hypervisor Firmware",
"Event Scope": "Entire Platform",
"Event Severity": "Informational Event",
"Event Type": "Miscellaneous, Informational Only",
"Action Flags": [
"Report Externally"
]
}
Testing: Manually run peltool and verified output
Signed-off-by: Harisuddin Mohamed Isa <harisuddin@gmail.com>
Change-Id: Ie8376953b5f1baa093fc0aa9564d50cd4208564e
diff --git a/extensions/openpower-pels/pel_values.cpp b/extensions/openpower-pels/pel_values.cpp
index 3502f92..f8c877c 100644
--- a/extensions/openpower-pels/pel_values.cpp
+++ b/extensions/openpower-pels/pel_values.cpp
@@ -196,8 +196,10 @@
{0x8000, "service_action", "Service Action Required"},
{0x4000, "hidden", "Event not customer viewable"},
{0x2000, "report", "Report Externally"},
- {0x1000, "dont_report", "Do Not Report"},
+ {0x1000, "dont_report", "Do Not Report To Hypervisor"},
{0x0800, "call_home", "HMC Call Home"},
+ {0x0400, "isolation_incomplete",
+ "Isolation Incomplete, further analysis required"},
{0x0100, "termination", "Service Processor Call Home Required"}};
/**
@@ -276,6 +278,20 @@
return "invalid";
}
}
+
+std::vector<std::string> getValuesBitwise(uint16_t value,
+ const pel_values::PELValues& table)
+{
+ std::vector<std::string> foundValues;
+ std::for_each(
+ table.begin(), table.end(), [&value, &foundValues](const auto& entry) {
+ if (value & std::get<fieldValuePos>(entry))
+ {
+ foundValues.push_back(std::get<descriptionPos>(entry));
+ }
+ });
+ return foundValues;
+}
} // namespace pel_values
} // namespace pels
} // namespace openpower