1 #pragma once
2 
3 #include <libipl.H>
4 
5 #include <cstdarg>
6 
7 namespace openpower
8 {
9 namespace pel
10 {
11 namespace detail
12 {
13 
14 /**
15  * @brief Process debug traces
16  *
17  * Function adds debug traces to the list so that it will be added to the
18  * PEL upon failure
19  *
20  * @param[in] private_data - pointer to private data, unused now
21  * @param[in] fmt - format for variable list arguments
22  * @param[in] ap - object of va_list, holds information needed to retrieve
23  *                 the additional arguments
24  */
25 
26 void processLogTraceCallback(void* private_data, const char* fmt, va_list ap);
27 
28 /**
29  * @brief Process ipl failure/success status
30  *
31  * If status is success log traces are cleared else used in the
32  * creation of failure
33  *
34  * @param[in] errInfo - Error info structure
35  */
36 void processIplErrorCallback(const ipl_error_info& errInfo);
37 
38 /**
39  * @brief Process boot failure/success status
40  *
41  * If status is success log traces are cleared else used in the
42  * creation of failure
43  *
44  * @param[in] status - Boot execution status
45  */
46 void processBootError(bool status);
47 
48 /**
49  * @brief Process SBE boot failure/success status
50  *
51  * This function is used for SBE related failure handling during
52  * boot path. For any SBE related boot failure reason code, collects
53  * the SBE FFDC using libphal api's. Based on the reason code provided
54  * as part of error object collects Dump or PEL.
55  * Also resets the trace buffer.
56  */
57 void processSbeBootError();
58 
59 /**
60  * @brief Process Guard Partition Access Error
61  *
62  * This function is used process access error related to guard partition during
63  * boot. It collects the traces and create a PEL
64  */
65 void processGuardPartitionAccessError();
66 
67 /**
68  * @brief Reset trace log list
69  */
70 void reset();
71 
72 } // namespace detail
73 
74 /**
75  * @brief Add callbacks for debug traces and boot errors
76  *
77  * This function adds callback for debug traces and for boot
78  * errors
79  */
80 void addBootErrorCallbacks();
81 } // namespace pel
82 } // namespace openpower
83