]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ipf/ProcessorBind.h
Declare the alignment required for jump Buffers
[mirror_edk2.git] / MdePkg / Include / Ipf / ProcessorBind.h
index 99da96ca05606e464f4173c2737d621c11ee6ac0..a7fc3a9d8ed39cff5777e4da5ece771ae858dbd8 100644 (file)
 //\r
 #pragma warning ( disable : 4057 )\r
 \r
+//\r
+// Disable warning on conversion from function pointer to a data pointer\r
+//\r
+#pragma warning ( disable : 4054 )\r
+\r
 //\r
 // ASSERT(FALSE) or while (TRUE) are legal constructes so supress this warning\r
 //\r
 //\r
 #pragma warning ( disable : 4514 )\r
 \r
+//\r
+// This warning is caused by functions defined but not used. For precompiled header only.\r
+//\r
+#pragma warning ( disable : 4505 )\r
+\r
+//\r
+// This warning is caused by empty (after preprocessing) souce file. For precompiled header only.\r
+//\r
+#pragma warning ( disable : 4206 )\r
 \r
 #endif\r
 \r
@@ -162,6 +176,12 @@ typedef INT64   INTN;
 //\r
 #define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL\r
 \r
+//\r
+// Per the Itanium Software Conventions and Runtime Architecture Guide,\r
+// section 3.3.4, IPF stack must always be 16-byte aligned.\r
+//\r
+#define CPU_STACK_ALIGNMENT   16\r
+\r
 //\r
 // Modifier to ensure that all protocol member functions and EFI intrinsics\r
 // use the correct C calling convention. All protocol member functions and\r
@@ -181,7 +201,11 @@ typedef INT64   INTN;
 //  if the /OPT:REF linker option is used. We defined a macro as this is a \r
 //  a non standard extension\r
 //\r
-#define GLOBAL_REMOVE_IF_UNREFERENCED\r
+#if _MSC_EXTENSIONS\r
+  #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)\r
+#else\r
+  #define GLOBAL_REMOVE_IF_UNREFERENCED\r
+#endif\r
 \r
 //\r
 // A pointer to a function in IPF points to a plabel.\r