source: trunk/binutils/bfd/doc/format.texi

Last change on this file was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 3.1 KB
Line 
1@section File formats
2A format is a BFD concept of high level file contents type. The
3formats supported by BFD are:
4
5@itemize @bullet
6
7@item
8@code{bfd_object}
9@end itemize
10The BFD may contain data, symbols, relocations and debug info.
11
12@itemize @bullet
13
14@item
15@code{bfd_archive}
16@end itemize
17The BFD contains other BFDs and an optional index.
18
19@itemize @bullet
20
21@item
22@code{bfd_core}
23@end itemize
24The BFD contains the result of an executable core dump.
25
26@findex bfd_check_format
27@subsubsection @code{bfd_check_format}
28@strong{Synopsis}
29@example
30bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
31@end example
32@strong{Description}@*
33Verify if the file attached to the BFD @var{abfd} is compatible
34with the format @var{format} (i.e., one of @code{bfd_object},
35@code{bfd_archive} or @code{bfd_core}).
36
37If the BFD has been set to a specific target before the
38call, only the named target and format combination is
39checked. If the target has not been set, or has been set to
40@code{default}, then all the known target backends is
41interrogated to determine a match. If the default target
42matches, it is used. If not, exactly one target must recognize
43the file, or an error results.
44
45The function returns @code{TRUE} on success, otherwise @code{FALSE}
46with one of the following error codes:
47
48@itemize @bullet
49
50@item
51@code{bfd_error_invalid_operation} -
52if @code{format} is not one of @code{bfd_object}, @code{bfd_archive} or
53@code{bfd_core}.
54
55@item
56@code{bfd_error_system_call} -
57if an error occured during a read - even some file mismatches
58can cause bfd_error_system_calls.
59
60@item
61@code{file_not_recognised} -
62none of the backends recognised the file format.
63
64@item
65@code{bfd_error_file_ambiguously_recognized} -
66more than one backend recognised the file format.
67@end itemize
68
69@findex bfd_check_format_matches
70@subsubsection @code{bfd_check_format_matches}
71@strong{Synopsis}
72@example
73bfd_boolean bfd_check_format_matches (bfd *abfd, bfd_format format,
74 char ***matching);
75@end example
76@strong{Description}@*
77Like @code{bfd_check_format}, except when it returns FALSE with
78@code{bfd_errno} set to @code{bfd_error_file_ambiguously_recognized}. In that
79case, if @var{matching} is not NULL, it will be filled in with
80a NULL-terminated list of the names of the formats that matched,
81allocated with @code{malloc}.
82Then the user may choose a format and try again.
83
84When done with the list that @var{matching} points to, the caller
85should free it.
86
87@findex bfd_set_format
88@subsubsection @code{bfd_set_format}
89@strong{Synopsis}
90@example
91bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
92@end example
93@strong{Description}@*
94This function sets the file format of the BFD @var{abfd} to the
95format @var{format}. If the target set in the BFD does not
96support the format requested, the format is invalid, or the BFD
97is not open for writing, then an error occurs.
98
99@findex bfd_format_string
100@subsubsection @code{bfd_format_string}
101@strong{Synopsis}
102@example
103const char *bfd_format_string (bfd_format format);
104@end example
105@strong{Description}@*
106Return a pointer to a const string
107@code{invalid}, @code{object}, @code{archive}, @code{core}, or @code{unknown},
108depending upon the value of @var{format}.
109
Note: See TracBrowser for help on using the repository browser.