PEL: Support for CheckstopFlag msg reg field

Similiar to the DeconfigFlag field that was recently added, this one
indicates the PEL is for a hardware checkstop and results in a bit in
SRC hex word 5 being set.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ib05de7471ad3e32f48e7f20a5c611abc119fe82a
diff --git a/test/openpower-pels/registry_test.cpp b/test/openpower-pels/registry_test.cpp
index b33c07e..2f715bb 100644
--- a/test/openpower-pels/registry_test.cpp
+++ b/test/openpower-pels/registry_test.cpp
@@ -86,7 +86,8 @@
                         "AdditionalDataPropSource": "VOLTAGE"
                     }
                 },
-                "DeconfigFlag": true
+                "DeconfigFlag": true,
+                "CheckstopFlag": true
             },
 
             "Documentation":
@@ -224,6 +225,7 @@
     EXPECT_EQ(entry->src.type, 0xBD);
     EXPECT_EQ(entry->src.reasonCode, 0x2333);
     EXPECT_TRUE(entry->src.deconfigFlag);
+    EXPECT_TRUE(entry->src.checkstopFlag);
 
     auto& hexwords = entry->src.hexwordADFields;
     EXPECT_TRUE(hexwords);
@@ -285,6 +287,7 @@
     EXPECT_FALSE(entry->src.hexwordADFields);
     EXPECT_FALSE(entry->src.symptomID);
     EXPECT_FALSE(entry->src.deconfigFlag);
+    EXPECT_FALSE(entry->src.checkstopFlag);
 }
 
 TEST_F(RegistryTest, TestBadJSON)
diff --git a/test/openpower-pels/src_test.cpp b/test/openpower-pels/src_test.cpp
index bb1ba7c..d5d3b16 100644
--- a/test/openpower-pels/src_test.cpp
+++ b/test/openpower-pels/src_test.cpp
@@ -463,6 +463,7 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.src.deconfigFlag = true;
+    entry.src.checkstopFlag = true;
     entry.subsystem = 0x42;
 
     entry.callouts = R"(
@@ -522,8 +523,13 @@
 
         SRC src{entry, ad, dataIface};
 
+        EXPECT_TRUE(
+            src.getErrorStatusFlag(SRC::ErrorStatusFlags::deconfigured));
+        EXPECT_TRUE(src.getErrorStatusFlag(SRC::ErrorStatusFlags::hwCheckstop));
+
         const auto& hexwords = src.hexwordData();
-        auto mask = static_cast<uint32_t>(SRC::ErrorStatusFlags::deconfigured);
+        auto mask = static_cast<uint32_t>(SRC::ErrorStatusFlags::deconfigured) |
+                    static_cast<uint32_t>(SRC::ErrorStatusFlags::hwCheckstop);
         EXPECT_EQ(hexwords[5 - 2] & mask, mask);
 
         auto& callouts = src.callouts()->callouts();