Add SBE timeout handling
Add an Error instance to detect SBE timeouts in the driver.
Refactor the PLDM code to handle another requeset type (the HRESET) and
another type of sensor event (success or failure of the HRESET).
Handle the timeout and the PLDM event state change in the Manager by
changing the SBE state and requesting an SBE dump if necessary.
Signed-off-by: Eddie James <eajames@linux.ibm.com>
Change-Id: I30d8f9de1914d9808ddb7b547cc57085a5e5779e
diff --git a/occ_status.hpp b/occ_status.hpp
index 606a890..7356add 100644
--- a/occ_status.hpp
+++ b/occ_status.hpp
@@ -69,7 +69,7 @@
* OCC if PLDM is the host communication
* protocol
*/
- Status(EventPtr& event, const char* path, const Manager& manager,
+ Status(EventPtr& event, const char* path, Manager& manager,
std::function<void(bool)> callBack = nullptr
#ifdef PLDM
,
@@ -86,9 +86,7 @@
fs::path(DEV_PATH) /
fs::path(sysfsName + "." + std::to_string(instance + 1)),
#endif
- manager, *this, instance,
- std::bind(std::mem_fn(&Status::deviceErrorHandler), this,
- std::placeholders::_1)),
+ manager, *this, instance),
hostControlSignal(
utils::getBus(),
sdbusRule::type::signal() + sdbusRule::member("CommandComplete") +
@@ -163,6 +161,9 @@
/** @brief Read OCC state (will trigger kernel to poll the OCC) */
void readOccState();
+ /** @brief Called when device errors are detected */
+ void deviceError();
+
#ifdef POWER10
/** @brief Handle additional tasks when the OCCs reach active state */
void occsWentActive();
@@ -210,12 +211,6 @@
/** @brief Command object to send commands to the OCC */
OccCommand occCmd;
- /** @brief Callback handler when device errors are detected
- *
- * @param[in] error - True if an error is reported, false otherwise
- */
- void deviceErrorHandler(bool error);
-
/** @brief Callback function on host control signals
*
* @param[in] msg - Data associated with subscribed signal