#pragma once #include <attn/attn_config.hpp> namespace attn { /** @brief Attention global status bits */ constexpr uint32_t SBE_ATTN = 0x00000002; constexpr uint32_t ANY_ATTN = 0x80000000; constexpr uint32_t CHECKSTOP_ATTN = 0x40000000; constexpr uint32_t SPECIAL_ATTN = 0x20000000; constexpr uint32_t RECOVERABLE_ATTN = 0x10000000; /** * @brief The main attention handler logic * * Check each processor for active attentions of type SBE Vital (vital), * System Checkstop (checkstop) and Special Attention (special) and handle * each as follows: * * checkstop: Call hardware error analyzer * vital: TBD * special: Determine if the special attention is a Breakpoint (BP), * Terminate Immediately (TI) or CoreCodeToSp (corecode). For each * special attention type, do the following: * * BP: Notify Cronus * TI: Start host diagnostics mode systemd unit * Corecode: TBD * * @param i_config pointer to attention handler configuration object */ void attnHandler(Config* i_config); } // namespace attn