]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ia32/ProcessorBind.h
MdePkg/ProcessorBind: add defines for page allocation granularity
[mirror_edk2.git] / MdePkg / Include / Ia32 / ProcessorBind.h
index f1a84d7bb663b80b920b9a0ee4235bd4c70e5a54..8ba2348261a2c812275b4f4736f0997a9b050ff9 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Processor or Compiler specific defines and types for IA-32 architecture.\r
 \r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under \r
 the terms and conditions of the BSD License that accompanies this distribution.  \r
 The full text of the license may be found at\r
@@ -79,7 +79,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #pragma warning ( disable : 4057 )\r
 \r
 //\r
-// ASSERT(FALSE) or while (TRUE) are legal constructes so supress this warning\r
+// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning\r
 //\r
 #pragma warning ( disable : 4127 )\r
 \r
@@ -93,13 +93,33 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 //\r
 #pragma warning ( disable : 4206 )\r
 \r
+#if _MSC_VER == 1800 || _MSC_VER == 1900\r
+\r
+//\r
+// Disable these warnings for VS2013.\r
+//\r
+\r
+//\r
+// This warning is for potentially uninitialized local variable, and it may cause false \r
+// positive issues in VS2013 and VS2015 build\r
+//\r
+#pragma warning ( disable : 4701 )\r
+  \r
+//\r
+// This warning is for potentially uninitialized local pointer variable, and it may cause \r
+// false positive issues in VS2013 and VS2015 build\r
+//\r
+#pragma warning ( disable : 4703 )\r
+  \r
+#endif\r
+\r
 #endif\r
 \r
 \r
 #if defined(_MSC_EXTENSIONS)\r
 \r
   //\r
-  // use Microsoft C complier dependent integer width types \r
+  // use Microsoft C compiler dependent integer width types\r
   //\r
 \r
   ///\r
@@ -147,7 +167,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
   ///\r
   /// 1-byte signed value.\r
   ///\r
-  typedef char                INT8;\r
+  typedef signed char         INT8;\r
 #else  \r
   ///\r
   /// 8-byte unsigned value.\r
@@ -194,7 +214,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
   ///\r
   /// 1-byte signed value\r
   ///\r
-  typedef char                INT8;\r
+  typedef signed char         INT8;\r
 #endif\r
 \r
 ///\r
@@ -226,11 +246,23 @@ typedef INT32   INTN;
 ///\r
 #define MAX_ADDRESS   0xFFFFFFFF\r
 \r
+///\r
+/// Maximum legal IA-32 INTN and UINTN values.\r
+///\r
+#define MAX_INTN   ((INTN)0x7FFFFFFF)\r
+#define MAX_UINTN  ((UINTN)0xFFFFFFFF)\r
+\r
 ///\r
 /// The stack alignment required for IA-32.\r
 ///\r
 #define CPU_STACK_ALIGNMENT   sizeof(UINTN)\r
 \r
+///\r
+/// Page allocation granularity for IA-32.\r
+///\r
+#define DEFAULT_PAGE_ALLOCATION_GRANULARITY   (0x1000)\r
+#define RUNTIME_PAGE_ALLOCATION_GRANULARITY   (0x1000)\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
@@ -245,13 +277,17 @@ typedef INT32   INTN;
   /// Microsoft* compiler specific method for EFIAPI calling convention.\r
   /// \r
   #define EFIAPI __cdecl  \r
+#elif defined(__GNUC__)\r
+  ///\r
+  /// GCC specific method for EFIAPI calling convention.\r
+  /// \r
+  #define EFIAPI __attribute__((cdecl))  \r
 #else\r
-  #if defined(__GNUC__)\r
-    ///\r
-    /// GCC specific method for EFIAPI calling convention.\r
-    /// \r
-    #define EFIAPI __attribute__((cdecl))  \r
-  #endif  \r
+  ///\r
+  /// The default for a non Microsoft* or GCC compiler is to assume the EFI ABI\r
+  /// is the standard. \r
+  ///\r
+  #define EFIAPI\r
 #endif\r
 \r
 #if defined(__GNUC__)\r
@@ -274,5 +310,9 @@ typedef INT32   INTN;
 **/\r
 #define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)\r
 \r
+#ifndef __USER_LABEL_PREFIX__\r
+#define __USER_LABEL_PREFIX__ _\r
+#endif\r
+\r
 #endif\r
 \r