home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / binutils-2.7-src.tgz / tar.out / fsf / binutils / gas / ecoff.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  4KB  |  108 lines

  1. /* ecoff.h -- header file for ECOFF debugging support
  2.    Copyright (C) 1993, 94, 95, 1996 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 2, 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, 59 Temple Place - Suite 330, Boston, MA
  21.    02111-1307, USA.  */
  22.  
  23. #ifdef ECOFF_DEBUGGING
  24.  
  25. #ifndef GAS_ECOFF_H
  26. #define GAS_ECOFF_H
  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 PARAMS ((void));
  37.  
  38. /* This function should be called when a new symbol is created, by
  39.    obj_symbol_new_hook.  */
  40. extern void ecoff_symbol_new_hook PARAMS ((struct symbol *));
  41.  
  42. /* This function should be called by the obj_frob_symbol hook.  */
  43. extern void ecoff_frob_symbol PARAMS ((struct symbol *));
  44.  
  45. /* Build the ECOFF debugging information.  This should be called by
  46.    obj_frob_file.  This fills in the counts in *HDR; the offsets are
  47.    filled in relative to the start of the *BUFP.  It sets *BUFP to a
  48.    block of memory holding the debugging information.  It returns the
  49.    length of *BUFP.  */
  50. extern unsigned long ecoff_build_debug
  51.   PARAMS ((HDRR *hdr, char **bufp, const struct ecoff_debug_swap *));
  52.  
  53. /* Functions to handle the ECOFF debugging directives.  */
  54. extern void ecoff_directive_begin PARAMS ((int));
  55. extern void ecoff_directive_bend PARAMS ((int));
  56. extern void ecoff_directive_end PARAMS ((int));
  57. extern void ecoff_directive_ent PARAMS ((int));
  58. extern void ecoff_directive_fmask PARAMS ((int));
  59. extern void ecoff_directive_frame PARAMS ((int));
  60. extern void ecoff_directive_loc PARAMS ((int));
  61. extern void ecoff_directive_mask PARAMS ((int));
  62.  
  63. /* Other ECOFF directives.  */
  64. extern void ecoff_directive_extern PARAMS ((int));
  65. extern void ecoff_directive_weakext PARAMS ((int));
  66.  
  67. /* Functions to handle the COFF debugging directives.  */
  68. extern void ecoff_directive_def PARAMS ((int));
  69. extern void ecoff_directive_dim PARAMS ((int));
  70. extern void ecoff_directive_endef PARAMS ((int));
  71. extern void ecoff_directive_file PARAMS ((int));
  72. extern void ecoff_directive_scl PARAMS ((int));
  73. extern void ecoff_directive_size PARAMS ((int));
  74. extern void ecoff_directive_tag PARAMS ((int));
  75. extern void ecoff_directive_type PARAMS ((int));
  76. extern void ecoff_directive_val PARAMS ((int));
  77.  
  78. /* Handle stabs.  */
  79. extern void ecoff_stab PARAMS ((segT sec, int what, const char *string,
  80.                 int type, int other, int desc));
  81.  
  82. /* Set the GP prologue size.  */
  83. extern void ecoff_set_gp_prolog_size PARAMS ((int sz));
  84.  
  85. /* This routine is called from the ECOFF code to set the external
  86.    information for a symbol.  */
  87. #ifndef obj_ecoff_set_ext
  88. extern void obj_ecoff_set_ext PARAMS ((struct symbol *, EXTR *));
  89. #endif
  90.  
  91. /* This routine is used to patch up a line number directive when
  92.    instructions are moved around.  */
  93. extern void ecoff_fix_loc PARAMS ((fragS *, unsigned long));
  94.  
  95. /* This function is called from read.c to peek at cur_file_ptr.  */
  96. extern int ecoff_no_current_file PARAMS ((void));
  97.  
  98. /* This routine is called from read.c to generate line number for .s
  99.    file.  */
  100. extern void ecoff_generate_asm_lineno PARAMS ((const char *, int));
  101.  
  102. /* This routine is called from read.c to generate line number stabs
  103.    for .s file.  */
  104. extern void ecoff_generate_asm_line_stab PARAMS ((char *, int));
  105.  
  106. #endif /* ! GAS_ECOFF_H */
  107. #endif /* ECOFF_DEBUGGING */
  108.