PEL: Add symbolic FRU support to FRUIdentity

A symbolic FRU is a FRU where the part is known, but the part number is
not available for it.  A trusted symbolic FRU adds the requirement that
the location code is known to be correct so it can be used for lighting
LEDs and FRU replacement.

The symbolic FRU name shares the same field as the part number.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I2fa936d9d7235c5cff245effcdb9d445aefffe23
diff --git a/extensions/openpower-pels/fru_identity.hpp b/extensions/openpower-pels/fru_identity.hpp
index 669dc01..e5eb864 100644
--- a/extensions/openpower-pels/fru_identity.hpp
+++ b/extensions/openpower-pels/fru_identity.hpp
@@ -95,6 +95,19 @@
     FRUIdentity(const std::string& procedureFromRegistry);
 
     /**
+     * @brief Constructor
+     *
+     * Creates the object with a symbolic FRU callout.
+     *
+     * @param[in] symbolicFRUFromRegistry - The symbolic FRU name as
+     *                                      defined in the message registry.
+     * @param[in] trustedLocationCode - If this FRU callout's location code
+     *                                  can be trusted to be correct.
+     */
+    FRUIdentity(const std::string& symbolicFRUFromRegistry,
+                bool trustedLocationCode);
+
+    /**
      * @brief Flatten the object into the stream
      *
      * @param[in] stream - The stream to write to
@@ -238,6 +251,16 @@
     void setMaintenanceProcedure(const std::string& procedureFromRegistry);
 
     /**
+     * @brief Sets the 8 character null terminated symbolic FRU
+     *        field.  This is in the same field as the part
+     *        number since they are mutually exclusive.
+     *
+     * @param[in] symbolicFRUFromRegistry - The symbolic FRU name as
+     *                                      defined in the message registry.
+     */
+    void setSymbolicFRU(const std::string& symbolicFRUFromRegistry);
+
+    /**
      * @brief The callout substructure type field. Will be "ID".
      */
     uint16_t _type;