Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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