summaryrefslogtreecommitdiffstats
path: root/extensions/openpower-pels/pel_values.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/openpower-pels/pel_values.cpp')
-rw-r--r--extensions/openpower-pels/pel_values.cpp18
1 files changed, 17 insertions, 1 deletions
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 @@ const PELValues actionFlagsValues = {
{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 @@ std::string getValue(const uint8_t field, const pel_values::PELValues& values)
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
OpenPOWER on IntegriCloud