summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/attn/attntarget.H
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@us.ibm.com>2012-08-17 23:02:51 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-11-13 20:20:25 -0600
commit6a6c4e1385a56e0545144f87a0f4735dbc714f56 (patch)
treeed758bc33d97d8d339d532f6eab677921bc3dd03 /src/usr/diag/attn/attntarget.H
parent05144d673fb8ec3c6d9d6af358ce3ab5081ebe17 (diff)
downloadtalos-hostboot-6a6c4e1385a56e0545144f87a0f4735dbc714f56.tar.gz
talos-hostboot-6a6c4e1385a56e0545144f87a0f4735dbc714f56.zip
Attention handler configuration of local err interrupts.
Set priority. Register with INTR using correct xisr number. Parse xisr number in INTR correctly. Change-Id: If6f7afc28d12a2f939f26738471d5d0304179271 RTC: 46448 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1561 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/diag/attn/attntarget.H')
-rw-r--r--src/usr/diag/attn/attntarget.H81
1 files changed, 80 insertions, 1 deletions
diff --git a/src/usr/diag/attn/attntarget.H b/src/usr/diag/attn/attntarget.H
index 344f02bb4..b37fb3719 100644
--- a/src/usr/diag/attn/attntarget.H
+++ b/src/usr/diag/attn/attntarget.H
@@ -70,6 +70,19 @@ class TargetService
TARGETING::TargetHandle_t i_membuf);
/**
+ * @brief getAllChips Get a list of chips.
+ *
+ * @param[out] o_list The populated list of chips.
+ * @param[in] i_type The type of chip for which a list
+ * should be obtained.
+ * @param[in] i_functional functional chip filter.
+ */
+ void getAllChips(
+ TARGETING::TargetHandleList & o_list,
+ TARGETING::TYPE i_type,
+ bool i_functional = true);
+
+ /**
* @brief getMcs Find the requested membuf chip
* target parent MCS unit target.
*
@@ -137,6 +150,22 @@ class TargetService
TARGETING::TargetHandle_t i_target);
/**
+ * @brief getAttribute Obtain the attribute for the requested target.
+ *
+ * @param[in] i_attribute The attribute to be obtained.
+ * @param[in] i_target The target for which the attribute
+ * should be obtained.
+ * @param[out] o_val The value of the attribute.
+ *
+ * @retval[true] The attribute was found.
+ * @retval[false] The attribute was not found.
+ */
+ bool getAttribute(
+ TARGETING::ATTRIBUTE_ID i_attribute,
+ TARGETING::TargetHandle_t i_target,
+ uint64_t & o_val);
+
+ /**
* @brief setImpl Set the active target service implementation.
*
* @param[in] i_impl The target service implementation to make active.
@@ -164,6 +193,11 @@ class TargetService
* @brief assignment Disabled.
*/
TargetService & operator=(const TargetService &);
+
+ /**
+ * @brief Give access to the default implementation.
+ */
+ friend class TargetServiceImpl;
};
/**
@@ -218,6 +252,19 @@ class TargetServiceImpl
TARGETING::TargetHandle_t i_membuf);
/**
+ * @brief getAllChips Get a list of chips.
+ *
+ * @param[out] o_list The populated list of chips.
+ * @param[in] i_type The type of chip for which a list
+ * should be obtained.
+ * @param[in] i_functional functional chip filter.
+ */
+ virtual void getAllChips(
+ TARGETING::TargetHandleList & o_list,
+ TARGETING::TYPE i_type,
+ bool i_functional = true);
+
+ /**
* @brief getMcs Find the MCS unit target given
* the proc chip parent target and MCS position.
*
@@ -271,6 +318,22 @@ class TargetServiceImpl
TARGETING::TargetHandle_t i_target);
/**
+ * @brief getAttribute Obtain the attribute for the requested target.
+ *
+ * @param[in] i_attribute The attribute to be obtained.
+ * @param[in] i_target The target for which the attribute
+ * should be obtained.
+ * @param[out] o_val The value of the attribute.
+ *
+ * @retval[true] The attribute was found.
+ * @retval[false] The attribute was not found.
+ */
+ virtual bool getAttribute(
+ TARGETING::ATTRIBUTE_ID i_attribute,
+ TARGETING::TargetHandle_t i_target,
+ uint64_t & o_val);
+
+ /**
* @brief installTargetService
*
* Make this the active target service implementation.
@@ -280,7 +343,7 @@ class TargetServiceImpl
/**
* @brief dtor
*/
- virtual ~TargetServiceImpl() {}
+ virtual ~TargetServiceImpl();
/**
* @brief ctor
@@ -314,6 +377,14 @@ inline TARGETING::TargetHandle_t TargetService::getMcs(
return iv_impl->getMcs(i_proc, i_pos);
}
+inline void TargetService::getAllChips(
+ TARGETING::TargetHandleList & o_list,
+ TARGETING::TYPE i_type,
+ bool i_functional)
+{
+ iv_impl->getAllChips(o_list, i_type, i_functional);
+}
+
inline void TargetService::getMcsPos(
TARGETING::TargetHandle_t i_mcs,
uint64_t & o_pos)
@@ -333,6 +404,14 @@ inline TARGETING::TYPE TargetService::getType(
return iv_impl->getType(i_target);
}
+inline bool TargetService::getAttribute(
+ TARGETING::ATTRIBUTE_ID i_attribute,
+ TARGETING::TargetHandle_t i_target,
+ uint64_t & o_val)
+{
+ return iv_impl->getAttribute(i_attribute, i_target, o_val);
+}
+
inline void TargetService::setImpl(TargetServiceImpl & i_impl)
{
iv_impl = &i_impl;
OpenPOWER on IntegriCloud