10205f3b3SBen Tyner #pragma once 20205f3b3SBen Tyner 37029e525SBen Tyner #include <attn/attn_dump.hpp> 47029e525SBen Tyner 50205f3b3SBen Tyner namespace analyzer 60205f3b3SBen Tyner { 70205f3b3SBen Tyner 8*ebff0d37SZane Shelley enum class AnalysisType 9*ebff0d37SZane Shelley { 100205f3b3SBen Tyner /** 11*ebff0d37SZane Shelley * Queries for the root cause of a system checkstop attention. An 12*ebff0d37SZane Shelley * unrecoverable PEL will be logged containing any necessary service actions 13*ebff0d37SZane Shelley * and the associated FFDC from analysis. 14*ebff0d37SZane Shelley */ 15*ebff0d37SZane Shelley SYSTEM_CHECKSTOP, 16*ebff0d37SZane Shelley 17*ebff0d37SZane Shelley /** 18*ebff0d37SZane Shelley * Queries for any active recoverable or unit checkstop attentions that may 19*ebff0d37SZane Shelley * be attributed to a Terminate Immediate (TI) event. If any are found, an 20*ebff0d37SZane Shelley * predictive PEL will be logged containing any necessary service actions 21*ebff0d37SZane Shelley * and the associated FFDC from analysis. 22*ebff0d37SZane Shelley */ 23*ebff0d37SZane Shelley TERMINATE_IMMEDIATE, 24*ebff0d37SZane Shelley 25*ebff0d37SZane Shelley /** 26*ebff0d37SZane Shelley * Queries for any active attentions. If any are found, an informational PEL 27*ebff0d37SZane Shelley * will be logged containing the FFDC from analysis (no service actions 28*ebff0d37SZane Shelley * applied). 29*ebff0d37SZane Shelley */ 30*ebff0d37SZane Shelley MANUAL, 31*ebff0d37SZane Shelley }; 32*ebff0d37SZane Shelley 33*ebff0d37SZane Shelley /** 34*ebff0d37SZane Shelley * @brief Queries all chips in the host hardware for any active attentions. 35*ebff0d37SZane Shelley * Then, it will perform any required RAS service actions based on the 36*ebff0d37SZane Shelley * given analysis type. 370205f3b3SBen Tyner * 38*ebff0d37SZane Shelley * @param i_type The type of analysis to perform. See enum above. 39*ebff0d37SZane Shelley * 40*ebff0d37SZane Shelley * @param o_dump The returned dump data. This data is only set if the input 41*ebff0d37SZane Shelley * value of i_type is SYSTEM_CHECKSTOP. 42*ebff0d37SZane Shelley * 43611b3442SZane Shelley * @return The platform log ID (PLID) of the PEL generated during analysis. Will 44611b3442SZane Shelley * return zero if no PEL is generated. 450205f3b3SBen Tyner */ 46*ebff0d37SZane Shelley uint32_t analyzeHardware(AnalysisType i_type, attn::DumpParameters& o_dump); 470205f3b3SBen Tyner 480205f3b3SBen Tyner } // namespace analyzer 49