summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/fapi/fapiReturnCodeDataRef.C
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2011-08-12 11:03:30 -0500
committerNicholas E. Bofferding <bofferdn@us.ibm.com>2011-08-19 15:08:51 -0500
commit2935ed01dae82a91c1bb4c181fd36cc42b2efaf9 (patch)
treeedbde05a7cf666342b704b2eb069e6dfbcbd96c5 /src/usr/hwpf/fapi/fapiReturnCodeDataRef.C
parent02991f3ecb7356dc989148710e7ca40df0f7437c (diff)
downloadtalos-hostboot-2935ed01dae82a91c1bb4c181fd36cc42b2efaf9.tar.gz
talos-hostboot-2935ed01dae82a91c1bb4c181fd36cc42b2efaf9.zip
HWPF Error Info Support
Change-Id: Ib060599a4b64e768cbc75184a050e851c0a39c4e Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/250 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/fapi/fapiReturnCodeDataRef.C')
-rw-r--r--src/usr/hwpf/fapi/fapiReturnCodeDataRef.C80
1 files changed, 63 insertions, 17 deletions
diff --git a/src/usr/hwpf/fapi/fapiReturnCodeDataRef.C b/src/usr/hwpf/fapi/fapiReturnCodeDataRef.C
index 0682388ac..837fcc62e 100644
--- a/src/usr/hwpf/fapi/fapiReturnCodeDataRef.C
+++ b/src/usr/hwpf/fapi/fapiReturnCodeDataRef.C
@@ -12,8 +12,10 @@
* camvanng 05/31/2011 Added debug traces
* mjjones 06/30/2011 Added #include
* mjjones 07/05/2011 Removed const from data
+ * mjjones 07/25/2011 Added support for FFDC
*/
+#include <string.h>
#include <fapiReturnCodeDataRef.H>
#include <fapiUtil.H>
#include <fapiPlatTrace.H>
@@ -22,16 +24,16 @@ namespace fapi
{
//******************************************************************************
-// Constructor
+// ReturnCodeDataRef Constructor
//******************************************************************************
-ReturnCodeDataRef::ReturnCodeDataRef(void * i_pData) :
- iv_refCount(1), iv_pData(i_pData)
+ReturnCodeDataRef::ReturnCodeDataRef() :
+ iv_refCount(1)
{
}
//******************************************************************************
-// Destructor
+// ReturnCodeDataRef Destructor
//******************************************************************************
ReturnCodeDataRef::~ReturnCodeDataRef()
{
@@ -40,28 +42,25 @@ ReturnCodeDataRef::~ReturnCodeDataRef()
FAPI_ERR("ReturnCodeDataRef. Bug. Destruct with refcount");
fapiAssert(false);
}
- else
- {
- // Call platform implemented deleteData
- (void) deleteData();
- }
}
//******************************************************************************
-// incRefCount function
+// ReturnCodeDataRef incRefCount function
//******************************************************************************
void ReturnCodeDataRef::incRefCount()
{
- FAPI_DBG("ReturnCodeDataRef::incRefCount: iv_refCount = %i on entry", iv_refCount);
+ FAPI_DBG("ReturnCodeDataRef::incRefCount: iv_refCount = %d on entry",
+ iv_refCount);
iv_refCount++;
}
//******************************************************************************
-// decRefCountCheckZero function
+// ReturnCodeDataRef decRefCountCheckZero function
//******************************************************************************
bool ReturnCodeDataRef::decRefCountCheckZero()
{
- FAPI_DBG("ReturnCodeDataRef::decRefCountCheckZero: iv_refCount = %i on entry", iv_refCount);
+ FAPI_DBG("ReturnCodeDataRef::decRefCountCheckZero: iv_refCount = %d on "
+ "entry", iv_refCount);
if (iv_refCount == 0)
{
@@ -76,21 +75,68 @@ bool ReturnCodeDataRef::decRefCountCheckZero()
}
//******************************************************************************
-// getData function
+// ReturnCodePlatDataRef Constructor
//******************************************************************************
-void * ReturnCodeDataRef::getData() const
+ReturnCodePlatDataRef::ReturnCodePlatDataRef(void * i_pData) :
+ iv_pData(i_pData)
+{
+
+}
+
+//******************************************************************************
+// ReturnCodePlatDataRef Destructor
+//******************************************************************************
+ReturnCodePlatDataRef::~ReturnCodePlatDataRef()
+{
+ // Call platform implemented deleteData
+ (void) deleteData();
+}
+
+//******************************************************************************
+// ReturnCodePlatDataRef getData function
+//******************************************************************************
+void * ReturnCodePlatDataRef::getData() const
{
return iv_pData;
}
//******************************************************************************
-// releaseData function
+// ReturnCodePlatDataRef releaseData function
//******************************************************************************
-void * ReturnCodeDataRef::releaseData()
+void * ReturnCodePlatDataRef::releaseData()
{
void * l_pData = iv_pData;
iv_pData = NULL;
return l_pData;
}
+//******************************************************************************
+// ReturnCodeHwpFfdcRef Constructor
+//******************************************************************************
+ReturnCodeHwpFfdcRef::ReturnCodeHwpFfdcRef(const void * i_pFfdc,
+ const uint32_t i_size)
+: iv_size(i_size)
+{
+ iv_pFfdc = new uint8_t[i_size];
+ memcpy(iv_pFfdc, i_pFfdc, i_size);
+}
+
+//******************************************************************************
+// ReturnCodeHwpFfdcRef Destructor
+//******************************************************************************
+ReturnCodeHwpFfdcRef::~ReturnCodeHwpFfdcRef()
+{
+ delete [] iv_pFfdc;
+ iv_pFfdc = NULL;
+}
+
+//******************************************************************************
+// ReturnCodeHwpFfdcRef getData function
+//******************************************************************************
+const void * ReturnCodeHwpFfdcRef::getData(uint32_t & o_size) const
+{
+ o_size = iv_size;
+ return iv_pFfdc;
+}
+
}
OpenPOWER on IntegriCloud