elftc_bfd_find_target,
elftc_bfd_target_byteorder,
elftc_bfd_target_class,
elftc_bfd_target_flavor,
elftc_bfd_target_machine —
binary object descriptor handling
#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);
unsigned int
elftc_bfd_target_osabi(Elftc_Bfd_Target
*target);
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:
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:
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.
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));