-#define EFI_PAGE_SIZE 0x1000\r
-#define EFI_PAGE_MASK 0xFFF\r
-#define EFI_PAGE_SHIFT 12\r
+#define EFI_PAGE_SIZE 0x1000\r
+#define EFI_PAGE_MASK 0xFFF\r
+#define EFI_PAGE_SHIFT 12\r
+\r
+#define EFI_SIZE_TO_PAGES(a) (((a) >> EFI_PAGE_SHIFT) + (((a) & EFI_PAGE_MASK) ? 1 : 0))\r
+\r
+#define EFI_PAGES_TO_SIZE(a) ( (a) << EFI_PAGE_SHIFT)\r
+\r
+///\r
+/// PE32+ Machine type for IA32 UEFI images.\r
+///\r
+#define EFI_IMAGE_MACHINE_IA32 0x014C\r
+\r
+///\r
+/// PE32+ Machine type for IA64 UEFI images.\r
+///\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