TianoCore EDK2 master
Loading...
Searching...
No Matches
PeCoffLoaderEx.c File Reference

Go to the source code of this file.

Functions

RETURN_STATUS PeCoffLoaderRelocateImageEx (IN UINT16 *Reloc, IN OUT CHAR8 *Fixup, IN OUT CHAR8 **FixupData, IN UINT64 Adjust)
 
BOOLEAN PeCoffLoaderImageFormatSupported (IN UINT16 Machine)
 
RETURN_STATUS PeHotRelocateImageEx (IN UINT16 *Reloc, IN OUT CHAR8 *Fixup, IN OUT CHAR8 **FixupData, IN UINT64 Adjust)
 

Detailed Description

PE/Coff loader for RISC-V PE image

Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file PeCoffLoaderEx.c.

Function Documentation

◆ PeCoffLoaderImageFormatSupported()

BOOLEAN PeCoffLoaderImageFormatSupported ( IN UINT16  Machine)

Returns TRUE if the machine type of PE/COFF image is supported. Supported does not mean the image can be executed it means the PE/COFF loader supports loading and relocating of the image type. It's up to the caller to support the entry point.

Parameters
MachineMachine type from the PE Header.
Returns
TRUE if this PE/COFF loader can load the image

Definition at line 103 of file PeCoffLoaderEx.c.

◆ PeCoffLoaderRelocateImageEx()

RETURN_STATUS PeCoffLoaderRelocateImageEx ( IN UINT16 *  Reloc,
IN OUT CHAR8 *  Fixup,
IN OUT CHAR8 **  FixupData,
IN UINT64  Adjust 
)

Performs an RISC-V specific relocation fixup and is a no-op on other instruction sets. RISC-V splits 32-bit fixup into 20bit and 12-bit with two relocation types. We have to know the lower 12-bit fixup first then we can deal carry over on high 20-bit fixup. So we log the high 20-bit in FixupData.

Parameters
RelocThe pointer to the relocation record.
FixupThe pointer to the address to fix up.
FixupDataThe pointer to a buffer to log the fixups.
AdjustThe offset to adjust the fixup.
Returns
Status code.

Definition at line 27 of file PeCoffLoaderEx.c.

◆ PeHotRelocateImageEx()

RETURN_STATUS PeHotRelocateImageEx ( IN UINT16 *  Reloc,
IN OUT CHAR8 *  Fixup,
IN OUT CHAR8 **  FixupData,
IN UINT64  Adjust 
)

Performs an Itanium-based specific re-relocation fixup and is a no-op on other instruction sets. This is used to re-relocated the image into the EFI virtual space for runtime calls.

Parameters
RelocThe pointer to the relocation record.
FixupThe pointer to the address to fix up.
FixupDataThe pointer to a buffer to log the fixups.
AdjustThe offset to adjust the fixup.
Returns
Status code.

Definition at line 136 of file PeCoffLoaderEx.c.