PEL: Write terminating SRC to the progress SRC

Check for incoming pels for severity type 0x51 - Critical error,
System termination. If found, fetch the SRC and add this SRC to
progress SRC interface on dbus. In addition set the terminate bit
in BMC created pels only.

Signed-off-by: Sumit Kumar <sumit_kumar@in.ibm.com>
Change-Id: I26194a26743263183dcb61e097c745c4705fa006
diff --git a/extensions/openpower-pels/src.hpp b/extensions/openpower-pels/src.hpp
index f0b151e..2ab5ae4 100644
--- a/extensions/openpower-pels/src.hpp
+++ b/extensions/openpower-pels/src.hpp
@@ -53,6 +53,7 @@
         additionalSections = 0x01,
         powerFaultEvent = 0x02,
         hypDumpInit = 0x04,
+        postOPPanel = 0x08,
         i5OSServiceEventBit = 0x10,
         virtualProgressSRC = 0x80
     };
@@ -63,6 +64,7 @@
      */
     enum class ErrorStatusFlags
     {
+        terminateFwErr = 0x20000000,
         deconfigured = 0x02000000,
         guarded = 0x01000000
     };
@@ -281,6 +283,22 @@
      */
     bool isBMCSRC() const;
 
+    /**
+     * @brief Set the terminate bit in hex data word 3.
+     */
+    void setTerminateBit()
+    {
+        setErrorStatusFlag(ErrorStatusFlags::terminateFwErr);
+    }
+
+    /**
+     * @brief Get the SRC structure to pass on to the boot progress dbus
+     * interface.
+     *
+     * @return std::vector<uint8_t> - SRC struct data
+     */
+    std::vector<uint8_t> getSrcStruct();
+
   private:
     /**
      * @brief Fills in the user defined hex words from the