blob: 0103a52940088c609d96023f42389720f37e46d5 [file] [log] [blame]
Ben Tynerb1ebfcb2020-05-08 18:52:48 -05001#pragma once
2
Ben Tyner1b1915e2020-10-23 15:13:38 -05003#include <util/ffdc_file.hpp>
4
Ben Tynerb1ebfcb2020-05-08 18:52:48 -05005#include <cstddef> // for size_t
6#include <map>
7#include <string>
Ben Tyner1b1915e2020-10-23 15:13:38 -05008#include <vector>
Ben Tynerb1ebfcb2020-05-08 18:52:48 -05009
10namespace attn
11{
12
13/** @brief Logging level types */
14enum level
15{
16 INFO
17};
18
19/** @brief Logging event types */
20enum class EventType
21{
22 Checkstop = 0,
23 Terminate = 1,
24 Vital = 2,
25 HwDiagsFail = 3,
26 AttentionFail = 4
27};
28
29/** @brief Maximum length of a single trace event message */
30static const size_t trace_msg_max_len = 255;
31
Ben Tynerf5210bb2021-01-05 12:58:10 -060032/** @brief Create trace message template */
Ben Tynerb1ebfcb2020-05-08 18:52:48 -050033template <level L>
34void trace(const char* i_message);
35
Ben Tynerf5210bb2021-01-05 12:58:10 -060036/** @brief Commit checkstop event to log */
Ben Tynerb1ebfcb2020-05-08 18:52:48 -050037void eventCheckstop(std::map<std::string, std::string>& i_errors);
38
Ben Tynerf5210bb2021-01-05 12:58:10 -060039/** @brief Commit special attention TI event to log */
40void eventTerminate(std::map<std::string, std::string> i_additionalData,
41 char* i_tiInfoData);
Ben Tynerb1ebfcb2020-05-08 18:52:48 -050042
Ben Tynerf5210bb2021-01-05 12:58:10 -060043/** @brief Commit SBE vital event to log */
Ben Tynerb1ebfcb2020-05-08 18:52:48 -050044void eventVital();
45
Ben Tynerf5210bb2021-01-05 12:58:10 -060046/** @brief Commit analyzer failure event to log */
Ben Tynerb1ebfcb2020-05-08 18:52:48 -050047void eventHwDiagsFail(int i_error);
48
Ben Tynerf5210bb2021-01-05 12:58:10 -060049/** @brief Commit attention handler failure event to log */
Ben Tynerb1ebfcb2020-05-08 18:52:48 -050050void eventAttentionFail(int i_error);
51
Ben Tynerb1ebfcb2020-05-08 18:52:48 -050052} // namespace attn