Commit a MaintenanceProcedure log entry on a 0xDE SEL record

In the case of a procedure callout, HB sends a eSEL of 0xDF type.
It is followed by a Add SEL record with OEM record type 0xDE
and byte 11 in the record indicate the procedure associated
with the eSEL.

Resolves openbmc/openbmc#2368

Change-Id: Ia57f423c9d533cd8968b613d7522b409a9820198
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/elog-errors.hpp b/elog-errors.hpp
index 02649f4..671d99f 100644
--- a/elog-errors.hpp
+++ b/elog-errors.hpp
@@ -128,6 +128,26 @@
 
 namespace sdbusplus
 {
+namespace org
+{
+namespace open_power
+{
+namespace Common
+{
+namespace Callout
+{
+namespace Error
+{
+    struct Procedure;
+} // namespace Error
+} // namespace Callout
+} // namespace Common
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
 namespace xyz
 {
 namespace openbmc_project
@@ -431,6 +451,22 @@
 } // namespace org
 } // namespace sdbusplus
 
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Host
+{
+namespace Error
+{
+    struct MaintenanceProcedure;
+} // namespace Error
+} // namespace Host
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
 
 namespace phosphor
 {
@@ -695,6 +731,53 @@
 
 }
 
+namespace org
+{
+namespace open_power
+{
+namespace Common
+{
+namespace Callout
+{
+namespace _Procedure
+{
+
+struct PROCEDURE
+{
+    static constexpr auto str = "PROCEDURE=%u";
+    static constexpr auto str_short = "PROCEDURE";
+    using type = std::tuple<std::decay_t<decltype(str)>,uint32_t>;
+    explicit constexpr PROCEDURE(uint32_t a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+
+}  // namespace _Procedure
+
+struct Procedure
+{
+    static constexpr auto L = level::ERR;
+    using PROCEDURE = _Procedure::PROCEDURE;
+    using metadata_types = std::tuple<PROCEDURE>;
+
+};
+
+} // namespace Callout
+} // namespace Common
+} // namespace open_power
+} // namespace org
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::org::open_power::Common::Callout::Error::Procedure>
+{
+    using type = org::open_power::Common::Callout::Procedure;
+};
+
+}
+
 namespace xyz
 {
 namespace openbmc_project
@@ -1235,6 +1318,51 @@
 
 }
 
+namespace org
+{
+namespace open_power
+{
+namespace Host
+{
+namespace _MaintenanceProcedure
+{
+
+struct ESEL
+{
+    static constexpr auto str = "ESEL=%s";
+    static constexpr auto str_short = "ESEL";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr ESEL(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+
+}  // namespace _MaintenanceProcedure
+
+struct MaintenanceProcedure
+{
+    static constexpr auto L = level::ERR;
+    using ESEL = _MaintenanceProcedure::ESEL;
+    using PROCEDURE = org::open_power::Common::Callout::Procedure::PROCEDURE;
+    using metadata_types = std::tuple<ESEL, PROCEDURE>;
+
+};
+
+} // namespace Host
+} // namespace open_power
+} // namespace org
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::org::open_power::Host::Error::MaintenanceProcedure>
+{
+    using type = org::open_power::Host::MaintenanceProcedure;
+};
+
+}
+
 namespace xyz
 {
 namespace openbmc_project