]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Include/Ia32/EfiBind.h
For ECP, disable ICC's remark #869: "Parameter" was never referenced warning.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Include / Ia32 / EfiBind.h
index 7c3c585b9e4fe528d3e05aafd4ed8d390d06a238..c89ca9d00eaae045e030f741a8d70cabe0bb13b1 100644 (file)
@@ -114,6 +114,12 @@ Abstract:
 //\r
 #pragma warning ( disable : 1419 )\r
 \r
+//\r
+// Disable ICC's remark #869: "Parameter" was never referenced warning.\r
+// This is legal ANSI C code so we disable the remark that is turned on with -Wall\r
+//\r
+#pragma warning ( disable : 869 )\r
+\r
 #endif\r
 \r
 \r
@@ -235,7 +241,12 @@ typedef int32_t   intn_t;
 // compiler will optimize away the rest of the function following, so that you run out in\r
 // the weeds if you skip over it with a debugger.\r
 //\r
+#ifdef _MSC_EXTENSIONS\r
 #define EFI_BREAKPOINT()  __asm { int 3 }\r
+#elif __GNUC__\r
+#define EFI_BREAKPOINT() asm("   int $3");\r
+#endif\r
+\r
 #define EFI_DEADLOOP()    { volatile UINTN __iii; __iii = 1; while (__iii); }\r
 \r
 //\r
@@ -295,7 +306,16 @@ typedef int32_t   intn_t;
 \r
 #endif\r
 \r
-\r
+//\r
+// For symbol name in GNU assembly code, an extra "_" is necessary\r
+//\r
+#if __GNUC__\r
+  #if defined(linux)\r
+    #define ASM_PFX(name) name\r
+  #else\r
+    #define ASM_PFX(name) _##name\r
+  #endif \r
+#endif\r
 \r
 #endif\r
 \r