errlHndl_t SimFspSyncSvc::processMfgTrace(msg_t *i_msg) const { #define PRDF_FUNC "[SimFspSyncSvc::processMfgTrace]" PRDF_ENTER(PRDF_FUNC); errlHndl_t l_errLog = NULL; uint8_t l_mruListCount = 0; uint8_t *l_extraData = NULL; do { l_extraData = reinterpret_cast <uint8_t *> (i_msg->extra_data); l_mruListCount = (i_msg->data[1] / sizeof(PfaMruListStruct)); if(l_mruListCount > MruListLIMIT) { PRDF_ERR(PRDF_FUNC "Invalid MRU count: %d received from Hostboot" " max expected count is: %d", l_mruListCount, MruListLIMIT); /*@ * @errortype * @refcode LIC_REFCODE * @subsys EPUB_FIRMWARE_SP * @reasoncode PRDF_INVALID_CONFIG * * @moduleid PRDF_SYNC_SVC * @userdata1 MRU List Count * @userdata2 Max MRU Count * @userdata3 Line number in file * @devdesc Received invalid MRU count in * MnfgTrace message from Hostboot */ PRDF_CREATE_ERRL(l_errLog, ERRL_SEV_INFORMATIONAL, ERRL_ETYPE_NOT_APPLICABLE, SRCI_ERR_INFO, SRCI_NO_ATTR, PRDF_SYNC_SVC, LIC_REFCODE, PRDF_INVALID_CONFIG, l_mruListCount, MruListLIMIT, __LINE__, 0); break; } if(NULL != l_extraData) { free(l_extraData); } }while(0); return l_errLog; #undef PRDF_FUNC }
void prdfAssert( const char * i_exp, const char * i_file, int i_line ) { PRDF_ERR( "prdfAssert(%s) in %s line %d", i_exp, i_file, i_line ); errlHndl_t errl = NULL; /*@ * @errortype * @subsys EPUB_FIRMWARE_SP * @reasoncode PRDF_CODE_FAIL * @moduleid PRDF_ASSERT * @userdata1 0 * @userdata2 Line number of the assert * @userdata3 0 * @userdata4 PRD Return code * @devdesc PRD assert * @custDesc An internal firmware fault. * @procedure EPUB_PRC_SP_CODE */ PRDF_CREATE_ERRL(errl, ERRL_SEV_PREDICTIVE, // error on diagnostic ERRL_ETYPE_NOT_APPLICABLE, SRCI_ERR_INFO, SRCI_NO_ATTR, PRDF_ASSERT, // module id FSP_DEFAULT_REFCODE, // refcode PRDF_CODE_FAIL, // Reason code 0, // user data word 1 i_line, // user data word 2 0, // user data word 3 PRD_ASSERT); // user data word 4 PRDF_ADD_PROCEDURE_CALLOUT(errl, SRCI_PRIORITY_MED, EPUB_PRC_SP_CODE); PRDF_SET_RC(errl, PRD_ASSERT); PRDF_COLLECT_TRACE(errl, 256); PRDF_SET_TERM_STATE( errl ); PRDF_COMMIT_ERRL(errl, ERRL_ACTION_SA); #ifdef __HOSTBOOT_MODULE assert(0); #else const size_t sz_msg = 160; char msg[sz_msg]; errlslen_t msize = snprintf( msg, sz_msg, "prdfAssert(%s) in %s line %d", i_exp, i_file, i_line ); percAbend(PRDF_COMP_ID, msg, msize+1, 0, 0); abort(); #endif }