summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/target.C
diff options
context:
space:
mode:
authorVan Lee <vanlee@us.ibm.com>2012-01-18 11:20:33 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-02-01 17:12:09 -0600
commit06b768407e1d6e212aeed8be23f31dfb27f2a9cc (patch)
tree4cc7d0295a8efc225b243ea13983803bfda213f7 /src/usr/targeting/target.C
parent3537d669cce337e37790cf7be62a817cbc88c811 (diff)
downloadtalos-hostboot-06b768407e1d6e212aeed8be23f31dfb27f2a9cc.tar.gz
talos-hostboot-06b768407e1d6e212aeed8be23f31dfb27f2a9cc.zip
Common Errl FFDC Classes: DCUT - RTC4289
Change-Id: Ie0c7cc6422d30fe0b5449eb54aaa62ebb54774e7 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/618 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/target.C')
-rw-r--r--src/usr/targeting/target.C53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/usr/targeting/target.C b/src/usr/targeting/target.C
index 714e614bd..10fbab4b8 100644
--- a/src/usr/targeting/target.C
+++ b/src/usr/targeting/target.C
@@ -178,6 +178,59 @@ Target::Target()
#undef TARG_FN
}
+//******************************************************************************
+// Target::targetFFDC()
+//******************************************************************************
+
+char * Target::targetFFDC( uint32_t & o_size ) const
+{
+ #define TARG_FN "targetFFDC(...)"
+
+ char l_buff[128];
+ char *l_pFFDC = NULL;
+ char *l_ptr = NULL;
+ void *l_ptr1 = NULL;
+ uint32_t l_len;
+
+ o_size = sprintf( l_buff, "Class = 0x%X, Type = 0x%X, Model = 0x%X",
+ getAttr<ATTR_CLASS>(),
+ getAttr<ATTR_TYPE>(),
+ getAttr<ATTR_MODEL>() );
+
+ l_pFFDC = static_cast<char*>( malloc( ++o_size ) );
+ memcpy( l_pFFDC, l_buff, o_size );
+
+ l_ptr = getAttr<ATTR_PHYS_PATH>().toString();
+ if (l_ptr)
+ {
+ l_len = strlen( l_ptr ) + 1;
+ l_ptr1 = realloc( l_pFFDC, o_size + l_len );
+ l_pFFDC = static_cast<char*>( l_ptr1 );
+ memcpy( l_pFFDC + o_size, l_ptr, l_len );
+ o_size += l_len;
+ free( l_ptr );
+ }
+
+ EntityPath l_entityPath;
+ if( tryGetAttr<ATTR_AFFINITY_PATH>(l_entityPath) )
+ {
+ l_ptr = l_entityPath.toString();
+ if (l_ptr)
+ {
+ l_len = strlen( l_ptr ) + 1;
+ l_ptr1 = realloc( l_pFFDC, o_size + l_len );
+ l_pFFDC = static_cast<char*>( l_ptr1 );
+ memcpy( l_pFFDC + o_size, l_ptr, l_len );
+ o_size += l_len;
+ free( l_ptr );
+ }
+ }
+
+ return l_pFFDC;
+
+ #undef TARG_FN
+}
+
#undef TARG_CLASS
#undef TARG_NAMESPACE
OpenPOWER on IntegriCloud