You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

162 lines
3.7 KiB

/* BFD COFF object file private structure.
Copyright (C) 1990-1991 Free Software Foundation, Inc.
Written by Cygnus Support.
36 years ago
This file is part of BFD, the Binary File Descriptor library.
36 years ago
This program is free software; you can redistribute it and/or modify
36 years ago
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
36 years ago
This program is distributed in the hope that it will be useful,
36 years ago
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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. */
36 years ago
/* $Id$ */
/* Object file tdata; access macros */
#define obj_icof(bfd) ((struct icofdata *) ((bfd)->tdata))
#define coff_data(bfd) ((struct icofdata *) ((bfd)->tdata))
36 years ago
#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
36 years ago
#define obj_symbol_slew(bfd) (obj_icof(bfd)->symbol_index_slew)
#else
#define obj_symbol_slew(bfd) 0
#endif
36 years ago
#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;
typedef struct
{
36 years ago
asymbol symbol;
combined_entry_type *native;
36 years ago
struct lineno_cache_entry *lineno;
} coff_symbol_type;
#endif
36 years ago
typedef struct icofdata
{
struct coff_symbol_struct *symbols; /* symtab for input bfd */
36 years ago
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;
36 years ago
struct lineno *raw_linenos;
unsigned int raw_syment_count;
char *string_table;
unsigned short flags;
36 years ago
/* These are only valid once writing has begun */
long int relocbase;
} coff_data_type;
36 years ago
/* We take the address of the first element of a asymbol to ensure that the
36 years ago
* macro is only ever applied to an asymbol. */
#define coffsymbol(asymbol) ((coff_symbol_type *)(&((asymbol)->the_bfd)))
36 years ago
/*THE FOLLOWING IS EXTRACTED FROM THE SOURCE*/
36 years ago
/* FROM coffcode.h*/
/* ------------------------------START FROM coffcode.h
36 years ago
The hidden information for an asymbol is:
*/
36 years ago
typedef struct coff_ptr_struct
{
36 years ago
/*
Remembers the offset from the first symbol in the file for this
symbol. Generated by @code{coff_renumber_symbols}.
*/
unsigned int offset;
36 years ago
/*
Should the tag field of this symbol be renumbered.
Created by @code{coff_pointerize_aux}.
*/
char fix_tag;
36 years ago
/*
Should the endidx field of this symbol be renumbered.
Created by @code{coff_pointerize_aux}.
*/
char fix_end;
36 years ago
/*
The container for the symbol structure as read and translated from the file.
*/
union {
union internal_auxent auxent;
struct internal_syment syment;
} u;
} combined_entry_type;
36 years ago
/*
36 years ago
Each canonical asymbol really looks like this:
*/
36 years ago
typedef struct coff_symbol_struct
{
36 years ago
/*
The actual symbol which the rest of BFD works with
36 years ago
*/
asymbol symbol;
36 years ago
/*
A pointer to the hidden information for this symbol
*/
combined_entry_type *native;
36 years ago
/*
A pointer to the linenumber information for this symbol
*/
struct lineno_cache_entry *lineno;
} coff_symbol_type;
36 years ago
/*
--------------------------------END FROM coffcode.h*/