diff options
author | Brian Horton <brianh@linux.ibm.com> | 2013-03-01 06:12:10 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-03-14 10:55:06 -0500 |
commit | d20d21e2d156288d7eae6a946d0fdd3a32519f29 (patch) | |
tree | 386a76bd4626789394fa7a1004b1744a91679d8a /src/include | |
parent | ee0f6a150dd7903a28b4d7bf663ea2ecb8ba6482 (diff) | |
download | talos-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.H | 45 | ||||
-rw-r--r-- | src/include/usr/initservice/initsvcreasoncodes.H | 1 |
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, }; |