summaryrefslogtreecommitdiffstats
path: root/src/include/usr/targeting/adapters
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/usr/targeting/adapters')
-rw-r--r--src/include/usr/targeting/adapters/assertadapter.H60
-rw-r--r--src/include/usr/targeting/adapters/erroradapter.H60
-rw-r--r--src/include/usr/targeting/adapters/traceadapter.H56
-rw-r--r--src/include/usr/targeting/adapters/types.H65
4 files changed, 241 insertions, 0 deletions
diff --git a/src/include/usr/targeting/adapters/assertadapter.H b/src/include/usr/targeting/adapters/assertadapter.H
new file mode 100644
index 000000000..6a61f46c1
--- /dev/null
+++ b/src/include/usr/targeting/adapters/assertadapter.H
@@ -0,0 +1,60 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/targeting/adapters/assertadapter.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 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 other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+#ifndef __TARGETING_ASSERTADAPTER_H
+#define __TARGETING_ASSERTADAPTER_H
+
+/**
+ * @file targeting/adapters/assertadapter.H
+ * @brief Forward common targeting assert requests to the platform specific
+ * handlers
+ *
+ * There are two different assert types provided:
+ * Standard assert behavior:
+ * assert(foo)
+ *
+ * Standard assert behavior with a custom trace message:
+ * assert(foo, "This is a trace %d", 1234)
+ */
+
+//******************************************************************************
+// Includes
+//******************************************************************************
+
+#include <assert.h>
+
+/**
+ * @brief Forward common targeting assert requests to platform specific handler
+ *
+ * @par Detailed Description:
+ * Forwards assert request to platform specific assert macro which verifies
+ * condition, calls custom trace if provided, and ultimately calls platform
+ * assert
+ *
+ * @param[in] expr,...
+ * Printf-like expression to act as the assert message
+ */
+#define TARG_ASSERT(expr,...) \
+ assert(expr,__VA_ARGS__)
+
+#endif // __TARGETING_ASSERTADAPTER_H
diff --git a/src/include/usr/targeting/adapters/erroradapter.H b/src/include/usr/targeting/adapters/erroradapter.H
new file mode 100644
index 000000000..c9df881b6
--- /dev/null
+++ b/src/include/usr/targeting/adapters/erroradapter.H
@@ -0,0 +1,60 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/targeting/adapters/erroradapter.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 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 other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+#ifndef __TARGETING_ERRORADAPTER_H
+#define __TARGETING_ERRORADAPTER_H
+
+/**
+ * @file targeting/adapters/erroradapter.H
+ *
+ * @brief Adapts platform neutral error log requests to the platform
+ */
+
+//******************************************************************************
+// Includes
+//******************************************************************************
+
+// Include the platform specific errlentry.H file and pick up the platform
+// specific errlHndlt_t typedef. This is enough for common code to use pass
+// errlHndl_t pointers around and check for NULL
+#include <errl/errlentry.H>
+
+namespace COMMON
+{
+
+namespace ERRORLOG
+{
+ /**
+ * @brief Import the ::ERRORLOG namespace into the ::COMMON:ERRORLOG
+ * namespace. This allows all the common targeting code to use the
+ * same namespacing yet directly invoke platform specific error log
+ * support. Since nothing else is declared in the namespace, there is
+ * no danger of a namespace collision.
+ */
+ using namespace ::ERRORLOG;
+
+} // End namespace COMMON
+
+} // End namespace ERRORLOG
+
+#endif // __TARGETING_ERRORADAPTER_H
diff --git a/src/include/usr/targeting/adapters/traceadapter.H b/src/include/usr/targeting/adapters/traceadapter.H
new file mode 100644
index 000000000..493f8e06c
--- /dev/null
+++ b/src/include/usr/targeting/adapters/traceadapter.H
@@ -0,0 +1,56 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/targeting/adapters/traceadapter.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 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 other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+#ifndef __TARGETING_TRACEADAPTER_H
+#define __TARGETING_TRACEADAPTER_H
+
+/**
+ * @file targeting/adapters/traceadapter.H
+ *
+ * @brief Platform specific targeting trace macro support
+ */
+
+//******************************************************************************
+// Includes
+//******************************************************************************
+
+// Other Components
+#include <trace/interface.H>
+
+// Give callers access to the trace buffer
+namespace TARGETING
+{
+
+/**
+ * @brief Map common trace type to platform specific trace type
+ */
+typedef trace_desc_t* TARG_TD_t;
+
+/**
+ * @brief Export trace descriptor
+ */
+extern TARG_TD_t g_trac_targeting;
+
+} // End namespace TARGETING
+
+#endif // __TARGETING_TRACEADAPTER_H
diff --git a/src/include/usr/targeting/adapters/types.H b/src/include/usr/targeting/adapters/types.H
new file mode 100644
index 000000000..264a6e55c
--- /dev/null
+++ b/src/include/usr/targeting/adapters/types.H
@@ -0,0 +1,65 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/targeting/adapters/types.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 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 other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+#ifndef __TARGETING_TYPES_H
+#define __TARGETING_TYPES_H
+
+/**
+ * @file targeting/adapters/types.H
+ *
+ * @brief Platform specific type translation support
+ */
+
+//******************************************************************************
+// Includes
+//******************************************************************************
+
+#include <sys/sync.h>
+#include <util/singleton.H>
+#include <hbotcompid.H>
+#include <vmmconst.h>
+
+/**
+ * @brief Adapt common singleton declaration to specific platform
+ *
+ * @param[in] __T__
+ * Type of singleton, fully namespaced
+ *
+ * @param[in] __NAME__
+ * Symbol name for singleton
+ */
+#define TARG_DECLARE_SINGLETON(__T__,__NAME__) \
+ typedef Singleton<__T__> __NAME__;
+
+/**
+ * @brief Adapt common singleton "getter" to the specific platform
+ *
+ * @param[in] __TYPE__
+ * Typedef for singleton, as created above
+ *
+ * @return Singleton reference for the given singleton
+ */
+#define TARG_GET_SINGLETON(__TYPE__) \
+ __TYPE__::instance()
+
+#endif // __TARGETING_TYPES_H
OpenPOWER on IntegriCloud