From 65c5f96611fd8cd6b6ff75959f82a80f6c51cbe4 Mon Sep 17 00:00:00 2001 From: Shakeeb Date: Wed, 27 Jul 2016 02:01:44 -0500 Subject: FFDC corrections Change-Id: I2a04a4fdf226e6d5aaa4ccaa4b2d39c590e7862f RTC:151555 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27482 Tested-by: Jenkins Server Reviewed-by: RAJA DAS Reviewed-by: Sachin Gupta --- sbe/sbefw/sbeFFDC.C | 8 ++++---- sbe/sbefw/sbeFFDC.H | 2 +- sbe/sbefw/sbeFFDCType.H | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) (limited to 'sbe') diff --git a/sbe/sbefw/sbeFFDC.C b/sbe/sbefw/sbeFFDC.C index 2d9eb845..e42b4239 100644 --- a/sbe/sbefw/sbeFFDC.C +++ b/sbe/sbefw/sbeFFDC.C @@ -68,7 +68,7 @@ uint32_t SbeFFDCPackage::sendOverFIFO(uint32_t i_primStatus, //Update the user data header with dump fields configuration iv_sbeFFDCDataHeader.dumpFields.set(i_fieldsConfig); iv_sbeFFDCHeader.lenInWords = (sizeof(sbeResponseFfdc_t) + - sizeof(sbeFFDCUserDataIdentifier_t)) + sizeof(sbeFFDCDataHeader_t)) /sizeof(uint32_t); //Update the length in ffdc package header base on required fields for(auto &sbeFFDCUserData:sbeFFDCUserDataArray) @@ -76,8 +76,9 @@ uint32_t SbeFFDCPackage::sendOverFIFO(uint32_t i_primStatus, if(sbeFFDCUserData.userDataId.fieldId & i_fieldsConfig) { iv_sbeFFDCHeader.lenInWords += - sbeFFDCUserData.userDataId.fieldLen - /sizeof(uint32_t); + (sbeFFDCUserData.userDataId.fieldLen + + sizeof(sbeFFDCUserDataIdentifier_t)) + /sizeof(uint32_t); } } @@ -132,7 +133,6 @@ uint32_t SbeFFDCPackage::sendOverFIFO(uint32_t i_primStatus, } SBE_DEBUG(SBE_FUNC "Number of words sent [%d]", o_bytesSent); - break; } while(false); SBE_EXIT(SBE_FUNC); diff --git a/sbe/sbefw/sbeFFDC.H b/sbe/sbefw/sbeFFDC.H index 885337dd..8cf8408e 100644 --- a/sbe/sbefw/sbeFFDC.H +++ b/sbe/sbefw/sbeFFDC.H @@ -125,7 +125,7 @@ public: uint32_t i_fieldsConfig, uint32_t &o_bytesSent); - /* + /* TODO via RTC:150786 * @brief sendOverHOST - method to pack and send SBE internal FFDC * only if isSendInternalFFDCSet() is true * over HOST interface diff --git a/sbe/sbefw/sbeFFDCType.H b/sbe/sbefw/sbeFFDCType.H index 71a5c9ae..056e7907 100644 --- a/sbe/sbefw/sbeFFDCType.H +++ b/sbe/sbefw/sbeFFDCType.H @@ -56,6 +56,23 @@ typedef struct traceField = true; } } + /* @brief - get dump fields as uint32_t + * + * @return - uint32_t value + */ + uint32_t get() + { + uint32_t l_val = 0; + if(attrField) + { + l_val |= SBE_FFDC_ATTR_DUMP; + } + if(traceField) + { + l_val |= SBE_FFDC_TRACE_DUMP; + } + return l_val; + } } sbeFFDCDumpFields_t; //Sturcture indicating the type of ffdc user data blob -- cgit v1.2.1