diff --git a/extensions/openpower-pels/pel_values.hpp b/extensions/openpower-pels/pel_values.hpp
index d7d4226..163c6da 100644
--- a/extensions/openpower-pels/pel_values.hpp
+++ b/extensions/openpower-pels/pel_values.hpp
@@ -26,6 +26,19 @@
 using PELFieldValue = std::tuple<uint32_t, const char*, const char*>;
 using PELValues = std::vector<PELFieldValue>;
 
+// The maintenance procedure enum
+const int mpEnumPos = 0;
+
+// The maintenance procedure value from the registry
+const int mpRegistryNamePos = 1;
+
+// The string name of the maintenance procedure
+const int mpNamePos = 2;
+
+using MaintenanceProcedureValue =
+    std::tuple<MaintProcedure, const char*, const char*>;
+using MaintenanceProcedureValues = std::vector<MaintenanceProcedureValue>;
+
 const std::string sectionVer = "Section Version";
 const std::string subSection = "Sub-section type";
 const std::string createdBy = "Created by";
@@ -72,6 +85,19 @@
                                      const PELValues& fields);
 
 /**
+ * @brief Finds the entry in the maintenance procedure list
+ *        based on the enum passed in.
+ *
+ * The function asserts that a result is found.
+ *
+ * @param[in] procedure - The procedure enum
+ *
+ * @return const_iterator - Iterator for that list entry
+ */
+MaintenanceProcedureValues::const_iterator
+    getMaintProcedure(MaintProcedure procedure);
+
+/**
  * @brief The values for the 'subsystem' field in the User Header
  */
 extern const PELValues subsystemValues;
@@ -131,6 +157,13 @@
  */
 extern const std::map<bool, std::string> boolString;
 
+/**
+ * @brief All maintenance procedures.
+ *
+ * The procedure enum, registry name, and actual string value.
+ */
+extern const MaintenanceProcedureValues maintenanceProcedures;
+
 } // namespace pel_values
 } // namespace pels
 } // namespace openpower
