summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/usr/pore/fapiporeve/fapiPoreVe.C24
-rw-r--r--src/usr/pore/fapiporeve/fapiPoreVe_errors.xml119
2 files changed, 135 insertions, 8 deletions
diff --git a/src/usr/pore/fapiporeve/fapiPoreVe.C b/src/usr/pore/fapiporeve/fapiPoreVe.C
index 2cd36af83..376adca66 100644
--- a/src/usr/pore/fapiporeve/fapiPoreVe.C
+++ b/src/usr/pore/fapiporeve/fapiPoreVe.C
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -21,7 +21,7 @@
/* */
/* IBM_PROLOG_END_TAG */
// -*- mode: C++; c-file-style: "linux"; -*-
-// $Id: fapiPoreVe.C,v 1.33 2013/06/25 19:08:33 thi Exp $
+// $Id: fapiPoreVe.C,v 1.35 2014/03/31 15:21:37 thi Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/poreve/working/fapiporeve/fapiPoreVe.C,v $
//------------------------------------------------------------------------------
// *! (C) Copyright International Business Machines Corp. 2011
@@ -52,8 +52,6 @@
// Destroy PoreVe
//
-
-
//----------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------
@@ -91,6 +89,7 @@ fapi::ReturnCode fapiPoreVe(
bool haveMAINMEM = false;
bool haveSRAM = false;
bool havePIBMEM = false;
+ const fapi::Target & TARGET = i_target;
//----------------------------------------------------------------------
// Find the PORE type
@@ -134,6 +133,7 @@ fapi::ReturnCode fapiPoreVe(
// Parse the arguments
//----------------------------------------------------------------------
FapiPoreVeStateArg *stateArg = NULL;
+ bool p_state_allocated = false;
for( itr = io_sharedObjectArgs.begin();
(itr != io_sharedObjectArgs.end()) && rc.ok(); itr++ )
{
@@ -154,6 +154,7 @@ fapi::ReturnCode fapiPoreVe(
{
p_state = new PoreState();
stateArg->iv_data=p_state;
+ p_state_allocated = true;
char* state_rc;
int linenum = 0;
@@ -728,6 +729,7 @@ fapi::ReturnCode fapiPoreVe(
if( p_state == NULL )
{
p_state = new PoreState();
+ p_state_allocated = true;
}
me = poreve->iv_pore.extractState( *p_state );
@@ -814,8 +816,14 @@ fapi::ReturnCode fapiPoreVe(
stateArg->iv_data=p_state;
fclose( stateArg->iv_fd );
}
-
#endif
+
+ if (p_state_allocated)
+ {
+ delete p_state;
+ stateArg->iv_data=NULL;
+ }
+
if( me != ME_SUCCESS )
{
FAPI_ERR( "Model error extracting state. Errno(%i)\n", (int)me);
@@ -845,6 +853,12 @@ This section is automatically updated by CVS when you check in this file.
Be sure to create CVS comments when you commit so that they are included here.
$Log: fapiPoreVe.C,v $
+Revision 1.35 2014/03/31 15:21:37 thi
+Added FFDC and callouts
+
+Revision 1.34 2013/12/02 20:49:04 mklight
+delete PoreState data created by fapiPoreVe
+
Revision 1.33 2013/06/25 19:08:33 thi
Fix Hostboot compile error
diff --git a/src/usr/pore/fapiporeve/fapiPoreVe_errors.xml b/src/usr/pore/fapiporeve/fapiPoreVe_errors.xml
index b049c7e4d..6b306cb08 100644
--- a/src/usr/pore/fapiporeve/fapiPoreVe_errors.xml
+++ b/src/usr/pore/fapiporeve/fapiPoreVe_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- IBM CONFIDENTIAL -->
<!-- -->
-<!-- COPYRIGHT International Business Machines Corp. 2012,2013 -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2014 -->
<!-- -->
<!-- p1 -->
<!-- -->
@@ -20,115 +20,228 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: fapiPoreVe_errors.xml,v 1.5 2014/03/31 15:20:30 thi Exp $ -->
<!-- Error definitions for fapiPoreVe procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
<hwpError>
<rc>RC_FAPIPOREVE_FAILED_TO_CREATE_POREVE</rc>
<description>Creation of the poreve object failed</description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_FAILED_TO_OPEN_STATE_FILE_FOR_READING</rc>
<description>Failed to open the state file for reading</description>
+ <!-- Not a HB error, no call out needed -->
<!--ffdc>FILENAME</ffdc-->
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_FAILED_TO_INSTALL_STATE</rc>
<description>Got a model error installing the state</description>
<ffdc>ERROR</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_FAILED_TO_LOAD_HOOKS</rc>
<description>Error loading the hooks file</description>
+ <!-- Not a HB error, no call out needed -->
<!--ffdc>ERROR_STRING</ffdc-->
<!--ffdc>FILENAME</ffdc-->
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_UNKNOWN_ARG_TYPE</rc>
<description>Found an unknown arg type</description>
<ffdc>TYPE</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_ERROR_DETACHING_SLAVE</rc>
<description>Model error detaching a pib slave</description>
<ffdc>ERROR</ffdc>
<ffdc>TYPE</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_ENTRY_POINT_NOT_FOUND</rc>
<description>Didn't find the entry point in the hooks file</description>
- <!--ffdc>POINT</ffdc-->
+ <!-- ffdc>POINT</ffdc -->
<ffdc>ERROR</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_INVALID_ENTRY_POINT_TYPE</rc>
<description>Entry point is an invalid type</description>
<ffdc>TYPE</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_ERROR_SETTING_PC</rc>
<description>Error setting the program counter</description>
<ffdc>ADDRESS</ffdc>
<ffdc>ERROR</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_BREAKPOINT_NOT_FOUND</rc>
<description>Unable to find the breakpoint in the hooks file</description>
<!--ffdc>POINT</ffdc-->
+ <!-- Not a HB error, no call out needed -->
<ffdc>ERROR</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_INVALID_BREAK_POINT_TYPE</rc>
<description>Break point is an invalid type</description>
<ffdc>TYPE</ffdc>
+ <!-- Not a HB error, no call out needed -->
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_ERROR_SETTING_BREAKPOINT</rc>
<description>Error setting the break point</description>
<ffdc>ADDRESS</ffdc>
<ffdc>ERROR</ffdc>
+ <!-- Not a HB error, no call out needed -->
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_ERROR_SETTING_MRR</rc>
<description>Unable to set the MRR</description>
<ffdc>MRR</ffdc>
<ffdc>ERROR</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_HALTED_WITH_ERROR</rc>
<description>The SBE halted witohut setting the haltcode to success</description>
<ffdc>ERROR</ffdc>
+ <ffdc>TARGET</ffdc>
+ <callout>
+ <target>TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>MEDIUM</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_PIB_ERROR_READING_SBEVITAL</rc>
- <description>Got a PIB error trying to read the SBE vital register for the halt code</description>
+ <description>Got a PIB error trying to read the SBE vital register for the halt code
+ For centaur, the PIB operation being checked here is executed virtually only
+ (the SBE Vital register doesn't exist in HW on Centaur,
+ </description>
<ffdc>ERROR</ffdc>
+ <ffdc>TARGET</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_MODEL_ERROR_GETTING_HALT_CODE</rc>
<description>Got a model error trying to read the SBE vital register for the halt code</description>
<ffdc>ERROR</ffdc>
+ <ffdc>TARGET</ffdc>
+ <callout>
+ <target>TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>MEDIUM</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_ARCHITECTED_ERROR</rc>
<description>SBE stopped due to an architected error</description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_MODELING_ERROR</rc>
<description>SBE stopped due to a modeling error</description>
+ <callout>
+ <target>TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>LOW</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_UNKNOWN_STATUS_ERROR</rc>
<description>SBE stopped with unknown status bits set</description>
<ffdc>STATUS</ffdc>
+ <callout>
+ <target>TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>LOW</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_FAILED_TO_OPEN_STATE_FILE_FOR_WRITING</rc>
<description>Failed to open the state file for writing</description>
+ <!-- Not a HB error, no call out needed -->
<!--ffdc>FILENAME</ffdc-->
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
<hwpError>
<rc>RC_FAPIPOREVE_ERROR_EXTRACTING_STATE</rc>
<description>Model error extracting state</description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
</hwpError>
</hwpErrors>
OpenPOWER on IntegriCloud