summaryrefslogtreecommitdiffstats
path: root/src/usr/errl
diff options
context:
space:
mode:
authorMatt Ploetz <maploetz@us.ibm.com>2016-04-12 11:31:23 -0500
committerMatthew A. Ploetz <maploetz@us.ibm.com>2016-05-11 12:12:30 -0400
commita2eeea7a4f8441d241251e1411735302144ca3bf (patch)
tree089bf223ec674cc03610917022360db99b181c68 /src/usr/errl
parent1d150b6e4e679d4c1248e9e49c1d2ccec2483b63 (diff)
downloadblackbird-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.C43
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)
OpenPOWER on IntegriCloud