xref: /openbmc/openpower-hw-diags/analyzer/analyzer_main.hpp (revision de22092003c60e9f8d7013fea1ff68ab5afa2a12)
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