elf32-spu.h revision 259065
11556Srgrimes/* SPU specific support for 32-bit ELF.
21556Srgrimes
31556Srgrimes   Copyright 2006, 2007 Free Software Foundation, Inc.
41556Srgrimes
51556Srgrimes   This file is part of BFD, the Binary File Descriptor library.
61556Srgrimes
71556Srgrimes   This program is free software; you can redistribute it and/or modify
81556Srgrimes   it under the terms of the GNU General Public License as published by
91556Srgrimes   the Free Software Foundation; either version 2 of the License, or
101556Srgrimes   (at your option) any later version.
111556Srgrimes
121556Srgrimes   This program is distributed in the hope that it will be useful,
131556Srgrimes   but WITHOUT ANY WARRANTY; without even the implied warranty of
141556Srgrimes   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
151556Srgrimes   GNU General Public License for more details.
161556Srgrimes
171556Srgrimes   You should have received a copy of the GNU General Public License
181556Srgrimes   along with this program; if not, write to the Free Software Foundation,
191556Srgrimes   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
201556Srgrimes
211556Srgrimes/* Extra info kept for SPU sections.  */
221556Srgrimes
231556Srgrimesstruct spu_elf_stack_info;
241556Srgrimes
251556Srgrimesstruct _spu_elf_section_data
261556Srgrimes{
271556Srgrimes  struct bfd_elf_section_data elf;
281556Srgrimes
291556Srgrimes  /* Stack analysis info kept for this section.  */
301556Srgrimes
311556Srgrimes  struct spu_elf_stack_info *stack_info;
321556Srgrimes
331556Srgrimes  /* Non-zero for overlay output sections.  */
341556Srgrimes  unsigned int ovl_index;
351556Srgrimes};
361556Srgrimes
371556Srgrimes#define spu_elf_section_data(sec) \
3836150Scharnier  ((struct _spu_elf_section_data *) elf_section_data (sec))
3936150Scharnier
4036150Scharnierstruct _ovl_stream
411556Srgrimes{
4299110Sobrien  const void *start;
4399110Sobrien  const void *end;
441556Srgrimes};
4517987Speter
4617987Speterextern void spu_elf_plugin (int);
4717987Speterextern bfd_boolean spu_elf_open_builtin_lib (bfd **,
4899762Stjr					     const struct _ovl_stream *);
4917987Speterextern bfd_boolean spu_elf_create_sections (bfd *,
5017987Speter					    struct bfd_link_info *, int, int);
5117987Speterextern bfd_boolean spu_elf_find_overlays (bfd *, struct bfd_link_info *);
5217987Speterextern bfd_boolean spu_elf_size_stubs (bfd *, struct bfd_link_info *, int, int,
5317987Speter				       asection **, asection **,
5417987Speter				       asection **);
5569793Sobrienextern bfd_boolean spu_elf_build_stubs (struct bfd_link_info *, int,
5618018Speter					asection *);
5717987Speterextern asection *spu_elf_check_vma (bfd *, bfd_vma, bfd_vma);
581556Srgrimes