diff options
| author | Nick Bofferding <bofferdn@us.ibm.com> | 2012-04-17 22:30:59 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-04-24 15:48:42 -0500 |
| commit | 4157b5631a1bbfcc7f9f95480b54e9ade7abce7d (patch) | |
| tree | 423f4f13a4a0e2d6e76898992a37b4d2db302b3b /src/include/usr/targeting/adapters | |
| parent | 5631ede5d2e63fa8585505eb29c6d86f420c9344 (diff) | |
| download | talos-hostboot-4157b5631a1bbfcc7f9f95480b54e9ade7abce7d.tar.gz talos-hostboot-4157b5631a1bbfcc7f9f95480b54e9ade7abce7d.zip | |
Support targeting code commonality
- Moved common targeting code to own subtrees
- Updated many components with header file changes
- Implemented abstract pointer class
- Implemented Hostboot specific support for targeting commonality
- Changed attribute VMM base address to 4 GB (From 3 GB)
- Removed tabs, fixed > 80 character lines
Change-Id: Ie5a6956670bfa4f262f7691b4f0ce5a20ed289fe
RTC: 35569
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/909
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
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 |

