PEL: Add support for raw symbolic FRUs and procs

Allow the FRUIdentity and Callout objects to take the raw maintenance
procedure and symbolic FRU names as opposed to just the PEL message
registry names.  This will allow the values to come from sources
besides the registry, such as the device tree used by PHAL.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I4171fb7128ae1b1b5e3e635f7f95b7f7df7c6638
diff --git a/extensions/openpower-pels/callout.hpp b/extensions/openpower-pels/callout.hpp
index fda0024..1bfe9c8 100644
--- a/extensions/openpower-pels/callout.hpp
+++ b/extensions/openpower-pels/callout.hpp
@@ -87,10 +87,43 @@
      * out a maintenance procedure.
      *
      * @param[in] priority - The priority of the callout
+     * @param[in] procedure - The maintenance procedure name
+     * @param[in] type - If the procedure is the raw name or the registry name
+     */
+    Callout(CalloutPriority priority, const std::string& procedure,
+            CalloutValueType type);
+
+    /**
+     * @brief Constructor
+     *
+     * Creates the objects with a FRUIdentity substructure that calls
+     * out a maintenance procedure.
+     *
+     * @param[in] priority - The priority of the callout
      * @param[in] procedureFromRegistry - The maintenance procedure name
      *                                    as defined in the message registry.
      */
-    Callout(CalloutPriority priority, const std::string& procedureFromRegistry);
+    Callout(CalloutPriority priority,
+            const std::string& procedureFromRegistry) :
+        Callout(priority, procedureFromRegistry, CalloutValueType::registryName)
+    {
+    }
+
+    /**
+     * @brief Constructor
+     *
+     * Creates the objects with a FRUIdentity substructure that calls
+     * out a symbolic FRU.
+     *
+     * @param[in] priority - The priority of the callout
+     * @param[in] symbolicFRU - The symbolic FRU name
+     * @param[in] type - If the FRU is the raw name or the registry name
+     * @param[in] locationCode - The location code of the callout
+     * @param[in] trustedLocationCode - If the location is trusted
+     */
+    Callout(CalloutPriority priority, const std::string& symbolicFRU,
+            CalloutValueType type, const std::string& locationCode,
+            bool trustedLocationCode);
 
     /**
      * @brief Constructor
@@ -106,7 +139,12 @@
      */
     Callout(CalloutPriority priority,
             const std::string& symbolicFRUFromRegistry,
-            const std::string& locationCode, bool trustedLocationCode);
+            const std::string& locationCode, bool trustedLocationCode) :
+        Callout(priority, symbolicFRUFromRegistry,
+                CalloutValueType::registryName, locationCode,
+                trustedLocationCode)
+    {
+    }
 
     /**
      * @brief Returns the size of this object when flattened into a PEL