summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNick Bofferding <bofferdn@us.ibm.com>2011-09-20 22:32:49 -0500
committerNicholas E. Bofferding <bofferdn@us.ibm.com>2011-09-21 08:41:14 -0500
commitff1429fbfefcb957f87176043dfba3cf467fe622 (patch)
tree92db908879dfcfe01bfc163b6c989bdfdd950379 /src
parentde8a529d349aebb344979609055f123c196ccfe3 (diff)
downloadtalos-hostboot-ff1429fbfefcb957f87176043dfba3cf467fe622.tar.gz
talos-hostboot-ff1429fbfefcb957f87176043dfba3cf467fe622.zip
Fix miscellaneous issues getting attributes from within HWPs
- Fix duplicate weak symbol issue when using range filter within multiple libs - Fix FAPI target casting when calling HB macro with real target handle - Fix FAPI namespacing when calling HB macro to bridge attribute Change-Id: I6a187d1933aeb42e674e5236a81ae6145f3de583 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/352 Tested-by: Jenkins Server Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/include/usr/hwpf/plat/fapiPlatAttributeService.H12
-rw-r--r--src/include/usr/targeting/iterators/rangefilter.H6
-rw-r--r--src/usr/targeting/iterators/rangefilter.C16
3 files changed, 22 insertions, 12 deletions
diff --git a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H
index 3d38d0e79..e932bca6d 100755
--- a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H
+++ b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H
@@ -104,11 +104,11 @@ namespace platAttrSvc
#define FAPI_PLAT_ATTR_SVC_GETMACRO_DIRECT(ID, PTARGET, VAL) \
( ((PTARGET) ? \
static_cast<TARGETING::Target*>( \
- static_cast<fapi::Target*>(PTARGET)->get()) \
+ static_cast<const fapi::Target*>(PTARGET)->get()) \
: fapi::platAttrSvc::getSystemTarget())->tryGetAttr< \
FAPI_PLAT_ATTR_SVC_MACRO_DIRECT_FAPI_##ID>(VAL)) \
- ? FAPI_RC_SUCCESS : fapi::platAttrSvc::createAttrAccessError( \
- FAPI_PLAT_ATTR_SVC_MACRO_DIRECT_FAPI_##ID,ID,PTARGET)
+ ? fapi::FAPI_RC_SUCCESS : fapi::platAttrSvc::createAttrAccessError( \
+ FAPI_PLAT_ATTR_SVC_MACRO_DIRECT_FAPI_##ID,fapi::ID,PTARGET)
/**
* @brief Macro which directly maps a FAPI request to set a platform
* attribute to the equivalent host boot request
@@ -116,11 +116,11 @@ namespace platAttrSvc
#define FAPI_PLAT_ATTR_SVC_SETMACRO_DIRECT(ID, PTARGET, VAL) \
( ((PTARGET) ? \
static_cast<TARGETING::Target*>( \
- static_cast<fapi::Target*>(PTARGET)->get()) \
+ static_cast<const fapi::Target*>(PTARGET)->get()) \
: fapi::platAttrSvc::getSystemTarget())->trySetAttr< \
FAPI_PLAT_ATTR_SVC_MACRO_DIRECT_FAPI_##ID>(VAL)) \
- ? FAPI_RC_SUCCESS : fapi::platAttrSvc::createAttrAccessError( \
- FAPI_PLAT_ATTR_SVC_MACRO_DIRECT_FAPI_##ID,ID,PTARGET)
+ ? fapi::FAPI_RC_SUCCESS : fapi::platAttrSvc::createAttrAccessError( \
+ FAPI_PLAT_ATTR_SVC_MACRO_DIRECT_FAPI_##ID,fapi::ID,PTARGET)
}
}
diff --git a/src/include/usr/targeting/iterators/rangefilter.H b/src/include/usr/targeting/iterators/rangefilter.H
index 21393bf2a..458bf3b9d 100644
--- a/src/include/usr/targeting/iterators/rangefilter.H
+++ b/src/include/usr/targeting/iterators/rangefilter.H
@@ -115,11 +115,7 @@ class RangeFilter
* @brief Dummy function used to implement ability to check if range
* iterator is valid
*/
- operator fake_bool() const
- {
- return (iv_current != iv_end)
- ? &RangeFilter::notComparable : NULL;
- }
+ operator fake_bool() const;
/**
* @brief Pre-increment operator which advances the range's iterator
diff --git a/src/usr/targeting/iterators/rangefilter.C b/src/usr/targeting/iterators/rangefilter.C
index fa6ca72ab..c82a183be 100644
--- a/src/usr/targeting/iterators/rangefilter.C
+++ b/src/usr/targeting/iterators/rangefilter.C
@@ -93,7 +93,18 @@ void RangeFilter<IteratorType>::advanceIfNoMatch()
advance();
}
}
-
+
+//******************************************************************************
+// RangeFilter<IteratorType>::operator fake_bool
+//******************************************************************************
+
+template<typename IteratorType>
+RangeFilter<IteratorType>::operator fake_bool() const
+{
+ return (iv_current != iv_end)
+ ? &RangeFilter::notComparable : NULL;
+}
+
//******************************************************************************
// Explicit template class member function instantiations
//******************************************************************************
@@ -104,6 +115,9 @@ template void RangeFilter<ConstTargetIterator>::advance();
template void RangeFilter<TargetIterator>::advanceIfNoMatch();
template void RangeFilter<ConstTargetIterator>::advanceIfNoMatch();
+template RangeFilter<TargetIterator>::operator fake_bool() const;
+template RangeFilter<ConstTargetIterator>::operator fake_bool() const;
+
#undef TARG_CLASS
#undef TARG_NAMESPACE
OpenPOWER on IntegriCloud