/** @file\r
Processor or Compiler specific defines and types for Ia32 architecture.\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation<BR> \r
+ Copyright (c) 2006 - 2009, Intel Corporation<BR> \r
All rights reserved. This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
// use the correct C calling convention. All protocol member functions and\r
// EFI intrinsics are required to modify their member functions with EFIAPI.\r
//\r
-#if defined(_MSC_EXTENSIONS)\r
+#ifdef EFIAPI\r
+ ///\r
+ /// If EFIAPI is already defined, then we use that definition.\r
+ ///\r
+#elif defined(_MSC_EXTENSIONS)\r
///\r
/// Microsoft* compiler specific method for EFIAPI calling convension\r
/// \r
#endif\r
\r
//\r
-// For symbol name in GNU assembly code, an extra "_" is necessary\r
+// Macros for GNU assembly code\r
//\r
#if defined(__GNUC__)\r
#if defined(linux)\r
#else\r
#define ASM_PFX(name) _##name\r
#endif \r
+ ///\r
+ /// For GNU assembly code, .global or .globl can declare global symbols.\r
+ /// Define this macro to unify the usage.\r
+ ///\r
+ #define ASM_GLOBAL .globl\r
#endif\r
\r
/**\r