coffgrok.h
来自「基于4个mips核的noc设计」· C头文件 代码 · 共 226 行
H
226 行
/* coffgrok.h Copyright 2001 Free Software Foundation, Inc.This file is part of GNU Binutils.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */#define T_NULL 0#define T_VOID 1 /* function argument (only used by compiler) */#define T_CHAR 2 /* character */#define T_SHORT 3 /* short integer */#define T_INT 4 /* integer */#define T_LONG 5 /* long integer */#define T_FLOAT 6 /* floating point */#define T_DOUBLE 7 /* double word */#define T_STRUCT 8 /* structure */#define T_UNION 9 /* union */#define T_ENUM 10 /* enumeration */#define T_MOE 11 /* member of enumeration*/#define T_UCHAR 12 /* unsigned character */#define T_USHORT 13 /* unsigned short */#define T_UINT 14 /* unsigned integer */#define T_ULONG 15 /* unsigned long */#define T_LNGDBL 16 /* long double */ struct coff_reloc { int offset; struct coff_symbol *symbol; int addend; }; struct coff_section { char *name; int code; int data; int address; int number; /* 0..n, .text = 0 */ int nrelocs; int size; struct coff_reloc *relocs; struct sec *bfd_section; };struct coff_ofile{ int nsources; struct coff_sfile *source_head; struct coff_sfile *source_tail; int nsections; struct coff_section *sections; struct coff_symbol *symbol_list_head; 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; }; struct coff_type{ int size; 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_secdef_type } type; union { struct { int address; int size; } asecdef; struct { int isstruct; struct coff_scope *elements; int idx; } astructdef; struct { struct coff_symbol *ref; } astructref; struct { struct coff_scope *elements; int idx; } aenumdef; struct { struct coff_symbol *ref; } aenumref; struct { struct coff_type *points_to; } pointer; struct { int dim; struct coff_type *array_of; } array; struct { struct coff_type *function_returns; struct coff_scope *parameters; struct coff_scope *code; struct coff_line *lines; } function; int basic; /* One of T_VOID.. T_UINT */ } u;}; struct coff_line { int nlines; int *lines; int *addresses; }; 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; struct coff_scope *list_head; /* children */ struct coff_scope *list_tail; }; struct coff_visible { enum coff_vis_type { coff_vis_ext_def, coff_vis_ext_ref, coff_vis_int_def, coff_vis_common, coff_vis_auto, coff_vis_register, coff_vis_tag, coff_vis_member_of_struct, coff_vis_member_of_enum, coff_vis_autoparam, coff_vis_regparam, } type; }; struct coff_where { enum { coff_where_stack, coff_where_memory, coff_where_register, coff_where_unknown, coff_where_strtag, coff_where_member_of_struct, coff_where_member_of_enum, coff_where_entag, coff_where_typedef } where; int offset; int bitoffset; int bitsize; struct coff_section *section; }; struct coff_symbol { char *name; int tag; struct coff_type *type; struct coff_where *where; struct coff_visible *visible; 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();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?