xref: /openbmc/openpower-debug-collector/watchdog/watchdog_handler.hpp (revision 41d507e52356d4f9d0b4ef963697a19145f0e56d)
11ac6162dSShantappa Teekappanavar #pragma once
21ac6162dSShantappa Teekappanavar 
31ac6162dSShantappa Teekappanavar #include <stdint.h>
41ac6162dSShantappa Teekappanavar 
51ac6162dSShantappa Teekappanavar /**
6*41d507e5SShantappa Teekappanavar  * @brief dump collection handler
71ac6162dSShantappa Teekappanavar  *
81ac6162dSShantappa Teekappanavar  * Handle collection due to host going down
91ac6162dSShantappa Teekappanavar  */
101ac6162dSShantappa Teekappanavar 
111ac6162dSShantappa Teekappanavar namespace watchdog
121ac6162dSShantappa Teekappanavar {
131ac6162dSShantappa Teekappanavar namespace dump
141ac6162dSShantappa Teekappanavar {
151ac6162dSShantappa Teekappanavar 
16*41d507e5SShantappa Teekappanavar /** @brief Dump types supported by dump request */
17*41d507e5SShantappa Teekappanavar enum class DumpType
18*41d507e5SShantappa Teekappanavar {
19*41d507e5SShantappa Teekappanavar     Hostboot,
20*41d507e5SShantappa Teekappanavar     SBE
21*41d507e5SShantappa Teekappanavar };
22*41d507e5SShantappa Teekappanavar 
23*41d507e5SShantappa Teekappanavar /** @brief Structure for dump request parameters */
24*41d507e5SShantappa Teekappanavar struct DumpParameters
25*41d507e5SShantappa Teekappanavar {
26*41d507e5SShantappa Teekappanavar     uint32_t logId;
27*41d507e5SShantappa Teekappanavar     uint32_t unitId;
28*41d507e5SShantappa Teekappanavar     uint32_t timeout;
29*41d507e5SShantappa Teekappanavar     DumpType dumpType;
30*41d507e5SShantappa Teekappanavar };
31*41d507e5SShantappa Teekappanavar 
32*41d507e5SShantappa Teekappanavar /** @brief Dump progress states */
33*41d507e5SShantappa Teekappanavar enum class DumpProgressStatus
34*41d507e5SShantappa Teekappanavar {
35*41d507e5SShantappa Teekappanavar     InProgress,
36*41d507e5SShantappa Teekappanavar     Completed,
37*41d507e5SShantappa Teekappanavar     Failed
38*41d507e5SShantappa Teekappanavar };
39*41d507e5SShantappa Teekappanavar 
401ac6162dSShantappa Teekappanavar /**
411ac6162dSShantappa Teekappanavar  * @brief Request a dump from the dump manager
421ac6162dSShantappa Teekappanavar  *
431ac6162dSShantappa Teekappanavar  * Request a dump from the dump manager and register a monitor for observing
441ac6162dSShantappa Teekappanavar  * the dump progress.
451ac6162dSShantappa Teekappanavar  *
46*41d507e5SShantappa Teekappanavar  * @param dumpParameters - parameters for the dump request
471ac6162dSShantappa Teekappanavar  *
481ac6162dSShantappa Teekappanavar  */
49*41d507e5SShantappa Teekappanavar void requestDump(const DumpParameters&);
501ac6162dSShantappa Teekappanavar 
511ac6162dSShantappa Teekappanavar } // namespace dump
521ac6162dSShantappa Teekappanavar } // namespace watchdog
53