summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf')
-rw-r--r--src/usr/hwpf/fapi/fapiErrorInfo.C106
-rw-r--r--src/usr/hwpf/fapi/fapiReturnCode.C46
-rw-r--r--src/usr/hwpf/plat/fapiPlatHwpInvoker.C87
-rw-r--r--src/usr/hwpf/test/fapiRcTest.C169
4 files changed, 195 insertions, 213 deletions
diff --git a/src/usr/hwpf/fapi/fapiErrorInfo.C b/src/usr/hwpf/fapi/fapiErrorInfo.C
index 7bc25a058..f1d5d81a0 100644
--- a/src/usr/hwpf/fapi/fapiErrorInfo.C
+++ b/src/usr/hwpf/fapi/fapiErrorInfo.C
@@ -1,25 +1,26 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/usr/hwpf/fapi/fapiErrorInfo.C $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// 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 other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/usr/hwpf/fapi/fapiErrorInfo.C $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2011-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 other-
+ * wise divested of its trade secrets, irrespective of what has
+ * been deposited with the U.S. Copyright Office.
+ *
+ * Origin: 30
+ *
+ * IBM_PROLOG_END_TAG
+ */
/**
* @file fapiErrorInfo.C
*
@@ -35,6 +36,8 @@
* mjjones 09/22/2011 Major updates
* mjjones 03/16/2012 Add FfdcType. Remove copy
* ctor and assignment operator
+ * mjjones 08/14/2012 Merge Callout/Deconfig/Gard
+ * structures into one
*/
#include <fapiErrorInfo.H>
@@ -82,30 +85,11 @@ FfdcType ErrorInfoFfdc::getType() const
}
//******************************************************************************
-// ErrorInfoCallout Constructor
-//******************************************************************************
-ErrorInfoCallout::ErrorInfoCallout(const Target & i_target,
- const CalloutPriority i_priority)
-: iv_target(i_target),
- iv_priority(i_priority)
-{
-
-}
-
-//******************************************************************************
-// ErrorInfoDeconfig Constructor
+// ErrorInfoCDG Constructor
//******************************************************************************
-ErrorInfoDeconfig::ErrorInfoDeconfig(const Target & i_target)
-: iv_target(i_target)
-{
-
-}
-
-//******************************************************************************
-// ErrorInfoGard Constructor
-//******************************************************************************
-ErrorInfoGard::ErrorInfoGard(const Target & i_target)
-: iv_target(i_target)
+ErrorInfoCDG::ErrorInfoCDG(const Target & i_target)
+: iv_target(i_target), iv_callout(false), iv_calloutPriority(PRI_LOW),
+ iv_deconfigure(false), iv_gard(false)
{
}
@@ -122,26 +106,38 @@ ErrorInfo::~ErrorInfo()
(*l_itr) = NULL;
}
- for (ErrorInfo::ErrorInfoCalloutItr_t l_itr = iv_callouts.begin();
- l_itr != iv_callouts.end(); ++l_itr)
+ for (ErrorInfo::ErrorInfoCDGItr_t l_itr = iv_CDGs.begin();
+ l_itr != iv_CDGs.end(); ++l_itr)
{
delete (*l_itr);
(*l_itr) = NULL;
}
+}
- for (ErrorInfo::ErrorInfoDeconfigItr_t l_itr = iv_deconfigs.begin();
- l_itr != iv_deconfigs.end(); ++l_itr)
+//******************************************************************************
+// ErrorInfo getCreateErrorInfoCDG
+//******************************************************************************
+ErrorInfoCDG & ErrorInfo::getCreateErrorInfoCDG(const Target & i_target)
+{
+ ErrorInfoCDG * l_pInfo = NULL;
+
+ for (ErrorInfo::ErrorInfoCDGCItr_t l_itr = iv_CDGs.begin();
+ l_itr != iv_CDGs.end(); ++l_itr)
{
- delete (*l_itr);
- (*l_itr) = NULL;
+ if ((*l_itr)->iv_target == i_target)
+ {
+ l_pInfo = (*l_itr);
+ break;
+ }
}
- for (ErrorInfo::ErrorInfoGardItr_t l_itr = iv_gards.begin();
- l_itr != iv_gards.end(); ++l_itr)
+ if (l_pInfo == NULL)
{
- delete (*l_itr);
- (*l_itr) = NULL;
+ l_pInfo = new ErrorInfoCDG(i_target);
+ iv_CDGs.push_back(l_pInfo);
}
+
+ return *l_pInfo;
}
}
diff --git a/src/usr/hwpf/fapi/fapiReturnCode.C b/src/usr/hwpf/fapi/fapiReturnCode.C
index 8a141f519..08eca6c82 100644
--- a/src/usr/hwpf/fapi/fapiReturnCode.C
+++ b/src/usr/hwpf/fapi/fapiReturnCode.C
@@ -46,6 +46,7 @@
* mjjones 03/16/2012 Allow different PLAT errors
* mjjones 05/02/2012 Only trace setEcmdError on err
* mjjones 07/11/2012 Remove a trace
+ * mjjones 08/14/2012 Use new ErrorInfo structure
*/
#include <fapiReturnCode.H>
@@ -197,8 +198,7 @@ void ReturnCode::setPlatError(void * i_pData,
if (i_pData)
{
- ensureDataRefExists();
- iv_pDataRef->setPlatData(i_pData);
+ getCreateReturnCodeDataRef().setPlatData(i_pData);
}
}
@@ -336,9 +336,9 @@ void ReturnCode::addEIFfdc(const void * i_pFfdc,
const FfdcType i_type)
{
// Create a ErrorInfoFfdc object and add it to the Error Information
- ensureDataRefExists();
ErrorInfoFfdc * l_pFfdc = new ErrorInfoFfdc(i_pFfdc, i_size, i_type);
- iv_pDataRef->getCreateErrorInfo().iv_ffdcs.push_back(l_pFfdc);
+ getCreateReturnCodeDataRef().getCreateErrorInfo().
+ iv_ffdcs.push_back(l_pFfdc);
}
@@ -377,14 +377,16 @@ ReturnCode::returnCodeCreator ReturnCode::getCreator() const
}
//******************************************************************************
-// ensureDataRefExists function
+// getCreateReturnCodeDataRef function
//******************************************************************************
-void ReturnCode::ensureDataRefExists()
+ReturnCodeDataRef & ReturnCode::getCreateReturnCodeDataRef()
{
- if (!iv_pDataRef)
+ if (iv_pDataRef == NULL)
{
iv_pDataRef = new ReturnCodeDataRef();
}
+
+ return *iv_pDataRef;
}
//******************************************************************************
@@ -411,10 +413,16 @@ void ReturnCode::forgetData()
void ReturnCode::addEICallout(const Target & i_target,
const CalloutPriority i_priority)
{
- // Create a ErrorInfoCallout object and add it to the Error Information
- ensureDataRefExists();
- ErrorInfoCallout * l_pCallout = new ErrorInfoCallout(i_target, i_priority);
- iv_pDataRef->getCreateErrorInfo().iv_callouts.push_back(l_pCallout);
+ // Get/Create a ErrorInfoCDG object for the target and update the callout
+ ErrorInfoCDG & l_errorInfoCdg = getCreateReturnCodeDataRef().
+ getCreateErrorInfo().getCreateErrorInfoCDG(i_target);
+ l_errorInfoCdg.iv_callout = true;
+
+ // If the same target is called out multiple times, use the highest priority
+ if (i_priority > l_errorInfoCdg.iv_calloutPriority)
+ {
+ l_errorInfoCdg.iv_calloutPriority = i_priority;
+ }
}
//******************************************************************************
@@ -422,10 +430,10 @@ void ReturnCode::addEICallout(const Target & i_target,
//******************************************************************************
void ReturnCode::addEIDeconfigure(const Target & i_target)
{
- // Create a ErrorInfoDeconfig object and add it to the Error Information
- ensureDataRefExists();
- ErrorInfoDeconfig * l_pDeconfig = new ErrorInfoDeconfig(i_target);
- iv_pDataRef->getCreateErrorInfo().iv_deconfigs.push_back(l_pDeconfig);
+ // Get/Create a ErrorInfoCDG object for the target and update the deconfig
+ ErrorInfoCDG & l_errorInfoCdg = getCreateReturnCodeDataRef().
+ getCreateErrorInfo().getCreateErrorInfoCDG(i_target);
+ l_errorInfoCdg.iv_deconfigure = true;
}
//******************************************************************************
@@ -433,10 +441,10 @@ void ReturnCode::addEIDeconfigure(const Target & i_target)
//******************************************************************************
void ReturnCode::addEIGard(const Target & i_target)
{
- // Create a ErrorInfoGard object and add it to the Error Information
- ensureDataRefExists();
- ErrorInfoGard * l_pGard = new ErrorInfoGard(i_target);
- iv_pDataRef->getCreateErrorInfo().iv_gards.push_back(l_pGard);
+ // Get/Create a ErrorInfoCDG object for the target and update the GARD
+ ErrorInfoCDG & l_errorInfoCdg = getCreateReturnCodeDataRef().
+ getCreateErrorInfo().getCreateErrorInfoCDG(i_target);
+ l_errorInfoCdg.iv_gard = true;
}
}
diff --git a/src/usr/hwpf/plat/fapiPlatHwpInvoker.C b/src/usr/hwpf/plat/fapiPlatHwpInvoker.C
index c35a90eec..b2d716797 100644
--- a/src/usr/hwpf/plat/fapiPlatHwpInvoker.C
+++ b/src/usr/hwpf/plat/fapiPlatHwpInvoker.C
@@ -74,59 +74,48 @@ void processEIFfdcs(const ErrorInfo & i_errInfo,
}
//******************************************************************************
-// processEICallouts
-// Processes any Callout requests in the ReturnCode Error Information
+// processEICDGs
+// Processes any Callout/Deconfigure/GARD requests in the ReturnCode Error
+// Information
//******************************************************************************
-void processEICallouts(const ErrorInfo & i_errInfo,
- errlHndl_t io_pError)
+void processEICDGs(const ErrorInfo & i_errInfo,
+ errlHndl_t io_pError)
{
- // Iterate through the callout requestss, adding each to the error log
- for (ErrorInfo::ErrorInfoCalloutCItr_t l_itr =
- i_errInfo.iv_callouts.begin();
- l_itr != i_errInfo.iv_callouts.end(); ++l_itr)
+ // TODO: RTC issue 47147
+ // Need to figure out how connections are called out. Assuming this is done
+ // by calling out Target pairs, then the HWAS::SRCI_PRIORITY will need to
+ // be a 'grouping' priority (MEDA/B/C)
+
+ // Iterate through the CGD requests, adding each to the error log
+ for (ErrorInfo::ErrorInfoCDGCItr_t l_itr = i_errInfo.iv_CDGs.begin();
+ l_itr != i_errInfo.iv_CDGs.end(); ++l_itr)
{
- // TODO Add callout to error log
- // RTC 45800
- FAPI_ERR("processEICallouts: Adding target callout to errlog (TODO). Type: 0x%x. Pri: 0x%x",
- (*l_itr)->iv_target.getType(), (*l_itr)->iv_priority);
- }
-}
+ TARGETING::Target * l_pTarget =
+ reinterpret_cast<TARGETING::Target*>((*l_itr)->iv_target.get());
-//******************************************************************************
-// processEIDeconfigs
-// Processes any Deconfig requests in the ReturnCode Error Information
-//******************************************************************************
-void processEIDeconfigs(const ErrorInfo & i_errInfo,
- errlHndl_t io_pError)
-{
- // Iterate through the deconfigure requests, deconfiguring each target
- for (ErrorInfo::ErrorInfoDeconfigCItr_t l_itr =
- i_errInfo.iv_deconfigs.begin();
- l_itr != i_errInfo.iv_deconfigs.end(); ++l_itr)
- {
- // TODO Deconfigure target
- // RTC 45800
- FAPI_ERR("processEIDeconfigs: Deconfiguring target (TODO). Type: 0x%x",
- (*l_itr)->iv_target.getType());
- }
-}
+ HWAS::callOutPriority l_priority = HWAS::SRCI_PRIORITY_HIGH;
+ if ((*l_itr)->iv_calloutPriority == fapi::PRI_MEDIUM)
+ {
+ l_priority = HWAS::SRCI_PRIORITY_MED;
+ }
+ else if ((*l_itr)->iv_calloutPriority == fapi::PRI_LOW)
+ {
+ l_priority = HWAS::SRCI_PRIORITY_LOW;
+ }
+ HWAS::DeconfigEnum l_deconfig = HWAS::NO_DECONFIG;
+ if ((*l_itr)->iv_deconfigure)
+ {
+ l_deconfig = HWAS::DELAYED_DECONFIG;
+ }
-//******************************************************************************
-// processEIGards
-// Processes any Gard requests in the ReturnCode Error Information
-//******************************************************************************
-void processEIGards(const ErrorInfo & i_errInfo,
- errlHndl_t io_pError)
-{
- // Iterate through gard requests, creating a GARD record for each target
- for (ErrorInfo::ErrorInfoGardCItr_t l_itr = i_errInfo.iv_gards.begin();
- l_itr != i_errInfo.iv_gards.end(); ++l_itr)
- {
- // TODO Create GARD record for target
- // RTC 45800
- FAPI_ERR("processEIGards: Garding target (TODO). Type: 0x%x",
- (*l_itr)->iv_target.getType());
+ HWAS::GARD_ErrorType l_gard = HWAS::GARD_NULL;
+ if ((*l_itr)->iv_gard)
+ {
+ l_gard = HWAS::GARD_Unrecoverable;
+ }
+
+ io_pError->addHwCallout(l_pTarget, l_priority, l_deconfig, l_gard);
}
}
@@ -179,9 +168,7 @@ errlHndl_t fapiRcToErrl(ReturnCode & io_rc)
{
// There is error information associated with the ReturnCode
processEIFfdcs(*l_pErrorInfo, l_pError);
- processEICallouts(*l_pErrorInfo, l_pError);
- processEIDeconfigs(*l_pErrorInfo, l_pError);
- processEIGards(*l_pErrorInfo, l_pError);
+ processEICDGs(*l_pErrorInfo, l_pError);
}
else
{
diff --git a/src/usr/hwpf/test/fapiRcTest.C b/src/usr/hwpf/test/fapiRcTest.C
index c9c1281d5..182520caa 100644
--- a/src/usr/hwpf/test/fapiRcTest.C
+++ b/src/usr/hwpf/test/fapiRcTest.C
@@ -1,25 +1,26 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/usr/hwpf/test/fapiRcTest.C $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// 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 other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/usr/hwpf/test/fapiRcTest.C $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2011-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 other-
+ * wise divested of its trade secrets, irrespective of what has
+ * been deposited with the U.S. Copyright Office.
+ *
+ * Origin: 30
+ *
+ * IBM_PROLOG_END_TAG
+ */
/**
* @file fapiTargetTest.C
*
@@ -34,6 +35,7 @@
* mjjones 07/26/2011 Added more tests
* mjjones 09/23/2011 Updated test for ErrorInfo
* mjjones 01/13/2012 Use new ReturnCode interfaces
+ * mjjones 08/14/2012 Use new ErrorInfo structures
*/
#include <fapi.H>
@@ -662,57 +664,49 @@ uint32_t rcTest12()
break;
}
- // Check the callout error information
- if (l_pErrInfo->iv_callouts.size() != 1)
+ // Check the callout/deconfigure/gard error information
+ if (l_pErrInfo->iv_CDGs.size() != 1)
{
- FAPI_ERR("rcTest12. %d callouts", l_pErrInfo->iv_ffdcs.size());
+ FAPI_ERR("rcTest12. %d CDGs", l_pErrInfo->iv_CDGs.size());
l_result = 5;
break;
}
- if (l_pErrInfo->iv_callouts[0]->iv_target != l_target)
+ if (l_pErrInfo->iv_CDGs[0]->iv_target != l_target)
{
- FAPI_ERR("rcTest12. callout target mismatch");
+ FAPI_ERR("rcTest12. CDG target mismatch");
l_result = 6;
break;
}
- if (l_pErrInfo->iv_callouts[0]->iv_priority != PRI_MEDIUM)
+ if (l_pErrInfo->iv_CDGs[0]->iv_callout != true)
{
- FAPI_ERR("rcTest12. callout priority mismatch");
+ FAPI_ERR("rcTest12. callout not set");
l_result = 7;
break;
}
- // Check the deconfig error information
- if (l_pErrInfo->iv_deconfigs.size() != 1)
+ if (l_pErrInfo->iv_CDGs[0]->iv_calloutPriority != PRI_MEDIUM)
{
- FAPI_ERR("rcTest12. %d deconfigs", l_pErrInfo->iv_deconfigs.size());
+ FAPI_ERR("rcTest12. callout priority mismatch");
l_result = 8;
break;
}
- if (l_pErrInfo->iv_deconfigs[0]->iv_target != l_target)
+ if (l_pErrInfo->iv_CDGs[0]->iv_deconfigure != true)
{
- FAPI_ERR("rcTest12. deconfig target mismatch");
+ FAPI_ERR("rcTest12. deconfigure not set");
l_result = 9;
break;
}
- // Check the GARD error information
- if (l_pErrInfo->iv_gards.size() != 1)
+ if (l_pErrInfo->iv_CDGs[0]->iv_gard != true)
{
- FAPI_ERR("rcTest12. %d gards", l_pErrInfo->iv_gards.size());
+ FAPI_ERR("rcTest12. GARD not set");
l_result = 10;
break;
}
- if (l_pErrInfo->iv_gards[0]->iv_target != l_target)
- {
- FAPI_ERR("rcTest12. gard target mismatch");
- l_result = 11;
- break;
- }
FAPI_INF("rcTest12. Success!");
}
@@ -767,20 +761,27 @@ uint32_t rcTest13()
break;
}
- if (l_pErrInfo->iv_gards.size() != 1)
+ if (l_pErrInfo->iv_CDGs.size() != 1)
{
- FAPI_ERR("rcTest13. %d gards", l_pErrInfo->iv_gards.size());
+ FAPI_ERR("rcTest13. %d CDGs", l_pErrInfo->iv_CDGs.size());
l_result = 3;
break;
}
- if (l_pErrInfo->iv_gards[0]->iv_target != l_target)
+ if (l_pErrInfo->iv_CDGs[0]->iv_target != l_target)
{
- FAPI_ERR("rcTest13. gard target mismatch");
+ FAPI_ERR("rcTest13. CDG target mismatch");
l_result = 4;
break;
}
+ if (l_pErrInfo->iv_CDGs[0]->iv_gard != true)
+ {
+ FAPI_ERR("rcTest13. GARD not set");
+ l_result = 5;
+ break;
+ }
+
// Ensure that getErrorInfo from l_rc2 returns the same pointer
const ErrorInfo * l_pErrInfo2 = l_rc2.getErrorInfo();
@@ -845,20 +846,27 @@ uint32_t rcTest14()
break;
}
- if (l_pErrInfo->iv_gards.size() != 1)
+ if (l_pErrInfo->iv_CDGs.size() != 1)
{
- FAPI_ERR("rcTest14. %d gards", l_pErrInfo->iv_gards.size());
+ FAPI_ERR("rcTest14. %d CDGs", l_pErrInfo->iv_CDGs.size());
l_result = 3;
break;
}
- if (l_pErrInfo->iv_gards[0]->iv_target != l_target)
+ if (l_pErrInfo->iv_CDGs[0]->iv_target != l_target)
{
- FAPI_ERR("rcTest14. gard target mismatch");
+ FAPI_ERR("rcTest14. CDG target mismatch");
l_result = 4;
break;
}
+ if (l_pErrInfo->iv_CDGs[0]->iv_gard != true)
+ {
+ FAPI_ERR("rcTest14. GARD not set");
+ l_result = 5;
+ break;
+ }
+
// Ensure that getErrorInfo from l_rc2 returns the same pointer
const ErrorInfo * l_pErrInfo2 = l_rc2.getErrorInfo();
@@ -951,9 +959,8 @@ uint32_t rcTest16()
{fapi::ReturnCode::EI_TYPE_CALLOUT, 3, fapi::PRI_LOW},
{fapi::ReturnCode::EI_TYPE_DECONF, 2},
{fapi::ReturnCode::EI_TYPE_DECONF, 3},
- {fapi::ReturnCode::EI_TYPE_GARD, 2},
- {fapi::ReturnCode::EI_TYPE_GARD, 3}};
- l_rc.addErrorInfo(l_objects, l_entries, 8);
+ {fapi::ReturnCode::EI_TYPE_GARD, 2}};
+ l_rc.addErrorInfo(l_objects, l_entries, 7);
do
{
@@ -1013,86 +1020,70 @@ uint32_t rcTest16()
break;
}
- // Check the callout error information
- if (l_pErrInfo->iv_callouts.size() != 2)
+ // Check the callout/deconfigure/GARD error information
+ if (l_pErrInfo->iv_CDGs.size() != 2)
{
- FAPI_ERR("rcTest16. %d callouts", l_pErrInfo->iv_ffdcs.size());
+ FAPI_ERR("rcTest16. %d CDGs", l_pErrInfo->iv_CDGs.size());
l_result = 7;
break;
}
- if (l_pErrInfo->iv_callouts[0]->iv_target != l_target)
+ if (l_pErrInfo->iv_CDGs[0]->iv_target != l_target)
{
- FAPI_ERR("rcTest16. callout[0] target mismatch");
+ FAPI_ERR("rcTest16. CDG[0] target mismatch");
l_result = 8;
break;
}
- if (l_pErrInfo->iv_callouts[0]->iv_priority != PRI_HIGH)
+ if (l_pErrInfo->iv_CDGs[0]->iv_calloutPriority != PRI_HIGH)
{
- FAPI_ERR("rcTest16. callout[0] priority mismatch");
+ FAPI_ERR("rcTest16. CDG[0] callout priority mismatch");
l_result = 9;
break;
}
- if (l_pErrInfo->iv_callouts[1]->iv_target != l_target2)
+ if (l_pErrInfo->iv_CDGs[0]->iv_deconfigure == false)
{
- FAPI_ERR("rcTest16. callout[1] target mismatch");
+ FAPI_ERR("rcTest16. CDG[0] deconfigure not set");
l_result = 10;
break;
}
- if (l_pErrInfo->iv_callouts[1]->iv_priority != PRI_LOW)
+ if (l_pErrInfo->iv_CDGs[0]->iv_gard == false)
{
- FAPI_ERR("rcTest16. callout[1] priority mismatch");
+ FAPI_ERR("rcTest16. CDG[0] gard not set");
l_result = 11;
break;
}
- // Check the deconfig error information
- if (l_pErrInfo->iv_deconfigs.size() != 2)
+ if (l_pErrInfo->iv_CDGs[1]->iv_target != l_target2)
{
- FAPI_ERR("rcTest16. %d deconfigs", l_pErrInfo->iv_deconfigs.size());
+ FAPI_ERR("rcTest16. CDG[1] target mismatch");
l_result = 12;
break;
}
- if (l_pErrInfo->iv_deconfigs[0]->iv_target != l_target)
+ if (l_pErrInfo->iv_CDGs[1]->iv_calloutPriority != PRI_LOW)
{
- FAPI_ERR("rcTest16. deconfig[0] target mismatch");
+ FAPI_ERR("rcTest16. CDG[1] callout priority mismatch");
l_result = 13;
break;
}
- if (l_pErrInfo->iv_deconfigs[1]->iv_target != l_target2)
+ if (l_pErrInfo->iv_CDGs[1]->iv_deconfigure == false)
{
- FAPI_ERR("rcTest16. deconfig[1] target mismatch");
- l_result = 13;
- break;
- }
-
- // Check the GARD error information
- if (l_pErrInfo->iv_gards.size() != 2)
- {
- FAPI_ERR("rcTest16. %d gards", l_pErrInfo->iv_gards.size());
+ FAPI_ERR("rcTest16. CDG[1] deconfigure not set");
l_result = 14;
break;
}
- if (l_pErrInfo->iv_gards[0]->iv_target != l_target)
+ if (l_pErrInfo->iv_CDGs[1]->iv_gard == true)
{
- FAPI_ERR("rcTest16. gard[0] target mismatch");
+ FAPI_ERR("rcTest16. CDG[1] gard set");
l_result = 15;
break;
}
- if (l_pErrInfo->iv_gards[1]->iv_target != l_target2)
- {
- FAPI_ERR("rcTest16. gard[1] target mismatch");
- l_result = 16;
- break;
- }
-
FAPI_INF("rcTest16. Success!");
}
while(0);
OpenPOWER on IntegriCloud