ecoff.h revision 33965
133965Sjdp/* ecoff.h -- header file for ECOFF debugging support
233965Sjdp   Copyright (C) 1993, 94, 95, 1996 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#ifdef ECOFF_DEBUGGING
2433965Sjdp
2533965Sjdp#ifndef GAS_ECOFF_H
2633965Sjdp#define GAS_ECOFF_H
2733965Sjdp
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.  */
4433965Sjdpextern void ecoff_symbol_new_hook PARAMS ((struct symbol *));
4533965Sjdp
4633965Sjdp/* This function should be called by the obj_frob_symbol hook.  */
4733965Sjdpextern void ecoff_frob_symbol PARAMS ((struct symbol *));
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
9233965Sjdpextern void obj_ecoff_set_ext PARAMS ((struct symbol *, 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
10233965Sjdp/* This routine is called from read.c to generate line number for .s
10333965Sjdp   file.  */
10433965Sjdpextern void ecoff_generate_asm_lineno PARAMS ((const char *, int));
10533965Sjdp
10633965Sjdp/* This routine is called from read.c to generate line number stabs
10733965Sjdp   for .s file.  */
10833965Sjdpextern void ecoff_generate_asm_line_stab PARAMS ((char *, int));
10933965Sjdp
11033965Sjdp#endif /* ! GAS_ECOFF_H */
11133965Sjdp#endif /* ECOFF_DEBUGGING */
112