• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2   Specific relocation fixups for none Itanium architecture.
3 
4   Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php.
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #include "BasePeCoffLibInternals.h"
16 
17 
18 /**
19   Performs an Itanium-based specific relocation fixup and is a no-op on other
20   instruction sets.
21 
22   @param  Reloc       The pointer to the relocation record.
23   @param  Fixup       The pointer to the address to fix up.
24   @param  FixupData   The pointer to a buffer to log the fixups.
25   @param  Adjust      The offset to adjust the fixup.
26 
27   @return Status code.
28 
29 **/
30 RETURN_STATUS
PeCoffLoaderRelocateImageEx(IN UINT16 * Reloc,IN OUT CHAR8 * Fixup,IN OUT CHAR8 ** FixupData,IN UINT64 Adjust)31 PeCoffLoaderRelocateImageEx (
32   IN UINT16      *Reloc,
33   IN OUT CHAR8   *Fixup,
34   IN OUT CHAR8   **FixupData,
35   IN UINT64      Adjust
36   )
37 {
38   return RETURN_UNSUPPORTED;
39 }
40 
41 /**
42   Returns TRUE if the machine type of PE/COFF image is supported. Supported
43   does not mean the image can be executed it means the PE/COFF loader supports
44   loading and relocating of the image type. It's up to the caller to support
45   the entry point.
46 
47   The IA32/X64 version PE/COFF loader/relocater both support IA32, X64 and EBC images.
48 
49   @param  Machine   The machine type from the PE Header.
50 
51   @return TRUE if this PE/COFF loader can load the image
52 
53 **/
54 BOOLEAN
PeCoffLoaderImageFormatSupported(IN UINT16 Machine)55 PeCoffLoaderImageFormatSupported (
56   IN  UINT16  Machine
57   )
58 {
59   if ((Machine == IMAGE_FILE_MACHINE_I386) || (Machine == IMAGE_FILE_MACHINE_X64) ||
60       (Machine == IMAGE_FILE_MACHINE_EBC) || (Machine == IMAGE_FILE_MACHINE_ARM64)) {
61     return TRUE;
62   }
63 
64   return FALSE;
65 }
66 
67 /**
68   Performs an Itanium-based specific re-relocation fixup and is a no-op on other
69   instruction sets. This is used to re-relocated the image into the EFI virtual
70   space for runtime calls.
71 
72   @param  Reloc       The pointer to the relocation record.
73   @param  Fixup       The pointer to the address to fix up.
74   @param  FixupData   The pointer to a buffer to log the fixups.
75   @param  Adjust      The offset to adjust the fixup.
76 
77   @return Status code.
78 
79 **/
80 RETURN_STATUS
PeHotRelocateImageEx(IN UINT16 * Reloc,IN OUT CHAR8 * Fixup,IN OUT CHAR8 ** FixupData,IN UINT64 Adjust)81 PeHotRelocateImageEx (
82   IN UINT16      *Reloc,
83   IN OUT CHAR8   *Fixup,
84   IN OUT CHAR8   **FixupData,
85   IN UINT64      Adjust
86   )
87 {
88   return RETURN_UNSUPPORTED;
89 }
90 
91