(root)/
binutils-2.41/
gas/
ecoff.h
       1  /* ecoff.h -- header file for ECOFF debugging support
       2     Copyright (C) 1993-2023 Free Software Foundation, Inc.
       3     Contributed by Cygnus Support.
       4     Put together by Ian Lance Taylor <ian@cygnus.com>.
       5  
       6     This file is part of GAS, the GNU Assembler.
       7  
       8     GAS is free software; you can redistribute it and/or modify
       9     it under the terms of the GNU General Public License as published by
      10     the Free Software Foundation; either version 3, or (at your option)
      11     any later version.
      12  
      13     GAS is distributed in the hope that it will be useful,
      14     but WITHOUT ANY WARRANTY; without even the implied warranty of
      15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      16     GNU General Public License for more details.
      17  
      18     You should have received a copy of the GNU General Public License
      19     along with GAS; see the file COPYING.  If not, write to the Free
      20     Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
      21     02110-1301, USA.  */
      22  
      23  #ifndef GAS_ECOFF_H
      24  #define GAS_ECOFF_H
      25  
      26  #ifdef ECOFF_DEBUGGING
      27  
      28  #include "coff/sym.h"
      29  #include "coff/ecoff.h"
      30  
      31  /* Whether we have seen any ECOFF debugging information.  */
      32  extern int ecoff_debugging_seen;
      33  
      34  /* This function should be called at the start of assembly, by
      35     obj_read_begin_hook.  */
      36  extern void ecoff_read_begin_hook (void);
      37  
      38  /* This function should be called when the assembler switches to a new
      39     file.  */
      40  extern void ecoff_new_file (const char *);
      41  
      42  /* This function should be called when a new symbol is created, by
      43     obj_symbol_new_hook.  */
      44  extern void ecoff_symbol_new_hook (symbolS *);
      45  
      46  extern void ecoff_symbol_clone_hook (symbolS *, symbolS *);
      47  
      48  /* This function should be called by the obj_frob_symbol hook.  */
      49  extern void ecoff_frob_symbol (symbolS *);
      50  
      51  /* Build the ECOFF debugging information.  This should be called by
      52     obj_frob_file.  This fills in the counts in *HDR; the offsets are
      53     filled in relative to the start of the *BUFP.  It sets *BUFP to a
      54     block of memory holding the debugging information.  It returns the
      55     length of *BUFP.  */
      56  extern unsigned long ecoff_build_debug
      57    (HDRR *hdr, char **bufp, const struct ecoff_debug_swap *);
      58  
      59  /* Functions to handle the ECOFF debugging directives.  */
      60  extern void ecoff_directive_begin (int);
      61  extern void ecoff_directive_bend (int);
      62  extern void ecoff_directive_end (int);
      63  extern void ecoff_directive_ent (int);
      64  extern void ecoff_directive_fmask (int);
      65  extern void ecoff_directive_frame (int);
      66  extern void ecoff_directive_loc (int);
      67  extern void ecoff_directive_mask (int);
      68  
      69  /* Other ECOFF directives.  */
      70  extern void ecoff_directive_extern (int);
      71  extern void ecoff_directive_weakext (int);
      72  
      73  /* Functions to handle the COFF debugging directives.  */
      74  extern void ecoff_directive_def (int);
      75  extern void ecoff_directive_dim (int);
      76  extern void ecoff_directive_endef (int);
      77  extern void ecoff_directive_file (int);
      78  extern void ecoff_directive_scl (int);
      79  extern void ecoff_directive_size (int);
      80  extern void ecoff_directive_tag (int);
      81  extern void ecoff_directive_type (int);
      82  extern void ecoff_directive_val (int);
      83  
      84  /* Handle stabs.  */
      85  extern void ecoff_stab (segT sec, int what, const char *string,
      86  			int type, int other, int desc);
      87  
      88  /* Set the GP prologue size.  */
      89  extern void ecoff_set_gp_prolog_size (int sz);
      90  
      91  /* This routine is called from the ECOFF code to set the external
      92     information for a symbol.  */
      93  #ifndef obj_ecoff_set_ext
      94  extern void obj_ecoff_set_ext (symbolS *, EXTR *);
      95  #endif
      96  
      97  /* This routine is used to patch up a line number directive when
      98     instructions are moved around.  */
      99  extern void ecoff_fix_loc (fragS *, unsigned long);
     100  
     101  /* This function is called from read.c to peek at cur_file_ptr.  */
     102  extern int ecoff_no_current_file (void);
     103  
     104  /* This function returns the symbol associated with the current proc.  */
     105  extern symbolS *ecoff_get_cur_proc_sym (void);
     106  
     107  #endif /* ECOFF_DEBUGGING */
     108  
     109  /* This routine is called from read.c to generate line number for .s file.  */
     110  extern void ecoff_generate_asm_lineno (void);
     111  
     112  #endif /* ! GAS_ECOFF_H */