+/* 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.|
* | 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)
* 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 */
/* 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)
*/
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 */
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)
* 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 */
} RPDR, *pRPDR;
#define cbRPDR sizeof(RPDR)
#define rpdNil ((pRPDR) 0)
+#endif
/*
* Line Numbers
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 */
* 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)
#define ifiNil -1
#define fiNil ((pFIT) 0)
-#endif /* _LANGUAGE_C */
-
#ifdef _LANGUAGE_PASCAL
#define ifdNil -1
#define ilnNil -1
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)
*
*/
-/* $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