summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/util/prdfAssert.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/util/prdfAssert.C')
-rwxr-xr-xsrc/usr/diag/prdf/common/util/prdfAssert.C103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/util/prdfAssert.C b/src/usr/diag/prdf/common/util/prdfAssert.C
new file mode 100755
index 000000000..4762e11da
--- /dev/null
+++ b/src/usr/diag/prdf/common/util/prdfAssert.C
@@ -0,0 +1,103 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/util/prdfAssert.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2004,2012 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+//----------------------------------------------------------------------
+// Includes
+//----------------------------------------------------------------------
+
+#define prdfAssert_C
+
+#include <prdfAssert.h>
+#include <iipglobl.h>
+#include <stdlib.h>
+#include <errlentry.H>
+#include <prdf_service_codes.H>
+#include <prdfMain.H>
+
+#ifdef __HOSTBOOT_MODULE
+ #include <assert.h>
+ #include <stdio.h>
+#else
+ #include <perc.H>
+#endif
+
+#undef prdfAssert_C
+
+using namespace PRDF;
+
+//---------------------------------------------------------------------
+// Member Function Specifications
+//---------------------------------------------------------------------
+
+void prdfAssert( const char * i_exp, const char * i_file, int i_line )
+{
+ PRDF_ERR( "prdfAssert(%s) in %s line %d", i_exp, i_file, i_line );
+
+ errlHndl_t errl = NULL;
+
+ /*@
+ * @errortype
+ * @subsys EPUB_FIRMWARE_SP
+ * @reasoncode PRDF_CODE_FAIL
+ * @moduleid PRDF_ASSERT
+ * @userdata1 0
+ * @userdata2 Line number of the assert
+ * @userdata3 0
+ * @userdata4 PRD Return code
+ * @devdesc PRD assert
+ * @procedure EPUB_PRC_SP_CODE
+ */
+ PRDF_CREATE_ERRL(errl,
+ ERRL_SEV_PREDICTIVE, // error on diagnostic
+ ERRL_ETYPE_NOT_APPLICABLE,
+ SRCI_ERR_INFO,
+ SRCI_NO_ATTR,
+ PRDF_ASSERT, // module id
+ FSP_DEFAULT_REFCODE, // refcode
+ PRDF_CODE_FAIL, // Reason code
+ 0, // user data word 1
+ i_line, // user data word 2
+ 0, // user data word 3
+ PRD_ASSERT); // user data word 4
+
+ PRDF_ADD_PROCEDURE_CALLOUT(errl, SRCI_PRIORITY_MED, EPUB_PRC_SP_CODE);
+ PRDF_SET_RC(errl, PRD_ASSERT);
+ PRDF_COLLECT_TRACE(errl, 256);
+ PRDF_COMMIT_ERRL(errl, ERRL_ACTION_SA);
+
+ #ifdef __HOSTBOOT_MODULE
+
+ assert(0);
+
+ #else
+
+ const size_t sz_msg = 160;
+ char msg[sz_msg];
+ errlslen_t msize = snprintf( msg, sz_msg, "prdfAssert(%s) in %s line %d",
+ i_exp, i_file, i_line );
+
+ percAbend(PRDF_COMP_ID, msg, msize+1, 0, 0);
+ abort();
+
+ #endif
+}
OpenPOWER on IntegriCloud