#define EFIAPI \r
#endif\r
\r
-///\r
-/// The Microsoft* C compiler can removed references to unreferenced data items\r
-/// if the /OPT:REF linker option is used. We defined a macro as this is a \r
-/// a non standard extension. Currently not supported by the EBC compiler\r
-///\r
-#define GLOBAL_REMOVE_IF_UNREFERENCED\r
-\r
-\r
/**\r
Return the pointer to the first instruction of a function given a function pointer.\r
On EBC architectures, these two pointer values are the same, \r
#endif \r
#endif\r
\r
-//\r
-// The Microsoft* C compiler can removed references to unreferenced data items\r
-// if the /OPT:REF linker option is used. We defined a macro as this is a \r
-// a non standard extension\r
-//\r
-#if defined(_MSC_EXTENSIONS)\r
- ///\r
- /// Remove global variable from the linked image if there are no references to \r
- /// it after all compiler and linker optimizations have been performed.\r
- ///\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)\r
-#else\r
- ///\r
- /// Remove global variable from the linked image if there are no references to \r
- /// it after all compiler and linker optimizations have been performed.\r
- ///\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED\r
-#endif\r
-\r
//\r
// For symbol name in GNU assembly code, an extra "_" is necessary\r
//\r
#if defined(__GNUC__)\r
- ///\r
- /// Private worker functions for ASM_PFX()\r
- ///\r
- #define _CONCATENATE(a, b) __CONCATENATE(a, b)\r
- #define __CONCATENATE(a, b) a ## b\r
-\r
- ///\r
- /// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix\r
- /// on symbols in assembly language.\r
- ///\r
- #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)\r
-\r
///\r
/// For GNU assembly code, .global or .globl can declare global symbols.\r
/// Define this macro to unify the usage.\r
#define EFIAPI\r
#endif\r
\r
-//\r
-// The Microsoft* C compiler can removed references to unreferenced data items\r
-// if the /OPT:REF linker option is used. We defined a macro as this is a\r
-// a non standard extension\r
-//\r
-#if defined(_MSC_EXTENSIONS)\r
- ///\r
- /// Remove global variable from the linked image if there are no references to \r
- /// it after all compiler and linker optimizations have been performed.\r
- ///\r
- ///\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)\r
-#else\r
- ///\r
- /// Remove global variable from the linked image if there are no references to \r
- /// it after all compiler and linker optimizations have been performed.\r
- ///\r
- ///\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED\r
-#endif\r
-\r
///\r
/// For GNU assembly code, .global or .globl can declare global symbols.\r
/// Define this macro to unify the usage.\r
///\r
#define MDE_CPU_X64\r
\r
-\r
//\r
// Make sure we are using the correct packing rules per EFI specification\r
//\r
#define EFIAPI \r
#endif\r
\r
-//\r
-// The Microsoft* C compiler can removed references to unreferenced data items\r
-// if the /OPT:REF linker option is used. We defined a macro as this is a \r
-// a non standard extension\r
-//\r
-#if defined(_MSC_EXTENSIONS)\r
- ///\r
- /// Remove global variable from the linked image if there are no references to \r
- /// it after all compiler and linker optimizations have been performed.\r
- ///\r
- ///\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)\r
-#else\r
- ///\r
- /// Remove global variable from the linked image if there are no references to \r
- /// it after all compiler and linker optimizations have been performed.\r
- ///\r
- ///\r
- #define GLOBAL_REMOVE_IF_UNREFERENCED\r
-#endif\r
-\r
//\r
// For symbol name in GNU assembly code, an extra "_" is necessary\r
//\r
#if defined(__GNUC__)\r
- ///\r
- /// Private worker functions for ASM_PFX()\r
- ///\r
- #define _CONCATENATE(a, b) __CONCATENATE(a, b)\r
- #define __CONCATENATE(a, b) a ## b\r
-\r
- ///\r
- /// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix\r
- /// on symbols in assembly language.\r
- ///\r
- #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)\r
-\r
///\r
/// For GNU assembly code, .global or .globl can declare global symbols.\r
/// Define this macro to unify the usage.\r