summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorBrian Horton <brianh@linux.ibm.com>2013-03-01 06:12:10 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-03-14 10:55:06 -0500
commitd20d21e2d156288d7eae6a946d0fdd3a32519f29 (patch)
tree386a76bd4626789394fa7a1004b1744a91679d8a /src/include
parentee0f6a150dd7903a28b4d7bf663ea2ecb8ba6482 (diff)
downloadtalos-hostboot-d20d21e2d156288d7eae6a946d0fdd3a32519f29.tar.gz
talos-hostboot-d20d21e2d156288d7eae6a946d0fdd3a32519f29.zip
Cause a Hostboot TI on any Target Deconfigure
IStep Dispatcher will call into HWAS to see if there were any delayed deconfigure callouts during the sub-step loop; if so, an error will be returned, causing a TI and shutdown. Change-Id: Idef6f48669b7f3d73488a0697c5714088878856b RTC: 64894 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3391 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/hwas/common/deconfigGard.H45
-rw-r--r--src/include/usr/initservice/initsvcreasoncodes.H1
2 files changed, 45 insertions, 1 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H
index f1507980f..04a8e46c9 100644
--- a/src/include/usr/hwas/common/deconfigGard.H
+++ b/src/include/usr/hwas/common/deconfigGard.H
@@ -41,6 +41,17 @@ namespace HWAS
{
/**
+ * @brief processDelayedDeconfig process any delayed deconfigure callouts
+ * that might have been 'queued' up.
+ *
+ * This is outside of the DeconfigGard class because it is called
+ *
+ * @return bool true if there were delayed deconfigure callouts;
+ * false if there were NO delayed deconfigure callouts;
+ */
+bool processDelayedDeconfig();
+
+/**
* @brief collectGard Common HWAS function to collect the GARD info
*
* It will call into hwas platform-specific functions.
@@ -171,7 +182,8 @@ public:
/**
* @brief Deconfigures a Target.
*
- * Called by ErrlManager when committing an error log containing a
+ * Called from processCallout, which is called
+ * by ErrlManager when committing an error log containing a
* Deconfigure request.
*
* This will Deconfigure the Target (set state to non-functional, do any
@@ -188,6 +200,24 @@ public:
const uint32_t i_errlPlid);
/**
+ * @brief Registers a Delayed Deconfigure
+ *
+ * Called from errludcallout, which is called
+ * by hwasCallout when the user requests a
+ * Delayed Deconfigure request.
+ *
+ * For now, just put a mark on the wall indicating that we got a delayed
+ * deconfigure callout
+ * TODO RTC: 45781
+ *
+ * @param[in] i_target Reference to Target to deconfigure.
+ * @param[in] i_errlPlid Error log PLID to store in Deconfigure Record.
+ *
+ */
+ void registerDelayedDeconfigure(const TARGETING::Target & i_target,
+ const uint32_t i_errlPlid);
+
+ /**
* @brief Creates a GARD Record for a Target.
*
* Called by ErrlManager when committing an error log containing a
@@ -366,6 +396,17 @@ public:
*/
void _clearDeconfigureRecords(const TARGETING::EntityPath * i_pTargetId);
+
+ /**
+ * @brief _processDelayedDeconfig process any delayed deconfigure callouts
+ * that might have been 'queued' up.
+ *
+ *
+ * @return bool true if there were delayed deconfigure callouts;
+ * false if there were NO delayed deconfigure callouts;
+ */
+ bool _processDelayedDeconfig();
+
private:
/**
* @brief Gets the specified Deconfigure Records.
@@ -455,6 +496,8 @@ private:
// The Deconfigure Records
DeconfigureRecords_t iv_deconfigureRecords;
+ // are there any delayed deconfigure records
+ bool iv_delayedDeconfig;
}; // DeconfigGard
HWAS_DECLARE_SINGLETON(HWAS::DeconfigGard,theDeconfigGardSingleton);
diff --git a/src/include/usr/initservice/initsvcreasoncodes.H b/src/include/usr/initservice/initsvcreasoncodes.H
index ae23a5d2a..193e2aeee 100644
--- a/src/include/usr/initservice/initsvcreasoncodes.H
+++ b/src/include/usr/initservice/initsvcreasoncodes.H
@@ -73,6 +73,7 @@ enum InitServiceReasonCode
NO_MSG_PRESENT = INITSVC_COMP_ID | 0x12,
ISTEP_INVALID_ISTEP = INITSVC_COMP_ID | 0x13,
ISTEP_FAPI_ATTR_READ_FAILED = INITSVC_COMP_ID | 0x14,
+ ISTEP_DELAYED_DECONFIG = INITSVC_COMP_ID | 0x15,
};
OpenPOWER on IntegriCloud