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/data_interface.hpp b/extensions/openpower-pels/data_interface.hpp
index f5053aa..b1f1e92 100644
--- a/extensions/openpower-pels/data_interface.hpp
+++ b/extensions/openpower-pels/data_interface.hpp
@@ -356,6 +356,17 @@
                                    const std::string& type,
                                    const std::string& logPath) const = 0;
 
+    /**
+     * @brief Create Progress SRC property on the boot progress
+     *        interface on a D-Bus object.
+     *
+     * @param[in] priSRC - Primary SRC value (e.g. BD8D1001)
+     * @param[in] srcStruct - Full SRC base structure
+     */
+    virtual void
+        createProgressSRC(const uint64_t& priSRC,
+                          const std::vector<uint8_t>& srcStruct) const = 0;
+
   protected:
     /**
      * @brief Sets the host on/off state and runs any
@@ -655,6 +666,17 @@
                            const std::string& type,
                            const std::string& logPath) const override;
 
+    /**
+     * @brief Create Progress SRC property on the boot progress
+     *        interface on a D-Bus object.
+     *
+     * @param[in] priSRC - Primary SRC value
+     * @param[in] srcStruct - Full SRC base structure
+     */
+    void
+        createProgressSRC(const uint64_t& priSRC,
+                          const std::vector<uint8_t>& srcStruct) const override;
+
   private:
     /**
      * @brief Reads the BMC firmware version string and puts it into