Back to index

cell-binutils  2.17cvs20070401
i370.h
Go to the documentation of this file.
00001 /* i370 ELF support for BFD.
00002    Copyright 2000, 2002 Free Software Foundation, Inc.
00003 
00004 This file is part of BFD, the Binary File Descriptor library.
00005 
00006 This program is free software; you can redistribute it and/or modify
00007 it under the terms of the GNU General Public License as published by
00008 the Free Software Foundation; either version 2 of the License, or
00009 (at your option) any later version.
00010 
00011 This program is distributed in the hope that it will be useful,
00012 but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 GNU General Public License for more details.
00015 
00016 You should have received a copy of the GNU General Public License
00017 along with this program; if not, write to the Free Software
00018 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
00019 
00020 /* This file holds definitions specific to the i370 ELF ABI.  Note
00021    that most of this is not actually implemented by BFD.  */
00022 
00023 #ifndef _ELF_I370_H
00024 #define _ELF_I370_H
00025 
00026 #include "elf/reloc-macros.h"
00027 
00028 /* Processor specific section headers, sh_type field */
00029 
00030 #define SHT_ORDERED         SHT_HIPROC    /* Link editor is to sort the \
00031                                              entries in this section \
00032                                              based on the address \
00033                                              specified in the associated \
00034                                              symbol table entry.  */
00035 
00036 #define       EF_I370_RELOCATABLE  0x00010000    /* i370 -mrelocatable flag */
00037 #define       EF_I370_RELOCATABLE_LIB     0x00008000    /* i370 -mrelocatable-lib flag */
00038 /* Processor specific section flags, sh_flags field */
00039 
00040 #define SHF_EXCLUDE         0x80000000    /* Link editor is to exclude \
00041                                              this section from executable \
00042                                              and shared objects that it \
00043                                              builds when those objects \
00044                                              are not to be furhter \
00045                                              relocated.  */
00046 
00047 /* i370 relocations
00048    Note that there is really just one relocation that we currently
00049    support (and only one that we seem to need, at the moment), and
00050    that is the 31-bit address relocation.  Note that the 370/390
00051    only supports a 31-bit (2GB) address space.  */
00052 
00053 START_RELOC_NUMBERS (i370_reloc_type)
00054   RELOC_NUMBER (R_I370_NONE,      0)
00055   RELOC_NUMBER (R_I370_ADDR31,    1)
00056   RELOC_NUMBER (R_I370_ADDR32,    2)
00057   RELOC_NUMBER (R_I370_ADDR16,    3) 
00058   RELOC_NUMBER (R_I370_REL31,     4)
00059   RELOC_NUMBER (R_I370_REL32,     5)  
00060   RELOC_NUMBER (R_I370_ADDR12,    6)
00061   RELOC_NUMBER (R_I370_REL12,     7)
00062   RELOC_NUMBER (R_I370_ADDR8,     8)
00063   RELOC_NUMBER (R_I370_REL8,      9)
00064   RELOC_NUMBER (R_I370_COPY,     10)
00065   RELOC_NUMBER (R_I370_RELATIVE, 11)
00066 END_RELOC_NUMBERS (R_I370_max)
00067 
00068 #endif /* _ELF_I370_H */