diff options
Diffstat (limited to 'src/usr/errl/errlentry.C')
-rw-r--r-- | src/usr/errl/errlentry.C | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/usr/errl/errlentry.C b/src/usr/errl/errlentry.C index a10ab6fc4..ee23e4097 100644 --- a/src/usr/errl/errlentry.C +++ b/src/usr/errl/errlentry.C @@ -299,6 +299,41 @@ void ErrlEntry::removeBackTrace() //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// +void ErrlEntry::addClockCallout(const TARGETING::Target *i_target, + const HWAS::clockTypeEnum i_clockType, + const HWAS::callOutPriority i_priority) +{ + TRACFCOMP(g_trac_errl, ENTER_MRK"addClockCallout(%p, %d, 0x%x)", + i_target, i_clockType, i_priority); + + TARGETING::EntityPath ep; + const void *pData; + uint32_t size; + + if (i_target == TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL) + { + size = sizeof(HWAS::TARGET_IS_SENTINEL); + pData = &HWAS::TARGET_IS_SENTINEL; + } + else + { // we got a non MASTER_SENTINEL target, therefore the targeting + // module is loaded, therefore we can make this call. + ep = i_target->getAttr<TARGETING::ATTR_PHYS_PATH>(); + // size is total EntityPath size minus unused path elements + size = sizeof(ep) - + (TARGETING::EntityPath::MAX_PATH_ELEMENTS - ep.size()) * + sizeof(TARGETING::EntityPath::PathElement); + pData = &ep; + } + + ErrlUserDetailsCallout( pData, size, i_clockType, + i_priority).addToLog(this); + +} // addClockCallout + + +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// void ErrlEntry::addBusCallout(const TARGETING::Target *i_target_endp1, const TARGETING::Target *i_target_endp2, const HWAS::busTypeEnum i_busType, |