summaryrefslogtreecommitdiffstats
path: root/src/usr/errl/errludstring.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/errl/errludstring.C')
-rw-r--r--src/usr/errl/errludstring.C56
1 files changed, 55 insertions, 1 deletions
diff --git a/src/usr/errl/errludstring.C b/src/usr/errl/errludstring.C
index 43943774d..888a303b6 100644
--- a/src/usr/errl/errludstring.C
+++ b/src/usr/errl/errludstring.C
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2017 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -54,5 +56,57 @@ ErrlUserDetailsString::~ErrlUserDetailsString()
}
+// ErrlUserDetailsStringSet implementation
+
+ErrlUserDetailsStringSet::ErrlUserDetailsStringSet()
+{
+ // Set up ErrlUserDetails instance variables
+ iv_CompId = ERRL_COMP_ID;
+ iv_Version = ERRL_UDT_STRING_SET_VER_1;
+ iv_SubSection = ERRL_UDT_STRING_SET;
+
+ // override the default of false.
+ iv_merge = true;
}
+void ErrlUserDetailsStringSet::add(
+ const char* const i_pDescriptionString,
+ const char* const i_pString)
+{
+ // [Object Memory Layout]
+ //
+ // Offset Size Description
+ // =========================================================================
+ // 0 X Existing object contents before this call, where X=0 if
+ // this is the first add call to the object
+ // X Y NULL terminated description string describing the string
+ // being logged, where Y=strlen(this string) + length (1) of
+ // NULL terminator.
+ // X+Y Z NULL terminated FFDC string, where Z=strlen(this string) +
+ // length (1) of NULL terminator.
+
+ // Absorb API errors on error path and instead substitue error string for
+ // any input that is nullptr
+ const char* const pDescriptionString = (i_pDescriptionString == nullptr) ?
+ "BUG! Invalid description" : i_pDescriptionString;
+ const char* const pString = (i_pString == nullptr) ? "BUG! Invalid string" :
+ i_pString;
+
+ const auto currentSize = static_cast<size_t>(getUsrBufSize());
+ const auto descriptionSize = strlen(pDescriptionString)+1;
+ const auto stringSize = strlen(pString)+1;
+ const auto newSize = currentSize + descriptionSize + stringSize;
+ char* const pBuf = reinterpret_cast<char*>(
+ reallocUsrBuf(newSize));
+ strcpy(pBuf+currentSize, pDescriptionString);
+ strcpy(pBuf+currentSize+descriptionSize,pString);
+}
+
+ErrlUserDetailsStringSet::~ErrlUserDetailsStringSet()
+{
+
+}
+
+} // End of ERRORLOG namespace
+
+
OpenPOWER on IntegriCloud