diff options
-rw-r--r-- | src/usr/pore/fapiporeve/fapiPoreVe.C | 24 | ||||
-rw-r--r-- | src/usr/pore/fapiporeve/fapiPoreVe_errors.xml | 119 |
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> |