diff options
Diffstat (limited to 'src/include/usr/targeting/adapters')
-rw-r--r-- | src/include/usr/targeting/adapters/assertadapter.H | 60 | ||||
-rw-r--r-- | src/include/usr/targeting/adapters/erroradapter.H | 60 | ||||
-rw-r--r-- | src/include/usr/targeting/adapters/traceadapter.H | 56 | ||||
-rw-r--r-- | src/include/usr/targeting/adapters/types.H | 65 |
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 |