PEL: Make action flags optional in the registry
A future commit will fill in the field if it isn't
present.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I67371433162ce2198a362796d274695a1bd6a6dc
diff --git a/extensions/openpower-pels/registry.cpp b/extensions/openpower-pels/registry.cpp
index f0efb3e..dc5a71a 100644
--- a/extensions/openpower-pels/registry.cpp
+++ b/extensions/openpower-pels/registry.cpp
@@ -291,7 +291,11 @@
Entry entry;
entry.name = (*e)["Name"];
entry.subsystem = helper::getSubsystem((*e)["Subsystem"]);
- entry.actionFlags = helper::getActionFlags((*e)["ActionFlags"]);
+
+ if (e->find("ActionFlags") != e->end())
+ {
+ entry.actionFlags = helper::getActionFlags((*e)["ActionFlags"]);
+ }
if (e->find("MfgActionFlags") != e->end())
{
diff --git a/extensions/openpower-pels/registry.hpp b/extensions/openpower-pels/registry.hpp
index c55c624..d75c30a 100644
--- a/extensions/openpower-pels/registry.hpp
+++ b/extensions/openpower-pels/registry.hpp
@@ -99,7 +99,7 @@
/**
* @brief The PEL action flags field.
*/
- uint16_t actionFlags;
+ std::optional<uint16_t> actionFlags;
/**
* @brief The optional action flags to use instead when in manufacturing
diff --git a/extensions/openpower-pels/user_header.cpp b/extensions/openpower-pels/user_header.cpp
index 6dfbc09..f4337f3 100644
--- a/extensions/openpower-pels/user_header.cpp
+++ b/extensions/openpower-pels/user_header.cpp
@@ -56,7 +56,7 @@
_problemDomain = 0;
_problemVector = 0;
- _actionFlags = entry.actionFlags;
+ _actionFlags = entry.actionFlags.value_or(0);
_reserved4Byte2 = 0;