1214571Sdim/* SPU specific support for 32-bit ELF.
2214571Sdim
3214571Sdim   Copyright 2006, 2007 Free Software Foundation, Inc.
4214571Sdim
5214571Sdim   This file is part of BFD, the Binary File Descriptor library.
6214571Sdim
7214571Sdim   This program is free software; you can redistribute it and/or modify
8214571Sdim   it under the terms of the GNU General Public License as published by
9214571Sdim   the Free Software Foundation; either version 2 of the License, or
10214571Sdim   (at your option) any later version.
11214571Sdim
12214571Sdim   This program is distributed in the hope that it will be useful,
13214571Sdim   but WITHOUT ANY WARRANTY; without even the implied warranty of
14214571Sdim   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15214571Sdim   GNU General Public License for more details.
16214571Sdim
17214571Sdim   You should have received a copy of the GNU General Public License
18214571Sdim   along with this program; if not, write to the Free Software Foundation,
19214571Sdim   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20214571Sdim
21214571Sdim/* Extra info kept for SPU sections.  */
22214571Sdim
23214571Sdimstruct spu_elf_stack_info;
24214571Sdim
25214571Sdimstruct _spu_elf_section_data
26214571Sdim{
27214571Sdim  struct bfd_elf_section_data elf;
28214571Sdim
29214571Sdim  /* Stack analysis info kept for this section.  */
30214571Sdim
31214571Sdim  struct spu_elf_stack_info *stack_info;
32214571Sdim
33214571Sdim  /* Non-zero for overlay output sections.  */
34214571Sdim  unsigned int ovl_index;
35214571Sdim};
36214571Sdim
37214571Sdim#define spu_elf_section_data(sec) \
38214571Sdim  ((struct _spu_elf_section_data *) elf_section_data (sec))
39214571Sdim
40214571Sdimstruct _ovl_stream
41214571Sdim{
42214571Sdim  const void *start;
43214571Sdim  const void *end;
44214571Sdim};
45214571Sdim
46214571Sdimextern void spu_elf_plugin (int);
47214571Sdimextern bfd_boolean spu_elf_open_builtin_lib (bfd **,
48214571Sdim					     const struct _ovl_stream *);
49214571Sdimextern bfd_boolean spu_elf_create_sections (bfd *,
50214571Sdim					    struct bfd_link_info *, int, int);
51214571Sdimextern bfd_boolean spu_elf_find_overlays (bfd *, struct bfd_link_info *);
52214571Sdimextern bfd_boolean spu_elf_size_stubs (bfd *, struct bfd_link_info *, int, int,
53214571Sdim				       asection **, asection **,
54214571Sdim				       asection **);
55214571Sdimextern bfd_boolean spu_elf_build_stubs (struct bfd_link_info *, int,
56214571Sdim					asection *);
57214571Sdimextern asection *spu_elf_check_vma (bfd *, bfd_vma, bfd_vma);
58