diff options
Diffstat (limited to 'src/usr/diag/prdf/common/framework')
145 files changed, 1371 insertions, 1412 deletions
diff --git a/src/usr/diag/prdf/common/framework/config/iipConfigurator.C b/src/usr/diag/prdf/common/framework/config/iipConfigurator.C index a3425a73e..a3268f74a 100755 --- a/src/usr/diag/prdf/common/framework/config/iipConfigurator.C +++ b/src/usr/diag/prdf/common/framework/config/iipConfigurator.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipConfigurator.h b/src/usr/diag/prdf/common/framework/config/iipConfigurator.h index 262a9b9e7..368fe74d3 100755 --- a/src/usr/diag/prdf/common/framework/config/iipConfigurator.h +++ b/src/usr/diag/prdf/common/framework/config/iipConfigurator.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipDomain.C b/src/usr/diag/prdf/common/framework/config/iipDomain.C index fde702412..1fc975b63 100755 --- a/src/usr/diag/prdf/common/framework/config/iipDomain.C +++ b/src/usr/diag/prdf/common/framework/config/iipDomain.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipDomain.h b/src/usr/diag/prdf/common/framework/config/iipDomain.h index 8545801aa..043841539 100755 --- a/src/usr/diag/prdf/common/framework/config/iipDomain.h +++ b/src/usr/diag/prdf/common/framework/config/iipDomain.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipDomainContainer.C b/src/usr/diag/prdf/common/framework/config/iipDomainContainer.C index 09399eb1c..d265b78f9 100755 --- a/src/usr/diag/prdf/common/framework/config/iipDomainContainer.C +++ b/src/usr/diag/prdf/common/framework/config/iipDomainContainer.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipDomainContainer.h b/src/usr/diag/prdf/common/framework/config/iipDomainContainer.h index 36f2d8850..88917bb2e 100755 --- a/src/usr/diag/prdf/common/framework/config/iipDomainContainer.h +++ b/src/usr/diag/prdf/common/framework/config/iipDomainContainer.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipDomainContainer.inl b/src/usr/diag/prdf/common/framework/config/iipDomainContainer.inl index be75887ac..b6b0adbb3 100755 --- a/src/usr/diag/prdf/common/framework/config/iipDomainContainer.inl +++ b/src/usr/diag/prdf/common/framework/config/iipDomainContainer.inl @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipSystem.C b/src/usr/diag/prdf/common/framework/config/iipSystem.C index b66f2f0de..032def1db 100755 --- a/src/usr/diag/prdf/common/framework/config/iipSystem.C +++ b/src/usr/diag/prdf/common/framework/config/iipSystem.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipSystem.h b/src/usr/diag/prdf/common/framework/config/iipSystem.h index b608b377f..d6d3d60c9 100755 --- a/src/usr/diag/prdf/common/framework/config/iipSystem.h +++ b/src/usr/diag/prdf/common/framework/config/iipSystem.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipchip.C b/src/usr/diag/prdf/common/framework/config/iipchip.C index d5c2187fd..3c41666a2 100755 --- a/src/usr/diag/prdf/common/framework/config/iipchip.C +++ b/src/usr/diag/prdf/common/framework/config/iipchip.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1993,2012 */ +/* COPYRIGHT International Business Machines Corp. 1993,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/iipchip.h b/src/usr/diag/prdf/common/framework/config/iipchip.h index 51f0ce3b2..a94e2160f 100755 --- a/src/usr/diag/prdf/common/framework/config/iipchip.h +++ b/src/usr/diag/prdf/common/framework/config/iipchip.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1993,2012 */ +/* COPYRIGHT International Business Machines Corp. 1993,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfExDomain.H b/src/usr/diag/prdf/common/framework/config/prdfExDomain.H index 964aa87a1..86055b4ab 100644 --- a/src/usr/diag/prdf/common/framework/config/prdfExDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfExDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfExtensibleChip.H b/src/usr/diag/prdf/common/framework/config/prdfExtensibleChip.H index 8a5e8d4eb..545ebe85a 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfExtensibleChip.H +++ b/src/usr/diag/prdf/common/framework/config/prdfExtensibleChip.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.C b/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.C index 31e03a513..3b8f5c9fa 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.C +++ b/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2009,2012 */ +/* COPYRIGHT International Business Machines Corp. 2009,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.H b/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.H index 9432a5ad2..acd88db9c 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfExtensibleDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2009,2012 */ +/* COPYRIGHT International Business Machines Corp. 2009,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.C b/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.C index 1efef0eb9..9d9f2658a 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.C +++ b/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.H b/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.H index c5e3cd5fb..9d301b594 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfFabricDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfMbaDomain.H b/src/usr/diag/prdf/common/framework/config/prdfMbaDomain.H index d2220b3d4..6aabd3019 100644 --- a/src/usr/diag/prdf/common/framework/config/prdfMbaDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfMbaDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfMcsDomain.H b/src/usr/diag/prdf/common/framework/config/prdfMcsDomain.H index 341ecc706..53341b0d9 100644 --- a/src/usr/diag/prdf/common/framework/config/prdfMcsDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfMcsDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfMembufDomain.H b/src/usr/diag/prdf/common/framework/config/prdfMembufDomain.H index ca2b9be81..3cad001a1 100644 --- a/src/usr/diag/prdf/common/framework/config/prdfMembufDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfMembufDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfParentDomain.C b/src/usr/diag/prdf/common/framework/config/prdfParentDomain.C index 14759cef6..89d1c3c5d 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfParentDomain.C +++ b/src/usr/diag/prdf/common/framework/config/prdfParentDomain.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfParentDomain.H b/src/usr/diag/prdf/common/framework/config/prdfParentDomain.H index 8981ed56f..5c75e5094 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfParentDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfParentDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfPllDomain.C b/src/usr/diag/prdf/common/framework/config/prdfPllDomain.C index 1076df31c..8ce117c7a 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfPllDomain.C +++ b/src/usr/diag/prdf/common/framework/config/prdfPllDomain.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2003,2012 */ +/* COPYRIGHT International Business Machines Corp. 2003,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfPllDomain.H b/src/usr/diag/prdf/common/framework/config/prdfPllDomain.H index 583b54c84..8e232604f 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfPllDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfPllDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2006,2012 */ +/* COPYRIGHT International Business Machines Corp. 2006,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.C b/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.C index 04e009657..036f64df8 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.C +++ b/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2008,2012 */ +/* COPYRIGHT International Business Machines Corp. 2008,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.H b/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.H index 59dde7f35..fcf9e38e1 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.H +++ b/src/usr/diag/prdf/common/framework/config/prdfRuleChipDomain.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2008,2012 */ +/* COPYRIGHT International Business Machines Corp. 2008,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/prdfSystemSpecific.H b/src/usr/diag/prdf/common/framework/config/prdfSystemSpecific.H index af173c3aa..f0f69e592 100755 --- a/src/usr/diag/prdf/common/framework/config/prdfSystemSpecific.H +++ b/src/usr/diag/prdf/common/framework/config/prdfSystemSpecific.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2008,2012 */ +/* COPYRIGHT International Business Machines Corp. 2008,2013 */ /* */ /* p1 */ /* */ @@ -50,7 +50,7 @@ namespace PRDF namespace SystemSpecific { - PRDF::Configurator * getConfiguratorPtr(); + Configurator * getConfiguratorPtr(); void postAnalysisWorkarounds(STEP_CODE_DATA_STRUCT & i_sdc); }; diff --git a/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.C b/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.C index 609f76595..3df704e07 100755 --- a/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.C +++ b/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2000,2012 */ +/* COPYRIGHT International Business Machines Corp. 2000,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.h b/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.h index bc6a78792..90f152f7c 100755 --- a/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.h +++ b/src/usr/diag/prdf/common/framework/config/xspprdAccessPllChip.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2000,2012 */ +/* COPYRIGHT International Business Machines Corp. 2000,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipCaptureData.h b/src/usr/diag/prdf/common/framework/register/iipCaptureData.h index a4c0ce514..bcf4c7ad2 100755 --- a/src/usr/diag/prdf/common/framework/register/iipCaptureData.h +++ b/src/usr/diag/prdf/common/framework/register/iipCaptureData.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ @@ -187,20 +187,6 @@ public: Place place = BACK); */ - /** - Add scr & data to capture log (defunct) - <ul> - <br><b>Paramter: chipid (or chip enum) - <br><b>Paramter: Scan comm register object - <br><b>Paramter: Optional location in capure vector [FRONT | BACK] def = BACK - <br><b>Returns: Nothing - <br><b>Requires: Nothing - <br><b>Promises: scr.Read() - <br><b>Notes: This method is no longer implemented - </ul><br> - */ - void Add(ScanCommRegisterAccess & scr, Place place = BACK); - // dg02 start /** Add scr & data to capture log @@ -219,25 +205,6 @@ public: BIT_STRING_CLASS & bs, Place place = BACK); // dg02 end - // dg06a start - /** - Add scr & data to capture log - <ul> - <br><b>Paramter: i_pTargetHandle Handle of chip object - <br><b>Paramter: scan comm id (unique code representing scan comm address) - <br><b>Paramter: Scan comm register address - <br><b>Paramter: Scan comm register bit length length - <br><b>Paramter: Optional location in capure vector [FRONT | BACK] def = BACK - <br><b>Returns: Nothing - <br><b>Requires: Nothing - <br><b>Promises: - <br><b>Notes: This is available for Regatta and beyond. Not implemented on Condor - </ul><br> - */ - void Add( TARGETING::TargetHandle_t i_pTargetHandle , int iScomId, - uint64_t iScomAddress, uint32_t iScomBitLength , - Place iplace = BACK); - // dg06a end // start @jl04a /** diff --git a/src/usr/diag/prdf/common/framework/register/iipErrorRegister.h b/src/usr/diag/prdf/common/framework/register/iipErrorRegister.h index db12c223c..7fcedaac0 100755 --- a/src/usr/diag/prdf/common/framework/register/iipErrorRegister.h +++ b/src/usr/diag/prdf/common/framework/register/iipErrorRegister.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterFilter.h b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterFilter.h index a8dc3b027..5c0659d0e 100755 --- a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterFilter.h +++ b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterFilter.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterMask.h b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterMask.h index 45573a232..55fc70fa9 100755 --- a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterMask.h +++ b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterMask.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterSet.h b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterSet.h index 2f7c25bdc..4c90519e0 100755 --- a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterSet.h +++ b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterSet.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterType.h b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterType.h index ead888a92..054cca2c1 100755 --- a/src/usr/diag/prdf/common/framework/register/iipErrorRegisterType.h +++ b/src/usr/diag/prdf/common/framework/register/iipErrorRegisterType.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.C b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.C index 66977cb13..7ead3145c 100755 --- a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.C +++ b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.h b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.h index 874d9d745..7ebafd27a 100755 --- a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.h +++ b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.inl b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.inl index 406d13cfe..8f1e28022 100755 --- a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.inl +++ b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccess.inl @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.h b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.h index c5808f8c3..b77158457 100755 --- a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.h +++ b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.inl b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.inl index 652d67819..a7eef5913 100755 --- a/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.inl +++ b/src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.inl @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipResetErrorRegister.h b/src/usr/diag/prdf/common/framework/register/iipResetErrorRegister.h index 2b449b329..e46be7cbe 100755 --- a/src/usr/diag/prdf/common/framework/register/iipResetErrorRegister.h +++ b/src/usr/diag/prdf/common/framework/register/iipResetErrorRegister.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.C b/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.C deleted file mode 100755 index 72b0f67a2..000000000 --- a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.C +++ /dev/null @@ -1,201 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.C $ */ -/* */ -/* IBM CONFIDENTIAL */ -/* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ -/* */ -/* 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 */ - -// Module Description ************************************************** -// -// Description: This module provides the implementation for the PRD Scan -// Comm Register Access class. -// -// End Module Description ********************************************** - -//---------------------------------------------------------------------- -// Includes -//---------------------------------------------------------------------- -#define iipScanCommRegisterAccess_C - -#include <CcSynch.h> -#include <iipconst.h> -#include <iipbits.h> -#include <iipMopRegisterAccess.h> -#include <iipScanCommRegisterAccess.h> -#include <prdfMain.H> -#undef iipScanCommRegisterAccess_C - -//---------------------------------------------------------------------- -// User Types -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Constants -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Macros -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Internal Function Prototypes -//---------------------------------------------------------------------- - -namespace PRDF -{ - -//---------------------------------------------------------------------- -// Global Variables -//---------------------------------------------------------------------- -// -#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) -#if (GCC_VERSION >= 3004) -template<> -#endif -ScanCommRegisterAccess::SynchType::StepType - ScanCommRegisterAccess::SynchType::step = - ScanCommRegisterAccess::SynchType::STATIC_INITIAL_VALUE; - -//--------------------------------------------------------------------- -// Member Function Specifications -//--------------------------------------------------------------------- - -uint32_t ScanCommRegisterAccess::UnSync(void) -{ - uint32_t l_rc = SUCCESS; - synch.Advance(); // make everything out of synch - return(l_rc); -} - -uint32_t ScanCommRegisterAccess::Read(void) -{ - uint32_t rc = SUCCESS; - - if(!synch.IsCurrent()) - { -// BIT_STRING_BUFFER_CLASS bs(GetBitLength(), GetBufferByteSize()); - BIT_STRING_CLASS & bs = AccessBitString(); - - rc = Access(bs,GetAddress(), MopRegisterAccess::READ); - // dg01 start - if (rc != SUCCESS) - { - synch.Advance(); // make everything out of synch if failed - } - // dg01 end - -// if(rc == SUCCESS) -// { -// SetBitString(&bs); -// } - } - - return(rc); -} - -// ---------------------------------------------------------------------------- -// dg00 start -uint32_t ScanCommRegisterAccess::ForceRead(void) -{ - uint32_t rc = SUCCESS; - - BIT_STRING_CLASS & bs = AccessBitString(); - rc = Access(bs,GetAddress(), MopRegisterAccess::READ); - synch.IsCurrent(); - - return rc; -} -// dg00 end -//------------------------------------------------------------------------------- - -uint32_t ScanCommRegisterAccess::Write(void) -{ - uint32_t rc = (uint32_t) FAIL; - -// const BIT_STRING_CLASS * bit_string_ptr = GetBitString(); - - BIT_STRING_CLASS & bs = AccessBitString(); -// if(bit_string_ptr != NULL) -// { -// BIT_STRING_BUFFER_CLASS bs(GetBitLength(), GetBufferByteSize()); - -// bs.SetBits(*bit_string_ptr); - - rc = Access(bs, GetAddress(), MopRegisterAccess::WRITE); -// } - - return(rc); -} - -// unsigned int ScanCommRegisterAccess::GetBufferByteSize(void) const -// { -// return(BUFFER_BYTE_SIZE); -// } - -uint32_t ScanCommRegisterAccess::Access(BIT_STRING_CLASS & bs, uint64_t registerId, - MopRegisterAccess::Operation op) const -{ - uint32_t rc = SCR_ACCESS_FAILED; - if(hops != NULL) - { - rc = hops->Access(bs, registerId, op); - } - return(rc); -} - -// #ifdef _USE_IOSTREAMS_ - -// ostream & operator<<(ostream & out, const ScanCommRegisterAccess & scr) -// { -// out << "Address: " << scr.GetAddress() << " Chip: "; // << hops; - - -// uint32_t count; -// const uint32_t * values = scr.GetChipSelectValues(count); - -// if(count) -// { -// for(uint32_t i = 0;i < count;i++) -// { -// out << values[i] << " "; -// } -// } -// else -// { -// out << "None "; -// } - -// const BIT_STRING_CLASS * bit_string_ptr = scr.GetBitString(); - -// if(bit_string_ptr == NULL) -// { -// out << " No Data"; -// } -// else -// { -// out << " Data: " << (*bit_string_ptr); -// } - -// return(out); -// } - -// #endif - -} //end namespace PRDF - diff --git a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.h b/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.h deleted file mode 100755 index 8a9c76d14..000000000 --- a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.h +++ /dev/null @@ -1,331 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.h $ */ -/* */ -/* IBM CONFIDENTIAL */ -/* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ -/* */ -/* 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 iipScanCommRegisterAccess_h -#define iipScanCommRegisterAccess_h - -// Class Specification ************************************************* -// -// Class name: ScanCommRegisterAccess -// Parent class: SCAN_COMM_REGISTER_CLASS -// -// Summary: This class provides access to the Scan Comm Register -// physical hardware. The member functions Read() and Write() -// both call the common function Access(). Access() is -// implemented to use a MopRegisterAccessScanComm instance to -// access the hardware. -// -// This class contains an instance of the CcSynch class. This -// data member is used to ensure that the Read() function will -// only call the Access() function once for any given synch -// value. An external thread must ensure that the synch value -// is advanced at appropriate times. AN eclosed class id is -// used to ensure that the class template CcSynch -// specialization is unique. See the specification of the -// CcSynch class for more details -// -// Cardinality: 0 -// -// Performance/Implementation: -// Space Complexity: Constant -// Time Complexity: All member functions constant unless otherwise -// stated. -// -// Usage Examples: -// -// void foo(ScanCommRegisterAccess & scr) -// { -// scr.Read(); -// scr.Write(); -// } -// -// -// End Class Specification ********************************************* - - -// Includes -#ifndef IIPSCR_H -#include <iipscr.h> -#endif - -#ifndef CcSynch_h -#include <CcSynch.h> -#endif - -#if !defined(IIPCONST_H) -#include <iipconst.h> -#endif - -#ifndef iipMopRegisterAccess_h -#include <iipMopRegisterAccess.h> -#endif - -namespace PRDF -{ - -// // Forward References -// #ifdef _USE_IOSTREAMS_ -// class ostream; -// #endif - -class ScanCommRegisterAccess : public SCAN_COMM_REGISTER_CLASS -{ -public: - - struct id {}; - typedef CcSynch<uint16_t, id> SynchType; - - /** - Constructor - <ul> - <br><b>Parameter: </b> ar: Scan Comm Register address. - <br><b>Parameter: </b> mopsAccess object - <br><b>Requirements:</b> None. - <br><b>Promises: </b> Heap memory may be allocated - <br><b>Exceptions: </b> None. - </ul><br> - */ - ScanCommRegisterAccess(uint64_t ra, MopRegisterAccess &hopsAccessor); - - // Function Specification ******************************************** - // - // Purpose: Copy - // Parameters: scr: Reference to instance to copy - // Returns: No value returned. - // Requirements: None. - // Promises: All data members will be copied (Deep copy). - // Exceptions: None. - // Concurrency: N/A. - // Notes: This constructor is not declared. This compiler generated - // default definition is sufficient. - // - // End Function Specification **************************************** - // ScanCommRegisterAccess(const ScanCommRegisterAccess & scr); - - // Function Specification ******************************************** - // - // Purpose: Destruction - // Parameters: None. - // Returns: No value returned - // Requirements: None. - // Promises: None. - // Exceptions: None. - // Concurrency: N/A - // Notes: This destructor is not declared. This compiler generated - // default definition is sufficient. - // - // End Function Specification **************************************** - // virtual ~ScanCommRegisterAccess(void); - - // Function Specification ******************************************** - // - // Purpose: Assigment - // Parameters: d: Reference to instance to assign from - // Returns: Reference to this instance - // Requirements: None. - // Promises: All data members are assigned to - // Exceptions: None. - // Concurrency: N/A. - // Notes: This assingment operator is not declared. The compiler - // generated default definition is sufficient. - // - // End Function Specification **************************************** - // ScanCommRegisterAccess & operator=(const ScanCommRegisterAccess & scr); - - // virtual const uint32_t * GetChipSelectValues( retired - // unsigned int & chipSelectCount) const = 0; retired - - // Function Specification ******************************************** - // - // Purpose: This function returns the size (in bytes) of the - // buffer needed for accesses. - // Parameters: None. - // Returns: Buffer size. - // Requirements: None. - // Promises: None. - // Exceptions: None. - // Concurrency: Reentrant. - // - // End Function Specification **************************************** - // virtual unsigned int GetBufferByteSize(void) const; - - // dg00 start - /** - Read hardware register (pure virtual) - <ul> - <br><b>Parameters: </b> None - <br><b>Returns: </b> [SUCCESS | MOPs return code] - <br><b>Requirements:</b> None. - <br><b>Promises: </b> Internal bit string represents the value of the - hardware register (if rc == SUCCESS) - <br><b>Sideaffects: </b> Value guarrenteed to be read from hardware. - <br><b>Exceptions: </b> None. - </ul><br> - */ - virtual uint32_t ForceRead(void); - // dg00 end - - /** - Read hardware register - <ul> - <br><b>Parameters: </b> None - <br><b>Returns: </b> [SUCCESS | MOPs return code] - <br><b>Requirements:</b> None. - <br><b>Promises: </b> Internal bit string represents the value of the - hardware register (if rc == SUCCESS) - <br><b>Sideaffects: </b> The bit string value may or may not be retrieved - from hardware; a buffered copy may be used. - <br><b>Exceptions: </b> None. - </ul><br> - */ - virtual uint32_t Read(void); - - /** - Unsynchronize the register access to recollect reg contents. - <ul> - <br><b>Parameters: </b> None - <br><b>Returns: </b> [SUCCESS] - <br><b>Requirements:</b> None. - </ul><br> - */ - virtual uint32_t UnSync(void); - - /** - Write hardware register - <ul> - <br><b>Parameters: </b> None - <br><b>Returns: </b> [SUCCESS | MOPs return code] - <br><b>Requirements:</b> None. - <br><b>Promises: </b> Internal bit string value written to hardware - <br><b>Exceptions: </b> None. - <br><b>Notes: </b> If internal bitstring was never read/set/modified then - zeros are written to corresponding hardware register. - </ul><br> - */ - virtual uint32_t Write(void); - - /** - Access a copy of the short id for signatures. - <ul> - <br><b>Parameters: </b> None - <br><b>Returns: </b> ID. - <br><b>Requirements:</b> None. - <br><b>Promises: </b> None. - <br><b>Exceptions: </b> None. - </ul><br> - */ - virtual uint16_t GetId(void) const { return cv_shortId; }; - - /** - Set the short id for signatures. - <ul> - <br><b>Parameters: </b> ID. - <br><b>Returns: </b> None. - <br><b>Requirements:</b> None. - <br><b>Promises: </b> None. - <br><b>Exceptions: </b> For virtual registers, this is not required to have - any effect. - </ul><br> - */ - virtual void SetId(uint16_t i_id) { cv_shortId = i_id; }; - - - /** - Access the chipid(s) of the chip - <ul> - <br><b>Parameters: </b> None - <br><b>Returns: </b> ptr to const array of chipIds - <br><b>Requirements:</b> None. - <br><b>Promises: </b> None - <br><b>Exceptions: </b> None. - </ul><br> - */ - const TARGETING::TargetHandle_t * GetChipIds(int & chipCount) const - { return hops->GetChipIds(chipCount); } - - const MopRegisterAccess & GetHops(void)const { return *hops; } - -protected: - ScanCommRegisterAccess() : SCAN_COMM_REGISTER_CLASS(0xffffffff), hops(NULL) {} -private: // Functions - - /** - This function reads or writes the hardware according to the specified operation. - <ul> - <br><b>Parameter: </b> bufferPtr: Pointer to buffer for input - <br><b>Parameter: </b> (write operation) or output (read operation) - <br><b>Paramter: </b> op: Indicates either read or write operation - <br><b>Returns: </b> None. - <br><b>Requirements:</b> Buffer must be valid. - <br><b>Promises: </b> For read operation, buffer is modified. - <br><b>Exceptions: </b> None. - </ul><br> - */ - uint32_t Access(BIT_STRING_CLASS & bs, uint64_t registerId, - MopRegisterAccess::Operation op) const; - -// #ifdef _USE_IOSTREAMS_ - -// friend ostream & operator<<(ostream & out, -// const ScanCommRegisterAccess & scr); - -// #endif - -private: // Data - -// enum -// { -// BUFFER_BYTE_SIZE = 12 -// }; - SynchType synch; - - MopRegisterAccess * hops; - - uint16_t cv_shortId; -}; - -} // end namespace PRDF - -// #ifdef _USE_IOSTREAMS_ - -// // Function Specification ******************************************** -// // -// // Purpose: This function outputs the Scan Comm Register data -// // members to the specified output stream. -// // Parameters: out: Output Stream -// // scr: Reference to a Scan Comm Register instance -// // Returns: Parameter output stream -// // Requirements: None. -// // Promises: Output stream will be written to. -// // Exceptions: None. -// // Concurrency: Reentrant. -// // -// // End Function Specification **************************************** -// ostream & operator<<(ostream & out, -// const ScanCommRegisterAccess & scr); - -// #endif - -#include <iipScanCommRegisterAccess.inl> - -#endif diff --git a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.C b/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.C deleted file mode 100755 index b6a37712d..000000000 --- a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.C +++ /dev/null @@ -1,111 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.C $ */ -/* */ -/* IBM CONFIDENTIAL */ -/* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ -/* */ -/* 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 */ - -// Module Description ************************************************** -// -// Description: This module provides the implementation for the PRD Scan -// Comm Register Chip class. -// -// End Module Description ********************************************** - -//---------------------------------------------------------------------- -// Includes -//---------------------------------------------------------------------- - -#define iipScanCommRegisterChip_C - -#include <iipchip.h> -// #include <iipMopRegisterAccessScanCommSingle.h> -#include <iipScanCommRegisterChip.h> - -#undef iipScanCommRegisterChip_C - -namespace PRDF -{ - -//---------------------------------------------------------------------- -// User Types -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Constants -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Macros -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Internal Function Prototypes -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Global Variables -//---------------------------------------------------------------------- - -//--------------------------------------------------------------------- -// Member Function Specifications -//--------------------------------------------------------------------- - -ScanCommRegisterChip::ScanCommRegisterChip(uint64_t ra, - unsigned int bl, - MopRegisterAccess & hopsAccess) - : - ScanCommRegisterAccess(ra,hopsAccess), - xBitString(bl) -{ - xBitString.Pattern(0); // Clear -} - -// -------------------------------------------------------------------- - - -// --------------------------------------------------------------------- - -void ScanCommRegisterChip::SetBitString(const BIT_STRING_CLASS *bs) -{ - xBitString.SetBits(*bs); -} - -// --------------------------------------------------------------------- - -// const uint32_t * ScanCommRegisterChip::GetChipSelectValues -// (unsigned int & chipSelectCount) const -// { -// const uint32_t * chipSelectValues = NULL; - -// if(chipPtr) -// { -// chipSelectCount = chipPtr->GetChipSelectCount(); -// chipSelectValues = chipPtr->GetChipSelectValues(); -// } -// else -// { -// chipSelectCount = 0; -// } - -// return(chipSelectValues); -// } - -} // end namespace PRDF - diff --git a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.h b/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.h deleted file mode 100755 index e65a55fdb..000000000 --- a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.h +++ /dev/null @@ -1,218 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/common/framework/register/iipScanCommRegisterChip.h $ */ -/* */ -/* IBM CONFIDENTIAL */ -/* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ -/* */ -/* 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 iipScanCommRegisterChip_h -#define iipScanCommRegisterChip_h - -// Class Specification ************************************************* -// -// Class name: ScanCommRegisterChip -// Parent class: ScanCommRegisterAccess -// -// Summary: This class provides access to a Scan Comm Register -// associated with a specific chip. -// -// A pointer to a CHIP_CLASS is maintained. The member -// function GetChipSelectValues() is implemented to use the -// CHIP_CLASS instance to return the values. -// -// Cardinality: N -// -// Performance/Implementation: -// Space Complexity: Constant -// Time Complexity: All member functions constant unless otherwise -// stated. -// -// Usage Examples: -// -// void foo(CHIP_CLASS * chipPtr, unsigned int registerAddress, -// unsigned int bitLength) -// { -// ScanCommRegisterChip scr(chipPtr, registerAddress, bitLength); -// scr.Read(); -// scr.Write(); -// } -// -// End Class Specification ********************************************* - -// Includes -#if !defined(iipScanCommRegisterAccess_h) -#include <iipScanCommRegisterAccess.h> -#endif - -#if !defined(IIPBITS_H) -#include <iipbits.h> -#endif - -namespace PRDF -{ - -// Forward References -class CHIP_CLASS; -class MopsRegisterAccess; - -class ScanCommRegisterChip : public ScanCommRegisterAccess -{ -public: - - ScanCommRegisterChip(uint64_t ra, - unsigned int bl, - MopRegisterAccess &hopsAccess); - ScanCommRegisterChip() : ScanCommRegisterAccess(), xBitString((uint32_t)0) {} - // Function Specification ******************************************** - // - // Purpose: Initialization (preferred Ctor) - // Parameters: chid: Chip Id of chip on which the hardware register resides - // ra: Scan com register address or Register Id - // bl: Number of bits in register - // hopsAccess: object to access Hardware Ops - // Returns: No value returned. - // Requirements: None. - // Promises: All data members are initialized - // Exceptions: None. - // Concurrency: N/A - // - // End Function Specification ////////////////////////////////////// - - - //ScanCommRegisterChip(const ScanCommRegisterChip & scr); - // Function Specification ******************************************** - // - // Purpose: Copy - // Parameters: scr: Reference to instance to copy - // Returns: No value returned. - // Requirements: None. - // Promises: All data members will be copied (Deep copy). - // Exceptions: None. - // Concurrency: N/A. - // Notes: This constructor is not declared. This compiler generated - // default definition is sufficient. - // - // End Function Specification **************************************** - - //virtual ~ScanCommRegisterChip(void); - // Function Specification ******************************************** - // - // Purpose: Destruction - // Parameters: None. - // Returns: No value returned - // Requirements: None. - // Promises: None. - // Exceptions: None. - // Concurrency: N/A - // Notes: This destructor is not declared. This compiler generated - // default definition is sufficient. - // - // End Function Specification **************************************** - - // ScanCommRegisterChip & operator=(const ScanCommRegisterChip & scr); - // Function Specification ******************************************** - // - // Purpose: Assigment - // Parameters: d: Reference to instance to assign from - // Returns: Reference to this instance - // Requirements: None. - // Promises: All data members are assigned to - // Exceptions: None. - // Concurrency: N/A. - // Notes: This assingment operator is not declared. The compiler - // generated default definition is sufficient. - // - // End Function Specification **************************************** - -// virtual const uint32_t * GetChipSelectValues(unsigned int & chipSelectCount) const; - // Function Specification ******************************************** - // - // Purpose: This function returns the chip select values. - // Parameters: chipSelectCount: Number of chip select values in - // returned array - // Returns: Pointer to an array of chip select values - // Requirements: None. - // Promises: Parameter chipSelectCount is modified. - // Exceptions: None. - // Concurrency: Reentrant. - // Notes: If the chipPtr is NULL, then the count will be zero and - // NULL is returned. - // - // End Function Specification **************************************** - - virtual const BIT_STRING_CLASS * GetBitString( - ATTENTION_TYPE i_type = INVALID_ATTENTION_TYPE ) const - { return &xBitString; } - // Function Specification ******************************************** - // - // Purpose: Access the bit string - // Parameters: None - // Returns: the bit string - // Requirements: none - // Promises: a bit string - // Exceptions: None. - // Notes: - // - // End Function Specification **************************************** - - virtual void SetBitString(const BIT_STRING_CLASS * bs); - // Function Specification ******************************************** - // - // Purpose: Modify the internal bit string - // Parameters: a Bit string - // Returns: Nothing - // Requirements: none - // Promises: Internal bit string == *bs for first len bits where - // len is the smaller of the two lengths - // Exceptions: None. - // Notes: - // - // End Function Specification **************************************** - -protected: // Functions - - virtual BIT_STRING_CLASS & AccessBitString(void) { return(xBitString); } - // Function Specification ******************************************** - // - // Purpose: Get non-cost referece to bit string - // Parameters: None. - // Returns: BIT_STRING_CLASS & - // Requirements: none. - // Promises: Direct access to the Bit string - // Exceptions: None - // Notes: - // - // End Function Specification **************************************** - - -private: // functions - - friend class CaptureData; - -private: // Data - -// CHIP_CLASS * chipPtr; - BIT_STRING_BUFFER_CLASS xBitString; -// MopRegisterAccessScanCommSingle xHopsAccess; - -}; - -} // end namespace PRDF - -#endif diff --git a/src/usr/diag/prdf/common/framework/register/iipXorResetErrorRegister.h b/src/usr/diag/prdf/common/framework/register/iipXorResetErrorRegister.h index d220a1520..6c182b8f5 100755 --- a/src/usr/diag/prdf/common/framework/register/iipXorResetErrorRegister.h +++ b/src/usr/diag/prdf/common/framework/register/iipXorResetErrorRegister.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/iipscr.C b/src/usr/diag/prdf/common/framework/register/iipscr.C index af067a421..ea7ad6d4b 100755 --- a/src/usr/diag/prdf/common/framework/register/iipscr.C +++ b/src/usr/diag/prdf/common/framework/register/iipscr.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ @@ -43,6 +43,8 @@ #include <iipscr.h> #include <iipconst.h> +namespace PRDF +{ /*--------------------------------------------------------------------*/ /* User Types */ /*--------------------------------------------------------------------*/ @@ -79,9 +81,6 @@ // // End Function Specification ////////////////////////////////////// -namespace PRDF -{ - SCAN_COMM_REGISTER_CLASS::~SCAN_COMM_REGISTER_CLASS ( void @@ -124,10 +123,6 @@ uint32_t SCAN_COMM_REGISTER_CLASS::Read return(rc); } - - -uint32_t SCAN_COMM_REGISTER_CLASS::UnSync(void){return(SUCCESS);} - // Function Specification ////////////////////////////////////////// // // Title: Set Bit @@ -182,62 +177,7 @@ void SCAN_COMM_REGISTER_CLASS::ClearBit bitString.Clear(bit_position); } -// Function Specification ////////////////////////////////////////// -// -// Title: SCAN_COMM_REGISTER_CLASS (Copy constructor) -// -// Purpose: This constuctor initializes the data members. This -// copy constructor uses a "deep" copy. -// -// Side-effects: This instance is initialized. -// -// Dependencies: None. -// -// Time Complexity: Constant + time complexity of SetBitString() -// -// End Function Specification ////////////////////////////////////// - -SCAN_COMM_REGISTER_CLASS::SCAN_COMM_REGISTER_CLASS -( - const SCAN_COMM_REGISTER_CLASS & scr - /*!i Scan Comm Register reference to copy */ - ) : -/*!o No value returned */ -address(scr.address) -{ -} - -// Function Specification /////////////////////////////////////////// -// -// Title: operator= (Assignment operator) -// -// Purpose: This assignment operator assigns the Bit String data -// member. -// -// Side-effects: Bit String data member is modified. -// Memory is reallocated. -// -// Dependencies: None. -// -// Time Complexity: Constant -// -// End Function Specification ////////////////////////////////////// - -SCAN_COMM_REGISTER_CLASS & SCAN_COMM_REGISTER_CLASS::operator= -( - const SCAN_COMM_REGISTER_CLASS & scr - /*!i Scan Comm Register instance to assign from */ - ) -/*!o Reference to this Scan Comm Register instance */ -{ - // Check for assignment to self - if(this != &scr) - { - address = scr.address; - } - return(*this); -} // Function Specification /////////////////////////////////////////// // @@ -264,28 +204,7 @@ void SCAN_COMM_REGISTER_CLASS::setAllBits() bitString.Pattern( 0, bitString.GetLength(), 0xffffffff, 32 ); } -// Function Specification ////////////////////////////////////////// -// -// Title: SCAN_COMM_REGISTER_CLASS (Constructor) -// -// Purpose: This constuctor initializes the data members. -// -// Side-effects: This instance is initialized. Memory may be allocated -// -// Dependencies: None. -// -// End Function Specification ////////////////////////////////////// - -SCAN_COMM_REGISTER_CLASS::SCAN_COMM_REGISTER_CLASS -( - uint64_t a - /*!i Physical address of register */ - ) : -/*!o No value returned */ -address(a) -{ -} -} // end namespace PRDF +}//namespace PRDF ends #undef IIPSCR_C diff --git a/src/usr/diag/prdf/common/framework/register/iipscr.h b/src/usr/diag/prdf/common/framework/register/iipscr.h index d8fe942a0..cda1f7640 100755 --- a/src/usr/diag/prdf/common/framework/register/iipscr.h +++ b/src/usr/diag/prdf/common/framework/register/iipscr.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ @@ -41,16 +41,12 @@ // Includes //---------------------------------------------------------------------- -#if !defined(IIPBITS_H) #include <iipbits.h> -#endif - #include <iipsdbug.h> #include <prdfMain.H> namespace PRDF { - /*--------------------------------------------------------------------*/ /* Forward References */ /*--------------------------------------------------------------------*/ @@ -122,7 +118,6 @@ namespace PRDF // number of bits in the register. // // End Class Specification ********************************************* - /** SCAN_COMM_REGISTER_CLASS @author Doug Gilbert @@ -171,8 +166,6 @@ public: */ virtual uint32_t Read(void) = 0; - virtual uint32_t UnSync(void); - /** Read hardware register and apply a mask <ul> @@ -215,13 +208,13 @@ public: Access a copy of the scan comm address <ul> <br><b>Parameters: </b> None - <br><b>Returns: </b> Scan Comm address + <br><b>Returns: </b> Returns scom address <br><b>Requirements:</b> None. <br><b>Promises: </b> None. <br><b>Exceptions: </b> None. </ul><br> */ - uint64_t GetAddress(void) const { return address; } + virtual uint64_t GetAddress(void) const {return 0 ;} /** Access a copy of the short id for signatures. @@ -259,7 +252,7 @@ public: <br><b>Exceptions: </b> None. </ul><br> */ - uint32_t GetBitLength(void) const { return (GetBitString())->GetLength();} + virtual uint32_t GetBitLength(void) const { return DEFAULT_BIT_LENGTH ;} /** Access the internal bit string (pure virtual) @@ -378,36 +371,14 @@ public: */ bool BitStringIsZero() { return GetBitString()->IsZero(); } - -protected: - - /** - Constructor - <ul> - <br><b>Parameters: </b> Scan Comm Address - <br><b>Promises: </b> Heap memory may be allocated - </ul><br> + /** + *@brief Returns TYPE_NA as type of Target associated with register.Acutal + * implementation is expected in derived class + *@return TYPE_NA */ - SCAN_COMM_REGISTER_CLASS( uint64_t a); + virtual TARGETING::TYPE getChipType(void)const { return TARGETING::TYPE_NA; } - /** - Copy Constructor - <ul> - <br><b>Parameters: </b> SCAN_COMM_REGISTER_CLASS - <br><b>Promises: </b> Heap memory may be (re)allocated - </ul><br> - */ - SCAN_COMM_REGISTER_CLASS(const SCAN_COMM_REGISTER_CLASS & scr); - - /** - Assignment operator - <ul> - <br><b>Parameters: </b> SCAN_COMM_REGISTER_CLASS - <br><b>Promises: </b> Heap memory may be (re)allocated - (*this) == scr; - </ul><br> - */ - SCAN_COMM_REGISTER_CLASS & operator= ( const SCAN_COMM_REGISTER_CLASS & scr); +protected: /** Get modifiable reference to internal bit string (don't even thing about making this public!!!) @@ -419,8 +390,8 @@ protected: </ul><br> */ virtual BIT_STRING_CLASS & AccessBitString(void) = 0; - private: // Data + static const int DEFAULT_BIT_LENGTH = 64; // Enum Specification ////////////////////////////////////////////// // @@ -440,10 +411,9 @@ private: // Data // // End Data Specification ////////////////////////////////////////// - uint64_t address; }; -} // end namespace PRDF +}//namespace PRDF #endif diff --git a/src/usr/diag/prdf/common/framework/register/prdfCaptureData.C b/src/usr/diag/prdf/common/framework/register/prdfCaptureData.C index f4ff1e4d0..1c4c2219f 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfCaptureData.C +++ b/src/usr/diag/prdf/common/framework/register/prdfCaptureData.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2003,2012 */ +/* COPYRIGHT International Business Machines Corp. 2003,2013 */ /* */ /* p1 */ /* */ @@ -43,25 +43,12 @@ #include <netinet/in.h> #endif - -#ifndef IIPBITS_H #include <iipbits.h> -#endif - -// 3 dg06d #include <prdfHomRegisterAccess.H> // dg06a -#include <iipScanCommRegisterChip.h> // dg06a - -#ifndef IIPCHIP_H +#include <prdfScomRegister.H> #include <iipchip.h> -#endif - -#ifndef IIPCAPTUREDATA_H #include <iipCaptureData.h> -#endif - #include <string.h> - #include <algorithm> // @jl04 a Add this for the Drop function. namespace PRDF @@ -156,18 +143,6 @@ void CaptureData::Add( TARGETING::TargetHandle_t i_pchipHandle, int scomId, // end dg02 -// start dg06a -void CaptureData::Add( TARGETING::TargetHandle_t i_pchipHandle, - int iScomId, uint64_t iScomAddress, - uint32_t iScomBitLength, Place iplace ) -{ - HomRegisterAccessScom hops(i_pchipHandle); - ScanCommRegisterChip scrc(iScomAddress, iScomBitLength, hops); - - Add(i_pchipHandle, iScomId, scrc, iplace); -} - -// end dg06a // start jl04a void CaptureData::Drop(RegType i_type) diff --git a/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C b/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C index caebb8baf..c585dbf5b 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C +++ b/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/prdfErrorRegisterMask.C b/src/usr/diag/prdf/common/framework/register/prdfErrorRegisterMask.C index febc23d5e..0171b0408 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfErrorRegisterMask.C +++ b/src/usr/diag/prdf/common/framework/register/prdfErrorRegisterMask.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C b/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C index aaca68beb..b1c5b3d8d 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C +++ b/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.H b/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.H index 1427dcb4d..9756d2683 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.H +++ b/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H index 88aca651b..fff6a1642 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H +++ b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ @@ -36,14 +36,14 @@ class NotRegister : public SCAN_COMM_REGISTER_CLASS { public: NotRegister() : - SCAN_COMM_REGISTER_CLASS(0), iv_child(NULL), iv_iBS(0) + SCAN_COMM_REGISTER_CLASS( ), iv_child(NULL), iv_iBS(0) { iv_bs = &iv_iBS; } NotRegister(SCAN_COMM_REGISTER_CLASS & i_arg) : - SCAN_COMM_REGISTER_CLASS(0), iv_child(&i_arg), - iv_iBS(i_arg.GetBitString()->GetLength()) + SCAN_COMM_REGISTER_CLASS( ), iv_child(&i_arg), + iv_iBS(i_arg.GetBitLength()) { iv_bs = &iv_iBS; } @@ -93,14 +93,14 @@ class LeftShiftRegister : public SCAN_COMM_REGISTER_CLASS { public: LeftShiftRegister() : - SCAN_COMM_REGISTER_CLASS(0), iv_child(NULL), iv_amount(0), iv_iBS(0) + SCAN_COMM_REGISTER_CLASS( ), iv_child(NULL), iv_amount(0), iv_iBS(0) { iv_bs = &iv_iBS; } LeftShiftRegister(SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount) : - SCAN_COMM_REGISTER_CLASS(0), iv_child(&i_arg), iv_amount(i_amount), - iv_iBS(i_arg.GetBitString()->GetLength()) + SCAN_COMM_REGISTER_CLASS( ), iv_child(&i_arg), iv_amount(i_amount), + iv_iBS(i_arg.GetBitLength()) { iv_bs = &iv_iBS; } @@ -160,14 +160,14 @@ class RightShiftRegister : public SCAN_COMM_REGISTER_CLASS { public: RightShiftRegister() : - SCAN_COMM_REGISTER_CLASS(0), iv_child(NULL), iv_amount(0), iv_iBS(0) + SCAN_COMM_REGISTER_CLASS( ), iv_child(NULL), iv_amount(0), iv_iBS(0) { iv_bs = &iv_iBS; } RightShiftRegister(SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount) : - SCAN_COMM_REGISTER_CLASS(0), iv_child(&i_arg), iv_amount(i_amount), - iv_iBS(i_arg.GetBitString()->GetLength()) + SCAN_COMM_REGISTER_CLASS( ), iv_child(&i_arg), iv_amount(i_amount), + iv_iBS(i_arg.GetBitLength()) { iv_bs = &iv_iBS; } @@ -228,16 +228,16 @@ class AndRegister : public SCAN_COMM_REGISTER_CLASS { public: AndRegister() : - SCAN_COMM_REGISTER_CLASS(0), iv_left(NULL), iv_right(NULL), iv_iBS(0) + SCAN_COMM_REGISTER_CLASS( ), iv_left(NULL), iv_right(NULL), iv_iBS(0) { iv_bs = &iv_iBS; } AndRegister( SCAN_COMM_REGISTER_CLASS & i_left, SCAN_COMM_REGISTER_CLASS & i_right ) : - SCAN_COMM_REGISTER_CLASS(0), iv_left(&i_left), iv_right(&i_right), - iv_iBS(std::min(i_left.GetBitString()->GetLength(), - i_right.GetBitString()->GetLength())) + SCAN_COMM_REGISTER_CLASS( ), iv_left(&i_left), iv_right(&i_right), + iv_iBS(std::min(i_left.GetBitLength(), + i_right.GetBitLength())) { iv_bs = &iv_iBS; } @@ -310,16 +310,16 @@ class OrRegister : public SCAN_COMM_REGISTER_CLASS public: OrRegister() : - SCAN_COMM_REGISTER_CLASS(0), iv_left(NULL), iv_right(NULL), iv_iBS(0) + SCAN_COMM_REGISTER_CLASS( ), iv_left(NULL), iv_right(NULL), iv_iBS(0) { iv_bs = &iv_iBS; } OrRegister( SCAN_COMM_REGISTER_CLASS & i_left, SCAN_COMM_REGISTER_CLASS & i_right ) : - SCAN_COMM_REGISTER_CLASS(0), iv_left(&i_left), iv_right(&i_right), - iv_iBS(std::min(i_left.GetBitString()->GetLength(), - i_right.GetBitString()->GetLength())) + SCAN_COMM_REGISTER_CLASS( ), iv_left(&i_left), iv_right(&i_right), + iv_iBS(std::min(i_left.GetBitLength(), + i_right.GetBitLength())) { iv_bs = &iv_iBS; } @@ -392,7 +392,7 @@ class NullRegister : public SCAN_COMM_REGISTER_CLASS { public: NullRegister(int size) : - SCAN_COMM_REGISTER_CLASS(0), iv_iBS(size) + SCAN_COMM_REGISTER_CLASS( ), iv_iBS(size) {} NullRegister & operator=(const NullRegister & r) @@ -428,7 +428,7 @@ class AttnTypeRegister : public SCAN_COMM_REGISTER_CLASS { public: AttnTypeRegister() : - SCAN_COMM_REGISTER_CLASS(0), iv_check(&cv_null), iv_recov(&cv_null), + SCAN_COMM_REGISTER_CLASS( ), iv_check(&cv_null), iv_recov(&cv_null), iv_special(&cv_null), iv_proccs(&cv_null), iv_iBS(0) { iv_bs = &iv_iBS; @@ -438,7 +438,7 @@ class AttnTypeRegister : public SCAN_COMM_REGISTER_CLASS SCAN_COMM_REGISTER_CLASS & i_recov, SCAN_COMM_REGISTER_CLASS & i_special, SCAN_COMM_REGISTER_CLASS & i_proccs ) : - SCAN_COMM_REGISTER_CLASS(0), + SCAN_COMM_REGISTER_CLASS( ), iv_check( NULL == &i_check ? &cv_null : &i_check), iv_recov( NULL == &i_recov ? &cv_null : &i_recov), iv_special(NULL == &i_special ? &cv_null : &i_special), @@ -446,10 +446,10 @@ class AttnTypeRegister : public SCAN_COMM_REGISTER_CLASS iv_iBS(0) // will fully initialize this inside ctor. { uint32_t l_length = 1024; - l_length = std::min(l_length, iv_check->GetBitString()->GetLength()); - l_length = std::min(l_length, iv_recov->GetBitString()->GetLength()); - l_length = std::min(l_length, iv_special->GetBitString()->GetLength()); - l_length = std::min(l_length, iv_proccs->GetBitString()->GetLength()); + l_length = std::min(l_length, iv_check->GetBitLength()); + l_length = std::min(l_length, iv_recov->GetBitLength()); + l_length = std::min(l_length, iv_special->GetBitLength()); + l_length = std::min(l_length, iv_proccs->GetBitLength()); iv_iBS = BitStringBuffer(l_length); iv_bs = &iv_iBS; } @@ -545,11 +545,11 @@ class ConstantRegister : public SCAN_COMM_REGISTER_CLASS { public: ConstantRegister() : - SCAN_COMM_REGISTER_CLASS(0), iv_iBS(0) + SCAN_COMM_REGISTER_CLASS( ), iv_iBS(0) {} ConstantRegister(BIT_STRING_CLASS i_arg) : - SCAN_COMM_REGISTER_CLASS(0), iv_iBS(i_arg) + SCAN_COMM_REGISTER_CLASS( ), iv_iBS(i_arg) {} ConstantRegister & operator=(const ConstantRegister & r) diff --git a/src/usr/diag/prdf/common/framework/register/prdfRegisterCache.C b/src/usr/diag/prdf/common/framework/register/prdfRegisterCache.C new file mode 100644 index 000000000..228f34c0c --- /dev/null +++ b/src/usr/diag/prdf/common/framework/register/prdfRegisterCache.C @@ -0,0 +1,104 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: prdfRegisterCache.C $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012,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 */ + +#include <prdfRegisterCache.H> +#include <iipconst.h> + +namespace PRDF +{ + +//------------------------------------------------------------------------------ + +RegDataCache & RegDataCache::getCachedRegisters() +{ + return PRDF_GET_SINGLETON( ReadCache ); +} + +//------------------------------------------------------------------------------ + +RegDataCache::~RegDataCache() +{ + flush(); +} + +//------------------------------------------------------------------------------ + +BIT_STRING_CLASS & RegDataCache::read( + ExtensibleChip* i_pChip, + const SCAN_COMM_REGISTER_CLASS * i_pRegister, + bool & o_readStat ) +{ + BIT_STRING_CLASS * l_pBitString = NULL; + o_readStat = false; + ScomRegisterAccess l_scomAccessKey ( *i_pRegister,i_pChip ); + CacheDump::iterator itDump = iv_cachedRead.find( l_scomAccessKey ); + if( iv_cachedRead.end() != itDump ) + { + o_readStat = true; + l_pBitString = itDump->second ; + } + else + { + // Creating new entry + l_pBitString = new BitStringBuffer( i_pRegister->GetBitLength( ) ); + // Adding register in the cache + iv_cachedRead[l_scomAccessKey] = l_pBitString; + } + return *l_pBitString; +} + +//------------------------------------------------------------------------------ + +void RegDataCache::flush() +{ + for ( CacheDump::iterator it = iv_cachedRead.begin(); + it != iv_cachedRead.end(); it++ ) + { + // Freeing up the bit string memory reserved on heap + delete it->second; + } + + // Deleting all the entry from the cache + iv_cachedRead.clear(); +} + +//------------------------------------------------------------------------------ + +void RegDataCache::flush( ExtensibleChip* i_pChip, + const SCAN_COMM_REGISTER_CLASS * i_pRegister ) +{ + ScomRegisterAccess l_scomAccessKey ( *i_pRegister,i_pChip ); + // Find the entries associated with the given target in the map + CacheDump::iterator it = iv_cachedRead.find( l_scomAccessKey ); + + // If entry exists delete the entry for given scom address + if ( it !=iv_cachedRead.end() ) + { + delete it->second; + iv_cachedRead.erase( it ); + } +} + +//------------------------------------------------------------------------------ + +}// end namespace PRDF diff --git a/src/usr/diag/prdf/common/framework/register/prdfRegisterCache.H b/src/usr/diag/prdf/common/framework/register/prdfRegisterCache.H new file mode 100644 index 000000000..f3f61b4a8 --- /dev/null +++ b/src/usr/diag/prdf/common/framework/register/prdfRegisterCache.H @@ -0,0 +1,112 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: prdfRegisterCache.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012,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 REG_CACHE_H +#define REG_CACHE_H + +/** @file prdfRegisterCache.H */ + +#include <map> +#include <targeting/common/target.H> +#include <iipbits.h> +#include <iipglobl.h> +#include <prdfScanFacility.H> +#include <prdfScomRegisterAccess.H> + +class BIT_STRING_CLASS; + +namespace PRDF +{ +/** + * @brief Caches the contents of registers used during analysis. + * + * It maintains the latest content of a register in a map. If contents of the + * register remain unchanged, register read returns contents stored in + * cache rather than reading from hardware. Hence it brings efficiency in read. + * Whenever write to actual hardware takes place, it is expected that once write + * to hardware succeeds, the user of cache shall call flush. It drops the + * particular register from map. As a result, when read takes place from same + * register next time, read from cache fails and actual access to hardware + * takes place. + */ +class RegDataCache +{ + public: + + /** + * @brief Constructor + */ + RegDataCache() + { } + + /** + * @brief Destructor + */ + ~RegDataCache(); + + /** + * @brief Returns reference to singleton instance of the RegDataCache. + * @return The singleton reference. + */ + static RegDataCache & getCachedRegisters(); + + /** + * @brief Returns the data buffer for the given target and address. + * @param i_pChip The target associated with the register. + * @param i_pRegister pointer to register to be read. + * @param o_readStat Returns true if the register does not exist in + * cache. In this case, the function will create and + * add an empty BIT_STRING_CLASS to the cache.It is + * the responsibilty of the user to update the data + * buffer by reading from hardware. + * @return A reference to the data buffer associated with the register. + */ + BIT_STRING_CLASS & read( ExtensibleChip* i_pChip, + const SCAN_COMM_REGISTER_CLASS * i_pRegister, + bool & o_readStat ); + + /** + * @brief Flushes entire contents from cache. + */ + void flush(); + + /** + * @brief Removes a single entry from the cache. + * @param i_pChip The rulechip associated with the register. + * @param i_pRegister points to the register to be flushed from cache. + */ + void flush( ExtensibleChip* i_pChip, + const SCAN_COMM_REGISTER_CLASS * i_pRegister ); + private: // data + + typedef std::map<ScomRegisterAccess, BIT_STRING_CLASS *> CacheDump; + CacheDump iv_cachedRead; + +}; + +PRDF_DECLARE_SINGLETON(RegDataCache, ReadCache); + +} // namespace PRDF + +#endif // REG_CACHE_H + diff --git a/src/usr/diag/prdf/common/framework/register/prdfResetErrorRegister.C b/src/usr/diag/prdf/common/framework/register/prdfResetErrorRegister.C index 64e8a2e01..072501868 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfResetErrorRegister.C +++ b/src/usr/diag/prdf/common/framework/register/prdfResetErrorRegister.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/prdfResetOperators.H b/src/usr/diag/prdf/common/framework/register/prdfResetOperators.H index 1804f0b6b..bd4dc07af 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfResetOperators.H +++ b/src/usr/diag/prdf/common/framework/register/prdfResetOperators.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2005,2012 */ +/* COPYRIGHT International Business Machines Corp. 2005,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C index 310d37a98..6e0d2d9f4 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C +++ b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ @@ -34,6 +34,7 @@ #include <prdfScanFacility.H> #include <prdfFlyWeight.C> #include <prdfFlyWeightS.C> +#include <prdfScomRegisterAccess.H> #undef prdfScanFacility_C @@ -51,25 +52,6 @@ namespace PRDF //---------------------------------------------------------------------- // Internal Function Prototypes //---------------------------------------------------------------------- -// special comparater - if address same and pointing to same access module then are equal -bool operator==(const ScanCommRegisterChip & scrc1, const ScanCommRegisterChip & scrc2) -{ - return((scrc1.GetAddress() == scrc2.GetAddress()) && (&(scrc1.GetHops()) == &(scrc2.GetHops()))); -} - -bool operator>=(const ScanCommRegisterChip & scrc1, const ScanCommRegisterChip & scrc2) -{ - if (scrc1.GetAddress() == scrc2.GetAddress()) - return (&scrc1.GetHops()) >= (&scrc2.GetHops()); - return scrc1.GetAddress() >= scrc2.GetAddress(); -}; - -bool operator<(const ScanCommRegisterChip & scrc1, const ScanCommRegisterChip & scrc2) -{ - if (scrc1.GetAddress() == scrc2.GetAddress()) - return (&scrc1.GetHops()) < (&scrc2.GetHops()); - return scrc1.GetAddress() < scrc2.GetAddress(); -} //---------------------------------------------------------------------- // Global Variables @@ -81,28 +63,26 @@ NullRegister AttnTypeRegister::cv_null(1024); // Member Function Specifications //--------------------------------------------------------------------- -class ScanCommAccess; -class ScanCommRegisters; ScanFacility & ScanFacility::Access(void) { static ScanFacility sf; return sf; } -//------------------------------------------------------------------------------ -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetScanCommRegister(TARGETING::TargetHandle_t i_ptargetHandle, - uint64_t address, - uint32_t bitLength) +//----------------------------------------------------------------------------- +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetScanCommRegister( + uint64_t address , uint32_t i_scomLength,TARGETING::TYPE i_type ) { - HomRegisterAccessScom hraKey(i_ptargetHandle); - HomRegisterAccessScom & hra = iv_scomAccessFw.get(hraKey); - ScanCommRegisterChip scrKey(address,bitLength,hra); + ScomRegister scrKey(address ,i_scomLength ,i_type ); return iv_scomRegFw.get(scrKey); } //------------------------------------------------------------------------------ -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetScanRingRegister(TARGETING::TargetHandle_t i_ptargetHandle, - ScanRingField * start, - ScanRingField * end) + +#if 0 +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetScanRingRegister( + TARGETING::TargetHandle_t i_ptargetHandle, + ScanRingField * start, + ScanRingField * end) { uint32_t bitLength = 0; for(ScanRingField * srf = start; srf != end; ++srf) @@ -114,18 +94,22 @@ SCAN_COMM_REGISTER_CLASS & ScanFacility::GetScanRingRegister(TARGETING::TargetHa ScanCommRegisterChip scrKey(start->registerId,bitLength,hra); return iv_scomRegFw.get(scrKey); } +#endif //------------------------------------------------------------------------------ -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetNotRegister(SCAN_COMM_REGISTER_CLASS & i_arg) +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetNotRegister( + SCAN_COMM_REGISTER_CLASS & i_arg ) { NotRegister r(i_arg); return iv_notRegFw.get(r); } -//------------------------------------------------------------------------------ +//----------------------------------------------------------------------------- -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetLeftShiftRegister(SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount) +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetLeftShiftRegister( + SCAN_COMM_REGISTER_CLASS & i_arg, + uint16_t i_amount ) { LeftShiftRegister r(i_arg, i_amount); return iv_leftRegFw.get(r); @@ -133,7 +117,9 @@ SCAN_COMM_REGISTER_CLASS & ScanFacility::GetLeftShiftRegister(SCAN_COMM_REGISTE //------------------------------------------------------------------------------ -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetRightShiftRegister(SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount) +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetRightShiftRegister( + SCAN_COMM_REGISTER_CLASS & i_arg, + uint16_t i_amount ) { RightShiftRegister r(i_arg, i_amount); return iv_rightRegFw.get(r); @@ -142,8 +128,9 @@ SCAN_COMM_REGISTER_CLASS & ScanFacility::GetRightShiftRegister(SCAN_COMM_REGIST //------------------------------------------------------------------------------ -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetAndRegister(SCAN_COMM_REGISTER_CLASS & i_left, - SCAN_COMM_REGISTER_CLASS & i_right) +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetAndRegister( + SCAN_COMM_REGISTER_CLASS & i_left, + SCAN_COMM_REGISTER_CLASS & i_right ) { AndRegister r(i_left,i_right); return iv_andRegFw.get(r); @@ -151,20 +138,21 @@ SCAN_COMM_REGISTER_CLASS & ScanFacility::GetAndRegister(SCAN_COMM_REGISTER_CLAS //------------------------------------------------------------------------------ -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetOrRegister( +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetOrRegister( SCAN_COMM_REGISTER_CLASS & i_left, SCAN_COMM_REGISTER_CLASS & i_right ) { - OrRegister r(i_left, i_right); - return iv_orRegFw.get(r); + OrRegister r(i_left,i_right); + return iv_orRegFw.get(r); } -//------------------------------------------------------------------------------ +//----------------------------------------------------------------------------- -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetAttnTypeRegister(SCAN_COMM_REGISTER_CLASS & i_check, - SCAN_COMM_REGISTER_CLASS & i_recov, - SCAN_COMM_REGISTER_CLASS & i_special, - SCAN_COMM_REGISTER_CLASS & i_proccs) +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetAttnTypeRegister( + SCAN_COMM_REGISTER_CLASS & i_check, + SCAN_COMM_REGISTER_CLASS & i_recov, + SCAN_COMM_REGISTER_CLASS & i_special, + SCAN_COMM_REGISTER_CLASS & i_proccs ) { AttnTypeRegister r(i_check,i_recov,i_special,i_proccs); return iv_attnRegFw.get(r); @@ -172,11 +160,50 @@ SCAN_COMM_REGISTER_CLASS & ScanFacility::GetAttnTypeRegister(SCAN_COMM_REGISTER //------------------------------------------------------------------------------ -SCAN_COMM_REGISTER_CLASS & ScanFacility::GetConstantRegister(BIT_STRING_CLASS i_val) +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetConstantRegister( + BIT_STRING_CLASS i_val ) { ConstantRegister r(i_val); return iv_constRegFw.get(r); } +//------------------------------------------------------------------------------ +SCAN_COMM_REGISTER_CLASS & ScanFacility::GetPluginRegister( + SCAN_COMM_REGISTER_CLASS & i_flyweight, + ExtensibleChip & i_RuleChip ) +{ + ScomRegisterAccess l_regKey ( i_flyweight,&i_RuleChip ); + return iv_pluginRegFw.get(l_regKey); + +} +//----------------------------------------------------------------------------- +void ScanFacility::ResetPluginRegister() +{ + PRDF_INF( "ScanFacility.ResetPluginRegister()" ); + iv_pluginRegFw.clear(); + + +} + +//------------------------------------------------------------------------------ +#ifdef __MEM_PROFILING +void ScanFacility::printStats() +{ + PRDF_DTRAC("ScomRegister"); + iv_scomRegFw.printStats(); + PRDF_DTRAC("Not Register"); + iv_notRegFw.printStats(); + PRDF_DTRAC("Left Register"); + iv_leftRegFw.printStats(); + PRDF_DTRAC("Right Register"); + iv_rightRegFw.printStats(); + PRDF_DTRAC("And Register"); + iv_andRegFw.printStats(); + PRDF_DTRAC("Or Register"); + iv_orRegFw.printStats(); + +} + +#endif } // end namespace PRDF diff --git a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.H b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.H index 8087b811c..57f801d03 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.H +++ b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ @@ -37,22 +37,21 @@ #include <prdfFlyWeightS.H> #include <vector> #include <prdfHomRegisterAccess.H> -#include <iipScanCommRegisterChip.h> +#include <prdfScomRegister.H> +#include <prdfScomRegisterAccess.H> #include <prdfOperatorRegister.H> #include <prdfPlatServices.H> namespace PRDF { -//-------------------------------------------------------------------- -// Forward References -//-------------------------------------------------------------------- -class SCAN_COMM_REGISTER_CLASS; + /** PRD Scan Facility @author Doug Gilbert - @par The Scan facility is used by PRD to access Scan and Scan Comm functions. - It attempts to reduce duplicate objects and their aggragates as must as possible. + @par The Scan facility is used by PRD to access Scan and Scan Comm + @ functions.It attempts to reduce duplicate objects and their + @ aggragates as must as possible. @code ScanFacility & sf = ScanFacility::Access(); SCAN_COMM_REGISTER_CLASS & scr = sf.GetScanCommRegister(chipId,Address,bitLen); @@ -60,10 +59,12 @@ class SCAN_COMM_REGISTER_CLASS; ScanRingField srf[] = {{hregAliasId1 , fieldBitLength1}, {hregAliasId2 , fieldBitLength2}}; - SCAN_COMM_REGISTER_CLASS & sr = s.GetScanRingRegister(aTARGETING::TargetHandle_t,srf,srf+2); + SCAN_COMM_REGISTER_CLASS & sr = s.GetScanRingRegister(aTARGETING:: + TargetHandle_t,srf,srf+2); scr.Read() .... SCAN_COMM_REGISTER_CLASS // Note you can't write a scan ring register from PRD - // you can only read scan ring registers from PRD if the global attention type is CHECK_STOP + // you can only read scan ring registers from PRD if the global attention + // type is CHECK_STOP @endcode */ class ScanFacility @@ -74,90 +75,129 @@ public: */ static ScanFacility & Access(void); - /** - Get a scan comm register for this functional unit - @param Target Handle see target.H - @param scan comm address - @param number of bits in the register - @pre Address of register must correspond to the functional unit indicated - @post If the scr does not yet exist it will be created otherwise a reference - to one already in existance (same address and functional unit) is returned. - */ - SCAN_COMM_REGISTER_CLASS & GetScanCommRegister(TARGETING::TargetHandle_t i_ptargetHandle, - uint64_t address, - uint32_t bitLength); + /** + * @brief Returns reference to flyweight object of type ScomRegister. + * An object of given address is first searched in flyweight. + * If object exist, reference to existing object is returned + * else a new one is created. + * @param i_address address of the register + * @param i_scomLength length of the bit string + * @param i_type type of target associated with register + * @return returns reference to flyweight object from factory + */ + SCAN_COMM_REGISTER_CLASS & GetScanCommRegister( + uint64_t address ,uint32_t i_scomLength, + TARGETING::TYPE i_type ); /** Get a scan ring register - @param i_ptargetHandle handle to target in targeting - @param pointer to list an array of ScanRingField see prdfHomRegisterAccess.H - @param pointer to last entry+1 of ScanFingField array - @pre AliasId's for the scan ring registers MUST exist in the function unit associated with the Id given - @post Access object and scr created for this register. the bit length of the scr returned will be the sum - of all the field lengths provided. - @note an SCR based on a scan ring register can not be written, and should only be read if the global + * @param i_ptargetHandle handle to target in targeting + * @param pointer to list an array of ScanRingField see prdfHomRegisterAccess.H + * @param pointer to last entry+1 of ScanFingField array + * @pre AliasId's for the scan ring registers MUST exist in the function unit + associated with the Id given + * @post Access object and scr created for this register. the bit length of the + scr returned will be the sum of all the field lengths provided. + * @note an SCR based on a scan ring register can not be written, and should + only be read if the global attention type is CHECK_STOP. */ - SCAN_COMM_REGISTER_CLASS & GetScanRingRegister(TARGETING::TargetHandle_t i_ptargetHandle, - ScanRingField * start, - ScanRingField * end); + +//FIXME Need to discuss before deleting the function below +#if 0 + SCAN_COMM_REGISTER_CLASS & GetScanRingRegister( + TARGETING::TargetHandle_t i_ptargetHandle, + ScanRingField * start, + ScanRingField * end); +#endif /** - * Get a register that bitwise inverts the bitstring of a register when read or written to - * @param SCAN_COMM_REGISTER_CLASS source - * @post Only one instance of the register with this SCR paramter will exist + * @brief Get a register that bitwise inverts the bitstring of a register + * when read or written to + * @param SCAN_COMM_REGISTER_CLASS source + * @post Only one instance of the register with this SCR paramter will exist */ SCAN_COMM_REGISTER_CLASS & GetNotRegister(SCAN_COMM_REGISTER_CLASS & i_arg); /** - * Get a register that bitwise left shift the bitstring of a register when read or written to - * @param SCAN_COMM_REGISTER_CLASS source - * @post Only one instance of the register with this SCR paramter and amount will exist + * @brief Get a register that bitwise left shift the bitstring of a register + * when read or written to + * @param SCAN_COMM_REGISTER_CLASS source + * @post Only one instance of the register with this SCR paramter and amount + @ will exist */ - SCAN_COMM_REGISTER_CLASS & GetLeftShiftRegister(SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount); + SCAN_COMM_REGISTER_CLASS & GetLeftShiftRegister( + SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount); /** - * Get a register that bitwise right shift the bitstring of a register when read or written to + * @brief Get a register that bitwise right shift the bitstring of a register + * when read or written to * @param SCAN_COMM_REGISTER_CLASS source - * @post Only one instance of the register with this SCR paramter and amount will exist + * @post Only one instance of the register with this SCR paramter and amount + * @ will exist */ - SCAN_COMM_REGISTER_CLASS & GetRightShiftRegister(SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount); + SCAN_COMM_REGISTER_CLASS & GetRightShiftRegister( + SCAN_COMM_REGISTER_CLASS & i_arg, uint16_t i_amount); /** - * Get a register that bit-wise ANDs the bitstring of two register when read or written to - * @param The 2 SCR 's to AND - * @posrt Only one instance of the register with these SCRs will exist + * @brief Get a register that bit-wise ANDs the bitstring of two register + * when read or written to + * @param The 2 SCR 's to AND + * @posrt Only one instance of the register with these SCRs will exist */ SCAN_COMM_REGISTER_CLASS & GetAndRegister(SCAN_COMM_REGISTER_CLASS & i_left, SCAN_COMM_REGISTER_CLASS & i_right); /** - * Get a register that bitwise ORs the bitstrings of two register when read or written - * @param the 2 SCR's to OR - * @post Only one instance of the register with these SCR's will exist + * @brief Get a register that bitwise ORs the bitstrings of two register when + * read or written + * @param the 2 SCR's to OR + * @post Only one instance of the register with these SCR's will exist */ SCAN_COMM_REGISTER_CLASS & GetOrRegister(SCAN_COMM_REGISTER_CLASS & i_left, SCAN_COMM_REGISTER_CLASS & i_right); /** - * Get a AttnTypeRegister + * @brief Get a AttnTypeRegister * @params 3 scr Registers * @post only one instance of the register with these SCR's will exist */ - SCAN_COMM_REGISTER_CLASS & GetAttnTypeRegister(SCAN_COMM_REGISTER_CLASS & i_check, - SCAN_COMM_REGISTER_CLASS & i_recov, - SCAN_COMM_REGISTER_CLASS & i_special, - SCAN_COMM_REGISTER_CLASS & i_proccs); + SCAN_COMM_REGISTER_CLASS & GetAttnTypeRegister( + SCAN_COMM_REGISTER_CLASS & i_check, + SCAN_COMM_REGISTER_CLASS & i_recov, + SCAN_COMM_REGISTER_CLASS & i_special, + SCAN_COMM_REGISTER_CLASS & i_proccs); /** - * Get a ConstantRegister + * @brief Get a PrdfConstantRegister * @param BIT_STRING_CLASS - the bit string constant to use. * @post only one instance of the register with this BIT_STRING value will * exist. */ SCAN_COMM_REGISTER_CLASS & GetConstantRegister(BIT_STRING_CLASS i_val); + /** + * @brief Get a plugin register + * @param Reference to target less flyweight object + * @param RuleChip associatd with register + * @post only one instance of the register with this BIT_STRING value will + * exist. + */ + SCAN_COMM_REGISTER_CLASS & GetPluginRegister( + SCAN_COMM_REGISTER_CLASS & i_flyweight, + ExtensibleChip & i_RuleChip ); + /** + * @brief Delete all the plugin register + * @param None + * @post all the ScomRegisterAccess register flyweight object created for + * plugin shall be deleted + * exist. + */ + void ResetPluginRegister(); +#ifdef __MEM_PROFILING + void printStats(); +#endif /** Destructor @@ -166,38 +206,39 @@ public: private: // functions /** Constructor - @param - @returns - @pre - @post - @see - @note + * @param + * @returns + * @pre + * @post + * @see + * @note */ ScanFacility() {} - private: // Data - - typedef FlyWeight<HomRegisterAccessScom, 10> ScanCommAccess; - typedef std::vector<HomRegisterAccessScan> ScanRingAccess; - typedef FlyWeightS<ScanCommRegisterChip, 50> ScanCommRegisters; - typedef FlyWeight<AttnTypeRegister, 50> AttnTypeRegisters; - typedef FlyWeightS<AndRegister, 50> AndRegisters; - typedef FlyWeightS<OrRegister, 10> OrRegisters; - typedef FlyWeightS<NotRegister, 50> NotRegisters; - typedef FlyWeightS<LeftShiftRegister, 10> LeftShiftRegisters; - typedef FlyWeightS<RightShiftRegister, 10> RightShiftRegisters; - typedef FlyWeight<ConstantRegister, 10> ConstantRegisters; - - ScanCommAccess iv_scomAccessFw; - ScanRingAccess iv_scanAccessList; - ScanCommRegisters iv_scomRegFw; - AttnTypeRegisters iv_attnRegFw; - AndRegisters iv_andRegFw; - OrRegisters iv_orRegFw; - NotRegisters iv_notRegFw; - LeftShiftRegisters iv_leftRegFw; - RightShiftRegisters iv_rightRegFw; - ConstantRegisters iv_constRegFw; + +private: // Data + typedef FlyWeightS<ScomRegister,50> ScanCommRegisters; + //FIXME RTC 64345 Investigate benefit of changing below from FlyWeight to + //FlyWeightS + typedef FlyWeight<AttnTypeRegister,50> AttnTypeRegisters; + typedef FlyWeightS<AndRegister,50> AndRegisters; + typedef FlyWeightS<OrRegister,10> OrRegisters; + typedef FlyWeightS<NotRegister,50> NotRegisters; + typedef FlyWeightS<LeftShiftRegister,10> LeftShiftRegisters; + typedef FlyWeightS<RightShiftRegister, 10> RightShiftRegisters; + typedef FlyWeight<ConstantRegister, 10> ConstantRegisters; + typedef FlyWeightS<ScomRegisterAccess, 10> PluginRegisters; + + ScanCommRegisters iv_scomRegFw; + AttnTypeRegisters iv_attnRegFw; + AndRegisters iv_andRegFw; + OrRegisters iv_orRegFw; + NotRegisters iv_notRegFw; + LeftShiftRegisters iv_leftRegFw; + RightShiftRegisters iv_rightRegFw; + ConstantRegisters iv_constRegFw; + PluginRegisters iv_pluginRegFw; + }; } // end namespace PRDF diff --git a/src/usr/diag/prdf/common/framework/register/prdfScomRegister.C b/src/usr/diag/prdf/common/framework/register/prdfScomRegister.C new file mode 100755 index 000000000..6074be96e --- /dev/null +++ b/src/usr/diag/prdf/common/framework/register/prdfScomRegister.C @@ -0,0 +1,219 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: prdfScomRegister.C $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 1996,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 */ + +// Module Description ************************************************** +// +// Description: This module provides the implementation for the PRD Scan +// Comm Register Chip class. +// +// End Module Description ********************************************** + +//---------------------------------------------------------------------- +// Includes +//---------------------------------------------------------------------- + +#include <iipchip.h> +#include <prdfScomRegister.H> +#include <iipconst.h> +#include <iipbits.h> +#include <prdfMain.H> +#include <prdf_ras_services.H> +#include <prdfRegisterCache.H> +#include <prdfHomRegisterAccess.H> +#include <prdfPlatServices.H> +#include <prdfExtensibleChip.H> + +//---------------------------------------------------------------------- +// User Types +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Constants +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Macros +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Internal Function Prototypes +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Global Variables +//---------------------------------------------------------------------- + +//--------------------------------------------------------------------- +// Member Function Specifications +//--------------------------------------------------------------------- + +// -------------------------------------------------------------------- +namespace PRDF +{ + +// --------------------------------------------------------------------- + +void ScomRegister::SetBitString( const BIT_STRING_CLASS *bs ) +{ + BIT_STRING_CLASS & l_string = AccessBitString(); + l_string.SetBits(*bs); +} + + +// --------------------------------------------------------------------- + +const BIT_STRING_CLASS *ScomRegister::GetBitString( ATTENTION_TYPE i_type )const +{ + bool l_readStat = false; + return &( readCache( l_readStat ) ); +} +// --------------------------------------------------------------------- +BIT_STRING_CLASS & ScomRegister::AccessBitString( ) +{ + bool l_readStat = false; + return ( readCache( l_readStat ) ); + +} + +//--------------------------------------------------------------------- + +uint32_t ScomRegister::Read( ) +{ + int32_t rc = SUCCESS; + bool l_readStat = false; + readCache( l_readStat ); + if( false == l_readStat ) + { + //updating cache by reading hardware .So that next read need not access + //hardware + rc = ForceRead(); + } + + return(rc); +} + +// ---------------------------------------------------------------------------- +uint32_t ScomRegister::ForceRead() +{ + int32_t rc = SUCCESS; + bool l_readStat = false; + BIT_STRING_CLASS & bs = readCache( l_readStat ); + rc = Access( bs,MopRegisterAccess::READ ); + if( SUCCESS != rc ) + { + ExtensibleChip* l_pChip = getChip( ); + flushCache( l_pChip ); + } + + return rc; +} +//------------------------------------------------------------------------------ + +uint32_t ScomRegister::Write() +{ + uint32_t rc = FAIL; + bool l_entryBeforeWrite = false; + BIT_STRING_CLASS & bs = readCache( l_entryBeforeWrite ); + PRDF_ASSERT( true == l_entryBeforeWrite ); + rc = Access( bs, MopRegisterAccess::WRITE ); + + return(rc); +} +//------------------------------------------------------------------------------ +uint32_t ScomRegister::Access( BIT_STRING_CLASS & bs, + MopRegisterAccess::Operation op ) const +{ + int32_t l_rc = SCR_ACCESS_FAILED; + TARGETING::TargetHandle_t i_pchipTarget = getChip()->GetChipHandle(); + l_rc = getScomService().Access( i_pchipTarget,bs,iv_scomAddress,op ); + + return(l_rc); +} +//----------------------------------------------------------------------------- +ExtensibleChip* ScomRegister::getChip( )const +{ + ExtensibleChip* l_pchip = NULL; + l_pchip = ServiceDataCollector::getChipAnalyzed(); + TARGETING::TYPE l_type = PlatServices::getTargetType( + l_pchip->GetChipHandle() ); + PRDF_ASSERT( iv_chipType == l_type ) + return l_pchip; +} +//----------------------------------------------------------------------------- +BIT_STRING_CLASS & ScomRegister::readCache( bool & o_existingEntry ) const +{ + ExtensibleChip* l_pChip = getChip( ); + RegDataCache & regDump = RegDataCache::getCachedRegisters(); + return regDump.read( l_pChip,this,o_existingEntry ); + +} +//----------------------------------------------------------------------------- + +void ScomRegister::flushCache( ExtensibleChip *i_pChip ) const +{ + RegDataCache & regDump = RegDataCache::getCachedRegisters(); + if( NULL == i_pChip ) + { + regDump.flush(); + } + else + { + regDump.flush( i_pChip ,this ); + } +} + +//----------------------------------------------------------------------------- + +bool ScomRegister::operator == ( const ScomRegister & i_rightRegister ) const +{ + if( iv_scomAddress == i_rightRegister.GetAddress() ) + { + return ( iv_chipType == i_rightRegister.getChipType() ); + } + else + { + return false ; + } + +} + +//----------------------------------------------------------------------------- +bool ScomRegister::operator < ( const ScomRegister & i_rightRegister ) const +{ + if( iv_scomAddress == i_rightRegister.GetAddress() ) + { + return ( iv_chipType == i_rightRegister.getChipType() ); + } + else + { + return( iv_scomAddress < i_rightRegister.GetAddress() ); + } + + +} +//----------------------------------------------------------------------------- +bool ScomRegister::operator >= ( const ScomRegister & i_rightRegister ) const +{ + return !( *this < i_rightRegister ); +} +}//namespace PRDF ends diff --git a/src/usr/diag/prdf/common/framework/register/prdfScomRegister.H b/src/usr/diag/prdf/common/framework/register/prdfScomRegister.H new file mode 100755 index 000000000..41a611061 --- /dev/null +++ b/src/usr/diag/prdf/common/framework/register/prdfScomRegister.H @@ -0,0 +1,224 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: prdfScomRegister.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 1996,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 iipScomRegister_h +#define iipScomRegister_h + +/** + * @brief Models register.It does not contain target. + * + * This class stores the hash id and bit length of scom registers It models + * registers without maintaining target information. Instances of this class + * are shared across rule chip objects of same type.Once prd object model is + * built, instances of this register are saved in flyweight.These instances + * persist as long as prd object model survives. + */ + +#include <iipscr.h> +#include <iipbits.h> +#include <iipMopRegisterAccess.h> + +namespace PRDF +{ + +// Forward References +class CHIP_CLASS; +class MopsRegisterAccess; +class ExtensibleChip; + + + +class ScomRegister : public SCAN_COMM_REGISTER_CLASS +{ +public: + + /** + * @brief constructor + * @param i_address address of the register + * @param i_bitLength bit length of register + * @param i_targetType target type associated with register + */ + ScomRegister( uint64_t i_address ,uint32_t i_bitLength,TARGETING::TYPE + i_targetType ) : + SCAN_COMM_REGISTER_CLASS(), + iv_bitLength( i_bitLength ), + iv_chipType( i_targetType ), + iv_scomAddress( i_address ) + { } + + /** + * @brief constructor .Added this because we save object of this type in + * @ FlyweightS + */ + ScomRegister(): + SCAN_COMM_REGISTER_CLASS( ), + iv_bitLength(0), + iv_chipType(TARGETING::TYPE_NA),iv_scomAddress(0) + { } + + + + /** + * @brief Returns the pointer to bit string + * @param i_type attention type + * @return BIT_STRING_CLASS * pointer to bit string + */ + + virtual const BIT_STRING_CLASS * GetBitString(ATTENTION_TYPE i_type = + INVALID_ATTENTION_TYPE) const; + /** + * @brief Updates bit string contents associated with register + * @param i_bs poiner to bit string + * @return Nil + */ + + virtual void SetBitString(const BIT_STRING_CLASS * i_bs) ; + /** + * @brief Returns length of the bits string associated with register + * @return length of bit string + */ + uint32_t GetBitLength(void) const { return iv_bitLength ;} + /** + * @brief Directly reads from hardware register + * @return SUCCESS|FAIL + */ + virtual uint32_t ForceRead(); + /** + * @brief Returns contents of register.If entry does not exist in cache + * a fresh entry is created and hardware is read. + * @return SUCCESS|FAIL + */ + virtual uint32_t Read( ); + /** + * @brief Writes cache contents to register. + * @return SUCCESS|FAIL + */ + virtual uint32_t Write( ); + /** + * @brief Returns the hash id of register + * @return returns hash id of register + * @pre None + * @post None + * @note + */ + virtual uint16_t GetId(void) const { return iv_shortId; }; + /** + * @brief Sets the hash id of register + * @param i_id hash id of register + * @return Nil + */ + virtual void SetId(uint16_t i_id) { iv_shortId = i_id; }; + /** + * @brief Returns type of Target associated with register. + * @return Refer to function description + */ + TARGETING::TYPE getChipType()const{ return iv_chipType ;} ; + /** + * @brief Returns scom address of register + * @return Refer to function description + */ + uint64_t GetAddress( ) const {return iv_scomAddress ;}; + /** + * @brief compares two ScomRegisterAccess register for equality + * @param i_rightRegister register to be compared against + * @return Returns true if registers are equal false otherwise + */ + bool operator == ( const ScomRegister & i_rightRegister ) const ; + /** + * @brief defines < operation for ScomRegisterAccess + * @param i_rightRegister register to be compared against + * @return Returns false if i_rightRegisters is less and true otherwise + */ + bool operator < ( const ScomRegister & i_rightRegister ) const ; + /** + * @brief defines >= operation for ScomRegisterAccess + * @param i_rightRegister register to be compared against + * @return Returns true if registers is >= i_rightRegister false + * otherwise + */ + bool operator >= ( const ScomRegister & i_rightRegister ) const; + + protected: // Functions + /** + * @brief copy constructor + * @param i_scomRegister scomRegister instance to be copied + */ + ScomRegister( const SCAN_COMM_REGISTER_CLASS & i_scomRegister ): + SCAN_COMM_REGISTER_CLASS(), + iv_bitLength( i_scomRegister.GetBitLength() ), + iv_shortId( i_scomRegister.GetId() ), + iv_chipType( i_scomRegister.getChipType() ), + iv_scomAddress( i_scomRegister.GetAddress() ) + { } + + + /** + * @brief Returns reference to bit string associated with register + * @return Refer to function description + */ + virtual BIT_STRING_CLASS & AccessBitString( ); + /** + * @brief Gets the register read and write done by calling access + * function of scom accessor service. + * @param reference to bit string maintained in caller class + * @param Read or write operation + * @return [SUCCESS|FAIL] + */ + uint32_t Access( BIT_STRING_CLASS & bs, + MopRegisterAccess::Operation op )const; + /** + * @brief Returns rulechip poiner associated with the register + * @return Refer to function description + */ + + virtual ExtensibleChip* getChip( )const ; + + +private: // functions + + friend class CaptureData; + /** + * @brief Reads register contents from cache + * @param reference to bool .Expected to be set to true if entry in + * cache already exist and false if it is a newly created + * entry. + * @return Reference to bit string buffer maintained in cache + */ + BIT_STRING_CLASS & readCache( bool & o_existingEntry ) const; + /** + * @brief Deletes one or all entry in the cache + * @param RuleChip pointer associated with register + * @return Nil + */ + void flushCache( ExtensibleChip *i_pChip = NULL ) const ; + +private: // Data + uint32_t iv_bitLength; // bit length of scom + uint16_t iv_shortId; // unique hash id of register + TARGETING::TYPE iv_chipType ; // type of target associated with register + uint64_t iv_scomAddress; // scom address associated with regiser +}; + +}//namespace PRDF ends + +#endif diff --git a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.inl b/src/usr/diag/prdf/common/framework/register/prdfScomRegisterAccess.C index 6bd0ac347..3d076d16e 100755..100644 --- a/src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.inl +++ b/src/usr/diag/prdf/common/framework/register/prdfScomRegisterAccess.C @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/usr/diag/prdf/common/framework/register/iipScanCommRegisterAccess.inl $ */ +/* $Source: prdfScomRegisterAccess.C $ */ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ @@ -21,53 +21,77 @@ /* */ /* IBM_PROLOG_END_TAG */ -// Module Description ************************************************** -// -// Description: This module provides the inline implementation for the -// PRD Scan Comm Register Access class. -// -// End Module Description ********************************************** +#include <prdfScomRegisterAccess.H> +#include <prdfScanFacility.H> +#include <prdfRegisterCache.H> +#include <prdfExtensibleChip.H> +namespace PRDF +{ -//---------------------------------------------------------------------- -// Includes -//---------------------------------------------------------------------- +ScomRegisterAccess::ScomRegisterAccess( + const SCAN_COMM_REGISTER_CLASS &i_pRegister , + ExtensibleChip* i_pRuleChip + ) + :ScomRegister( i_pRegister ), + iv_containerChip( i_pRuleChip ) +{ +} //---------------------------------------------------------------------- -// User Types -//---------------------------------------------------------------------- -//---------------------------------------------------------------------- -// Constants -//---------------------------------------------------------------------- +ScomRegisterAccess::ScomRegisterAccess( uint64_t i_scomAddress, + uint32_t i_bitLength, + ExtensibleChip* i_pRuleChip ): + ScomRegister( i_scomAddress ,i_bitLength, + PlatServices::getTargetType( i_pRuleChip->GetChipHandle())), + iv_containerChip( i_pRuleChip ) +{ +} -//---------------------------------------------------------------------- -// Macros -//---------------------------------------------------------------------- //---------------------------------------------------------------------- -// Internal Function Prototypes -//---------------------------------------------------------------------- -//---------------------------------------------------------------------- -// Global Variables +ExtensibleChip* ScomRegisterAccess::getChip( )const +{ + return iv_containerChip; +} + //---------------------------------------------------------------------- -//--------------------------------------------------------------------- -// Member Function Specifications -//--------------------------------------------------------------------- +bool ScomRegisterAccess::operator == ( + const ScomRegisterAccess & i_rightRegister ) const +{ + if( GetAddress() == i_rightRegister.GetAddress() ) + { + return ( getChip() == i_rightRegister.getChip() ); + } + else + { + return false ; + } -namespace PRDF +} +//---------------------------------------------------------------------- + +bool ScomRegisterAccess::operator < ( + const ScomRegisterAccess & i_rightRegister ) const { + if( GetAddress() == i_rightRegister.GetAddress() ) + { + return ( getChip() < i_rightRegister.getChip() ); + } + else + { + return ( GetAddress() < i_rightRegister.GetAddress() ); + } +} -inline -ScanCommRegisterAccess::ScanCommRegisterAccess( - uint64_t ra, - MopRegisterAccess & hopsAccessor) -: -SCAN_COMM_REGISTER_CLASS(ra), -synch(), -hops(&hopsAccessor) +//---------------------------------------------------------------------- +bool ScomRegisterAccess::operator >= ( + const ScomRegisterAccess & i_right ) const { + return !( *this < i_right ); } -} // end namespace PRDF +//---------------------------------------------------------------------- +}//namespace PRDF ends diff --git a/src/usr/diag/prdf/common/framework/register/prdfScomRegisterAccess.H b/src/usr/diag/prdf/common/framework/register/prdfScomRegisterAccess.H new file mode 100644 index 000000000..84dcbb930 --- /dev/null +++ b/src/usr/diag/prdf/common/framework/register/prdfScomRegisterAccess.H @@ -0,0 +1,117 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: prdfScomRegisterAccess.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012,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 __PRDF_REGISTER_ +#define __PRDF_REGISTER_ + +#include <prdfScomRegister.H> +#include <prdfBitString.H> +#include <prdfPlatServices.H> + +/** + * @brief Models register.This model of register has target info + * + * In order to reduce the register objects required by PRD to do attention + * analysis, these are shared across all the RuleChip objects associated with + * target of same type.In order to realize this,target info is taken out of + * register object .RuleChip contains target info.During Analysis ,pointer to + * Rulechip under analysis is maintained in Service Data collector.During + * register Read and Write,target info is obtained by register from service data + * collector.This idea fails when getRegister is called for Register read and + * write.It may be called from plugin code which may use a RuleChip different + * from the one in SDC.We would like to avoid SDC getting updated from multiple + * places.To simplify solution for this use case, a wrapper register is required + * .This register model knows which rule chip it is associated with.When plugin + * code calls getRegister ,instead of returning targetless flyweight object,it + * returns an object of class ScomRegisterAccess.Since register Read Write is + * in parent class ,it's just a container for Rulechip pointer giving us a way + * to do scom without having to look for associated target/rule chip somewhere + * else. + */ + +namespace PRDF +{ +class ScomRegisterAccess : public ScomRegister +{ + public : + /** + * @brief constructor + * @param i_Register Reference to flyweight register + * @param i_pchip RuleChip associated with register + */ + ScomRegisterAccess( const SCAN_COMM_REGISTER_CLASS & i_Register, + ExtensibleChip* i_pchip ); + /** + * @brief constructor + * @param i_scomAddress scom address of register + * @param i_bitLength scom length + * @param i_pchip RuleChip to which register belongs + */ + ScomRegisterAccess( uint64_t i_scomAddress,uint32_t i_bitLength, + ExtensibleChip* i_pchip ); + /** + * @brief constructor + */ + ScomRegisterAccess():ScomRegister( ),iv_containerChip ( NULL ){ }; + + /** + * @brief Destructor + */ + ~ScomRegisterAccess(){ }; + /** + * @brief Returns pointer to rulechip associated with register + * @return Returns rule chip pointer + */ + + virtual ExtensibleChip* getChip( ) const; + /** + * @brief compares two ScomRegisterAccess register for equality + * @param i_rightRegister register to be compared against + * @return Returns true if registers are equal false otherwise + */ + bool operator == ( const ScomRegisterAccess & i_rightRegister ) const; + /** + * @brief defines < operation for ScomRegisterAccess + * @param i_rightRegister register to be compared against + * @return Returns false if i_rightRegisters is less and true otherwise + */ + bool operator < ( const ScomRegisterAccess & i_rightRegister ) const; + /** + * @brief defines >= operation for ScomRegisterAccess + * @param i_right register to be compared against + * @return Returns true if registers is >= i_rightRegister false + * otherwise + */ + bool operator >= ( const ScomRegisterAccess & i_right ) const; + + + private://Data + + ExtensibleChip* iv_containerChip; + + +}; + +}//namepsace PRDF ends +#endif + diff --git a/src/usr/diag/prdf/common/framework/register/xspprdAndResetErrorRegister.h b/src/usr/diag/prdf/common/framework/register/xspprdAndResetErrorRegister.h index 38f7e863f..f5a5fcc57 100755 --- a/src/usr/diag/prdf/common/framework/register/xspprdAndResetErrorRegister.h +++ b/src/usr/diag/prdf/common/framework/register/xspprdAndResetErrorRegister.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipAnalyzeChipResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipAnalyzeChipResolution.h index 8d5239cee..7eff99535 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipAnalyzeChipResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipAnalyzeChipResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipCallAttnResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipCallAttnResolution.h index dd5f277cf..12ccddaf2 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipCallAttnResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipCallAttnResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h b/src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h index 3e21ebeca..a020d714e 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipCallResolutionTemplate.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipCallout.h b/src/usr/diag/prdf/common/framework/resolution/iipCallout.h index 819a05e24..48a73de6a 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipCallout.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipCallout.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipCalloutMap.h b/src/usr/diag/prdf/common/framework/resolution/iipCalloutMap.h index 3a22bed71..d8a5131aa 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipCalloutMap.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipCalloutMap.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipCalloutResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipCalloutResolution.h index cec2d6f49..11f86cba0 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipCalloutResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipCalloutResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1998,2012 */ +/* COPYRIGHT International Business Machines Corp. 1998,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipCaptureResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipCaptureResolution.h index 49b0ee8e5..4a7b489f9 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipCaptureResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipCaptureResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipEregResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipEregResolution.h index 000b9dc10..34976c559 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipEregResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipEregResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolution.C b/src/usr/diag/prdf/common/framework/resolution/iipResolution.C index 6e9cd1ba4..165b979ab 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolution.C +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolution.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ @@ -39,7 +39,6 @@ //#include <iipCalloutMap.h> #include <iipCalloutResolution.h> #include <iipstep.h> -#include <iipScanCommRegisterChip.h> #include <iipCaptureData.h> #include <iipServiceDataCollector.h> #include <iipErrorRegister.h> diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipResolution.h index c1b1df029..899d90c65 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C index 9089c5db2..74deed70c 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h index fe0c0febf..1094c763b 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolutionList.h b/src/usr/diag/prdf/common/framework/resolution/iipResolutionList.h index b774a87f0..bd83dc2e5 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolutionList.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolutionList.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolutionMap.h b/src/usr/diag/prdf/common/framework/resolution/iipResolutionMap.h index 04dab5482..6bb0150b0 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolutionMap.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolutionMap.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipTerminateResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipTerminateResolution.h index a5a29cb64..7518d637e 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipTerminateResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipTerminateResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1997,2012 */ +/* COPYRIGHT International Business Machines Corp. 1997,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/iipThresholdResolution.h b/src/usr/diag/prdf/common/framework/resolution/iipThresholdResolution.h index 41da01a7a..addaefdbd 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipThresholdResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipThresholdResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfAnalyzeConnected.H b/src/usr/diag/prdf/common/framework/resolution/prdfAnalyzeConnected.H index 3c99cb052..d7f77d39f 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfAnalyzeConnected.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfAnalyzeConnected.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2005,2012 */ +/* COPYRIGHT International Business Machines Corp. 2005,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfCalloutConnected.H b/src/usr/diag/prdf/common/framework/resolution/prdfCalloutConnected.H index a92f80601..9215770f3 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfCalloutConnected.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfCalloutConnected.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H b/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H index 19eee40ba..6823a5687 100644 --- a/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfCallouts.H b/src/usr/diag/prdf/common/framework/resolution/prdfCallouts.H index d36123e40..538ca2105 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfCallouts.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfCallouts.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2000,2012 */ +/* COPYRIGHT International Business Machines Corp. 2000,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.C b/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.C index 63e4c942d..019735bbf 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.C +++ b/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2006,2012 */ +/* COPYRIGHT International Business Machines Corp. 2006,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.H b/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.H index c6f20394e..d0c8eecb1 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfCaptureResolution.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2006,2012 */ +/* COPYRIGHT International Business Machines Corp. 2006,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.C b/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.C index 73c3447f2..de16a2b58 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.C +++ b/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.H b/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.H index 0cd7e5879..bf07ba082 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfClockResolution.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2009,2012 */ +/* COPYRIGHT International Business Machines Corp. 2009,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfErrorTypeResolution.H b/src/usr/diag/prdf/common/framework/resolution/prdfErrorTypeResolution.H index 570e94a19..2c8c8b983 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfErrorTypeResolution.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfErrorTypeResolution.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2003,2012 */ +/* COPYRIGHT International Business Machines Corp. 2003,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfIntervalThresholdResolution.H b/src/usr/diag/prdf/common/framework/resolution/prdfIntervalThresholdResolution.H index 25bf5ee0d..747d8bad1 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfIntervalThresholdResolution.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfIntervalThresholdResolution.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfPluginCallResolution.H b/src/usr/diag/prdf/common/framework/resolution/prdfPluginCallResolution.H index 8fe7973be..debae0c35 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfPluginCallResolution.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfPluginCallResolution.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2005,2012 */ +/* COPYRIGHT International Business Machines Corp. 2005,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfResetThresholdResolution.H b/src/usr/diag/prdf/common/framework/resolution/prdfResetThresholdResolution.H index f991d4bb5..c0f79ba7c 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfResetThresholdResolution.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfResetThresholdResolution.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfResolutionList.H b/src/usr/diag/prdf/common/framework/resolution/prdfResolutionList.H index 168346967..9692abc59 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfResolutionList.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfResolutionList.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.C b/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.C index a3abbf2e4..8cac9fde5 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.C +++ b/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.H b/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.H index 4c83a6fe7..0c28a8110 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.C b/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.C index 0f59b51a2..39a560868 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.C +++ b/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2003,2012 */ +/* COPYRIGHT International Business Machines Corp. 2003,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.H b/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.H index 1ea070b94..1b8a7925b 100755 --- a/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.H +++ b/src/usr/diag/prdf/common/framework/resolution/prdfThresholdResolutions.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2003,2012 */ +/* COPYRIGHT International Business Machines Corp. 2003,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.C b/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.C index fceeb7193..e8af4b078 100755 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.C +++ b/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.h b/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.h index caa93156c..72f05c685 100755 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/xspprdDumpResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.C b/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.C index 7549e964b..b11ab46d7 100755 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.C +++ b/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.h b/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.h index 65f5c8b5b..81e03f696 100755 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/xspprdFlagResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C b/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C index 8d6baed85..3945fb4cf 100755 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C +++ b/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1999,2012 */ +/* COPYRIGHT International Business Machines Corp. 1999,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h b/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h index 74546aecc..74bf60940 100755 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2001,2012 */ +/* COPYRIGHT International Business Machines Corp. 2001,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdTryResolution.h b/src/usr/diag/prdf/common/framework/resolution/xspprdTryResolution.h index 753149ed8..2f237dd81 100755 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdTryResolution.h +++ b/src/usr/diag/prdf/common/framework/resolution/xspprdTryResolution.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1998,2012 */ +/* COPYRIGHT International Business Machines Corp. 1998,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/iipTemplates.C b/src/usr/diag/prdf/common/framework/rule/iipTemplates.C index 9653442f1..4bb652ae5 100755 --- a/src/usr/diag/prdf/common/framework/rule/iipTemplates.C +++ b/src/usr/diag/prdf/common/framework/rule/iipTemplates.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdfGroup.C b/src/usr/diag/prdf/common/framework/rule/prdfGroup.C index bacbbe602..6aca1bb9a 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfGroup.C +++ b/src/usr/diag/prdf/common/framework/rule/prdfGroup.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdfGroup.H b/src/usr/diag/prdf/common/framework/rule/prdfGroup.H index 9aa7fe2aa..96df2dd2d 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfGroup.H +++ b/src/usr/diag/prdf/common/framework/rule/prdfGroup.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdfPluginDef.H b/src/usr/diag/prdf/common/framework/rule/prdfPluginDef.H index 11e89e55d..f2245105a 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfPluginDef.H +++ b/src/usr/diag/prdf/common/framework/rule/prdfPluginDef.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.C b/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.C index 07edd6639..c3720d0c8 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.C +++ b/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2005,2012 */ +/* COPYRIGHT International Business Machines Corp. 2005,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.H b/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.H index 8c348e471..56a98dd89 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.H +++ b/src/usr/diag/prdf/common/framework/rule/prdfPluginMap.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2005,2012 */ +/* COPYRIGHT International Business Machines Corp. 2005,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.C b/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.C index a5f7e5ac1..f09c7f6d3 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.C +++ b/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ @@ -60,6 +60,7 @@ #include <prdfResetOperators.H> #include <algorithm> +#include <prdf_ras_services.H> namespace PRDF { @@ -69,12 +70,12 @@ struct ResetAndMaskTransformer : public std::unary_function<Prdr::Register::ResetOrMaskStruct, ResetAndMaskErrorRegister::ResetRegisterStruct> { - ResetAndMaskTransformer(ScanFacility & i_scanFactory, - TARGETING::TargetHandle_t i_pchipHandle , - size_t i_scomlen) - : cv_scanFactory(i_scanFactory), - cv_pchipHandle (i_pchipHandle ), - cv_scomlen(i_scomlen) + ResetAndMaskTransformer( ScanFacility & i_scanFactory, + size_t i_scomlen , + TARGETING::TYPE i_type ): + cv_scanFactory( i_scanFactory ), + cv_scomlen( i_scomlen ), + iv_chipType( i_type ) {}; virtual ~ResetAndMaskTransformer() {}; // zs01 @@ -83,13 +84,11 @@ struct ResetAndMaskTransformer operator()(const Prdr::Register::ResetOrMaskStruct & i) { ResetAndMaskErrorRegister::ResetRegisterStruct o; + o.read = & cv_scanFactory.GetScanCommRegister( i.addr_r , + cv_scomlen,iv_chipType ); + o.write = & cv_scanFactory.GetScanCommRegister( i.addr_w , + cv_scomlen ,iv_chipType ); - o.read = &cv_scanFactory.GetScanCommRegister(cv_pchipHandle , - i.addr_r, - cv_scomlen); - o.write = &cv_scanFactory.GetScanCommRegister(cv_pchipHandle , - i.addr_w, - cv_scomlen); switch (i.op) { @@ -119,8 +118,8 @@ struct ResetAndMaskTransformer private: ScanFacility & cv_scanFactory; - TARGETING::TargetHandle_t cv_pchipHandle ; size_t cv_scomlen; + TARGETING::TYPE iv_chipType; }; @@ -162,6 +161,8 @@ void RuleChip::loadRuleFile(ScanFacility & i_scanFactory, // Get default dump type. cv_dumpType = l_chip->cv_dumpType; + //getting target type before creating hardware register + TARGETING::TYPE l_type = PlatServices::getTargetType( GetChipHandle() ) ; // Set signature offset for capture data output. iv_sigOff = l_chip->cv_signatureOffset; @@ -172,9 +173,9 @@ void RuleChip::loadRuleFile(ScanFacility & i_scanFactory, l_regMap[l_id] = cv_hwRegs[hashId] = &i_scanFactory.GetScanCommRegister( - this->GetChipHandle(), l_chip->cv_registers[i].cv_scomAddr, - l_chip->cv_registers[i].cv_scomLen ); + l_chip->cv_registers[i].cv_scomLen, + l_type ); l_regMap[l_id]->SetId(hashId); // Copy reset registers. @@ -184,8 +185,8 @@ void RuleChip::loadRuleFile(ScanFacility & i_scanFactory, std::back_inserter(l_resetMap[l_id].first), ResetAndMaskTransformer<RESETOPERATOR_RESET>( i_scanFactory, - this->GetChipHandle(), - l_chip->cv_registers[i].cv_scomLen) + l_chip->cv_registers[i].cv_scomLen, + l_type ) ); // Copy mask registers. @@ -195,14 +196,15 @@ void RuleChip::loadRuleFile(ScanFacility & i_scanFactory, std::back_inserter(l_resetMap[l_id].second), ResetAndMaskTransformer<RESETOPERATOR_MASK>( i_scanFactory, - this->GetChipHandle(), - l_chip->cv_registers[i].cv_scomLen) + l_chip->cv_registers[i].cv_scomLen, + l_type ) ); //This flag signifies that a mapping IS or ISN'T created between a - // uint32_t mapping and a vector of SCAN_COMM_REGISTER_CLASS pointers. + //uint32_t mapping and a vector of SCAN_COMM_REGISTER_CLASS pointers. //If there is no mapping outside of the for loop then it is because - // there is a capture type or requirement without a group statement in the rule file. + //there is a capture type or requirement without a group statement in + //the rule file. bool l_group_is_created = false; // Copy into capture groups. std::vector<Prdr::Register::CaptureInfoStruct>::const_iterator @@ -219,9 +221,10 @@ void RuleChip::loadRuleFile(ScanFacility & i_scanFactory, l_group_is_created = true; //@jl06 Added this to indicate group was created. } // @jl04 a Start. - // This else if was added for a new capture "type" for registers primary/secondary. - // Cannot put the "type" in with the G group otherwise it will show up as a - // i_group of 2 which is not called. + // This else if was added for a new capture "type" for registers + // primary/secondary. + // Cannot put the "type" in with the G group otherwise it will show + // up as a i_group of 2 which is not called. else if('T' == (*j).op) { //@jl06. d Deleted temporary declaration of CaptureType in @@ -335,6 +338,9 @@ RuleChip::~RuleChip() int32_t RuleChip::Analyze(STEP_CODE_DATA_STRUCT & i_serviceData, ATTENTION_TYPE i_attnType) { + //this pointer is retained in stack just for the scope of this function + PRDF_DEFINE_CHIP_SCOPE( this ); + ServiceDataCollector & i_sdc = *(i_serviceData.service_data); ErrorSignature & l_errSig = *(i_sdc.GetErrorSignature()); CaptureData & capture = i_serviceData.service_data->GetCaptureData(); // @jl04 a Add this for Drop call. @@ -450,6 +456,8 @@ int32_t RuleChip::Analyze(STEP_CODE_DATA_STRUCT & i_serviceData, int32_t RuleChip::CaptureErrorData(CaptureData & i_cap, int i_group) { using namespace TARGETING; + //this pointer is retained in stack just for the scope of this function + PRDF_DEFINE_CHIP_SCOPE( this ); std::vector<SCAN_COMM_REGISTER_CLASS *>::const_iterator l_hwCaptureEnd = cv_hwCaptureGroups[i_group].end(); @@ -909,6 +917,9 @@ void RuleChip::createGroup(Group * i_group, ExtensibleChipFunction * RuleChip::getExtensibleFunction(const char * i_func, bool i_expectNull) { + //this pointer is retained in stack just for the scope of this function + PRDF_DEFINE_CHIP_SCOPE( this ); + ExtensibleFunctionType * plugin = getPluginGlobalMap().getPlugins(cv_fileName)[i_func]; if (NULL == plugin) @@ -954,6 +965,8 @@ ExtensibleChipFunction * SCAN_COMM_REGISTER_CLASS * RuleChip::getRegister(const char * i_reg, bool i_expectNull) { + //this pointer is retained in stack just for the scope of this function + PRDF_DEFINE_CHIP_SCOPE( this ); uint16_t hashId = Util::hashString( i_reg ); SCAN_COMM_REGISTER_CLASS * l_register = cv_hwRegs[hashId]; @@ -994,6 +1007,23 @@ SCAN_COMM_REGISTER_CLASS * RuleChip::getRegister(const char * i_reg, } } + else + { /* l_register obtained from cv_hwRegs is a ScomRegister which does not + have rule chip info built in.Analyze leg of code uses this register. + Inorder to use this register for scom, target info is obtained from + service data collector.This register does not suit us for read and + write operation in plugin function.It is because in plugin function + register read should not be concerend with finding the associated + rule chip or target.Inorder to address this situation,we create a + wrapper register.This register has rule chip info in addition to all + the data of scomRegister.This object is created through factory and + and destroyed at the end of analysis. + */ + SCAN_COMM_REGISTER_CLASS * l_pReg = l_register; + ScanFacility & l_scanFac = ScanFacility::Access(); + l_register = & l_scanFac.GetPluginRegister(*l_pReg,*this); + + } return l_register; } diff --git a/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.H b/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.H index e477d9ec5..b7dd194f3 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.H +++ b/src/usr/diag/prdf/common/framework/rule/prdfRuleChip.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ @@ -60,6 +60,7 @@ class ErrorRegisterType; class Resolution; class Group; + typedef std::pair<ResetAndMaskErrorRegister::ResetRegisterVector, ResetAndMaskErrorRegister::ResetRegisterVector> ResetAndMaskPair; @@ -128,6 +129,14 @@ class RuleChip : public ExtensibleChip }; public: + + /*Note: + At the beginning of all the public function of this class,'this' pointer + should be pushed to stack maintained in service data collector.Also, at + the end of same function,it should be popped.It is accomplished by just + instantiating ChipScopeLock at the beginning of the function.This is + encapsulated by PRDF_LOCK_CHIP_SCOPE */ + // TODO : add parameter for parent domains, connected chip classes. RuleChip(const char * i_fileName, TARGETING::TargetHandle_t i_pTargetHandle, @@ -146,11 +155,19 @@ class RuleChip : public ExtensibleChip int32_t Analyze(STEP_CODE_DATA_STRUCT &, ATTENTION_TYPE); int32_t CaptureErrorData(CaptureData &, int i_group = 1); + /*Note + functions like MaskError(),getDataBundle(),getSignatureOffset() + just return a constant or a member variable. These function don't need + to call any other functions of RuleChip.Hence,despite the fact that + these functions are public,we are not using macro PRDF_LOCK_CHIP_SCOPE + in these function. + */ int32_t MaskError(uint32_t i) { return SUCCESS; }; ExtensibleChipFunction * getExtensibleFunction(const char *, bool = false); SCAN_COMM_REGISTER_CLASS * getRegister(const char *, bool = false); + DataBundle *& getDataBundle() { return cv_dataBundle; }; uint32_t getSignatureOffset() const { return iv_sigOff; }; diff --git a/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.C b/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.C index 2ffb46fa9..361742c29 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.C +++ b/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2008,2012 */ +/* COPYRIGHT International Business Machines Corp. 2008,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.H b/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.H index 5c2158bf7..0d15f25df 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.H +++ b/src/usr/diag/prdf/common/framework/rule/prdfRuleFiles.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrChip.H b/src/usr/diag/prdf/common/framework/rule/prdrChip.H index 7855bba47..9cb44ad1d 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrChip.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrChip.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCommon.H b/src/usr/diag/prdf/common/framework/rule/prdrCommon.H index 70743f770..c96ecc24f 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCommon.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrCommon.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2005,2012 */ +/* COPYRIGHT International Business Machines Corp. 2005,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCompile.C b/src/usr/diag/prdf/common/framework/rule/prdrCompile.C index ff6fdf0eb..4dcb85c74 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCompile.C +++ b/src/usr/diag/prdf/common/framework/rule/prdrCompile.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex b/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex index dccb64828..383d5f43c 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex +++ b/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCompile.y b/src/usr/diag/prdf/common/framework/rule/prdrCompile.y index 65bbf88ea..5c035c653 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCompile.y +++ b/src/usr/diag/prdf/common/framework/rule/prdrCompile.y @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrExpr.H b/src/usr/diag/prdf/common/framework/rule/prdrExpr.H index d3d12a738..b221dda4f 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrExpr.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrExpr.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrGroup.H b/src/usr/diag/prdf/common/framework/rule/prdrGroup.H index f7450426a..0a14be163 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrGroup.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrGroup.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.H b/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.H index de5a28d75..de00eb962 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.C b/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.C index a7045b6dd..6d29bdf4e 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.C +++ b/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2006,2012 */ +/* COPYRIGHT International Business Machines Corp. 2006,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.H b/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.H index e3ea98525..83dc6d7cc 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrLoadChipCache.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2006,2012 */ +/* COPYRIGHT International Business Machines Corp. 2006,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrRegister.H b/src/usr/diag/prdf/common/framework/rule/prdrRegister.H index 3e00a01f5..a228442c3 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrRegister.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrRegister.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrSignatures.H b/src/usr/diag/prdf/common/framework/rule/prdrSignatures.H index eb5223005..6b9c0bd12 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrSignatures.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrSignatures.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2007,2012 */ +/* COPYRIGHT International Business Machines Corp. 2007,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrToken.H b/src/usr/diag/prdf/common/framework/rule/prdrToken.H index 4c1cffb01..03aa93b9c 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrToken.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrToken.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/rule/prdrpp b/src/usr/diag/prdf/common/framework/rule/prdrpp index de808f420..058e5f4b5 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrpp +++ b/src/usr/diag/prdf/common/framework/rule/prdrpp @@ -6,7 +6,7 @@ # # IBM CONFIDENTIAL # -# COPYRIGHT International Business Machines Corp. 2004,2012 +# COPYRIGHT International Business Machines Corp. 2004,2013 # # p1 # diff --git a/src/usr/diag/prdf/common/framework/rule/tables.mk b/src/usr/diag/prdf/common/framework/rule/tables.mk index 6c0ee1823..738631c72 100755 --- a/src/usr/diag/prdf/common/framework/rule/tables.mk +++ b/src/usr/diag/prdf/common/framework/rule/tables.mk @@ -5,7 +5,7 @@ # # IBM CONFIDENTIAL # -# COPYRIGHT International Business Machines Corp. 2005,2012 +# COPYRIGHT International Business Machines Corp. 2005,2013 # # p1 # diff --git a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h index 1cac60abf..ae3e230ae 100755 --- a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h +++ b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1998,2012 */ +/* COPYRIGHT International Business Machines Corp. 1998,2013 */ /* */ /* p1 */ /* */ @@ -83,19 +83,21 @@ #endif #endif +#include <list> +#include <prdfExtensibleChip.H> namespace PRDF { struct SdcCallout { - PRDF::PRDcallout callout; - PRDF::PRDpriority priority; + PRDcallout callout; + PRDpriority priority; //bool gard; SdcCallout() : callout(NULL), priority(MRU_LOW) {} SdcCallout(PRDcallout & mru, PRDpriority p) : callout(mru), priority(p) {} - SdcCallout(TARGETING::TargetHandle_t i_pcalloutHandle , PRDF::PRDpriority p) + SdcCallout(TARGETING::TargetHandle_t i_pcalloutHandle , PRDpriority p) : callout(i_pcalloutHandle), priority(p) {} }; @@ -939,9 +941,46 @@ private: // Data ATTENTION_TYPE causeAttentionType; // MCK,REC,SPCL TARGETING::TargetHandle_t ivpThermalChipHandle; - + //RTC: 60553 Eventually we shall use hostboot implementation of stack istead + //of std:list + static std::list< ExtensibleChip *> cv_ruleChipStack ; public: + /** + * @brief get the rulechip under analysis + * @param None + * @return RuleChip currently under analysis + */ + static ExtensibleChip* getChipAnalyzed() + { + return cv_ruleChipStack.back( ); + } + /** + * @brief pushes the rulechip under analysis in a list + * @param i_analyzingChip RuleChip under analysis + * @return None + */ + static void pushChipAnalyzed( ExtensibleChip* i_analyzingChip ) + { + cv_ruleChipStack.push_back( i_analyzingChip ); + } + /** + * @brief pops the last rulechip under analysis from list + * @param i_analyzingChip RuleChip under analysis + * @return None + */ + static void popChipAnalyzed( ) + { + cv_ruleChipStack.pop_back(); + } + /** + * @brief Clears the list containing pointers to all the RuleChip under + * analysis + */ + static void clearChipStack( ) + { + cv_ruleChipStack.clear(); + } // -------------------------------------- // FSP only functions begin // -------------------------------------- @@ -1036,6 +1075,43 @@ public: }; + +/** + * @brief limits the scope of RuleChip pointer in stack to a given scope. + * + * This class basically binds the scope of a given RuleChip pointer in SDC chip + * stack to certain scope. When an instance of this class is created, RuleChip + * is pushed to stack.In destructor,same gets popped.As a result, the scpoe of + * this RuleChip pointer gets tied to scope of ChipScopeLock instance. + * PRDF_DEFINE_CHIP_SCOPE encapsulates instantiation of ScopeChipLock. + + */ + +#define PRDF_DEFINE_CHIP_SCOPE( ARG ) \ + ChipScopeLock csl( ARG ) +class ChipScopeLock +{ + public: + /** + * @brief Constructor + * @param i_pChipAnalyzed Chip for which scope is to be locked + */ + ChipScopeLock( ExtensibleChip * i_pChipAnalyzed ) + { + ServiceDataCollector::pushChipAnalyzed( i_pChipAnalyzed ); + } + /** + * @brief Destructor + */ + ~ChipScopeLock() + { + ServiceDataCollector::popChipAnalyzed( ); + } +}; + + + + } // end namespace PRDF #include "iipServiceDataCollector.inl" diff --git a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl index 3d97ba692..2cd10def4 100755 --- a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl +++ b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1998,2012 */ +/* COPYRIGHT International Business Machines Corp. 1998,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/iipsdbug.h b/src/usr/diag/prdf/common/framework/service/iipsdbug.h index 11e515623..cd9e367f9 100755 --- a/src/usr/diag/prdf/common/framework/service/iipsdbug.h +++ b/src/usr/diag/prdf/common/framework/service/iipsdbug.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/iipstep.h b/src/usr/diag/prdf/common/framework/service/iipstep.h index 7e296e9b1..0077a29b6 100755 --- a/src/usr/diag/prdf/common/framework/service/iipstep.h +++ b/src/usr/diag/prdf/common/framework/service/iipstep.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1996,2012 */ +/* COPYRIGHT International Business Machines Corp. 1996,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdfPfa5Data.h b/src/usr/diag/prdf/common/framework/service/prdfPfa5Data.h index 9184ae80c..ea2ec265c 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfPfa5Data.h +++ b/src/usr/diag/prdf/common/framework/service/prdfPfa5Data.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2003,2012 */ +/* COPYRIGHT International Business Machines Corp. 2003,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C index 5a14a5cc8..b6d6ad84f 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C +++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H index 9dde6419f..ee650f7e2 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H +++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C index ad7e542d6..3491b2a27 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C +++ b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2004,2012 */ +/* COPYRIGHT International Business Machines Corp. 2004,2013 */ /* */ /* p1 */ /* */ @@ -46,7 +46,6 @@ #include <prdfTrace.H> #undef prdfServiceDataCollector_C -using namespace PRDF; //------------------------------------------------------------------------------ // User Types, Constants, macros, prototypes, globals @@ -55,11 +54,14 @@ using namespace PRDF; //------------------------------------------------------------------------------ // Member Function Specifications //------------------------------------------------------------------------------ -#ifndef __HOSTBOOT_MODULE namespace PRDF { + std::list<ExtensibleChip*> ServiceDataCollector::cv_ruleChipStack; + +#ifndef __HOSTBOOT_MODULE + inline void buffer_append(uint8_t *&ptr, uint32_t value) { uint32_t l_tmp32 = htonl(value); @@ -125,7 +127,7 @@ inline TARGETING::TargetHandle_t buffer_getTarget( const uint8_t *&ptr ) return l_tempChipHandle; } -#endif +#endif //ifndef__HOSTBOOT_MODULE //------------------------------------------------------------------------------ @@ -385,7 +387,8 @@ void ServiceDataCollector::AddChangeForHcdb(TARGETING::TargetHandle_t i_pTargetH } } +#endif // ifndef __HOSTBOOT_MODULE + } // end namespace PRDF -#endif diff --git a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C index afbbc9b28..9ce9039b1 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C +++ b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H index 7c2f0ee0d..1af230afe 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H +++ b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdfWorkarounds.H b/src/usr/diag/prdf/common/framework/service/prdfWorkarounds.H index bb4012cae..eca30688c 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfWorkarounds.H +++ b/src/usr/diag/prdf/common/framework/service/prdfWorkarounds.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2007,2012 */ +/* COPYRIGHT International Business Machines Corp. 2007,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C b/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C index dd072b672..e680e25ba 100755 --- a/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C +++ b/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ diff --git a/src/usr/diag/prdf/common/framework/service/prdf_ras_services.H b/src/usr/diag/prdf/common/framework/service/prdf_ras_services.H index fb0d071b2..7b88c74fe 100755 --- a/src/usr/diag/prdf/common/framework/service/prdf_ras_services.H +++ b/src/usr/diag/prdf/common/framework/service/prdf_ras_services.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2002,2012 */ +/* COPYRIGHT International Business Machines Corp. 2002,2013 */ /* */ /* p1 */ /* */ @@ -260,7 +260,8 @@ public: @post Error log(s) build and logged, SRC built, etc. @exception None. */ - virtual errlHndl_t GenerateSrcPfa(ATTENTION_TYPE attn_type, ServiceDataCollector & sdc); //mp01 c + virtual errlHndl_t GenerateSrcPfa( ATTENTION_TYPE attn_type, + ServiceDataCollector & sdc ); #ifndef __HOSTBOOT_MODULE /** @@ -281,7 +282,6 @@ public: private: // Data - // actual or sim err data service ErrDataService * iv_ErrDataService; diff --git a/src/usr/diag/prdf/common/framework/service/xspprdService.h b/src/usr/diag/prdf/common/framework/service/xspprdService.h index 30ab4db9f..bb734ca59 100755 --- a/src/usr/diag/prdf/common/framework/service/xspprdService.h +++ b/src/usr/diag/prdf/common/framework/service/xspprdService.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 1999,2012 */ +/* COPYRIGHT International Business Machines Corp. 1999,2013 */ /* */ /* p1 */ /* */ @@ -56,11 +56,8 @@ #define IIPSERVICEGENERATOR_H -#if !defined(IIPSDBUG_H) - #include <iipsdbug.h> // for ATTENTION_TYPE -#endif - -#include <errlentry.H> //for errlHndl_t //mp01 a +#include <iipsdbug.h> // for ATTENTION_TYPE +#include <errlentry.H> //for errlHndl_t @@ -128,7 +125,6 @@ public: /** * @brief set the err data service to be used - * * @param[in] i_errDataService new err data service */ virtual void setErrDataService(ErrDataService & i_errDataService)=0; diff --git a/src/usr/diag/prdf/common/framework/service/xspprdsdbug.C b/src/usr/diag/prdf/common/framework/service/xspprdsdbug.C index f51d802b1..6679e4562 100755 --- a/src/usr/diag/prdf/common/framework/service/xspprdsdbug.C +++ b/src/usr/diag/prdf/common/framework/service/xspprdsdbug.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2000,2012 */ +/* COPYRIGHT International Business Machines Corp. 2000,2013 */ /* */ /* p1 */ /* */ |