Add SBE hreset support to SBE attention handler

When a SBE attention is being handled we will
request a SBE hreset and try to clear the SBE
attentions. If this is not successful we will
request a SBE dump and host re-IPL.

Signed-off-by: Ben Tyner <ben.tyner@ibm.com>
Change-Id: I5eb8e8728e92af54673cd3e37529eca9f6b03857
diff --git a/attn/attn_handler.hpp b/attn/attn_handler.hpp
index 6099135..9feacb2 100644
--- a/attn/attn_handler.hpp
+++ b/attn/attn_handler.hpp
@@ -4,7 +4,6 @@
 
 namespace attn
 {
-
 /** @brief Attention global status bits */
 constexpr uint32_t SBE_ATTN         = 0x00000002;
 constexpr uint32_t ANY_ATTN         = 0x80000000;
@@ -13,6 +12,15 @@
 constexpr uint32_t RECOVERABLE_ATTN = 0x10000000;
 
 /**
+ * @brief Clear attention interrupts
+ *
+ * The attention interrupts are sticky and may still be set (MPIPL) even if
+ * there are no active attentions. If there is an active attention then
+ * clearing the associated interrupt will have no effect.
+ */
+void clearAttnInterrupts();
+
+/**
  * @brief The main attention handler logic
  *
  * Check each processor for active attentions of type SBE Vital (vital),
@@ -33,4 +41,19 @@
  */
 void attnHandler(Config* i_config);
 
+/**
+ * @brief Determine if attention is active and not masked
+ *
+ * Determine whether an attention needs to be handled and trace details of
+ * attention type and whether it is masked or not.
+ *
+ * @param i_val attention status register
+ * @param i_mask attention true mask register
+ * @param i_attn attention type
+ * @param i_proc processor associated with registers
+ *
+ * @return true if attention is active and not masked, otherwise false
+ */
+bool activeAttn(uint32_t i_val, uint32_t i_mask, uint32_t i_attn);
+
 } // namespace attn