1*2159047fSniklas /* SOM object file format. 2*2159047fSniklas Copyright (C) 1993 Free Software Foundation, Inc. 3*2159047fSniklas 4*2159047fSniklas This file is part of GAS, the GNU Assembler. 5*2159047fSniklas 6*2159047fSniklas GAS is free software; you can redistribute it and/or modify 7*2159047fSniklas it under the terms of the GNU General Public License as published by 8*2159047fSniklas the Free Software Foundation; either version 1, or (at your option) 9*2159047fSniklas any later version. 10*2159047fSniklas 11*2159047fSniklas GAS is distributed in the hope that it will be useful, 12*2159047fSniklas but WITHOUT ANY WARRANTY; without even the implied warranty of 13*2159047fSniklas MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*2159047fSniklas GNU General Public License for more details. 15*2159047fSniklas 16*2159047fSniklas You should have received a copy of the GNU General Public License 17*2159047fSniklas along with GAS; see the file COPYING. If not, write to 18*2159047fSniklas the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19*2159047fSniklas 20*2159047fSniklas Written by the Center for Software Science at the University of Utah 21*2159047fSniklas and by Cygnus Support. */ 22*2159047fSniklas 23*2159047fSniklas #ifndef _OBJ_SOM_H 24*2159047fSniklas #define _OBJ_SOM_H 25*2159047fSniklas 26*2159047fSniklas #define OBJ_SOM 1 27*2159047fSniklas 28*2159047fSniklas #include <bfd.h> 29*2159047fSniklas #include "bfd/som.h" 30*2159047fSniklas #include "targ-cpu.h" 31*2159047fSniklas 32*2159047fSniklas #ifndef FALSE 33*2159047fSniklas #define FALSE 0 34*2159047fSniklas #define TRUE !FALSE 35*2159047fSniklas #endif 36*2159047fSniklas 37*2159047fSniklas /* should be conditional on address size! */ 38*2159047fSniklas #define som_symbol(asymbol) ((som_symbol_type *)(&(asymbol)->the_bfd)) 39*2159047fSniklas 40*2159047fSniklas extern void som_file_symbol PARAMS ((char *)); 41*2159047fSniklas extern void obj_som_version PARAMS ((int)); 42*2159047fSniklas extern void obj_som_init_stab_section PARAMS ((segT)); 43*2159047fSniklas 44*2159047fSniklas #define obj_symbol_new_hook(s) {;} 45*2159047fSniklas 46*2159047fSniklas /* SOM has several attributes for spaces/subspaces which can not 47*2159047fSniklas be easily expressed in BFD. We use these macros to trigger calls 48*2159047fSniklas into the SOM BFD backend to set these attributes. */ 49*2159047fSniklas #define obj_set_section_attributes bfd_som_set_section_attributes 50*2159047fSniklas #define obj_set_subsection_attributes bfd_som_set_subsection_attributes 51*2159047fSniklas 52*2159047fSniklas /* Likewise for symbol types. */ 53*2159047fSniklas #define obj_set_symbol_type bfd_som_set_symbol_type 54*2159047fSniklas 55*2159047fSniklas /* Stabs go in a separate sections. GDB expects to find them in sections 56*2159047fSniklas with the names $GDB_SYMBOLS$ and $GDB_STRINGS$ rather than .stab and 57*2159047fSniklas .stabstr. */ 58*2159047fSniklas #define SEPARATE_STAB_SECTIONS 1 59*2159047fSniklas #define STAB_SECTION_NAME "$GDB_SYMBOLS$" 60*2159047fSniklas #define STAB_STRING_SECTION_NAME "$GDB_STRINGS$" 61*2159047fSniklas 62*2159047fSniklas /* We use INIT_STAB_SECTION to record the space/subspace relationships 63*2159047fSniklas for the various debugging sections. */ 64*2159047fSniklas #define INIT_STAB_SECTION(seg) obj_som_init_stab_section (seg) 65*2159047fSniklas 66*2159047fSniklas /* We'll be updating the magic 1st stab entry once the entire assembly 67*2159047fSniklas fail has been processed. */ 68*2159047fSniklas #define obj_frob_file() som_frob_file() 69*2159047fSniklas 70*2159047fSniklas #endif /* _OBJ_SOM_H */ 71