ELFTC_BFD_FIND_TARGET(3) Library Functions Manual SourceForge Logo

NAME

elftc_bfd_find_target, elftc_bfd_target_byteorder, elftc_bfd_target_class, elftc_bfd_target_flavor, elftc_bfd_target_machinebinary object descriptor handling

LIBRARY

library “libelftc”

SYNOPSIS

#include <libelftc.h>
struct Elftc_Bfd_Target;
Elftc_Bfd_Target *
elftc_bfd_find_target(const char *target_name);
unsigned int
elftc_bfd_target_class(Elftc_Bfd_Target *target);
unsigned int
elftc_bfd_target_byteorder(Elftc_Bfd_Target *target);
Elftc_Bfd_Target_Flavor
elftc_bfd_target_flavor(Elftc_Bfd_Target *target);
unsigned int
elftc_bfd_target_machine(Elftc_Bfd_Target *target);

DESCRIPTION

Function elftc_bfd_find_target() locates a binary object descriptor corresponding to the descriptor name in argument target_name. Binary object descriptors encapsulate properties of an object format such as its file representation, ELF class, and byte endianness.
Known descriptor names and their properties include:
Name Object Format Byte Order Bit Width
binary Binary - -
efi-app-ia32 PE LSB 32
efi-app-x86_64 PE LSB 64
elf32-avr ELF LSB 32
elf32-big ELF MSB 32
elf32-bigarm ELF MSB 32
elf32-bigmips ELF MSB 32
elf32-i386 ELF LSB 32
elf32-i386-freebsd ELF LSB 32
elf32-ia64-big ELF MSB 32
elf32-little ELF LSB 32
elf32-littlearm ELF LSB 32
elf32-littlemips ELF LSB 32
elf32-powerpc ELF MSB 32
elf32-powerpc-freebsd ELF MSB 32
elf32-powerpcle ELF LSB 32
elf32-riscv ELF LSB 32
elf64-riscv ELF LSB 64
elf64-riscv-freebsd ELF LSB 64
elf32-sh ELF MSB 32
elf32-shl ELF LSB 32
elf32-sh-nbsd ELF MSB 32
elf32-shl-nbsd ELF LSB 32
elf32-shbig-linux ELF MSB 32
elf32-shl-linux ELF LSB 32
elf32-sparc ELF MSB 32
elf32-tradbigmips ELF MSB 32
elf32-tradlittlemips ELF LSB 32
elf64-alpha ELF LSB 64
elf64-alpha-freebsd ELF LSB 64
elf64-big ELF MSB 64
elf64-bigmips ELF MSB 64
elf64-ia64-big ELF MSB 64
elf64-ia64-little ELF LSB 64
elf64-little ELF LSB 64
elf64-littleaarch64 ELF LSB 64
elf64-littlemips ELF LSB 64
elf64-powerpc ELF MSB 64
elf64-powerpc-freebsd ELF MSB 64
elf64-powerpcle ELF LSB 64
elf64-sh64 ELF MSB 64
elf64-sh64l ELF LSB 64
elf64-sh64-nbsd ELF MSB 64
elf64-sh64l-nbsd ELF LSB 64
elf64-sh64big-linux ELF MSB 64
elf64-sh64-linux ELF LSB 64
elf64-sparc ELF MSB 64
elf64-sparc-freebsd ELF MSB 64
elf64-tradbigmips ELF MSB 64
elf64-tradlittlemips ELF LSB 64
elf64-x86-64 ELF LSB 64
elf64-x86-64-freebsd ELF LSB 64
ihex IHEX - -
pei-i386 PE LSB 32
pei-x86-64 PE LSB 64
srec SREC - -
symbolsrec SREC - -
Function elftc_bfd_target_byteorder() returns the ELF byte order associated with target descriptor target.
Function elftc_bfd_target_class() returns the ELF class associated with target descriptor target.
Function elftc_bfd_target_flavor() returns the object format associated with target descriptor target. The known object formats are:
ETF_ELF
An ELF object.
ETF_BINARY
Raw binary.
ETF_IHEX
An object encoded in Intel hex format.
ETF_NONE
An unknown object format.
ETF_SREC
An object encoded as S-records.

RETURN VALUES

Function elftc_bfd_find_target() returns a valid pointer to an opaque binary target descriptor if successful, or NULL in case of an error.
Function elftc_bfd_target_byteorder() returns the ELF byte order associated with the target descriptor; one of ELFDATA2MSB or ELFDATA2LSB.
Function elftc_bfd_target_class() returns the ELF class associated with the target descriptor; one of ELFCLASS32 or ELFCLASS64.
Function elftc_bfd_target_machine() returns the ELF architecture associated with the target descriptor.
Function elftc_bfd_target_flavor() returns one of ETF_BINARY, ETF_ELF, ETF_IHEX or ETF_SREC if successful or ETF_NONE in case of error.

EXAMPLES

To return descriptor information associated with target name “elf64-big” use:
struct Elftc_Bfd_Target *t; 
 
if ((t = elftc_bfd_find_target("elf64-big")) == NULL) 
	errx(EXIT_FAILURE, "Cannot find target descriptor"); 
 
printf("Class: %s\n", elftc_bfd_target_class(t) == ELFCLASS32 ? 
    "ELFCLASS32" : "ELFCLASS64"); 
printf("Byteorder: %s\n", 
    elftc_bfd_target_byteorder(t) == ELFDATA2LSB ? "LSB" : "MSB"); 
printf("Flavor: %d\n", elftc_bfd_target_flavor(t));

SEE ALSO

elf(3)
June 27, 2019 The Elftoolchain Project