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