+/* coffgrok.h
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Binutils.
+
+This program is free software; you can redistribute it and/or modify
+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.
+
+This program is distributed in the hope that it will be useful,
+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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+
#define T_NULL 0
#define T_VOID 1 /* function argument (only used by compiler) */
#define T_CHAR 2 /* character */
int addend;
};
- struct coff_section
+ struct coff_section
{
char *name;
int code;
int nrelocs;
int size;
struct coff_reloc *relocs;
- struct sec *bfd_section;
+ struct bfd_section *bfd_section;
};
struct coff_ofile
struct coff_symbol *symbol_list_tail;
};
+struct coff_isection {
+ int low;
+ int high;
+ int init;
+ struct coff_section *parent;
+};
struct coff_sfile
{
char *name;
struct coff_scope *scope;
struct coff_sfile *next;
-
+
+ /* Vector which maps where in each output section
+ the input file has it's data */
+ struct coff_isection *section;
};
enum
{
coff_pointer_type, coff_function_type, coff_array_type, coff_structdef_type, coff_basic_type,
- coff_structref_type, coff_enumref_type, coff_enumdef_type
+ coff_structref_type, coff_enumref_type, coff_enumdef_type, coff_secdef_type
} type;
union
{
+ struct
+ {
+ int address;
+ int size;
+ } asecdef;
+
struct
{
int isstruct;
};
- struct coff_line
+ struct coff_line
{
int nlines;
int *lines;
struct coff_scope
{
+ struct coff_section *sec; /* What section */
+ int offset; /* where */
+ int size; /* How big */
struct coff_scope *parent; /* one up */
struct coff_scope *next; /*next along */
int nvars;
+
struct coff_symbol *vars_head; /* symbols */
struct coff_symbol *vars_tail;
coff_vis_tag,
coff_vis_member_of_struct,
coff_vis_member_of_enum,
+ coff_vis_autoparam,
+ coff_vis_regparam,
} type;
};
struct coff_symbol *next;
struct coff_symbol *next_in_ofile_list; /* For the ofile list */
int number;
+ int er_number;
+ struct coff_sfile *sfile;
};
-struct coff_ofile *coff_grok();
+struct coff_ofile *coff_grok PARAMS ((bfd *));