EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index
Defines | Functions

ArmPkg/Library/BasePeCoffLib/Arm/PeCoffLoaderEx.c File Reference

#include "BasePeCoffLibInternals.h"

Go to the source code of this file.

Defines

#define EFI_IMAGE_REL_BASED_ARM_THUMB_MOVW   11
#define EFI_IMAGE_REL_BASED_ARM_THUMB_MOVT   12

Functions

UINT16 ThumbMovtImmediateAddress (IN UINT16 *Instruction)
VOID ThumbMovtImmediatePatch (IN OUT UINT16 *Instruction, IN UINT16 Address)
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

Specific relocation fixups for ARM architecture.

Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.
Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Definition in file PeCoffLoaderEx.c.


Define Documentation

#define EFI_IMAGE_REL_BASED_ARM_THUMB_MOVT   12

Definition at line 24 of file PeCoffLoaderEx.c.

#define EFI_IMAGE_REL_BASED_ARM_THUMB_MOVW   11

Definition at line 23 of file PeCoffLoaderEx.c.


Function Documentation

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.

The IA32/X64 version PE/COFF loader/relocater both support IA32, X64 and EBC images.

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

Definition at line 163 of file PeCoffLoaderEx.c.

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

Performs an ARM-based specific relocation fixup and is a no-op on other instruction sets.

Parameters:
RelocPointer to Pointer to the relocation record.
FixupPointer to the address to fix up.
FixupDataPointer to a buffer to log the fixups.
AdjustThe offset to adjust the fixup.
Returns:
Status code.

Definition at line 102 of file PeCoffLoaderEx.c.

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

Performs an ARM-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 188 of file PeCoffLoaderEx.c.

UINT16 ThumbMovtImmediateAddress ( IN UINT16 Instruction)

Pass in a pointer to an ARM MOVT or MOVW immediate instruciton and return the immediate data encoded in the instruction

Parameters:
InstructionPointer to ARM MOVT or MOVW immediate instruction
Returns:
Immediate address encoded in the instruction

Definition at line 37 of file PeCoffLoaderEx.c.

VOID ThumbMovtImmediatePatch ( IN OUT UINT16 Instruction,
IN UINT16  Address 
)

Update an ARM MOVT or MOVW immediate instruction immediate data.

Parameters:
InstructionPointer to ARM MOVT or MOVW immediate instruction
AddressNew addres to patch into the instruction

Definition at line 67 of file PeCoffLoaderEx.c.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines