| #pragma once |
| |
| #include <util/ffdc_file.hpp> |
| |
| #include <cstddef> // for size_t |
| #include <map> |
| #include <string> |
| #include <vector> |
| |
| namespace attn |
| { |
| |
| /** @brief Logging level types */ |
| enum level |
| { |
| INFO |
| }; |
| |
| /** @brief Logging event types */ |
| enum class EventType |
| { |
| Checkstop = 0, |
| Terminate = 1, |
| Vital = 2, |
| HwDiagsFail = 3, |
| AttentionFail = 4 |
| }; |
| |
| /** @brief Maximum length of a single trace event message */ |
| static const size_t trace_msg_max_len = 255; |
| |
| /** @brief create trace message */ |
| template <level L> |
| void trace(const char* i_message); |
| |
| /** @brief commit checkstop event to log */ |
| void eventCheckstop(std::map<std::string, std::string>& i_errors); |
| |
| /** @brief commit special attention TI event to log */ |
| void eventTerminate(std::map<std::string, std::string> i_additionalData); |
| |
| /** @brief commit SBE vital event to log */ |
| void eventVital(); |
| |
| /** @brief commit analyzer failure event to log */ |
| void eventHwDiagsFail(int i_error); |
| |
| /** @brief commit attention handler failure event to log */ |
| void eventAttentionFail(int i_error); |
| |
| using FFDCTuple = |
| std::tuple<util::FFDCFormat, uint8_t, uint8_t, sdbusplus::message::unix_fd>; |
| |
| /** |
| * Create an FFDCFile object containing the specified lines of text data. |
| * |
| * Throws an exception if an error occurs. |
| * |
| * @param lines lines of text data to write to file |
| * @return FFDCFile object |
| */ |
| util::FFDCFile createFFDCFile(const std::vector<std::string>& lines); |
| |
| /** |
| * Create FFDCFile objects containing debug data to store in the error log. |
| * |
| * If an error occurs, the error is written to the journal but an exception |
| * is not thrown. |
| * |
| * @param journal system journal |
| * @return vector of FFDCFile objects |
| */ |
| std::vector<util::FFDCFile> createFFDCFiles(); |
| |
| /** |
| * Create FFDCTuple objects corresponding to the specified FFDC files. |
| * |
| * The D-Bus method to create an error log requires a vector of tuples to |
| * pass in the FFDC file information. |
| * |
| * @param files FFDC files |
| * @return vector of FFDCTuple objects |
| */ |
| std::vector<FFDCTuple> createFFDCTuples(std::vector<util::FFDCFile>& files); |
| |
| } // namespace attn |