diff options
Diffstat (limited to 'src/include/usr/errl/errlmanager.H')
-rw-r--r-- | src/include/usr/errl/errlmanager.H | 87 |
1 files changed, 57 insertions, 30 deletions
diff --git a/src/include/usr/errl/errlmanager.H b/src/include/usr/errl/errlmanager.H index 7d41c0ea1..3dc21b895 100644 --- a/src/include/usr/errl/errlmanager.H +++ b/src/include/usr/errl/errlmanager.H @@ -1,25 +1,26 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/include/usr/errl/errlmanager.H $ -// -// 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/include/usr/errl/errlmanager.H $ + * + * 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 + */ #ifndef ERRLMANAGER_H #define ERRLMANAGER_H /** @@ -40,15 +41,11 @@ #include <vector> #include <kernel/timemgr.H> #include <hbotcompid.H> - - - +#include <hwas/common/hwasCallout.H> namespace ERRORLOG { - - /** * @brief Global function to log an error * Writes the log to PNOR where committed logs are kept. @@ -68,8 +65,6 @@ namespace ERRORLOG * * @return None */ - -// TODO Work item 4104 to make comitter comp required, no default. void errlCommit(errlHndl_t& io_err, compId_t i_committerComp ); /*****************************************************************************/ @@ -119,6 +114,29 @@ public: */ uint32_t getUniqueErrId(); + /** + * @brief Sets the HWAS ProcessCallout function pointer + * + * This is called by HWAS to inform errlmanager that HWAS is loaded and + * therefore it can call HWAS to process callout information in an errlog + * + * It is a static function because a module cannot call an interface on a + * singleton in another module + */ + static void setHwasProcessCalloutFn(HWAS::processCalloutFn i_fn); + + /** + * @brief Returns the HWAS ProcessCallout function pointer + * + * This is called by ErrlEntry::commit to get the HWAS ProcessCallout + * function pointer, this is called to process callout information in an + * errlog, if NULL is returned then the function cannot be called (because + * the HWAS module is not loaded) + * + * @return HWAS::processCalloutFn function pointer + */ + HWAS::processCalloutFn getHwasProcessCalloutFn() const; + protected: /** * @brief Destructor @@ -166,8 +184,17 @@ private: /** * @brief Serialization for error log commits. */ - mutex_t iv_mutex; + mutex_t iv_commitMutex; + /** + * @brief Pointer to the HWAS processCallout function + */ + HWAS::processCalloutFn iv_hwasProcessCalloutFn; + + /** + * @brief Serialization for accessing iv_hwasProcessCalloutFn + */ + mutable mutex_t iv_hwasMutex; }; } // End namespace |