summaryrefslogtreecommitdiffstats
path: root/src/include/usr/hwas/common/deconfigGard.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/usr/hwas/common/deconfigGard.H')
-rw-r--r--src/include/usr/hwas/common/deconfigGard.H37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H
index b9fd4a754..374b6b44f 100644
--- a/src/include/usr/hwas/common/deconfigGard.H
+++ b/src/include/usr/hwas/common/deconfigGard.H
@@ -88,10 +88,11 @@ public:
PREDICTIVE, // not applied due to predictive policy
PREDICATE, // not applied due to predicate
GARD_NOT_APPLIED, // not applied for other reason
+ RESOURCE_RECOVERED // Resource recovered
};
- // enums to indicate to deconfigureTarget() specific RUNTIME behaviors
- enum DeconfigureRuntime
+ // enums to indicate to deconfigureTarget() specific behaviors
+ enum DeconfigureFlags
{
NOT_AT_RUNTIME, // non-runtime behavior - if the system is at
// runtime, no deconfigs happen;
@@ -99,6 +100,7 @@ public:
// runtime behaviors:
FULLY_AT_RUNTIME, // - functional=false,dumpfunctional=false
DUMP_AT_RUNTIME, // - functional=false,dumpfunctional=true
+ SPEC_DECONFIG, //speculative deconfig
};
// enums to indicate non-error reason for a targets deconfiguration.
@@ -146,6 +148,8 @@ public:
// set by presentByAssoc() when a DIMM has no MBA
DECONFIGURED_BY_NO_PARENT_MBA, // BASE | 0x0D
+ CONFIGURED_BY_RESOURCE_RECOVERY, // BASE | 0x0E
+
// mask - these bits mean it's a PLID and not an enum
DECONFIGURED_BY_PLID_MASK = 0xFFFF0000,
};
@@ -194,6 +198,23 @@ public:
~DeconfigGard();
/**
+ * @brief Apply gard record for a specific target.
+ *
+ * Called by deconfigureTargetsFromGardRecordsForIpl.
+ *
+ * @param i_pTarget Target to be garded
+ *
+ * @param i_gardRecord gard record to be applied
+ *
+ * @param i_deconfigRule Options for deconfigure
+ *
+ * @return errlHndl_t. Error log handle.
+ */
+ errlHndl_t applyGardRecord(TARGETING::Target *i_pTarget,
+ GardRecord &i_gardRecord,
+ const DeconfigureFlags i_deconfigRule = NOT_AT_RUNTIME);
+
+ /**
* @brief Clears GARD Records for replaced Targets.
*
* Called by HWAS as part of initial IPL steps.
@@ -260,14 +281,14 @@ public:
* @param[in] i_errlEid Error log EID to store in Deconfigure Record.
* @param[out] o_targetDeconfigured - if pointer is valid, bool is set
* to true if target was deconfigured; NOT SET OTHERWISE
- * @param[in] i_runTimeDeconfigRule Deconfigure Runtime options -
+ * @param[in] i_deconfigRule Deconfigure options -
* default not at runtime
* @return errlHndl_t. Error log handle.
*/
errlHndl_t deconfigureTarget(TARGETING::Target & i_target,
const uint32_t i_errlEid,
bool *o_targetDeconfigured = NULL,
- const DeconfigureRuntime i_runTimeDeconfigRule =
+ const DeconfigureFlags i_deconfigRule =
NOT_AT_RUNTIME);
/**
@@ -433,12 +454,12 @@ private:
*
* @param[in] i_target Reference to base Target.
* @param[in] i_errlEid Error log EID to store in Deconfigure Record.
- * @param[in] i_runTimeDeconfigRule Deconfigure Runtime options -
+ * @param[in] i_deconfigRule Deconfigure Runtime options -
* default not at runtime
*/
void _deconfigureByAssoc(TARGETING::Target & i_target,
const uint32_t i_errlEid,
- const DeconfigureRuntime i_runTimeDeconfigRule =
+ const DeconfigureFlags i_deconfigRule =
NOT_AT_RUNTIME);
/**
@@ -451,13 +472,13 @@ private:
* @param[in] i_errlEid Error log EID to store in Deconfigure Record.
* @param[out] o_targetDeconfigured - if pointer is valid, bool is set
* to true if target was deconfigured; NOT SET OTHERWISE
- * @param[in] i_runTimeDeconfigRule Deconfigure Runtime options -
+ * @param[in] i_deconfigRule Deconfigure Runtime options -
* default not at runtime
*/
void _deconfigureTarget(TARGETING::Target & i_target,
const uint32_t i_errlEid,
bool *o_targetDeconfigured = NULL,
- const DeconfigureRuntime i_runTimeDeconfigRule =
+ const DeconfigureFlags i_deconfigRule =
NOT_AT_RUNTIME);
/**
OpenPOWER on IntegriCloud