]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ipf/ProcessorBind.h
Only include SmmCis.h if the CPU Arch is IA32 or X64
[mirror_edk2.git] / MdePkg / Include / Ipf / ProcessorBind.h
index 86374b2249a7344b8c44eab90aa68ebe7a9db223..119b5913c44c3ec4b4db4ee3365fb3ffe0084452 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
@@ -171,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
@@ -190,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
@@ -200,12 +215,5 @@ typedef struct {
   UINT64  GP;\r
 } EFI_PLABEL;\r
 \r
-typedef struct {\r
-  UINTN BootPhase;      // entry r20 value\r
-  UINTN UniqueId;       // PAL arbitration ID\r
-  UINTN HealthStat;     // Health Status\r
-  UINTN PALRetAddress;  // return address to PAL\r
-} IPF_HANDOFF_STATUS;\r
-\r
 #endif\r
 \r