These are the functions exported by the section handling part of BFD.
bfd_section_list_clear
Synopsis
void bfd_section_list_clear (bfd *);
Descriptionbfd_get_section_by_name
Synopsis
asection *bfd_get_section_by_name (bfd *abfd, const char *name);
Descriptionasections whose name matches name, otherwise NULL.
See Sections, for more information.
This should only be used in special cases; the normal way to process
all sections of a given name is to use bfd_map_over_sections and
strcmp on the name (or better yet, base it on the section flags
or something else) for each section.
bfd_get_unique_section_name
Synopsis
char *bfd_get_unique_section_name
(bfd *abfd, const char *templat, int *count);
Descriptionbfd_make_section_old_way
Synopsis
asection *bfd_make_section_old_way (bfd *abfd, const char *name);
DescriptionIt has the funny name since this is the way it used to be before it was rewritten....
Possible errors are:
bfd_error_invalid_operation -
If output has already started for this BFD.
bfd_error_no_memory -
If memory allocation fails.
bfd_make_section_anyway
Synopsis
asection *bfd_make_section_anyway (bfd *abfd, const char *name);
DescriptionReturn NULL and set bfd_error on error; possible errors are:
bfd_error_invalid_operation - If output has already started for abfd.
bfd_error_no_memory - If memory allocation fails.
bfd_make_section
Synopsis
asection *bfd_make_section (bfd *, const char *name);
Descriptionbfd_make_section_anyway, but return NULL (without calling
bfd_set_error ()) without changing the section chain if there is already a
section named name. If there is an error, return NULL and set
bfd_error.
bfd_set_section_flags
Synopsis
bfd_boolean bfd_set_section_flags
(bfd *abfd, asection *sec, flagword flags);
DescriptionTRUE on success,
FALSE on error. Possible error returns are:
bfd_error_invalid_operation -
The section cannot have one or more of the attributes
requested. For example, a .bss section in a.out may not
have the SEC_HAS_CONTENTS field set.
bfd_map_over_sections
Synopsis
void bfd_map_over_sections
(bfd *abfd,
void (*func) (bfd *abfd, asection *sect, void *obj),
void *obj);
Description func (abfd, the_section, obj);
This is the preferred method for iterating over sections; an alternative would be to use a loop:
section *p;
for (p = abfd->sections; p != NULL; p = p->next)
func (abfd, p, ...)
bfd_set_section_size
Synopsis
bfd_boolean bfd_set_section_size
(bfd *abfd, asection *sec, bfd_size_type val);
DescriptionTRUE is returned, else FALSE.
Possible error returns:
bfd_error_invalid_operation -
Writing has started to the BFD, so setting the size is invalid.
bfd_set_section_contents
Synopsis
bfd_boolean bfd_set_section_contents
(bfd *abfd, asection *section, const void *data,
file_ptr offset, bfd_size_type count);
DescriptionNormally TRUE is returned, else FALSE. Possible error
returns are:
bfd_error_no_contents -
The output section does not have the SEC_HAS_CONTENTS
attribute, so nothing can be written to it.
_bfd_set_section_contents.
bfd_get_section_contents
Synopsis
bfd_boolean bfd_get_section_contents
(bfd *abfd, asection *section, void *location, file_ptr offset,
bfd_size_type count);
DescriptionIf the contents of a constructor with the SEC_CONSTRUCTOR
flag set are requested or if the section does not have the
SEC_HAS_CONTENTS flag set, then the location is filled
with zeroes. If no errors occur, TRUE is returned, else
FALSE.
bfd_copy_private_section_data
Synopsis
bfd_boolean bfd_copy_private_section_data
(bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
DescriptionTRUE on success, FALSE on error. Possible error
returns are:
bfd_error_no_memory -
Not enough memory exists to create private data for osec.
#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
BFD_SEND (obfd, _bfd_copy_private_section_data, \
(ibfd, isection, obfd, osection))
_bfd_strip_section_from_output
Synopsis
void _bfd_strip_section_from_output
(struct bfd_link_info *info, asection *section);
DescriptionThis function won't actually do anything except twiddle flags if called too late in the linking process, when it's not safe to remove sections.
bfd_generic_discard_group
Synopsis
bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
Description