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