Description
Each port of BFD to a different machine requires the creation
of a target back end. All the back end provides to the root
part of BFD is a structure containing pointers to functions
which perform certain low level operations on files. BFD
translates the applications's requests through a pointer into
calls to the back end routines.
When a file is opened with bfd_openr
, its format and
target are unknown. BFD uses various mechanisms to determine
how to interpret the file. The operations performed are:
_bfd_new_bfd
, then call bfd_find_target
with the
target string supplied to bfd_openr
and the new BFD pointer.
bfd_find_target
,
look up the environment variable GNUTARGET
and use
that as the target string.
NULL
, or the target string is
default
, then use the first item in the target vector
as the target type, and set target_defaulted
in the BFD to
cause bfd_check_format
to loop through all the targets.
See bfd_target. See Formats.
bfd_error_invalid_target
to
bfd_openr
.
bfd_openr
attempts to open the file using
bfd_open_file
, and returns the BFD.
bfd_check_format
on the BFD with a suggested format.
If target_defaulted
has been set, each possible target
type is tried to see if it recognizes the specified format.
bfd_check_format
returns TRUE
when the caller guesses right.