| #pragma once | 
 |  | 
 | #include "pel_types.hpp" | 
 |  | 
 | #include <map> | 
 | #include <string> | 
 | #include <tuple> | 
 | #include <vector> | 
 |  | 
 | namespace openpower | 
 | { | 
 | namespace pels | 
 | { | 
 | namespace pel_values | 
 | { | 
 |  | 
 | // The actual value as it shows up in the PEL | 
 | const int fieldValuePos = 0; | 
 |  | 
 | // The name of the value as specified in the message registry | 
 | const int registryNamePos = 1; | 
 |  | 
 | // The description of the field, used by PEL parsers | 
 | const int descriptionPos = 2; | 
 |  | 
 | using PELFieldValue = std::tuple<uint32_t, const char*, const char*>; | 
 | using PELValues = std::vector<PELFieldValue>; | 
 |  | 
 | const std::string sectionVer = "Section Version"; | 
 | const std::string subSection = "Sub-section type"; | 
 | const std::string createdBy = "Created by"; | 
 |  | 
 | /** | 
 |  * @brief Helper function to get values from lookup tables. | 
 |  * @return std::string - the value | 
 |  * @param[in] uint8_t - field to get value for | 
 |  * @param[in] PELValues - lookup table | 
 |  * @param[in] uint8_t - position in the pel_values table to read | 
 |  */ | 
 | std::string getValue(const uint8_t field, const pel_values::PELValues& values, | 
 |                      const uint8_t position = pel_values::descriptionPos); | 
 |  | 
 | /** | 
 |  * @brief Helper function to get value vector from lookup tables. | 
 |  * | 
 |  * @param[in] value - the value to lookup | 
 |  * @param[in] table - lookup table | 
 |  * | 
 |  * @return std::vector<std::string> - the value vector | 
 |  */ | 
 | std::vector<std::string> getValuesBitwise(uint16_t value, | 
 |                                           const pel_values::PELValues& table); | 
 | /** | 
 |  * @brief Find the desired entry in a PELValues table based on the | 
 |  *        field value. | 
 |  * | 
 |  * @param[in] value - the PEL value to find | 
 |  * @param[in] fields - the PEL values table to use | 
 |  * | 
 |  * @return PELValues::const_iterator - an iterator to the table entry | 
 |  */ | 
 | PELValues::const_iterator findByValue(uint32_t value, const PELValues& fields); | 
 |  | 
 | /** | 
 |  * @brief Find the desired entry in a PELValues table based on the | 
 |  *        field message registry name. | 
 |  * | 
 |  * @param[in] name - the PEL message registry enum name | 
 |  * @param[in] fields - the PEL values table to use | 
 |  * | 
 |  * @return PELValues::const_iterator - an iterator to the table entry | 
 |  */ | 
 | PELValues::const_iterator findByName(const std::string& name, | 
 |                                      const PELValues& fields); | 
 |  | 
 | /** | 
 |  * @brief The values for the 'subsystem' field in the User Header | 
 |  */ | 
 | extern const PELValues subsystemValues; | 
 |  | 
 | /** | 
 |  * @brief The values for the 'severity' field in the User Header | 
 |  */ | 
 | extern const PELValues severityValues; | 
 |  | 
 | /** | 
 |  * @brief The values for the 'Event Type' field in the User Header | 
 |  */ | 
 | extern const PELValues eventTypeValues; | 
 |  | 
 | /** | 
 |  * @brief The values for the 'Event Scope' field in the User Header | 
 |  */ | 
 | extern const PELValues eventScopeValues; | 
 |  | 
 | /** | 
 |  * @brief The values for the 'Action Flags' field in the User Header | 
 |  */ | 
 | extern const PELValues actionFlagsValues; | 
 |  | 
 | /** | 
 |  * @brief The values for callout priorities in the SRC section | 
 |  */ | 
 | extern const PELValues calloutPriorityValues; | 
 |  | 
 | /** | 
 |  * @brief Map for section IDs | 
 |  */ | 
 | extern const std::map<std::string, std::string> sectionTitles; | 
 |  | 
 | /** | 
 |  * @brief Map for creator IDs | 
 |  */ | 
 | extern const std::map<std::string, std::string> creatorIDs; | 
 |  | 
 | /** | 
 |  * @brief Map for transmission states | 
 |  */ | 
 | extern const std::map<TransmissionState, std::string> transmissionStates; | 
 |  | 
 | /** | 
 |  * @brief Map for Procedure Descriptions | 
 |  */ | 
 | extern const std::map<std::string, std::string> procedureDesc; | 
 |  | 
 | /** | 
 |  * @brief Map for Callout Failing Component Types | 
 |  */ | 
 | extern const std::map<uint8_t, std::string> failingComponentType; | 
 |  | 
 | /** | 
 |  * @brief Map for Boolean value | 
 |  */ | 
 | extern const std::map<bool, std::string> boolString; | 
 |  | 
 | /** | 
 |  * @brief Map for maintenance procedures | 
 |  */ | 
 | extern const std::map<std::string, std::string> maintenanceProcedures; | 
 |  | 
 | /** | 
 |  * @brief Map for symbolic FRUs. | 
 |  */ | 
 | extern const std::map<std::string, std::string> symbolicFRUs; | 
 |  | 
 | } // namespace pel_values | 
 | } // namespace pels | 
 | } // namespace openpower |