| #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>; |
| |
| // 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"; |
| |
| /** |
| * @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 |
| */ |
| std::string getValue(const uint8_t field, const pel_values::PELValues& values); |
| |
| /** |
| * @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 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; |
| |
| /** |
| * @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 All maintenance procedures. |
| * |
| * The procedure enum, registry name, and actual string value. |
| */ |
| extern const MaintenanceProcedureValues maintenanceProcedures; |
| |
| } // namespace pel_values |
| } // namespace pels |
| } // namespace openpower |