IN UINT64 Adjust\r
);\r
\r
-RETURN_STATUS\r
-PeCoffLoaderRelocateX64Image (\r
- IN UINT16 *Reloc,\r
- IN OUT CHAR8 *Fixup,\r
- IN OUT CHAR8 **FixupData,\r
- IN UINT64 Adjust\r
- );\r
-\r
RETURN_STATUS\r
PeCoffLoaderRelocateIpfImage (\r
IN UINT16 *Reloc,\r
IN UINT64 Adjust\r
);\r
\r
-RETURN_STATUS\r
-PeCoffLoaderRelocateAArch64Image (\r
- IN UINT16 *Reloc,\r
- IN OUT CHAR8 *Fixup,\r
- IN OUT CHAR8 **FixupData,\r
- IN UINT64 Adjust\r
- );\r
-\r
STATIC\r
RETURN_STATUS\r
PeCoffLoaderGetPeHeader (\r
CHAR8 *FixupBase;\r
UINT16 *F16;\r
UINT32 *F32;\r
+ UINT64 *F64;\r
CHAR8 *FixupData;\r
PHYSICAL_ADDRESS BaseAddress;\r
UINT16 MachineType;\r
}\r
break;\r
\r
+ case EFI_IMAGE_REL_BASED_DIR64:\r
+ F64 = (UINT64 *) Fixup;\r
+ *F64 = *F64 + (UINT64) Adjust;\r
+ if (FixupData != NULL) {\r
+ FixupData = ALIGN_POINTER (FixupData, sizeof (UINT64));\r
+ *(UINT64 *) FixupData = *F64;\r
+ FixupData = FixupData + sizeof (UINT64);\r
+ }\r
+ break;\r
+\r
case EFI_IMAGE_REL_BASED_HIGHADJ:\r
//\r
// Return the same EFI_UNSUPPORTED return code as\r
case EFI_IMAGE_MACHINE_ARMT:\r
Status = PeCoffLoaderRelocateArmImage (&Reloc, Fixup, &FixupData, Adjust);\r
break;\r
- case EFI_IMAGE_MACHINE_X64:\r
- Status = PeCoffLoaderRelocateX64Image (Reloc, Fixup, &FixupData, Adjust);\r
- break;\r
case EFI_IMAGE_MACHINE_IA64:\r
Status = PeCoffLoaderRelocateIpfImage (Reloc, Fixup, &FixupData, Adjust);\r
break;\r
- case EFI_IMAGE_MACHINE_AARCH64:\r
- Status = PeCoffLoaderRelocateAArch64Image (Reloc, Fixup, &FixupData, Adjust);\r
- break;\r
default:\r
Status = RETURN_UNSUPPORTED;\r
break;\r