Go to the first, previous, next, last section, table of contents.


Section prototypes

These are the functions exported by the section handling part of BFD.

bfd_get_section_by_name

Synopsis

asection *bfd_get_section_by_name(bfd *abfd, CONST char *name);

Description
Run through abfd and return the one of the asections whose name matches name, otherwise NULL. See section 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_make_section_old_way

Synopsis

asection *bfd_make_section_old_way(bfd *abfd, CONST char *name);

Description
Create a new empty section called name and attach it to the end of the chain of sections for the BFD abfd. An attempt to create a section with a name which is already in use returns its pointer without changing the section chain.

It has the funny name since this is the way it used to be before it was rewritten....

Possible errors are:

bfd_make_section_anyway

Synopsis

asection *bfd_make_section_anyway(bfd *abfd, CONST char *name);

Description
Create a new empty section called name and attach it to the end of the chain of sections for abfd. Create a new section even if there is already a section with that name.

Return NULL and set bfd_error on error; possible errors are:

bfd_make_section

Synopsis

asection *bfd_make_section(bfd *, CONST char *name);

Description
Like bfd_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

boolean bfd_set_section_flags(bfd *abfd, asection *sec, flagword flags);

Description
Set the attributes of the section sec in the BFD abfd to the value flags. Return true on success, false on error. Possible error returns are:

bfd_map_over_sections

Synopsis

void bfd_map_over_sections(bfd *abfd,
    void (*func)(bfd *abfd,
    asection *sect,
    PTR obj),
    PTR obj);

Description
Call the provided function func for each section attached to the BFD abfd, passing obj as an argument. The function will be called as if by

       func(abfd, the_section, obj);

This is the prefered 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

boolean bfd_set_section_size(bfd *abfd, asection *sec, bfd_size_type val);

Description
Set sec to the size val. If the operation is ok, then true is returned, else false.

Possible error returns:

bfd_set_section_contents

Synopsis

boolean bfd_set_section_contents
   (bfd *abfd,
    asection *section,
    PTR data,
    file_ptr offset,
    bfd_size_type count);

Description
Sets the contents of the section section in BFD abfd to the data starting in memory at data. The data is written to the output section starting at offset offset for count bytes.

Normally true is returned, else false. Possible error returns are:

This routine is front end to the back end function _bfd_set_section_contents.

bfd_get_section_contents

Synopsis

boolean bfd_get_section_contents
   (bfd *abfd, asection *section, PTR location,
    file_ptr offset, bfd_size_type count);

Description
Read data from section in BFD abfd into memory starting at location. The data is read at an offset of offset from the start of the input section, and is read for count bytes.

If 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

boolean bfd_copy_private_section_data(bfd *ibfd, asection *isec, bfd *obfd, asection *osec);

Description
Copy private section information from isec in the BFD ibfd to the section osec in the BFD obfd. Return true on success, false on error. Possible error returns are:

#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
     BFD_SEND (obfd, _bfd_copy_private_section_data, \
               (ibfd, isection, obfd, osection))


Go to the first, previous, next, last section, table of contents.