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