summaryrefslogtreecommitdiffstats
path: root/src/include/usr/targeting/attrrp.H
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2018-02-13 10:46:34 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-04-09 16:36:24 -0400
commit519b09db143e87b3d43f39790486f6c5dc1be96b (patch)
treef065d8dfdd170952d0d633c0e0f1d322b43a2fe6 /src/include/usr/targeting/attrrp.H
parent093052dd5cfac9e8c8d048eb5cf77223debf7e9d (diff)
downloadtalos-hostboot-519b09db143e87b3d43f39790486f6c5dc1be96b.tar.gz
talos-hostboot-519b09db143e87b3d43f39790486f6c5dc1be96b.zip
Support multiple nodes in HBRT - Concurrent Code Update
Enable HBRT to prepare for a concurrent code update on a multiple node system. Modify preparation function called by Host to loop through all nodes on the system. Make additional updates to go from supporting only a single node to supporting multiple nodes. Change-Id: I2d72b26abf40812641815051b968d6b540d27b00 RTC: 186584 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53952 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr/targeting/attrrp.H')
-rw-r--r--src/include/usr/targeting/attrrp.H51
1 files changed, 40 insertions, 11 deletions
diff --git a/src/include/usr/targeting/attrrp.H b/src/include/usr/targeting/attrrp.H
index 6eb367e17..897e6dec4 100644
--- a/src/include/usr/targeting/attrrp.H
+++ b/src/include/usr/targeting/attrrp.H
@@ -114,7 +114,7 @@ class AttrRP
#else
friend errlHndl_t RT_TARG::saveRestoreAttrs(void *,
void *,
- uint64_t&);
+ uint8_t);
#endif
public:
@@ -306,14 +306,16 @@ class AttrRP
#else
/**
- * @brief Fill in new attribute resource provider for HBRT.
+ * @brief Get node instance status of attribute resource provider
+ * which indicates if the attribute resource provider is handling
+ * a single node or multiple nodes
*
- * @param[in] i_header
- * TargetingHeader to use with filling in the new RT AttrRP.
- *
- * @return void
+ * @return Node instance status
*/
- void fillInAttrRP(TargetingHeader* i_header);
+ NodeInstanceStatus getInstanceStatus()
+ {
+ return iv_instanceStatus;
+ }
/**
* @brief Get count of nodes handled by attribute resource provider.
@@ -352,12 +354,39 @@ class AttrRP
* @par Detailed Description:
* Ensures member variables are initialized to sane values.
*/
- AttrRP(TargetingHeader* i_header)
- : iv_isTempInstance(true), iv_instanceStatus(SINGLE_NODE),
+ AttrRP(TargetingHeader* i_header,
+ NODE_ID i_nodeId,
+ size_t i_nodeCount,
+ NodeInstanceStatus i_instanceStatus)
+ : iv_isTempInstance(true), iv_instanceStatus(i_instanceStatus),
iv_isMpipl(false)
{
- // Fill in member variables
- fillInAttrRP(i_header);
+ // Work with nodes before passed in node
+ for(NODE_ID l_nodeId = NODE0; l_nodeId < i_nodeCount; ++l_nodeId)
+ {
+ // Create local copy of container for node info struct
+ NodeInfo l_nodeCont;
+
+ if(l_nodeId == i_nodeId)
+ {
+ // Initialize local copy of container for node info struct
+ errlHndl_t l_errl = nodeInfoInit(l_nodeCont,
+ i_header,
+ i_nodeId);
+ if (l_errl)
+ {
+ l_errl->setSev(ERRORLOG::ERRL_SEV_UNRECOVERABLE);
+
+ /* Commit the error */
+ errlCommit(l_errl, TARG_COMP_ID);
+
+ break;
+ }
+ }
+
+ // Push back node info struct into the node container
+ iv_nodeContainer.push_back(l_nodeCont);
+ }
};
#endif
OpenPOWER on IntegriCloud