]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ia32/ProcessorBind.h
update comments and refine code.
[mirror_edk2.git] / MdePkg / Include / Ia32 / ProcessorBind.h
index 61273e624ce6ae678073086abfe92b5f34757f4b..c452e62f32d1b8bdf44b1fc57efb4da8f39e749b 100644 (file)
@@ -1,5 +1,5 @@
 /** @file\r
-  Processor or Compiler specific defines and types for x64.\r
+  Processor or Compiler specific defines and types for Ia32 architecture.\r
 \r
   Copyright (c) 2006, Intel Corporation                                                         \r
   All rights reserved. This program and the accompanying materials                          \r
@@ -15,9 +15,9 @@
 #ifndef __PROCESSOR_BIND_H__\r
 #define __PROCESSOR_BIND_H__\r
 \r
-//\r
-// Define the processor type so other code can make processor based choices\r
-//\r
+///\r
+/// Define the processor type so other code can make processor based choices\r
+///\r
 #define MDE_CPU_IA32\r
 \r
 //\r
 #pragma pack()\r
 #endif\r
 \r
+#if __INTEL_COMPILER\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
+//\r
+// Disable ICC's remark #1418: external function definition with no prior declaration.\r
+// This is legal ANSI C code so we disable the remark that is turned on with /W4\r
+//\r
+#pragma warning ( disable : 1418 )\r
+\r
+//\r
+// Disable ICC's remark #1419: external declaration in primary source file\r
+// This is legal ANSI C code so we disable the remark that is turned on with /W4\r
+//\r
+#pragma warning ( disable : 1419 )\r
+\r
+#endif\r
+\r
+\r
 #if _MSC_EXTENSIONS\r
 \r
 //\r
@@ -74,7 +96,7 @@
   //\r
  \r
   #if _MSC_EXTENSIONS \r
-    \r
+\r
     //\r
     // use Microsoft* C complier dependent interger width types \r
     //\r
@@ -133,20 +155,20 @@ typedef UINT32  UINTN;
 typedef INT32   INTN;\r
 \r
 \r
-//\r
-// Processor specific defines\r
-//\r
+///\r
+/// Processor specific defines\r
+///\r
 #define MAX_BIT     0x80000000\r
 #define MAX_2_BITS  0xC0000000\r
 \r
-//\r
-// Maximum legal IA-32 address\r
-//\r
+///\r
+/// Maximum legal IA-32 address\r
+///\r
 #define MAX_ADDRESS   0xFFFFFFFF\r
 \r
-//\r
-// The stack alignment required for IA-32\r
-//\r
+///\r
+/// The stack alignment required for IA-32\r
+///\r
 #define CPU_STACK_ALIGNMENT   sizeof(UINTN)\r
 \r
 //\r
@@ -155,14 +177,14 @@ typedef INT32   INTN;
 // EFI intrinsics are required to modify thier member functions with EFIAPI.\r
 //\r
 #if _MSC_EXTENSIONS\r
-  //\r
-  // Microsoft* compiler requires _EFIAPI useage, __cdecl is Microsoft* specific C.\r
-  // \r
+  ///\r
+  /// Microsoft* compiler requires _EFIAPI useage, __cdecl is Microsoft* specific C.\r
+  /// \r
   #define EFIAPI __cdecl  \r
-#endif\r
-\r
-#if __GNUC__\r
-  #define EFIAPI __attribute__((cdecl))    \r
+#else\r
+  #if __GNUC__\r
+    #define EFIAPI __attribute__((cdecl))  \r
+  #endif  \r
 #endif\r
 \r
 //\r
@@ -176,5 +198,18 @@ typedef INT32   INTN;
   #define GLOBAL_REMOVE_IF_UNREFERENCED\r
 #endif\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
+#define FUNCTION_ENTRY_POINT(p) (p)\r
+\r
 #endif\r
 \r