summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2013-03-19 11:09:30 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-03-19 16:09:14 -0500
commit48785cd8095b54449391ae64fbf62025df8e66f5 (patch)
treebf8134c70df2076b7bf9161d2b9b617d502e68f1 /src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H
parent3e1e69778315cab6bf28758af9ad10add936963c (diff)
downloadblackbird-hostboot-48785cd8095b54449391ae64fbf62025df8e66f5.tar.gz
blackbird-hostboot-48785cd8095b54449391ae64fbf62025df8e66f5.zip
PRD: fixed MCIFIR clearing for non-MBA Centaur attns
Change-Id: If23e19ee9ad79add8a77e612cc9a920ca6cb5e93 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3629 Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Bradley W. Bishop <bradleyb@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H')
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H
new file mode 100644
index 000000000..54a6ba383
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H
@@ -0,0 +1,104 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plat/pegasus/prdfCenMembufDataBundle.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __prdfCenMembufDataBundle_H
+#define __prdfCenMembufDataBundle_H
+
+/** @file prdfCenMembufDataBundle.H
+ * @brief Contains the common data bundle for a PRD Centaur object.
+ */
+
+#include <prdfExtensibleChip.H>
+#include <prdfPlatServices.H>
+
+using namespace TARGETING;
+
+namespace PRDF
+{
+
+using namespace PlatServices;
+
+/**
+ * @brief Data container for the Centaur Membuf chip.
+ */
+class CenMembufDataBundle : public DataBundle
+{
+ public:
+
+ /** @brief Constructor */
+ CenMembufDataBundle( ExtensibleChip * i_mbChip ) :
+ iv_mbChip(i_mbChip), iv_mcsChip(NULL), iv_analyzeMba1Starvation(false)
+ {}
+
+ /** @brief Destructor */
+ ~CenMembufDataBundle() {}
+
+ /** @return The connected MCS chip. */
+ ExtensibleChip * getMcsChip()
+ {
+ if ( NULL == iv_mcsChip )
+ {
+ TargetHandleList list = getConnected( iv_mbChip->GetChipHandle(),
+ TYPE_MCS );
+ if ( 1 == list.size() )
+ iv_mcsChip = (ExtensibleChip *)systemPtr->GetChip( list[0] );
+ else
+ {
+ PRDF_ERR( "[CenMembufDataBundle::getMcsChip] "
+ "getConnected() failed" );
+ }
+ }
+
+ return iv_mcsChip;
+ }
+
+ private: // functions
+
+ CenMembufDataBundle( const CenMembufDataBundle & );
+ const CenMembufDataBundle & operator=( const CenMembufDataBundle & );
+
+ private: // instance variables
+
+ ExtensibleChip * iv_mbChip; ///< The Centaur chip
+ ExtensibleChip * iv_mcsChip; ///< The connected MCS chip
+
+ public: // instance variables
+
+ // Toggles to solve MBA1 starvation issue
+ bool iv_analyzeMba1Starvation;
+};
+
+/**
+ * @brief Wrapper function for the CenMembufDataBundle.
+ * @param i_membChip The centaur chip.
+ * @return This centaur's data bundle.
+ */
+CenMembufDataBundle * getCenMembufDataBundle( ExtensibleChip * i_membChip )
+{
+ return static_cast<CenMembufDataBundle *>(i_membChip->getDataBundle());
+}
+
+} // end namespace PRDF
+
+#endif // __prdfCenMembufDataBundle_H
+
OpenPOWER on IntegriCloud