summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-03-26 14:06:48 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-03-29 10:30:41 -0400
commit42e4c422f63b24bc73d2ce3a0e9b086ccee75aee (patch)
tree40ca14f63710ced6cf5bf7bf62d2d678665eb3eb /src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H
parent0bd003abad5f2f6f388c0a3b69258e7614ff83a6 (diff)
downloadtalos-hostboot-42e4c422f63b24bc73d2ce3a0e9b086ccee75aee.tar.gz
talos-hostboot-42e4c422f63b24bc73d2ce3a0e9b086ccee75aee.zip
PRD: moved prdfCenMbaDataBundle.H to common code
In preparation of additional changes. Change-Id: I02ea8a40e602c974fc986deade7ca94ae5110d15 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56262 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56410 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>
Diffstat (limited to 'src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H')
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H110
1 files changed, 110 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H b/src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H
new file mode 100644
index 000000000..85ef296ed
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H
@@ -0,0 +1,110 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plat/mem/prdfCenMbaDataBundle.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2017,2018 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __prdfCenMbaDataBundle_H
+#define __prdfCenMbaDataBundle_H
+
+// Framework includes
+#include <prdfExtensibleChip.H>
+
+// Platform includes
+#include <prdfPlatServices.H>
+
+#ifdef __HOSTBOOT_MODULE
+
+ #include <prdfMemTdCtlr.H>
+
+#endif
+
+namespace PRDF
+{
+
+/** @brief Centaur MBA data bundle. */
+class MbaDataBundle : public DataBundle
+{
+ public: // functions
+
+ /**
+ * @brief Constructor.
+ * @param i_chip The MBA chip.
+ */
+ explicit MbaDataBundle( ExtensibleChip * i_chip ) :
+ iv_chip(i_chip)
+ {}
+
+ /** @brief Destructor. */
+ ~MbaDataBundle()
+ {
+ #ifdef __HOSTBOOT_MODULE
+ delete iv_tdCtlr; iv_tdCtlr = nullptr;
+ #endif
+ }
+
+ // Don't allow copy or assignment.
+ MbaDataBundle( const MbaDataBundle & ) = delete;
+ const MbaDataBundle & operator=( const MbaDataBundle & ) = delete;
+
+ #ifdef __HOSTBOOT_MODULE
+
+ /** @return The Targeted Diagnostics controller. */
+ MemTdCtlr<TARGETING::TYPE_MBA> * getTdCtlr()
+ {
+ if ( nullptr == iv_tdCtlr )
+ {
+ iv_tdCtlr = new MemTdCtlr<TARGETING::TYPE_MBA>{iv_chip};
+ }
+
+ return iv_tdCtlr;
+ }
+
+ #endif
+
+ private: // instance variables
+
+ /** The MBA chip associated with this data bundle. */
+ ExtensibleChip * const iv_chip;
+
+ #ifdef __HOSTBOOT_MODULE
+
+ /** The Targeted Diagnostics controller. */
+ MemTdCtlr<TARGETING::TYPE_MBA> * iv_tdCtlr = nullptr;
+
+ #endif
+};
+
+/**
+ * @brief Wrapper function for the MbaDataBundle.
+ * @param i_mbaChip The MBA chip.
+ * @return This MBA's data bundle.
+ */
+inline MbaDataBundle * getMbaDataBundle( ExtensibleChip * i_mbaChip )
+{
+ return static_cast<MbaDataBundle *>(i_mbaChip->getDataBundle());
+}
+
+} // end namespace PRDF
+
+#endif // __prdfCenMbaDataBundle_H
+
OpenPOWER on IntegriCloud