diff options
Diffstat (limited to 'bfd/libcoff.h')
-rw-r--r-- | bfd/libcoff.h | 72 |
1 files changed, 27 insertions, 45 deletions
diff --git a/bfd/libcoff.h b/bfd/libcoff.h index a29b9c2..43dc87b 100644 --- a/bfd/libcoff.h +++ b/bfd/libcoff.h @@ -18,64 +18,48 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id$ */ /* Object file tdata; access macros */ -#define obj_icof(bfd) ((struct icofdata *) ((bfd)->tdata)) -#define coff_data(bfd) ((struct icofdata *) ((bfd)->tdata)) -#define exec_hdr(bfd) (obj_icof(bfd)->hdr) -#define obj_symbols(bfd) (obj_icof(bfd)->symbols) -#define obj_sym_filepos(bfd) (obj_icof(bfd)->sym_filepos) - -#define obj_relocbase(bfd) (obj_icof(bfd)->relocbase) -#define obj_raw_syments(bfd) (obj_icof(bfd)->raw_syments) -#define obj_convert(bfd) (obj_icof(bfd)->conversion_table) -#if CFILE_STUFF -#define obj_symbol_slew(bfd) (obj_icof(bfd)->symbol_index_slew) -#else -#define obj_symbol_slew(bfd) 0 -#endif -#define obj_string_table(bfd) (obj_icof(bfd)->string_table) - -#if 0 -typedef struct coff_ptr_struct -{ - unsigned int offset; - char fix_tag; - char fix_end; - union { - union internal_auxent auxent; - struct internal_syment syment; - } u; -} combined_entry_type; +#define coff_data(bfd) ((coff_data_type *) ((bfd)->tdata)) +#define exec_hdr(bfd) (coff_data(bfd)->hdr) +#define obj_symbols(bfd) (coff_data(bfd)->symbols) +#define obj_sym_filepos(bfd) (coff_data(bfd)->sym_filepos) +#define obj_relocbase(bfd) (coff_data(bfd)->relocbase) +#define obj_raw_syments(bfd) (coff_data(bfd)->raw_syments) +#define obj_convert(bfd) (coff_data(bfd)->conversion_table) -typedef struct -{ - asymbol symbol; - combined_entry_type *native; - struct lineno_cache_entry *lineno; -} coff_symbol_type; -#endif -typedef struct icofdata -{ +/* `Tdata' information kept for COFF files. */ -struct coff_symbol_struct *symbols; /* symtab for input bfd */ +typedef struct coff_tdata +{ + struct coff_symbol_struct *symbols; /* symtab for input bfd */ unsigned int *conversion_table; file_ptr sym_filepos; long symbol_index_slew; /* used during read to mark whether a C_FILE symbol as been added. */ -struct coff_ptr_struct *raw_syments; + struct coff_ptr_struct *raw_syments; struct lineno *raw_linenos; unsigned int raw_syment_count; - char *string_table; unsigned short flags; + /* These are only valid once writing has begun */ long int relocbase; + + /* These members communicate important constants about the symbol table + to GDB's symbol-reading code. These `constants' unfortunately vary + from coff implementation to implementation... */ + unsigned local_n_btmask; + unsigned local_n_btshft; + unsigned local_n_tmask; + unsigned local_n_tshift; + unsigned local_symesz; + unsigned local_auxesz; + unsigned local_linesz; } coff_data_type; /* We take the address of the first element of a asymbol to ensure that the @@ -86,9 +70,9 @@ struct coff_ptr_struct *raw_syments; /*THE FOLLOWING IS EXTRACTED FROM THE SOURCE*/ -/* FROM coffcode.h*/ -/* ------------------------------START FROM coffcode.h +/*:coffcode.h*/ +/* The hidden information for an asymbol is: */ @@ -154,8 +138,6 @@ A pointer to the linenumber information for this symbol } coff_symbol_type; /* - - --------------------------------END FROM coffcode.h*/ - +*/ |