@section Initialization


@subsection Initialization functions
These are the functions that handle initializing a BFD.

@findex bfd_init
@subsubsection @code{bfd_init}
@strong{Synopsis}
@example
void bfd_init (void);
@end example
@strong{Description}@*
This routine must be called before any other BFD function to
initialize magical internal data structures.

