Command Section

ELFTC_BFD_FIND_TARGET(3)                      FreeBSD Library Functions Manual

NAME
     elftc_bfd_find_target, elftc_bfd_target_byteorder,
     elftc_bfd_target_class, elftc_bfd_target_flavor, elftc_bfd_target_machine
     - binary 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);

     unsigned int
     elftc_bfd_target_osabi(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)

FreeBSD 13.1-RELEASE-p6        February 12, 2020       FreeBSD 13.1-RELEASE-p6

Command Section

man2web Home...