[gdb/symtab] Fix missing breakpoint location for inlined function
[deliverable/binutils-gdb.git] / include / coff / sym.h
index 085ae7e688ab8b1575ed003bf0183c4cc490df84..76204af59adc82a4b351ac01a8b3e0d469888db6 100644 (file)
@@ -1,3 +1,11 @@
+/* Declarations of internal format of MIPS ECOFF symbols.
+   Originally contributed by MIPS Computer Systems and Third Eye Software.
+   Changes contributed by Cygnus Support are in the public domain.  
+
+   This file is just aggregated with the files that make up the GNU
+   release; it is not considered part of GAS, GDB, or other GNU
+   programs.  */
+
 /*
  * |-----------------------------------------------------------|
  * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.|
@@ -6,7 +14,6 @@
  * | maintained in the copy.                                   |
  * |-----------------------------------------------------------|
  */
-/* $Header$ */
 #ifndef _SYM_H
 #define _SYM_H
 
  * in the original.
  */
 
-#ifdef _LANGUAGE_C
-
-#ifdef __lint
-#include <exception.h>                 /* defines struct exception_info */
-#endif
-
 typedef struct {
        short   magic;          /* to verify validity of the table */
        short   vstamp;         /* version stamp */
        long    ilineMax;       /* number of line number entries */
-       long    cbLine;         /* number of bytes for line number entries */
-       long    cbLineOffset;   /* offset to start of line number entries*/
+       bfd_vma cbLine;         /* number of bytes for line number entries */
+       bfd_vma cbLineOffset;   /* offset to start of line number entries*/
        long    idnMax;         /* max index into dense number table */
-       long    cbDnOffset;     /* offset to start dense number table */
+       bfd_vma cbDnOffset;     /* offset to start dense number table */
        long    ipdMax;         /* number of procedures */
-       long    cbPdOffset;     /* offset to procedure descriptor table */
+       bfd_vma cbPdOffset;     /* offset to procedure descriptor table */
        long    isymMax;        /* number of local symbols */
-       long    cbSymOffset;    /* offset to start of local symbols*/
+       bfd_vma cbSymOffset;    /* offset to start of local symbols*/
        long    ioptMax;        /* max index into optimization symbol entries */
-       long    cbOptOffset;    /* offset to optimization symbol entries */
+       bfd_vma cbOptOffset;    /* offset to optimization symbol entries */
        long    iauxMax;        /* number of auxillary symbol entries */
-       long    cbAuxOffset;    /* offset to start of auxillary symbol entries*/
+       bfd_vma cbAuxOffset;    /* offset to start of auxillary symbol entries*/
        long    issMax;         /* max index into local strings */
-       long    cbSsOffset;     /* offset to start of local strings */
+       bfd_vma cbSsOffset;     /* offset to start of local strings */
        long    issExtMax;      /* max index into external strings */
-       long    cbSsExtOffset;  /* offset to start of external strings */
+       bfd_vma cbSsExtOffset;  /* offset to start of external strings */
        long    ifdMax;         /* number of file descriptor entries */
-       long    cbFdOffset;     /* offset to file descriptor table */
+       bfd_vma cbFdOffset;     /* offset to file descriptor table */
        long    crfd;           /* number of relative file descriptor entries */
-       long    cbRfdOffset;    /* offset to relative file descriptor table */
+       bfd_vma cbRfdOffset;    /* offset to relative file descriptor table */
        long    iextMax;        /* max index into external symbols */
-       long    cbExtOffset;    /* offset to start of external symbol entries*/
+       bfd_vma cbExtOffset;    /* offset to start of external symbol entries*/
        /* If you add machine dependent fields, add them here */
        } HDRR, *pHDRR; 
 #define cbHDRR sizeof(HDRR)
@@ -110,10 +111,10 @@ typedef struct {
  * setup at runtime.
  */
 typedef struct fdr {
-       unsigned long   adr;    /* memory address of beginning of file */
+       bfd_vma adr;            /* memory address of beginning of file */
        long    rss;            /* file name (of source, if known) */
        long    issBase;        /* file's string space */
-       long    cbSs;           /* number of bytes in the ss */
+       bfd_vma cbSs;           /* number of bytes in the ss */
        long    isymBase;       /* beginning of symbols */
        long    csym;           /* count file's of symbols */
        long    ilineBase;      /* file's line symbols */
@@ -133,8 +134,8 @@ typedef struct fdr {
                                /*      aux's will be in compile host's sex */
        unsigned glevel : 2;    /* level this file was compiled with */
        unsigned reserved : 22;  /* reserved for future use */
-       long    cbLineOffset;   /* byte offset from header for this file ln's */
-       long    cbLine;         /* size of lines for this file */
+       bfd_vma cbLineOffset;   /* byte offset from header for this file ln's */
+       bfd_vma cbLine;         /* size of lines for this file */
        } FDR, *pFDR;
 #define cbFDR sizeof(FDR)
 #define fdNil ((pFDR)0)
@@ -153,7 +154,7 @@ typedef struct fdr {
  */
 
 typedef struct pdr {
-       unsigned long   adr;    /* memory address of start of procedure */
+       bfd_vma adr;            /* memory address of start of procedure */
        long    isym;           /* start of local symbol entries */
        long    iline;          /* start of line number entries*/
        long    regmask;        /* save register mask */
@@ -166,7 +167,14 @@ typedef struct pdr {
        short   pcreg;          /* offset or reg of return pc */
        long    lnLow;          /* lowest line in the procedure */
        long    lnHigh;         /* highest line in the procedure */
-       long    cbLineOffset;   /* byte offset for this procedure from the fd base */
+       bfd_vma cbLineOffset;   /* byte offset for this procedure from the fd base */
+       /* These fields are new for 64 bit ECOFF.  */
+       unsigned gp_prologue : 8; /* byte size of GP prologue */
+       unsigned gp_used : 1;   /* true if the procedure uses GP */
+       unsigned reg_frame : 1; /* true if register frame procedure */
+       unsigned prof : 1;      /* true if compiled with -pg */
+       unsigned reserved : 13; /* reserved: must be zero */
+       unsigned localoff : 8;  /* offset of local variables from vfp */
        } PDR, *pPDR;
 #define cbPDR sizeof(PDR)
 #define pdNil ((pPDR) 0)
@@ -176,8 +184,13 @@ typedef struct pdr {
  * The structure of the runtime procedure descriptor created by the loader
  * for use by the static exception system.
  */
+/*
+ * If 0'd out because exception_info chokes Visual C++ and because there
+ * don't seem to be any references to this structure elsewhere in gdb.
+ */
+#if 0
 typedef struct runtime_pdr {
-       unsigned long   adr;    /* memory address of start of procedure */
+       bfd_vma adr;            /* memory address of start of procedure */
        long    regmask;        /* save register mask */
        long    regoffset;      /* save register offset */
        long    fregmask;       /* save floating point register mask */
@@ -191,6 +204,7 @@ typedef struct runtime_pdr {
 } RPDR, *pRPDR;
 #define cbRPDR sizeof(RPDR)
 #define rpdNil ((pRPDR) 0)
+#endif
 
 /*
  * Line Numbers
@@ -217,7 +231,7 @@ typedef     long LINER, *pLINER;
 
 typedef struct {
        long    iss;            /* index into String Space of name */
-       long    value;          /* value of symbol */
+       bfd_vma value;          /* value of symbol */
        unsigned st : 6;        /* symbol type */
        unsigned sc  : 5;       /* storage class - text, data, etc */
        unsigned reserved : 1;  /* reserved */
@@ -241,12 +255,12 @@ typedef struct {
  *     Same as the SYMR except it contains file context to determine where
  *     the index is.
  */
-typedef struct {
+typedef struct ecoff_extr {
        unsigned jmptbl:1;      /* symbol is a jump table entry for shlibs */
        unsigned cobol_main:1;  /* symbol is a cobol main procedure */
        unsigned weakext:1;     /* symbol is weak external */
        unsigned reserved:13;   /* reserved for future use */
-       short   ifd;            /* where the iss and index fields point into */
+       int     ifd;            /* where the iss and index fields point into */
        SYMR    asym;           /* symbol for the external */
        } EXTR, *pEXTR;
 #define extNil ((pEXTR)0)
@@ -385,8 +399,6 @@ typedef long FIT, *pFIT;
 #define ifiNil -1
 #define fiNil  ((pFIT) 0)
 
-#endif /* _LANGUAGE_C */
-
 #ifdef _LANGUAGE_PASCAL
 #define ifdNil -1
 #define ilnNil -1
@@ -442,13 +454,21 @@ stProc            scText  address         iaux    (isymMac is first AUX)
 stStaticProc   scText  address         iaux    (isymMac is first AUX)
 
 stMember       scNil   ordinal         ---     (if member of enum)
+       (mipsread thinks the case below has a bit, not byte, offset.)
 stMember       scNil   byte offset     iaux    (if member of struct/union)
 stMember       scBits  bit offset      iaux    (bit field spec)
 
 stBlock                scText  address         isymMac (text block)
+       (the code seems to think that rather than scNil, we see scInfo for
+        the two cases below.)
 stBlock                scNil   cb              isymMac (struct/union member define)
 stBlock                scNil   cMembers        isymMac (enum member define)
 
+       (New types added by SGI to simplify things:)
+stStruct       scInfo  cb              isymMac (struct type define)
+stUnion                scInfo  cb              isymMac (union  type define)
+stEnum         scInfo  cMembers        isymMac (enum   type define)
+
 stEnd          scText  address         isymStart
 stEnd          scNil   -------         isymStart (struct/union/enum)
 
@@ -461,63 +481,4 @@ stConstant scInfo  iss             --- (complex, e.g. string)
 
  *
  */
-/* $Log$
-/* Revision 1.1  1992/04/03 04:01:32  gnu
-/* Date: Thu, 2 Apr 92 15:48:13 -0800
-/* From: wu@mips.com (Alex Wu)
-/* Message-Id: <9204022348.AA20058@goofy.mips.com>
-/* To: gnu@cygnus.com
-/* Subject: sym.h & symconst.h
-/*
-/* John,
-/*     I finally get our lawyer's approval.  Here is the symconst.h and
-/* the sym.h.  Please let me know if there is anything else I can help.
-/*
- * Revision 3000.5.1.2  91/05/31  18:27:22  bettina
- * fix DFARS in copyright
- * 
- * Revision 3000.5.1.1  91/04/15  20:51:26  bettina
- * fix copyright
- * 
- * Revision 3000.5  91/04/09  13:39:51  keithm
- * Added DEC specific changes.
- * 
- * Revision 3000.3  91/03/13  18:55:54  karen
- * changed __SYM_H to _SYM_H
- * 
- * Revision 3000.2  90/12/10  13:53:26  zaineb
- * Ansi Changes
- * 
- * Revision 2020.2.1.1  90/10/30  12:31:15  shin
- * copy from 2.21 for weakext flag
- * 
- * Revision 2021.2  90/10/19  10:55:23  shin
- * added weakext flag in EXTR structure
- * 
- * Revision 2021.1  90/06/07  23:09:19  bettina
- * 2.21 - branching off 2.20 for ansi C
- * 
- * Revision 2020.2  90/05/17  18:17:57  chan
- * *** empty log message ***
- * 
- * Revision 2010.7.1.6  90/02/22  19:53:48  bettina
- * 2.10 F1
- * 
- * Revision 2010.7.1.5  89/11/29  22:41:00  bettina
- * 2.10 BETA2
- * 
- * Revision 2010.3  89/10/05  10:44:44  lai
- * added lint wrapper
- * 
- * Revision 2010.2  89/09/26  23:40:45  lai
- * added #include exception.h
- * 
- * Revision 2010.1  89/09/26  20:47:45  lai
- * updated to 2.10
- * 
- * Revision 1.3  89/09/26  20:08:54  lai
- * added wrapper and $LOG
- * updated for 2.10
- * 
-*/
 #endif
This page took 0.04606 seconds and 4 git commands to generate.