本文整理汇总了C++中TRACFCOMP函数的典型用法代码示例。如果您正苦于以下问题:C++ TRACFCOMP函数的具体用法?C++ TRACFCOMP怎么用?C++ TRACFCOMP使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了TRACFCOMP函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: call_nvdimm_update
/**
* @brief This function updates the NVDIMM firmware code
*/
void call_nvdimm_update()
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,ENTER_MRK"call_nvdimm_update()");
TARGETING::TargetHandleList l_nvdimmTargetList;
TARGETING::TargetHandleList l_procList;
TARGETING::getAllChips(l_procList, TARGETING::TYPE_PROC, false);
// grab the NVDIMMs under each processor and add to overall list
for (auto l_proc : l_procList)
{
TARGETING::TargetHandleList tmpList =
TARGETING::getProcNVDIMMs(l_proc);
l_nvdimmTargetList.insert(l_nvdimmTargetList.end(),
tmpList.begin(), tmpList.end());
}
// Run the nvdimm update function if the list is not empty
if ( !l_nvdimmTargetList.empty() )
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"call_nvdimm_update(): found %d nvdimms to check for update",
l_nvdimmTargetList.size());
bool updateWorked = NVDIMM::nvdimm_update(l_nvdimmTargetList);
if (!updateWorked)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"call_nvdimm_update(): nvdimm update failed");
}
}
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,EXIT_MRK"call_nvdimm_update()");
}
示例2: TRACFCOMP
///////////////////////////////////////////////////////////////////////////////
// ErrlManager::ackErrLogInPnor()
///////////////////////////////////////////////////////////////////////////////
bool ErrlManager::ackErrLogInPnor( uint32_t i_errEid )
{
TRACFCOMP( g_trac_errl, ENTER_MRK"ackErrLogInPnor(%.8x)", i_errEid);
bool rc = true;
// look for an un-ACKed log that matches this eid
uint32_t i;
for (i = 0; i < iv_maxErrlInPnor; i++)
{
if (!isSlotEmpty(i) && !isSlotACKed(i))
{
uint32_t l_eid = readEidFromFlattened(i);
if (l_eid == i_errEid)
{
TRACDCOMP( g_trac_errl, INFO_MRK"ackErrLogInPnor: match in slot %d", i);
setACKInFlattened(i);
break;
}
}
} // for
// if we made it through the loop w/out breaking early
if (i == iv_maxErrlInPnor)
{
//could not find the errorlog to mark for acknowledgment
TRACDCOMP( g_trac_errl, ERR_MRK"ackErrLogInPnor failed to find the error log" );
rc = false;
}
TRACFCOMP( g_trac_errl, EXIT_MRK"ackErrLogInPnor returning %s",
rc ? "true" : "false");
return rc;
} // ackErrLogInPnor
示例3: iv_currLogId
ErrlManager::ErrlManager()
:
iv_currLogId(0),
iv_pStorage(NULL),
iv_hwasProcessCalloutFn(NULL),
iv_msgQ(NULL)
{
TRACFCOMP( g_trac_errl, ENTER_MRK "ErrlManager::ErrlManager constructor" );
iv_hwasProcessCalloutFn = rt_processCallout;
TARGETING::Target * sys = NULL;
TARGETING::targetService().getTopLevelTarget( sys );
if(sys)
{
iv_currLogId = sys->getAttr<TARGETING::ATTR_HOSTSVC_PLID>();
}
else
{
iv_currLogId = 0x9fbad000;
TRACFCOMP( g_trac_errl, ERR_MRK"HOSTSVC_PLID not available" );
}
TRACFCOMP( g_trac_errl, EXIT_MRK "ErrlManager::ErrlManager constructor." );
}
示例4: TRACDCOMP
///////////////////////////////////////////////////////////////////////////////
// Handling commit error log.
///////////////////////////////////////////////////////////////////////////////
void ErrlManager::commitErrLog(errlHndl_t& io_err, compId_t i_committerComp )
{
TRACDCOMP( g_trac_errl, ENTER_MRK"ErrlManager::commitErrLog" );
do
{
if (io_err == NULL)
{
// put out warning trace
TRACFCOMP(g_trac_errl, ERR_MRK "commitErrLog() - NULL pointer");
break;
}
TRACFCOMP(g_trac_errl, "commitErrLog() called by %.4X for plid=0x%X,"
"Reasoncode=%.4X", i_committerComp,
io_err->plid(), io_err->reasonCode() );
// Deferred callouts not allowed at runtime - this call will check,
// flag and change any that are found.
io_err->deferredDeconfigure();
TRACFCOMP( g_trac_errl, INFO_MRK
"Send an error log to hypervisor to commit. plid=0x%X",
io_err->plid() );
io_err->commit(i_committerComp);
sendMboxMsg(io_err);
io_err = NULL;
} while( 0 );
TRACDCOMP( g_trac_errl, EXIT_MRK"ErrlManager::commitErrLog" );
return;
}
示例5: __runMemDiags
// Helper function to run Memory Diagnostics on a list of targets.
errlHndl_t __runMemDiags( TargetHandleList i_trgtList )
{
errlHndl_t errl = nullptr;
do
{
errl = ATTN::startService();
if ( nullptr != errl )
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"ATTN::startService() failed" );
break;
}
errl = MDIA::runStep( i_trgtList );
if ( nullptr != errl )
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"MDIA::runStep() failed" );
break;
}
errl = ATTN::stopService();
if ( nullptr != errl )
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"ATTN::stopService() failed" );
break;
}
} while (0);
return errl;
}
示例6: resetScomEngine
/**
* @brief Reset the Scom engine regs
*
* @param[in] i_target Target of the CPU that the xscom is for
* @param[in] i_virtAddr virtual address of the CPU that the xscom is
* targeted for
*
* @return none
*/
void resetScomEngine(TARGETING::Target* i_target,
uint64_t* i_virtAddr)
{
errlHndl_t l_err = NULL;
HMER l_hmer;
uint64_t io_buffer = 0;
size_t io_buflen = XSCOM_BUFFER_SIZE;
uint64_t* l_virtAddr = 0;
// xscom registers that need to be set.
XscomAddrType_t XscomAddr[] = { {0x0202000F, CurThreadCpu},
{0x02020007, TargetCpu},
{0x02020009, TargetCpu},};
TRACFCOMP(g_trac_xscom,"resetScomEngine: XSCOM RESET INTIATED");
// Loop through the registers you want to write to 0
for (int i = 0; i<3; i++)
{
// First address we need to read is for the Cpu that this thread is
// running on. Need to find the virtAddr for that CPU.
if (XscomAddr[i].target_type == CurThreadCpu)
{
l_virtAddr = getCpuIdVirtualAddress();
}
// The rest are xscoms are to the target cpu.
else
{
l_virtAddr = i_virtAddr;
}
//*********************************************************
// Write SCOM ADDR To reset the XSCOM ENGINE
//*********************************************************
l_err = xScomDoOp(DeviceFW::WRITE,
l_virtAddr,
XscomAddr[i].addr,
&io_buffer,
io_buflen,
l_hmer);
// If not successful
if (l_err)
{
// Delete thie errorlog as this is in the errorpath already.
delete l_err;
TRACFCOMP(g_trac_xscom,ERR_MRK "XSCOM RESET FAILED: XscomAddr = %.16llx, VAddr=%llx",XscomAddr[i], l_virtAddr );
}
// unmap the device now that we are done with the scom to that area.
if (XscomAddr[i].target_type == CurThreadCpu)
{
mmio_dev_unmap(reinterpret_cast<void*>(l_virtAddr));
}
}
return;
}
示例7: TRACDCOMP
///////////////////////////////////////////////////////////////////////////////
// Handling commit error log.
///////////////////////////////////////////////////////////////////////////////
void ErrlManager::commitErrLog(errlHndl_t& io_err, compId_t i_committerComp )
{
TRACDCOMP( g_trac_errl, ENTER_MRK"ErrlManager::commitErrLog" );
do
{
if (io_err == NULL)
{
// put out warning trace
TRACFCOMP(g_trac_errl, ERR_MRK "commitErrLog() - NULL pointer");
break;
}
TRACFCOMP(g_trac_errl, "commitErrLog() called by %.4X for eid=%.8x, Reasoncode=%.4X",
i_committerComp, io_err->eid(), io_err->reasonCode() );
if (io_err->sev() != ERRORLOG::ERRL_SEV_INFORMATIONAL)
{
iv_nonInfoCommitted = true;
lwsync();
}
//Ask ErrlEntry to check for any special deferred deconfigure callouts
io_err->deferredDeconfigure();
//Offload the error log to the errlog message queue
sendErrlogToMessageQueue ( io_err, i_committerComp );
io_err = NULL;
} while( 0 );
TRACDCOMP( g_trac_errl, EXIT_MRK"ErrlManager::commitErrLog" );
return;
}
示例8: call_dmi_io_dccal
void* call_dmi_io_dccal (void *io_pArgs)
{
IStepError l_StepError;
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_io_dccal entry" );
do
{
auto l_procModel = TARGETING::targetService().getProcessorModel();
switch (l_procModel)
{
case TARGETING::MODEL_CUMULUS:
cumulus_dccal_setup(l_StepError);
break;
case TARGETING::MODEL_AXONE:
axone_dccal_setup(l_StepError);
break;
case TARGETING::MODEL_NIMBUS:
default:
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"skipping p9_io_dmi_dccal because not required for current processor model 0x%x", l_procModel);
break;
}
}while(0);
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_io_dccal exit" );
// end task, returning any errorlogs to IStepDisp
return l_StepError.getErrorHandle();
}
示例9: call_host_fbc_eff_config_aggregate
//
// Wrapper function to call proc_fbc_eff_config_aggregate
//
void* call_host_fbc_eff_config_aggregate( void *io_pArgs )
{
errlHndl_t l_errl = NULL;
ISTEP_ERROR::IStepError l_stepError;
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_host_fbc_eff_config_aggregate entry" );
TARGETING::TargetHandleList l_procChips;
getAllChips( l_procChips, TARGETING::TYPE_PROC);
for (const auto & l_procChip: l_procChips)
{
fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2CpuTarget(l_procChip);
FAPI_INVOKE_HWP(l_errl,p9_fbc_eff_config_aggregate,l_fapi2CpuTarget);
if(l_errl)
{
l_stepError.addErrorDetails(l_errl);
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"ERROR : call_proc_fbc_eff_config_aggregate, PLID=0x%x",
l_errl->plid() );
errlCommit(l_errl, HWPF_COMP_ID);
}
}
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_host_fbc_eff_config_aggregate exit" );
return l_stepError.getErrorHandle();
}
示例10: enable_occ_actuation
int enable_occ_actuation (int i_occ_activation)
{
int rc = 0;
#ifdef CONFIG_HTMGT
errlHndl_t err = HTMGT::enableOccActuation(0 != i_occ_activation);
if (err)
{
rc = err->reasonCode();
if (0 == rc)
{
// If there was a failure, be sure to return non-zero status
rc = -1;
}
TRACFCOMP (g_fapiTd,ERR_MRK"enable_occ_actuation: OCC state change"
" failed with rc=0x%04X (actuate=%d)",
err->reasonCode(), i_occ_activation);
errlCommit (err, HWPF_COMP_ID);
}
#else
rc = -1;
TRACFCOMP(g_fapiTd,ERR_MRK"Unexpected call to enable_occ_actuation(%d)"
" when HTMGT is not enabled", i_occ_activation);
#endif
return rc;
}
示例11: iv_currLogId
ErrlManager::ErrlManager()
:
iv_currLogId(0),
iv_pStorage(NULL),
iv_hwasProcessCalloutFn(NULL),
iv_msgQ(NULL)
{
TRACFCOMP( g_trac_errl, ENTER_MRK "ErrlManager::ErrlManager constructor" );
iv_hwasProcessCalloutFn = rt_processCallout;
TARGETING::Target * sys = NULL;
TARGETING::targetService().getTopLevelTarget( sys );
if(sys)
{
iv_currLogId = sys->getAttr<TARGETING::ATTR_HOSTSVC_PLID>();
// set whether we want to skip certain error logs or not.
iv_hiddenErrLogsEnable =
sys->getAttr<TARGETING::ATTR_HIDDEN_ERRLOGS_ENABLE>();
TRACFCOMP( g_trac_errl,"iv_hiddenErrorLogsEnable = 0x%x",
iv_hiddenErrLogsEnable );
}
else
{
iv_currLogId = 0x9fbad000;
TRACFCOMP( g_trac_errl, ERR_MRK"HOSTSVC_PLID not available" );
}
TRACFCOMP( g_trac_errl, EXIT_MRK "ErrlManager::ErrlManager constructor." );
}
示例12: TRACUCOMP
/**
* @brief Write 1 page of data to the PNOR device
*/
errlHndl_t PnorRP::writeToDevice( uint64_t i_offset,
uint64_t i_chip,
bool i_ecc,
void* i_src )
{
TRACUCOMP(g_trac_pnor, "PnorRP::writeToDevice> i_offset=%X, i_chip=%d", i_offset, i_chip );
errlHndl_t l_errhdl = NULL;
uint8_t* ecc_buffer = NULL;
do
{
#ifdef CONFIG_SFC_IS_AST2400
//@todo RTC:106881 -- Add full write/erase support
TRACFCOMP(g_trac_pnor, "PnorRP::writeToDevice> Skipping all writes in BMC for now" );
break;
#endif
TARGETING::Target* pnor_target = TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL;
// assume a single page to write
void* data_to_write = i_src;
size_t write_size = PAGESIZE;
// apply ECC to data if needed
if( i_ecc )
{
ecc_buffer = new uint8_t[PAGESIZE_PLUS_ECC];
PNOR::ECC::injectECC( reinterpret_cast<uint8_t*>(i_src),
PAGESIZE,
reinterpret_cast<uint8_t*>(ecc_buffer) );
data_to_write = reinterpret_cast<void*>(ecc_buffer);
write_size = PAGESIZE_PLUS_ECC;
}
//no need for mutex since only ever a singleton object
iv_stats[i_offset/PAGESIZE].numWrites++;
// write the data out to the PNOR DD
errlHndl_t l_errhdl = DeviceFW::deviceWrite( pnor_target,
data_to_write,
write_size,
DEVICE_PNOR_ADDRESS(i_chip,i_offset) );
if( l_errhdl )
{
TRACFCOMP(g_trac_pnor, "PnorRP::writeToDevice> Error from device : RC=%X", l_errhdl->reasonCode() );
break;
}
} while(0);
if( ecc_buffer )
{
delete[] ecc_buffer;
}
TRACUCOMP(g_trac_pnor, "< PnorRP::writeToDevice" );
return l_errhdl;
}
示例13: TRACFCOMP
/**
* @brief Callback function to check for a record override
*/
errlHndl_t DvpdFacade::checkForRecordOverride( const char* i_record,
TARGETING::Target* i_target,
uint8_t*& o_ptr )
{
TRACFCOMP(g_trac_vpd,ENTER_MRK"DvpdFacade::checkForRecordOverride( %s, 0x%.8X )",
i_record, get_huid(i_target));
errlHndl_t l_errl = nullptr;
o_ptr = nullptr;
assert( i_record != nullptr, "DvpdFacade::checkForRecordOverride() i_record is null" );
assert( i_target != nullptr, "DvpdFacade::checkForRecordOverride() i_target is null" );
VPD::RecordTargetPair_t l_recTarg =
VPD::makeRecordTargetPair(i_record,i_target);
do
{
// We only support overriding MEMD
if( strcmp( i_record, "MEMD" ) )
{
TRACFCOMP(g_trac_vpd,"Record %s has no override", i_record);
mutex_lock(&iv_mutex); //iv_overridePtr is not threadsafe
iv_overridePtr[l_recTarg] = nullptr;
mutex_unlock(&iv_mutex);
break;
}
// Compare the last nibble
constexpr uint32_t l_vmMask = 0x0000000F;
input_args_t l_args = { DVPD::MEMD, DVPD::VM, VPD::AUTOSELECT };
l_errl = getMEMDFromPNOR( l_args,
i_target,
l_vmMask );
if( l_errl )
{
TRACFCOMP(g_trac_vpd,ERR_MRK"ERROR from getMEMDFromPNOR.");
break;
}
} while(0);
// For any error, we should reset the override map so that we'll
// attempt everything again the next time we want VPD
mutex_lock(&iv_mutex); //iv_overridePtr is not threadsafe
if( l_errl )
{
iv_overridePtr.erase(l_recTarg);
}
else
{
o_ptr = iv_overridePtr[l_recTarg];
}
mutex_unlock(&iv_mutex);
return l_errl;
}
示例14: call_cen_arrayinit
void* call_cen_arrayinit (void *io_pArgs)
{
IStepError l_StepError;
errlHndl_t l_err = NULL;
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_arrayinit entry" );
TARGETING::TargetHandleList l_membufTargetList;
getAllChips(l_membufTargetList, TYPE_MEMBUF);
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_arrayinit: %d membufs found",
l_membufTargetList.size());
for (const auto & l_membuf_target : l_membufTargetList)
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"cen_arrayinit HWP target HUID %.8x",
TARGETING::get_huid(l_membuf_target));
// call the HWP with each target
fapi2::Target <fapi2::TARGET_TYPE_MEMBUF_CHIP> l_fapi_membuf_target
(l_membuf_target);
FAPI_INVOKE_HWP(l_err, cen_arrayinit, l_fapi_membuf_target);
// process return code.
if ( l_err )
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"ERROR 0x%.8X: cen_arrayinit HWP on target HUID %.8x",
l_err->reasonCode(), TARGETING::get_huid(l_membuf_target) );
// capture the target data in the elog
ErrlUserDetailsTarget(l_membuf_target).addToLog( l_err );
// Create IStep error log and cross reference to error that occurred
l_StepError.addErrorDetails( l_err );
// Commit Error
errlCommit( l_err, ISTEP_COMP_ID );
}
else
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"SUCCESS : cen_arrayinit HWP");
}
}
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_arrayinit exit" );
return l_StepError.getErrorHandle();
}
示例15: iv_TOC_used
/**
* @brief Constructor
*/
PnorRP::PnorRP()
: iv_TOC_used(0)
,iv_msgQ(NULL)
,iv_startupRC(0)
{
TRACFCOMP(g_trac_pnor, "PnorRP::PnorRP> " );
// setup everything in a separate function
initDaemon();
TRACFCOMP(g_trac_pnor, "< PnorRP::PnorRP : Startup Errors=%X ", iv_startupRC );
}