// IBM_PROLOG_BEGIN_TAG // This is an automatically generated prolog. // // $Source: src/include/usr/targeting/util.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_COMMON_UTIL_H #define __TARGETING_COMMON_UTIL_H /** * @file targeting/common/util.H * * @brief Targeting utility functions */ namespace TARGETING { class Target; /** * @brief Macro which indicates whether to translate addresses or not * * @par Detailed Description: * If PPC platform (FSP or Hostboot), if 8 byte pointers then it's * Hostboot, so don't translate. If 4 byte pointers then it's FSP so * translate. If !PPC (x86 32 or 64 bit), then always translate * * @note List of preprocessor macros defined can be determined by calling: * ppc64-mcp6-gcc -dM -E - < /dev/null */ #ifdef __PPC__ #define TARG_ADDR_TRANSLATION_REQUIRED (sizeof(void*)==4) #else #define TARG_ADDR_TRANSLATION_REQUIRED (1) #endif /** * @brief Checks to see if we are running in a hardware simulation * environment, i.e. VPO/VBU (not Simics) * * @return true if in VPO/VBU */ bool is_vpo( void ); /** * @brief Safely fetch the HUID of a Target * @param[in] Pointer to a Target * @return HUID of Target, Zero if NULL, 0xFFFFFFFF if Sentinel */ uint32_t get_huid( const Target* i_target ); } #endif // __TARGETING_COMMON_UTIL_H