⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hp-symtab.h

📁 基于4个mips核的noc设计
💻 H
📖 第 1 页 / 共 5 页
字号:
};/* C++ "friend" classes ... */struct dntt_type_friend_class {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_FRIEND_CLASS */  unsigned int unused:	   21;  dnttpointer classptr       ;     /* pointer to class DNTT         */  dnttpointer next           ;     /* next DNTT_FRIEND              */};struct dntt_type_friend_func {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_FRIEND_FUNC */  unsigned int unused:	   21;  dnttpointer funcptr        ;     /* pointer to function           */  dnttpointer classptr       ;     /* pointer to class DNTT         */  dnttpointer next           ;     /* next DNTT_FRIEND              */  unsigned long future[2]    ;     /* padding to 3-word block end   */};/* DDE appears to ignore the DNTT_TYPE_MODIFIER record. * It could perhaps be used to give better "ptype" output in GDB; * otherwise it is probably safe for GDB to ignore it also. */struct dntt_type_modifier {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_MODIFIER */  unsigned int m_const:     1;     /* const                         */  unsigned int m_static:    1;     /* static                        */  unsigned int m_void:      1;     /* void                          */  unsigned int m_volatile:  1;     /* volatile                      */  unsigned int m_duplicate: 1;     /* duplicate                     */  unsigned int unused:	   16;  dnttpointer type           ;     /* subtype                       */  unsigned long future       ;     /* padding to 3-word block end   */};/* I'm not sure what this was intended for - DDE ignores it */struct dntt_type_object_id {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_OBJECT_ID */  unsigned int indirect:    1;     /* Is object_ident addr of addr? */  unsigned int unused:	   20;  unsigned long object_ident ;     /* object identifier             */  unsigned long offset       ;     /* offset to start of base class */  dnttpointer next           ;     /* pointer to next K_OBJECT_ID   */  unsigned long segoffset    ;     /* for linker fixup              */  unsigned long future       ;     /* padding to 3-word block end   */};/* No separate dntt_type_memfunc; same as dntt_type_func *//* Symbol records to support templates. These only get used * in DDE's "describe" output (like GDB's "ptype"). *//* The TEMPLATE record is the header for a template-class. * Like the CLASS record, a TEMPLATE record has a memberlist that * points to a list of template members. It also has an arglist * pointing to a list of TEMPLATE_ARG records. */struct dntt_type_template {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_TEMPLATE */  unsigned int abstract:    1;     /* is this an abstract class?    */  unsigned int class_decl:  2;     /* 0=class,1=union,2=struct      */  unsigned int unused:	   18;  dnttpointer memberlist     ;     /* ptr to chain of K_[GEN]FIELDs */  long unused2               ;     /* offset in obj of ptr to vtbl  */  dnttpointer parentlist     ;     /* ptr to K_INHERITANCE list     */  unsigned long bitlength    ;     /* total at this level           */  dnttpointer identlist      ;     /* ptr to chain of class ident's */  dnttpointer friendlist     ;     /* ptr to K_FRIEND list          */  dnttpointer arglist        ;     /* ptr to argument list          */  dnttpointer expansions     ;     /* ptr to expansion list         */};/* Template-class arguments are a list of TEMPL_ARG records * chained together. The "name" field is the name of the formal. * E.g.: * template <class T> class q { ... }; * Then "T" is the name of the formal argument. */struct dntt_type_templ_arg {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_TEMPL_ARG */  unsigned int usagetype:   1;     /* 0 type-name 1 expression     */  unsigned int unused:	   20;  vtpointer name             ;     /* name of argument             */  dnttpointer type           ;     /* for non type arguments       */  dnttpointer nextarg        ;     /* Next argument if any         */  long future[2]             ;     /* padding to 3-word block end  */};/* FUNC_TEMPLATE records are sort of like FUNCTION, but are emitted * for template member functions. E.g., * template <class T> class q {       ...      void f();      ...    }; * Within the list of FIELDs/GENFIELDs defining the member list * of the template "q", "f" would appear as a FUNC_TEMPLATE. * We'll also see instances of FUNCTION "f" records for each  * instantiation of the template. */struct dntt_type_func_template {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_FUNC_TEMPLATE */  unsigned int public:      1;     /* 1 => globally visible        */  unsigned int language:    4;     /* type of language             */  unsigned int level:       5;     /* nesting level (top level = 0)*/  unsigned int optimize:    2;     /* level of optimization        */  unsigned int varargs:     1;     /* ellipses.  Pascal/800 later  */   unsigned int info:        4;     /* lang-specific stuff; F_xxxx  */  unsigned int inlined:     1;  unsigned int localloc:    1;     /* 0 at top, 1 at end of block  */  unsigned int unused:      2;  vtpointer name             ;     /* name of function             */  vtpointer alias            ;     /* alternate name, if any       */  dnttpointer firstparam     ;     /* first FPARAM, if any         */  dnttpointer retval         ;     /* return type, if any          */  dnttpointer arglist        ;     /* ptr to argument list         */};/* LINK is apparently intended to link together function template * definitions with their instantiations. However, it is not clear * why this would be needed, except to provide the information on * a "ptype" command. And as far as I can tell, aCC does not  * generate this record. */struct dntt_type_link {  unsigned int extension:   1;	   /* always zero */  unsigned int kind:       10;     /* always DNTT_TYPE_LINK */  unsigned int linkKind:    4;     /* always LINK_UNKNOWN          */  unsigned int unused:	   17;  long future1               ;     /* expansion                    */  dnttpointer ptr1           ;     /* link from template           */  dnttpointer ptr2           ;     /* to expansion                 */  long future[2]             ;     /* padding to 3-word block end  */};/* end of C++ specific SOM's *//* DNTT_TYPE_DYN_ARRAY_DESC is unused by GDB *//* DNTT_TYPE_DESC_SUBRANGE is unused by GDB *//* DNTT_TYPE_BEGIN_EXT is unused by GDB *//* DNTT_TYPE_INLN is unused by GDB *//* DNTT_TYPE_INLN_LIST is unused by GDB *//* DNTT_TYPE_ALIAS is unused by GDB */struct dntt_type_doc_function {  unsigned int extension: 1;   /* always zero                  */  unsigned int kind:     10;   /* K_DOC_FUNCTION or            */                               /* K_DOC_MEMFUNC                */  unsigned int global:    1;   /* 1 => globally visible        */  unsigned int language:  4;   /* type of language             */  unsigned int level:     5;   /* nesting level (top level = 0)*/  unsigned int optimize:  2;   /* level of optimization        */  unsigned int varargs:   1;   /* ellipses.  Pascal/800 later  */  unsigned int info:      4;   /* lang-specific stuff; F_xxxx  */  unsigned int inlined:   1;  unsigned int localloc:  1;   /* 0 at top, 1 at end of block  */  unsigned int expansion: 1;   /* 1 = function expansion       */  unsigned int doc_clone: 1;  vtpointer name;              /* name of function             */  vtpointer alias;             /* alternate name, if any       */  dnttpointer firstparam;      /* first FPARAM, if any         */  sltpointer address;          /* code and text locations      */  CORE_ADDR entryaddr;         /* address of entry point       */  dnttpointer retval;          /* return type, if any          */  CORE_ADDR lowaddr;           /* lowest address of function   */  CORE_ADDR hiaddr;            /* highest address of function  */  dnttpointer inline_list;     /* pointer to first inline    */  ltpointer lt_offset;         /* start of frag/cp line table  */  ctxtpointer ctxt_offset;     /* start of context table for this routine */};/* DNTT_TYPE_DOC_MEMFUNC is unused by GDB *//* DNTT_TYPE_GENERIC and DNTT_TYPE_BLOCK are convience structures   so we can examine a DNTT entry in a generic fashion.  */struct dntt_type_generic{  unsigned int word[9];};struct dntt_type_block{  unsigned int extension:	1;  unsigned int kind:            10;  unsigned int unused:		21;  unsigned int word[2];};/* One entry in a DNTT (either the LNTT or GNTT).   * This is a union of the above 60 or so structure definitions. */union dnttentry{  struct dntt_type_srcfile dsfile;  struct dntt_type_module dmodule;  struct dntt_type_function dfunc;  struct dntt_type_function dentry;  struct dntt_type_begin dbegin;  struct dntt_type_end dend;  struct dntt_type_fparam dfparam;  struct dntt_type_svar dsvar;  struct dntt_type_dvar ddvar;  struct dntt_type_const dconst;  struct dntt_type_type dtype;  struct dntt_type_type dtag;  struct dntt_type_pointer dptr;  struct dntt_type_enum denum;  struct dntt_type_memenum dmember;  struct dntt_type_set dset;  struct dntt_type_subrange dsubr;  struct dntt_type_array darray;  struct dntt_type_struct dstruct;  struct dntt_type_union dunion;  struct dntt_type_field dfield;  struct dntt_type_functype dfunctype;  struct dntt_type_with dwith;  struct dntt_type_function dblockdata;  struct dntt_type_class_scope dclass_scope;  struct dntt_type_pointer dreference;  struct dntt_type_ptrmem dptrmem;  struct dntt_type_ptrmemfunc dptrmemfunc;  struct dntt_type_class dclass;  struct dntt_type_genfield dgenfield;  struct dntt_type_vfunc dvfunc;  struct dntt_type_memaccess dmemaccess;  struct dntt_type_inheritance dinheritance;  struct dntt_type_friend_class dfriend_class;  struct dntt_type_friend_func dfriend_func;  struct dntt_type_modifier dmodifier;  struct dntt_type_object_id dobject_id;  struct dntt_type_template dtemplate;  struct dntt_type_templ_arg dtempl_arg;  struct dntt_type_func_template dfunc_template;  struct dntt_type_link dlink;  struct dntt_type_doc_function ddocfunc;  struct dntt_type_generic dgeneric;  struct dntt_type_block dblock;};/* Source line entry types.  */enum slttype{  SLT_NORMAL,  SLT_SRCFILE,  SLT_MODULE,  SLT_FUNCTION,  SLT_ENTRY,  SLT_BEGIN,  SLT_END,  SLT_WITH,  SLT_EXIT,  SLT_ASSIST,  SLT_MARKER,  SLT_CLASS_SCOPE,  SLT_INLN,  SLT_NORMAL_OFFSET,};/* A normal source line entry.  Simply provides a mapping of a source   line number to a code address.   SLTDESC will always be SLT_NORMAL or SLT_EXIT.  */struct slt_normal{  unsigned int sltdesc:	4;  unsigned int line:	28;  CORE_ADDR address;};struct slt_normal_off{  unsigned int sltdesc:	4;  unsigned int offset:	6;  unsigned int line:	22;  CORE_ADDR address;};/* A special source line entry.  Provides a mapping of a declaration   to a line number.  These entries point back into the DNTT which   references them.  */struct slt_special{  unsigned int sltdesc:	4;  unsigned int line:	28;  dnttpointer backptr;};/* Used to describe nesting.   For nested languages, an slt_assist entry must follow each SLT_FUNC   entry in the SLT.  The address field will point forward to the   first slt_normal entry within the function's scope.  */struct slt_assist{  unsigned int sltdesc:	4;  unsigned int unused:	28;  sltpointer address;};struct slt_generic{  unsigned int word[2];};union sltentry{  struct slt_normal snorm;  struct slt_normal_off snormoff;  struct slt_special sspec;  struct slt_assist sasst;  struct slt_generic sgeneric;};/*  $LINES$ declarations *  This is the line table used for optimized code, which is only present  *  in the new $PROGRAM_INFO$ debug space.   */#define DST_LN_ESCAPE_FLAG1   15#define DST_LN_ESCAPE_FLAG2   14#define DST_LN_CTX_SPEC1      13  #define DST_LN_CTX_SPEC2      12/*  Escape function codes:*/typedef enum    {    dst_ln_pad,          /* pad byte */    dst_ln_escape_1,     /* reserved */    dst_ln_dpc1_dln1,    /* 1 byte line delta, 1 byte pc delta */    dst_ln_dpc2_dln2,    /* 2 bytes line delta, 2 bytes pc delta */    dst_ln_pc4_ln4,      /* 4 bytes ABSOLUTE line number, 4 bytes ABSOLUTE pc */    dst_ln_dpc0_dln1,    /* 1 byte line delta, pc delta = 0 */    dst_ln_ln_off_1,     /* statement escape, stmt # = 1 (2nd stmt on line) */    dst_ln_ln_off,       /* statement escape, stmt # = next byte */    dst_ln_entry,        /* entry escape, next byte is entry number */    dst_ln_exit,         /* exit escape */    dst_ln_stmt_end,     /* gap escape, 4 bytes pc delta */    dst_ln_stmt_cp,      /* current stmt is a critical point */    dst_ln_escape_12,    /* reserved */    dst_ln_escape_13,    /* this is an exception site record */    dst_ln_nxt_byte,     /* next byte contains the real escape code */    dst_ln_end,          /* end escape, final entry follows */    dst_ln_escape1_END_OF_ENUM    }    dst_ln_escape1_t;typedef enum    {    dst_ln_ctx_1,        /* next byte describes context switch with 5-bit */                         /* index into the image table and 3-bit run length. */                         /* If run length is 0, end with another cxt specifier or ctx_end */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -