diff options
| author | Matt Ploetz <maploetz@us.ibm.com> | 2016-04-12 11:31:23 -0500 |
|---|---|---|
| committer | Matthew A. Ploetz <maploetz@us.ibm.com> | 2016-05-11 12:12:30 -0400 |
| commit | a2eeea7a4f8441d241251e1411735302144ca3bf (patch) | |
| tree | 089bf223ec674cc03610917022360db99b181c68 /src/usr/errl | |
| parent | 1d150b6e4e679d4c1248e9e49c1d2ccec2483b63 (diff) | |
| download | blackbird-hostboot-a2eeea7a4f8441d241251e1411735302144ca3bf.tar.gz blackbird-hostboot-a2eeea7a4f8441d241251e1411735302144ca3bf.zip | |
Increment reboot count when gard records are written
Change-Id: Iaf9a4d4be19877e564ca1871564467441b472253
CQ:SW347568
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/23186
Reviewed-by: A. P. Williams III <iawillia@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Tested-by: Jenkins OP Build CI
Tested-by: Jenkins OP HW
Tested-by: FSP CI Jenkins
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24340
Diffstat (limited to 'src/usr/errl')
| -rw-r--r-- | src/usr/errl/errlmanager.C | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/usr/errl/errlmanager.C b/src/usr/errl/errlmanager.C index ac0174713..d693d7a82 100644 --- a/src/usr/errl/errlmanager.C +++ b/src/usr/errl/errlmanager.C @@ -51,6 +51,7 @@ #include <console/consoleif.H> #include <config.h> #include <functional> +#include <hwas/common/deconfigGard.H> namespace ERRORLOG { @@ -583,6 +584,13 @@ void ErrlManager::errlogMsgHndlr () } break; } + case ERRLOG_FLUSH_TYPE: + TRACFCOMP( g_trac_errl, INFO_MRK "Flush message received" ); + + // Since the errorlog is FIFO, all we need to do is respond + // to this message + msg_respond ( iv_msgQ, theMsg ); + break; case ERRLOG_SHUTDOWN_TYPE: TRACFCOMP( g_trac_errl, INFO_MRK "Shutdown event received" ); @@ -755,7 +763,42 @@ void ErrlManager::saveErrLogEntry( errlHndl_t& io_err ) } #endif +/////////////////////////////////////////////////////////////////////////////// +// ErrlManager::callFlushErrorLogs() +/////////////////////////////////////////////////////////////////////////////// +void ErrlManager::callFlushErrorLogs() +{ + ERRORLOG::theErrlManager::instance().flushErrorLogs(); + return; +} +/////////////////////////////////////////////////////////////////////////////// +// ErrlManager::flushErrorLogs() +/////////////////////////////////////////////////////////////////////////////// +void ErrlManager::flushErrorLogs() +{ + TRACDCOMP( g_trac_errl, ENTER_MRK "ErrlManager::flushErrorLogs" ); + + // Create message to send to msg handler + msg_t *msg = NULL; + msg = msg_allocate(); + msg->type = ERRLOG_FLUSH_TYPE; + do{ + // Send message to msg handler, get msg back on l_RecvMsgQ + int rc = msg_sendrecv(iv_msgQ,msg); + if(rc) + { + TRACFCOMP(g_trac_errl, "Error sending error log flush message. " + "RC= %d",rc); + break; + } + // Msg_sendrecv doesn't return until the message has been responded + // to. So we do not need to check message type back. + }while(0); + + TRACDCOMP( g_trac_errl, EXIT_MRK"ErrlManager::flushErrorLogs" ); + return; +} /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// void ErrlManager::setHwasProcessCalloutFn(HWAS::processCalloutFn i_fn) |

