PEL: Added phal specific service action support

This commits enables the basic infrastructure to add service
actions(guard/deconfigure) supports for "phal"  feature enabled
systems. Also enabled "guard" related service , which includes
creating guard D-Bus object using hardware isolation D-Bus api's

To enable this support, PEL users has to include the array of
JSON callouts, which includes the below required informations.
"EntityPath": entity path of the hardware from the PHAL device tree.
"GuardType":  Guard type string defined libekb_p10.
"Guarded": boolean, true to create guard records.

Tested: created guard records and verified
root@xxxx:~# guard -l
ID       | ERROR    |  Type  | Path
00000001 | 50000684 | fatal | physical:sys-0/node-0/proc-0
00000002 | 50000685 | fatal | physical:sys-0/node-0/proc-1
00000003 | 50000686 | fatal | physical:sys-0/node-0/proc-2
00000004 | 50000687 | fatal | physical:sys-0/node-0/proc-3

Signed-off-by: Jayanth Othayoth <ojayanth@in.ibm.com>
Change-Id: Ibc57ae0363cd5fb9facd2ed7049a70806a5b891e
diff --git a/extensions/openpower-pels/phal_service_actions.hpp b/extensions/openpower-pels/phal_service_actions.hpp
new file mode 100644
index 0000000..84a700e
--- /dev/null
+++ b/extensions/openpower-pels/phal_service_actions.hpp
@@ -0,0 +1,30 @@
+#pragma once
+
+#include "data_interface.hpp"
+
+#include <nlohmann/json.hpp>
+#include <xyz/openbmc_project/HardwareIsolation/Entry/server.hpp>
+
+namespace openpower
+{
+namespace pels
+{
+namespace phal
+{
+
+using EntrySeverity =
+    sdbusplus::xyz::openbmc_project::HardwareIsolation::server::Entry::Type;
+
+/**
+ * @brief Helper function to create service actions in the PEL
+ *
+ * @param[in] jsonCallouts - The array of JSON callouts, or an empty object.
+ * @param[in] path - The BMC error log object path
+ * @param[in] dataIface - The DataInterface object
+ */
+void createServiceActions(const nlohmann::json& jsonCallouts,
+                          const std::string& path,
+                          const DataInterfaceBase& dataIface);
+} // namespace phal
+} // namespace pels
+} // namespace openpower