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_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();