]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BasePeCoffLib/Ia32/PeCoffLoaderEx.c
Removed cross references from PciCf8Lib and PciExpressLib class to PciLib class.
[mirror_edk2.git] / MdePkg / Library / BasePeCoffLib / Ia32 / PeCoffLoaderEx.c
index 4ee64c2b367f92c6e3edc528d17edef568034963..9515a09f4d318605267b501f04234a77bfa31637 100644 (file)
 /**\r
   Performs an IA-32 specific relocation fixup.\r
 \r
-  @param  Reloc Pointer to the relocation record.\r
+  @param  Reloc       Pointer to the relocation record.\r
+  @param  Fixup       Pointer to the address to fix up.\r
+  @param  FixupData   Pointer to a buffer to log the fixups.\r
+  @param  Adjust      The offset to adjust the fixup.\r
 \r
-  @param  Fixup Pointer to the address to fix up.\r
+  @retval EFI_UNSUPPORTED Unsupported now.\r
 \r
-  @param  FixupData Pointer to a buffer to log the fixups.\r
+**/\r
+RETURN_STATUS\r
+PeCoffLoaderRelocateImageEx (\r
+  IN UINT16      *Reloc,\r
+  IN OUT CHAR8   *Fixup,\r
+  IN OUT CHAR8   **FixupData,\r
+  IN UINT64      Adjust\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  Returns TRUE if the machine type of PE/COFF image is supported. Supported \r
+  does not mean the image can be executed it means the PE/COFF loader supports\r
+  loading and relocating of the image type. It's up to the caller to support\r
+  the entry point. \r
 \r
-  @param  Adjust The offset to adjust the fixup.\r
+  This function implies the basic PE/COFF loader/relocator supports IA32, EBC,\r
+  & X64 images. Calling the entry point in a correct mannor is up to the \r
+  consumer of this library.\r
 \r
-  @retval  EFI_UNSUPPORTED Unsupported now.\r
+  @param  Machine   Machine type from the PE Header.\r
+\r
+  @return TRUE if this PE/COFF loader can load the image\r
+\r
+**/\r
+BOOLEAN\r
+PeCoffLoaderImageFormatSupported (\r
+  IN  UINT16  Machine\r
+  )\r
+{\r
+  if ((Machine == EFI_IMAGE_MACHINE_IA32) || (Machine == EFI_IMAGE_MACHINE_X64) || \r
+      (Machine ==  EFI_IMAGE_MACHINE_EBC)) {\r
+    return TRUE; \r
+  }\r
+\r
+  return FALSE;\r
+}\r
+\r
+/**\r
+  Performs an Itanium-based specific re-relocation fixup and is a no-op on other\r
+  instruction sets. This is used to re-relocated the image into the EFI virtual\r
+  space for runtime calls.\r
+\r
+  @param  Reloc       Pointer to the relocation record.\r
+  @param  Fixup       Pointer to the address to fix up.\r
+  @param  FixupData   Pointer to a buffer to log the fixups.\r
+  @param  Adjust      The offset to adjust the fixup.\r
+\r
+  @return Status code.\r
 \r
 **/\r
 RETURN_STATUS\r
-PeCoffLoaderRelocateImageEx (\r
+PeHotRelocateImageEx (\r
   IN UINT16      *Reloc,\r
   IN OUT CHAR8   *Fixup,\r
   IN OUT CHAR8   **FixupData,\r
@@ -42,3 +91,4 @@ PeCoffLoaderRelocateImageEx (
 {\r
   return RETURN_UNSUPPORTED;\r
 }\r
+\r