ecoff.h revision 60484
133965Sjdp/* ecoff.h -- header file for ECOFF debugging support 260484Sobrien Copyright (C) 1993, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. 333965Sjdp Contributed by Cygnus Support. 433965Sjdp Put together by Ian Lance Taylor <ian@cygnus.com>. 533965Sjdp 633965Sjdp This file is part of GAS, the GNU Assembler. 733965Sjdp 833965Sjdp GAS is free software; you can redistribute it and/or modify 933965Sjdp it under the terms of the GNU General Public License as published by 1033965Sjdp the Free Software Foundation; either version 2, or (at your option) 1133965Sjdp any later version. 1233965Sjdp 1333965Sjdp GAS is distributed in the hope that it will be useful, 1433965Sjdp but WITHOUT ANY WARRANTY; without even the implied warranty of 1533965Sjdp MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1633965Sjdp GNU General Public License for more details. 1733965Sjdp 1833965Sjdp You should have received a copy of the GNU General Public License 1933965Sjdp along with GAS; see the file COPYING. If not, write to the Free 2033965Sjdp Software Foundation, 59 Temple Place - Suite 330, Boston, MA 2133965Sjdp 02111-1307, USA. */ 2233965Sjdp 2333965Sjdp#ifndef GAS_ECOFF_H 2433965Sjdp#define GAS_ECOFF_H 2533965Sjdp 2660484Sobrien#ifdef ECOFF_DEBUGGING 2760484Sobrien 2833965Sjdp#include "coff/sym.h" 2933965Sjdp#include "coff/ecoff.h" 3033965Sjdp 3133965Sjdp/* Whether we have seen any ECOFF debugging information. */ 3233965Sjdpextern int ecoff_debugging_seen; 3333965Sjdp 3433965Sjdp/* This function should be called at the start of assembly, by 3533965Sjdp obj_read_begin_hook. */ 3633965Sjdpextern void ecoff_read_begin_hook PARAMS ((void)); 3733965Sjdp 3833965Sjdp/* This function should be called when the assembler switches to a new 3933965Sjdp file. */ 4033965Sjdpextern void ecoff_new_file PARAMS ((const char *)); 4133965Sjdp 4233965Sjdp/* This function should be called when a new symbol is created, by 4333965Sjdp obj_symbol_new_hook. */ 4460484Sobrienextern void ecoff_symbol_new_hook PARAMS ((symbolS *)); 4533965Sjdp 4633965Sjdp/* This function should be called by the obj_frob_symbol hook. */ 4760484Sobrienextern void ecoff_frob_symbol PARAMS ((symbolS *)); 4833965Sjdp 4933965Sjdp/* Build the ECOFF debugging information. This should be called by 5033965Sjdp obj_frob_file. This fills in the counts in *HDR; the offsets are 5133965Sjdp filled in relative to the start of the *BUFP. It sets *BUFP to a 5233965Sjdp block of memory holding the debugging information. It returns the 5333965Sjdp length of *BUFP. */ 5433965Sjdpextern unsigned long ecoff_build_debug 5533965Sjdp PARAMS ((HDRR *hdr, char **bufp, const struct ecoff_debug_swap *)); 5633965Sjdp 5733965Sjdp/* Functions to handle the ECOFF debugging directives. */ 5833965Sjdpextern void ecoff_directive_begin PARAMS ((int)); 5933965Sjdpextern void ecoff_directive_bend PARAMS ((int)); 6033965Sjdpextern void ecoff_directive_end PARAMS ((int)); 6133965Sjdpextern void ecoff_directive_ent PARAMS ((int)); 6233965Sjdpextern void ecoff_directive_fmask PARAMS ((int)); 6333965Sjdpextern void ecoff_directive_frame PARAMS ((int)); 6433965Sjdpextern void ecoff_directive_loc PARAMS ((int)); 6533965Sjdpextern void ecoff_directive_mask PARAMS ((int)); 6633965Sjdp 6733965Sjdp/* Other ECOFF directives. */ 6833965Sjdpextern void ecoff_directive_extern PARAMS ((int)); 6933965Sjdpextern void ecoff_directive_weakext PARAMS ((int)); 7033965Sjdp 7133965Sjdp/* Functions to handle the COFF debugging directives. */ 7233965Sjdpextern void ecoff_directive_def PARAMS ((int)); 7333965Sjdpextern void ecoff_directive_dim PARAMS ((int)); 7433965Sjdpextern void ecoff_directive_endef PARAMS ((int)); 7533965Sjdpextern void ecoff_directive_file PARAMS ((int)); 7633965Sjdpextern void ecoff_directive_scl PARAMS ((int)); 7733965Sjdpextern void ecoff_directive_size PARAMS ((int)); 7833965Sjdpextern void ecoff_directive_tag PARAMS ((int)); 7933965Sjdpextern void ecoff_directive_type PARAMS ((int)); 8033965Sjdpextern void ecoff_directive_val PARAMS ((int)); 8133965Sjdp 8233965Sjdp/* Handle stabs. */ 8333965Sjdpextern void ecoff_stab PARAMS ((segT sec, int what, const char *string, 8433965Sjdp int type, int other, int desc)); 8533965Sjdp 8633965Sjdp/* Set the GP prologue size. */ 8733965Sjdpextern void ecoff_set_gp_prolog_size PARAMS ((int sz)); 8833965Sjdp 8933965Sjdp/* This routine is called from the ECOFF code to set the external 9033965Sjdp information for a symbol. */ 9133965Sjdp#ifndef obj_ecoff_set_ext 9260484Sobrienextern void obj_ecoff_set_ext PARAMS ((symbolS *, EXTR *)); 9333965Sjdp#endif 9433965Sjdp 9533965Sjdp/* This routine is used to patch up a line number directive when 9633965Sjdp instructions are moved around. */ 9733965Sjdpextern void ecoff_fix_loc PARAMS ((fragS *, unsigned long)); 9833965Sjdp 9933965Sjdp/* This function is called from read.c to peek at cur_file_ptr. */ 10033965Sjdpextern int ecoff_no_current_file PARAMS ((void)); 10133965Sjdp 10260484Sobrien/* This function returns the symbol associated with the current proc. */ 10360484Sobrienextern symbolS *ecoff_get_cur_proc_sym PARAMS ((void)); 10433965Sjdp 10560484Sobrien#endif /* ECOFF_DEBUGGING */ 10660484Sobrien 10760484Sobrien/* This routine is called from read.c to generate line number for .s file. */ 10860484Sobrienextern void ecoff_generate_asm_lineno PARAMS ((void)); 10960484Sobrien 11033965Sjdp#endif /* ! GAS_ECOFF_H */ 111