diff options
Diffstat (limited to 'src/usr/errl/runtime/rt_errlmanager.C')
| -rw-r--r-- | src/usr/errl/runtime/rt_errlmanager.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/usr/errl/runtime/rt_errlmanager.C b/src/usr/errl/runtime/rt_errlmanager.C index 49d53b65f..981b4f117 100644 --- a/src/usr/errl/runtime/rt_errlmanager.C +++ b/src/usr/errl/runtime/rt_errlmanager.C @@ -34,6 +34,7 @@ #include <runtime/interface.h> #include <targeting/common/targetservice.H> #include <pnor/pnorif.H> +#include <hwas/common/deconfigGard.H> namespace ERRORLOG { @@ -301,6 +302,28 @@ bool rt_processCallout(errlHndl_t &io_errl, } } + + if ((pCalloutUD->type == HWAS::HW_CALLOUT) && + (pCalloutUD->gardErrorType != HWAS::GARD_NULL)) + { + TARGETING::Target *pTarget = NULL; + uint8_t * l_uData = (uint8_t *)(pCalloutUD + 1); + bool l_err = HWAS::retrieveTarget(l_uData, pTarget, io_errl); + + if (!l_err) + { + errlHndl_t errl = HWAS::theDeconfigGard().platCreateGardRecord(pTarget, + io_errl->eid(), + pCalloutUD->gardErrorType); + if (errl) + { + TRACFCOMP( g_trac_errl, ERR_MRK + "rt_processCallout: error from platCreateGardRecord"); + errlCommit(errl, HWAS_COMP_ID); + } + } + + } return true; } |

