summaryrefslogtreecommitdiffstats
path: root/src/include/usr/targeting/common/target.H
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2013-04-29 13:34:57 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-05-06 16:23:37 -0500
commitd615a4879c5e0a3dcd2cf09967bb091eb6f85cbd (patch)
tree02791152705bdf6f13b2469ad804c50e847d6ca1 /src/include/usr/targeting/common/target.H
parent85ccc6bf69ed809c8ef64f02faa01728f761344a (diff)
downloadblackbird-hostboot-d615a4879c5e0a3dcd2cf09967bb091eb6f85cbd.tar.gz
blackbird-hostboot-d615a4879c5e0a3dcd2cf09967bb091eb6f85cbd.zip
Reduce FAPI->TARG attribute access code size
Change-Id: I5fe3e7be1780d6034d2c52ef0dac6799f3c89d3b RTC: 70572 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4276 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/targeting/common/target.H')
-rw-r--r--src/include/usr/targeting/common/target.H26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/include/usr/targeting/common/target.H b/src/include/usr/targeting/common/target.H
index 16b2a8c51..496636a57 100644
--- a/src/include/usr/targeting/common/target.H
+++ b/src/include/usr/targeting/common/target.H
@@ -50,6 +50,23 @@
#include <targeting/common/attributes.H>
#include <targeting/common/attributeTank.H>
+//******************************************************************************
+// Forward declarations to allow friend functions to work
+//******************************************************************************
+namespace fapi
+{
+ class ReturnCode;
+ class Target;
+
+ namespace platAttrSvc
+ {
+ fapi::ReturnCode getTargetingAttr(const fapi::Target *,
+ const TARGETING::ATTRIBUTE_ID, const uint32_t, void *);
+ fapi::ReturnCode setTargetingAttr(const fapi::Target *,
+ const TARGETING::ATTRIBUTE_ID, const uint32_t, void *);
+ }
+}
+
namespace TARGETING
{
@@ -469,6 +486,15 @@ class Target
friend class PnorBuilderService;
+ // Friend functions to allow FAPI Attribute code to directly call
+ // _tryGetAttr and _trySetAttr for code size optimization
+ friend fapi::ReturnCode fapi::platAttrSvc::getTargetingAttr(
+ const fapi::Target *, TARGETING::ATTRIBUTE_ID, const uint32_t,
+ void *);
+ friend fapi::ReturnCode fapi::platAttrSvc::setTargetingAttr(
+ const fapi::Target *, TARGETING::ATTRIBUTE_ID, const uint32_t,
+ void *);
+
} PACKED;
template<const ATTRIBUTE_ID A>
OpenPOWER on IntegriCloud