summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspashabk-in <shakeebbk@in.ibm.com>2017-05-03 02:45:57 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2017-05-24 03:01:31 -0400
commit7a87a60b9965fd59ba534913280e6fdd2646867e (patch)
tree52c7843ee037350f955504acf599b58cd1dab3e5
parenteeb6617823be6e276568fd47b978bffa0b8b7f4d (diff)
downloadtalos-sbe-7a87a60b9965fd59ba534913280e6fdd2646867e.tar.gz
talos-sbe-7a87a60b9965fd59ba534913280e6fdd2646867e.zip
User fields configuration using a funciton
Change-Id: Ie156c968a9140c3b541b15dfc41f1c19a6e3b876 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39984 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
-rw-r--r--src/sbefw/sbeFFDC.C44
-rw-r--r--src/sbefw/sbeFFDC.H10
2 files changed, 38 insertions, 16 deletions
diff --git a/src/sbefw/sbeFFDC.C b/src/sbefw/sbeFFDC.C
index 826579f1..8bff48d5 100644
--- a/src/sbefw/sbeFFDC.C
+++ b/src/sbefw/sbeFFDC.C
@@ -29,6 +29,34 @@
#include "sberegaccess.H"
#include "sbeFFDC.H"
#include "sbe_build_info.H"
+#include "sbeglobals.H"
+
+/*
+ * @bried updateUserDataHeader - method to update user data fields
+ * based on input config
+ *
+ * @param[in] i_fieldsConfig - input fields configuration
+ */
+void SbeFFDCPackage::updateUserDataHeader(uint32_t i_fieldsConfig)
+{
+ //Update the user data header with dump fields configuration
+ iv_sbeFFDCDataHeader.dumpFields.set(i_fieldsConfig);
+ iv_sbeFFDCHeader.lenInWords = (sizeof(sbeResponseFfdc_t) +
+ sizeof(sbeFFDCDataHeader_t))
+ /sizeof(uint32_t);
+ //Update the length in ffdc package header base on required fields
+ for(auto &sbeFFDCUserData:sbeFFDCUserDataArray)
+ {
+ if(sbeFFDCUserData.userDataId.fieldId & i_fieldsConfig)
+ {
+ iv_sbeFFDCHeader.lenInWords +=
+ (sbeFFDCUserData.userDataId.fieldLen +
+ sizeof(sbeFFDCUserDataIdentifier_t))
+ /sizeof(uint32_t);
+ }
+ }
+}
+
/*
* @brief sendOverFIFO - method to pack and send SBE internal FFDC
* only if isSendInternalFFDCSet() is true
@@ -77,21 +105,7 @@ uint32_t SbeFFDCPackage::sendOverFIFO(const sbeRespGenHdr_t &i_hdr,
// Sequence Id is 0 by default for Fifo interface
iv_sbeFFDCHeader.setCmdInfo(0, i_hdr.cmdClass, i_hdr.command);
//Update the user data header with dump fields configuration
- iv_sbeFFDCDataHeader.dumpFields.set(i_fieldsConfig);
- iv_sbeFFDCHeader.lenInWords = (sizeof(sbeResponseFfdc_t) +
- sizeof(sbeFFDCDataHeader_t))
- /sizeof(uint32_t);
- //Update the length in ffdc package header base on required fields
- for(auto &sbeFFDCUserData:sbeFFDCUserDataArray)
- {
- if(sbeFFDCUserData.userDataId.fieldId & i_fieldsConfig)
- {
- iv_sbeFFDCHeader.lenInWords +=
- (sbeFFDCUserData.userDataId.fieldLen +
- sizeof(sbeFFDCUserDataIdentifier_t))
- /sizeof(uint32_t);
- }
- }
+ updateUserDataHeader(i_fieldsConfig);
//Send FFDC package header
length = sizeof(iv_sbeFFDCHeader) / sizeof(uint32_t);
diff --git a/src/sbefw/sbeFFDC.H b/src/sbefw/sbeFFDC.H
index e77c54b6..4c9448e3 100644
--- a/src/sbefw/sbeFFDC.H
+++ b/src/sbefw/sbeFFDC.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER sbe Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -63,6 +63,14 @@ private:
//FFDC user data header
sbeFFDCDataHeader_t iv_sbeFFDCDataHeader;
+ /*
+ * @bried updateUserDataHeader - method to update user data fields
+ * based on input config
+ *
+ * @param[in] i_fieldsConfig - input fields configuration
+ */
+ void updateUserDataHeader(uint32_t i_fieldsConfig);
+
public:
/*ctor
*
OpenPOWER on IntegriCloud