diff options
Diffstat (limited to 'src/usr/errl/errlmanager.C')
-rw-r--r-- | src/usr/errl/errlmanager.C | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/src/usr/errl/errlmanager.C b/src/usr/errl/errlmanager.C index 77a2eacae..f1aa208be 100644 --- a/src/usr/errl/errlmanager.C +++ b/src/usr/errl/errlmanager.C @@ -35,7 +35,6 @@ // I n c l u d e s /*****************************************************************************/ #include <errl/errlmanager.H> -#include <errl/errlreasoncodes.H> #include <trace/interface.H> #include <errl/errlentry.H> #include <initservice/taskargs.H> @@ -50,9 +49,6 @@ #include <intr/interrupt.H> #include <errldisplay/errldisplay.H> #include <console/consoleif.H> -#include <hwas/common/hwasCallout.H> -#include <ipmi/ipmisel.H> -#include <ipmi/ipmisensor.H> #include <config.h> #include <functional> @@ -1320,110 +1316,4 @@ bool ErrlManager::_updateErrlListIter(ErrlListItr_t & io_it) return l_removed; } -#ifdef CONFIG_BMC_IPMI -void ErrlManager::sendErrLogToBmc(errlHndl_t &io_err) -{ - TRACFCOMP(g_trac_errl, ENTER_MRK - "sendErrLogToBmc errlogId 0x%.8x", io_err->eid()); - - do { - - // if it's an INFORMATIONAL log, we don't want to waste the cycles - if (io_err->sev() == ERRORLOG::ERRL_SEV_INFORMATIONAL) - { - TRACFCOMP( g_trac_errl, INFO_MRK - "sendErrLogToBmc: %.8X is INFORMATIONAL; skipping", - io_err->eid()); - break; - } - - // look thru the errlog for any Callout UserDetail sections - // to determine the sensor information for the SEL - uint8_t l_sensorNumber = TARGETING::UTIL::INVALID_IPMI_SENSOR; - uint8_t l_sensorType = TARGETING::UTIL::INVALID_IPMI_SENSOR; - HWAS::callOutPriority l_priority = HWAS::SRCI_PRIORITY_NONE; - for(std::vector<ErrlUD*>::const_iterator - it = io_err->iv_SectionVector.begin(); - it != io_err->iv_SectionVector.end(); - it++ ) - { - HWAS::callout_ud_t *l_ud = - reinterpret_cast<HWAS::callout_ud_t*>((*it)->iv_pData); - - // if this is a CALLOUT that will have a target - if ((ERRL_COMP_ID == (*it)->iv_header.iv_compId) && - (1 == (*it)->iv_header.iv_ver) && - (ERRL_UDT_CALLOUT == (*it)->iv_header.iv_sst) && - (HWAS::HW_CALLOUT == l_ud->type) - ) - { - // if this callout is higher than any previous - if (l_ud->priority > l_priority) - { - // get the sensor number for the target - uint8_t * l_uData = (uint8_t *)(l_ud + 1); - TARGETING::Target *l_target = NULL; - bool l_err = HWAS::retrieveTarget(l_uData, - l_target, io_err); - if (!l_err) - { - // got a target, now get the sensor number - l_sensorNumber = - SENSOR::getFaultSensorNumber(l_target); - - // and update the priority - l_priority = l_ud->priority; - } - } - } - } // for each SectionVector - -#if 0 -// TODO: RTC 119440 - if (l_sensorNumber != TARGETING::UTLI::INVALID_IPMI_SENSOR) - { - l_sensorType = SENSOR::getSensorType(l_sensorNumber); - } -#endif - - // flatten into buffer, truncate to max eSEL size - uint32_t l_pelSize = io_err->flattenedSize(); - if (l_pelSize > (IPMISEL::ESEL_MAX_SIZE - sizeof(IPMISEL::selRecord))) - { - TRACFCOMP( g_trac_errl, INFO_MRK - "sendErrLogToBmc: msg size %d > %d, truncating.", - l_pelSize, IPMISEL::ESEL_MAX_SIZE); - l_pelSize = IPMISEL::ESEL_MAX_SIZE - sizeof(IPMISEL::selRecord); - } - - uint8_t *l_pelData = new uint8_t[l_pelSize]; - uint32_t l_errSize = io_err->flatten (l_pelData, - l_pelSize, true /* truncate */); - - if (l_errSize ==0) - { - // flatten didn't work - TRACFCOMP( g_trac_errl, ERR_MRK - "sendErrLogToBmc: could not flatten data - not sending"); - delete [] l_pelData; - break; - } - - // send it to the BMC over IPMI - TRACFCOMP(g_trac_errl, INFO_MRK - "sendErrLogToBmc: sensor %.2x/%.2x, size %d", - l_sensorType, l_sensorNumber, l_pelSize); - IPMISEL::sendESEL(l_pelData, l_pelSize, - io_err->eid(), IPMISEL::event_unspecified, - l_sensorType, l_sensorNumber); - - // free the buffer - delete [] l_pelData; - - } while(0); - - TRACFCOMP(g_trac_errl, EXIT_MRK "sendErrLogToBmc"); -} // sendErrLogToBmc -#endif - } // End namespace |