From b48dbe83b92c4ad376750e196420b6e8b5e3dcc8 Mon Sep 17 00:00:00 2001 From: Shakeeb Date: Tue, 23 Aug 2016 06:39:02 -0500 Subject: Modify signature of FIFO response utility Change-Id: I6ac79e1a13d978a91463e02f992d9bb164aa672a Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28662 Tested-by: Jenkins Server Reviewed-by: Sachin Gupta Reviewed-by: AMIT J. TENDOLKAR --- src/sbefw/sbeFifoMsgUtils.C | 10 +++++----- src/sbefw/sbeFifoMsgUtils.H | 11 ++++++----- src/sbefw/sbecmdcntlinst.C | 2 +- src/sbefw/sbecmdgeneric.C | 3 +-- src/sbefw/sbecmdiplcontrol.C | 11 +++++------ src/sbefw/sbecmdmemaccess.C | 4 ++-- src/sbefw/sbecmdregaccess.C | 4 ++-- src/sbefw/sbecmdringaccess.C | 2 +- 8 files changed, 23 insertions(+), 24 deletions(-) (limited to 'src/sbefw') diff --git a/src/sbefw/sbeFifoMsgUtils.C b/src/sbefw/sbeFifoMsgUtils.C index 07463336..d8e433a2 100644 --- a/src/sbefw/sbeFifoMsgUtils.C +++ b/src/sbefw/sbeFifoMsgUtils.C @@ -320,7 +320,7 @@ uint32_t sbeDownFifoSignalEot (void) uint32_t sbeDsSendRespHdr(const sbeRespGenHdr_t &i_hdr, - sbeResponseFfdc_t &io_ffdc ) + sbeResponseFfdc_t *i_ffdc ) { uint32_t rc = SBE_SEC_OPERATION_SUCCESSFUL; do @@ -336,16 +336,16 @@ uint32_t sbeDsSendRespHdr(const sbeRespGenHdr_t &i_hdr, distance += len; // If no ffdc , exit; - if( io_ffdc.getRc() ) + if( (i_ffdc != NULL) && i_ffdc->getRc() ) { // making sure ffdc length is multiples of uint32_t assert((g_FfdcData.ffdcLength % sizeof(uint32_t)) == 0); uint32_t ffdcDataLenInWords = g_FfdcData.ffdcLength / sizeof(uint32_t); // Add HWP specific ffdc data length - io_ffdc.lenInWords += ffdcDataLenInWords; - len = sizeof(io_ffdc)/sizeof(uint32_t); - rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) &io_ffdc); + i_ffdc->lenInWords += ffdcDataLenInWords; + len = sizeof(sbeResponseFfdc_t)/sizeof(uint32_t); + rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) i_ffdc); if (rc) { break; diff --git a/src/sbefw/sbeFifoMsgUtils.H b/src/sbefw/sbeFifoMsgUtils.H index c3a5c856..609c0271 100644 --- a/src/sbefw/sbeFifoMsgUtils.H +++ b/src/sbefw/sbeFifoMsgUtils.H @@ -182,11 +182,12 @@ uint32_t sbeDownFifoSignalEot (void); * @brief sbeDsSendRespHdr : Send response header to DS FIFO * - This also sends the FFDC if exist. * - * @param[in] i_hdr Response Header - * @param[in] io_ffdc FFDC object - * - * @return Rc from the underlying scom utility + * @param[in] i_hdr Response Header + * @param[in] i_ffdc Pointer to FFDC object, if NULL FFDC package + * is not sent in the chip op response + * + * @return Rc from the underlying scom utility */ uint32_t sbeDsSendRespHdr(const sbeRespGenHdr_t &i_hdr, - sbeResponseFfdc_t &io_ffdc ); + sbeResponseFfdc_t *i_ffdc=NULL ); #endif // __SBEFW_SBEFIFOMSGUTILS_H diff --git a/src/sbefw/sbecmdcntlinst.C b/src/sbefw/sbecmdcntlinst.C index faed1e5b..8cb29927 100644 --- a/src/sbefw/sbecmdcntlinst.C +++ b/src/sbefw/sbecmdcntlinst.C @@ -193,7 +193,7 @@ uint32_t sbeCntlInst(uint8_t *i_pArg) break; } - l_rc = sbeDsSendRespHdr(l_respHdr, l_ffdc); + l_rc = sbeDsSendRespHdr(l_respHdr, &l_ffdc); }while(0); SBE_EXIT(SBE_FUNC); diff --git a/src/sbefw/sbecmdgeneric.C b/src/sbefw/sbecmdgeneric.C index e883993a..88e79d01 100644 --- a/src/sbefw/sbecmdgeneric.C +++ b/src/sbefw/sbecmdgeneric.C @@ -84,7 +84,6 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg) sbeRespGenHdr_t respHdr; respHdr.init(); sbeCapabilityRespMsg_t capMsg; - sbeResponseFfdc_t l_ffdc; do { @@ -106,7 +105,7 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg) break; } - rc = sbeDsSendRespHdr(respHdr, l_ffdc); + rc = sbeDsSendRespHdr(respHdr); }while(0); if( rc ) diff --git a/src/sbefw/sbecmdiplcontrol.C b/src/sbefw/sbecmdiplcontrol.C index 0819a864..a7b771d8 100644 --- a/src/sbefw/sbecmdiplcontrol.C +++ b/src/sbefw/sbecmdiplcontrol.C @@ -318,7 +318,7 @@ uint32_t sbeHandleIstep (uint8_t *i_pArg) break; } - rc = sbeDsSendRespHdr(respHdr, ffdc); + rc = sbeDsSendRespHdr(respHdr, &ffdc); }while(0); if( rc ) @@ -780,14 +780,14 @@ uint32_t sbeEnterMpipl(uint8_t *i_pArg) break; } - sbeResponseFfdc_t l_ffdc; - l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc); + // TODO via RTC:123696 MPIPL Related procedure/steps + // Can send FFDC if MPIPL procedure fails + l_rc = sbeDsSendRespHdr( l_respHdr ); // set state to MPIPL Wait (void)SbeRegAccess::theSbeRegAccess(). stateTransition(SBE_ENTER_MPIPL_EVENT); - //TODO RTC-123696 MPIPL Related procedure/steps }while(0); return l_rc; #undef SBE_FUNC @@ -813,8 +813,7 @@ uint32_t sbeContinueMpipl(uint8_t *i_pArg) break; } - sbeResponseFfdc_t l_ffdc; - l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc); + l_rc = sbeDsSendRespHdr( l_respHdr); //TODO RTC-134278 Continue MPIPL Related procedure/steps diff --git a/src/sbefw/sbecmdmemaccess.C b/src/sbefw/sbecmdmemaccess.C index 942bb72d..80bbe9a3 100644 --- a/src/sbefw/sbecmdmemaccess.C +++ b/src/sbefw/sbecmdmemaccess.C @@ -434,7 +434,7 @@ uint32_t processPbaRequest(const sbeMemAccessReqMsgHdr_t &i_hdr, l_rc = sbeDownFifoEnq_mult ( l_len, &l_respLen ); CHECK_SBE_RC_AND_BREAK_IF_NOT_SUCCESS(l_rc); - l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc); + l_rc = sbeDsSendRespHdr( l_respHdr, &l_ffdc); } while(false); SBE_EXIT(SBE_FUNC); @@ -698,7 +698,7 @@ uint32_t processAduRequest(const sbeMemAccessReqMsgHdr_t &i_hdr, l_rc = sbeDownFifoEnq_mult ( l_len, &l_respLen ); CHECK_SBE_RC_AND_BREAK_IF_NOT_SUCCESS(l_rc); - l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc); + l_rc = sbeDsSendRespHdr( l_respHdr, &l_ffdc); } while(false); SBE_EXIT(SBE_FUNC); diff --git a/src/sbefw/sbecmdregaccess.C b/src/sbefw/sbecmdregaccess.C index d4023f73..59c6d93a 100644 --- a/src/sbefw/sbecmdregaccess.C +++ b/src/sbefw/sbecmdregaccess.C @@ -158,7 +158,7 @@ uint32_t sbeGetReg(uint8_t *i_pArg) if ( SBE_SEC_OPERATION_SUCCESSFUL == rc ) { - rc = sbeDsSendRespHdr( respHdr, ffdc); + rc = sbeDsSendRespHdr( respHdr, &ffdc); } SBE_EXIT(SBE_FUNC); @@ -264,7 +264,7 @@ uint32_t sbePutReg(uint8_t *i_pArg) if ( SBE_SEC_OPERATION_SUCCESSFUL == rc ) { - rc = sbeDsSendRespHdr( respHdr, ffdc); + rc = sbeDsSendRespHdr( respHdr, &ffdc); } SBE_EXIT(SBE_FUNC); diff --git a/src/sbefw/sbecmdringaccess.C b/src/sbefw/sbecmdringaccess.C index 3fdc8f7e..6ce16f35 100644 --- a/src/sbefw/sbecmdringaccess.C +++ b/src/sbefw/sbecmdringaccess.C @@ -295,7 +295,7 @@ uint32_t sbeGetRing(uint8_t *i_pArg) l_rc = sbeDownFifoEnq_mult (l_len, &(l_bitSentCnt)); if(SBE_SEC_OPERATION_SUCCESSFUL == l_rc) { - l_rc = sbeDsSendRespHdr( respHdr, l_ffdc); + l_rc = sbeDsSendRespHdr( respHdr, &l_ffdc); } } SBE_EXIT(SBE_FUNC); -- cgit v1.2.1