]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Uefi/UefiBaseType.h
Update to make end-of-line consistent for all source files in MdePkg. There are no...
[mirror_edk2.git] / MdePkg / Include / Uefi / UefiBaseType.h
index 43814b9d0691424b9443f2c3bc61564d35593193..389660dd3f1467c0673f51372243f38ce780aaed 100644 (file)
@@ -1,7 +1,8 @@
 /** @file\r
   Defines data types and constants introduced in UEFI.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation\r
+  Copyright (c) 2006 - 2008, Intel Corporation<BR>\r
+  Portions Copyright (c) 2008-2009 Apple Inc.<BR>\r
   All rights reserved. This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -18,7 +19,7 @@
 #include <Base.h>\r
 \r
 //\r
-// Basical data type definitions introduced in UEFI.\r
+// Basic data type definitions introduced in UEFI.\r
 //\r
 \r
 ///\r
@@ -178,15 +179,72 @@ typedef union {
 #define EFI_PAGES_TO_SIZE(a)   ( (a) << EFI_PAGE_SHIFT)\r
 \r
 ///\r
-/// Limited buffer size for a language code recommended by RFC3066\r
-/// (42 characters plus a NULL terminator)\r
+/// PE32+ Machine type for IA32 UEFI images\r
 ///\r
-#define RFC_3066_ENTRY_SIZE             (42 + 1)\r
+#define EFI_IMAGE_MACHINE_IA32            0x014C\r
 \r
 ///\r
-/// The size of a 3 character ISO639 language code.\r
+/// PE32+ Machine type for IA64 UEFI images\r
 ///\r
-#define ISO_639_2_ENTRY_SIZE            3\r
+#define EFI_IMAGE_MACHINE_IA64            0x0200\r
 \r
+///\r
+/// PE32+ Machine type for EBC UEFI images\r
+///\r
+#define EFI_IMAGE_MACHINE_EBC             0x0EBC\r
+\r
+///\r
+/// PE32+ Machine type for X64 UEFI images\r
+///\r
+#define EFI_IMAGE_MACHINE_X64             0x8664\r
+\r
+///\r
+/// PE32+ Machine type for ARM mixed ARM and Thumb/Thumb2 images\r
+///\r
+#define EFI_IMAGE_MACHINE_ARMTHUMB_MIXED  0x01C2\r
+\r
+\r
+#if   defined (MDE_CPU_IA32)\r
+\r
+#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \\r
+  (((Machine) == EFI_IMAGE_MACHINE_IA32) || ((Machine) == EFI_IMAGE_MACHINE_EBC))\r
+\r
+#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_X64) \r
+\r
+#elif defined (MDE_CPU_IPF)\r
+\r
+#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \\r
+  (((Machine) == EFI_IMAGE_MACHINE_IA64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))\r
+\r
+#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE) \r
+\r
+#elif defined (MDE_CPU_X64)\r
+\r
+#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \\r
+  (((Machine) == EFI_IMAGE_MACHINE_X64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))\r
+\r
+#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_IA32) \r
+\r
+#elif defined (MDE_CPU_ARM)\r
+\r
+#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \\r
+  (((Machine) == EFI_IMAGE_MACHINE_ARMTHUMB_MIXED) || ((Machine) == EFI_IMAGE_MACHINE_EBC))\r
+\r
+#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_ARMTHUMB_MIXED) \r
+\r
+#elif defined (MDE_CPU_EBC)\r
+\r
+///\r
+/// This is just to make sure you can cross compile with the EBC compiler.\r
+/// It does not make sense to have a PE loader coded in EBC. You need to \r
+/// understand the basic.\r
+///\r
+#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_EBC)\r
+\r
+#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE) \r
+\r
+#else\r
+#error Unknown Processor Type\r
+#endif\r
 \r
 #endif\r