diff options
| author | Matt Spinler <spinler@us.ibm.com> | 2019-11-01 10:48:36 -0500 |
|---|---|---|
| committer | Matt Spinler <spinler@us.ibm.com> | 2019-11-04 16:18:29 -0600 |
| commit | e07f915b21c5915574d03f9c9b7527084da4abe6 (patch) | |
| tree | e6a6c6eb9987ce3ef5a8e0c2b581af2c93b2a550 | |
| parent | 97d19b4806101161c5a97c1cc4daab6b95c89984 (diff) | |
| download | phosphor-logging-e07f915b21c5915574d03f9c9b7527084da4abe6.tar.gz phosphor-logging-e07f915b21c5915574d03f9c9b7527084da4abe6.zip | |
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
| -rw-r--r-- | extensions/openpower-pels/registry.cpp | 6 | ||||
| -rw-r--r-- | extensions/openpower-pels/registry.hpp | 2 | ||||
| -rw-r--r-- | extensions/openpower-pels/user_header.cpp | 2 | ||||
| -rw-r--r-- | test/openpower-pels/registry_test.cpp | 5 |
4 files changed, 9 insertions, 6 deletions
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 @@ std::optional<Entry> Registry::lookup(const std::string& name) 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 @@ struct Entry /** * @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 @@ UserHeader::UserHeader(const message::Entry& entry, _problemDomain = 0; _problemVector = 0; - _actionFlags = entry.actionFlags; + _actionFlags = entry.actionFlags.value_or(0); _reserved4Byte2 = 0; diff --git a/test/openpower-pels/registry_test.cpp b/test/openpower-pels/registry_test.cpp index a16370f..7105c82 100644 --- a/test/openpower-pels/registry_test.cpp +++ b/test/openpower-pels/registry_test.cpp @@ -16,7 +16,6 @@ const auto registryData = R"( { "Name": "xyz.openbmc_project.Power.Fault", "Subsystem": "power_supply", - "ActionFlags": ["service_action", "report"], "SRC": { @@ -105,7 +104,7 @@ TEST_F(RegistryTest, TestFindEntry) EXPECT_EQ(entry->subsystem, 0x62); EXPECT_EQ(*(entry->severity), 0x40); EXPECT_EQ(*(entry->mfgSeverity), 0x00); - EXPECT_EQ(entry->actionFlags, 0xA800); + EXPECT_EQ(*(entry->actionFlags), 0xA800); EXPECT_EQ(*(entry->mfgActionFlags), 0x4000); EXPECT_EQ(entry->componentID, 0x2300); EXPECT_FALSE(entry->eventType); @@ -148,7 +147,7 @@ TEST_F(RegistryTest, TestFindEntryMinimal) EXPECT_FALSE(entry->severity); EXPECT_FALSE(entry->mfgSeverity); EXPECT_FALSE(entry->mfgActionFlags); - EXPECT_EQ(entry->actionFlags, 0xA000); + EXPECT_FALSE(entry->actionFlags); EXPECT_EQ(entry->componentID, 0x2000); EXPECT_FALSE(entry->eventType); EXPECT_FALSE(entry->eventScope); |

