recording file death
[deliverable/binutils-gdb.git] / gas / config / coff_gnu.h
index 7214847894df95af8a4347f537524d0b502583b8..9e0f1bd5b20b793098dcc54c84f7a4c0d959ff2f 100644 (file)
@@ -1,18 +1,18 @@
 /* coff_gnu.h
    Copyright (C) 1987, 1992 Free Software Foundation, Inc.
-   
+
    This file is part of GAS, the GNU Assembler.
-   
+
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2, or (at your option)
    any later version.
-   
+
    GAS is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to
    the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /********************** FILE HEADER **********************/
 
-struct filehdr {
-       unsigned short  f_magic;        /* magic number                 */
-       unsigned short  f_nscns;        /* number of sections           */
-       long            f_timdat;       /* time & date stamp            */
-       long            f_symptr;       /* file pointer to symtab       */
-       long            f_nsyms;        /* number of symtab entries     */
-       unsigned short  f_opthdr;       /* sizeof(optional hdr)         */
-       unsigned short  f_flags;        /* flags                        */
-};
+struct filehdr
+  {
+    unsigned short f_magic;    /* magic number                 */
+    unsigned short f_nscns;    /* number of sections           */
+    long f_timdat;             /* time & date stamp            */
+    long f_symptr;             /* file pointer to symtab       */
+    long f_nsyms;              /* number of symtab entries     */
+    unsigned short f_opthdr;   /* sizeof(optional hdr)         */
+    unsigned short f_flags;    /* flags                        */
+  };
 
 /* Bits for f_flags:
  *     F_RELFLG        relocation info stripped from file
@@ -53,23 +54,23 @@ struct filehdr {
 #define F_LSYMS                (0x0008)
 
 #ifdef TC_I960
-#define F_AR32WR       (0x0010) /* File has 32 bits per word, least
+#define F_AR32WR       (0x0010)/* File has 32 bits per word, least
                                    significant byte first. */
 #else /* TC_I960 */
 #define F_AR32WR       (0x0100)
 #endif /* TC_I960 */
 
-#define F_MINMAL       (0x0010) /* ??? */
-#define F_UPDATE       (0x0020) /* ??? */
-#define F_SWABD                (0x0040) /* ??? */
-#define F_AR16WR       (0x0080) /* File has the byte ordering used by
+#define F_MINMAL       (0x0010)/* ??? */
+#define F_UPDATE       (0x0020)/* ??? */
+#define F_SWABD                (0x0040)/* ??? */
+#define F_AR16WR       (0x0080)/* File has the byte ordering used by
                                    the PDP*-11/70 processor. */
-#define F_AR32W                (0x0200) /* File has 32 bits per word, most
+#define F_AR32W                (0x0200)/* File has 32 bits per word, most
                                    significant byte first. */
 
 /*
  *     Intel 80960 (I960) processor flags.
- *     F_I960TYPE == mask for processor type field. 
+ *     F_I960TYPE == mask for processor type field.
  */
 
 #define        F_I960TYPE      (0xf000)
@@ -105,7 +106,7 @@ struct filehdr {
 # define I386MAGIC     0x14c
 # define I386BADMAG(x) (((x).f_magic!=I386MAGIC))
 #endif /* not TE_I386AIX */
+
 
 #define        FILHDR  struct filehdr
 #define        FILHSZ  sizeof(FILHDR)
@@ -113,10 +114,13 @@ struct filehdr {
 
 /********************** AOUT "OPTIONAL HEADER" **********************/
 
-typedef struct {
-       unsigned long   phys_addr;
-       unsigned long   bitarray;
-} TAGBITS;
+typedef struct
+  {
+    unsigned long phys_addr;
+    unsigned long bitarray;
+  }
+
+TAGBITS;
 
 /*  These appear to be used only by exec(2).  I don't know who cares
     about them in a cross development environment.  In any case, this
@@ -124,39 +128,42 @@ typedef struct {
     Apparently, most have these have remained essentially unchanged
     since v7 days, although a few new ones have been added.  xoxorich. */
 
-#define BAD0MAGIC      (0401) /* (?) "lpd (UNIX/RT)" */
-#define BAD1MAGIC      (0405) /* (?) overlay */
-#define        OMAGIC          (0407) /* old impure format. data immediately
+#define BAD0MAGIC      (0401)  /* (?) "lpd (UNIX/RT)" */
+#define BAD1MAGIC      (0405)  /* (?) overlay */
+#define        OMAGIC          (0407)  /* old impure format. data immediately
                                  follows text. both sections are rw. */
-#define        NMAGIC          (0410) /* split i&d, read-only text */
-#define A_MAGIC3       (0411) /* (?) "separated I&D" */
-#define        ZMAGIC          (0413) /* like NMAGIC, but demand loaded */
-#define PAGEMAGIC2     (0414) /* (?) like ZMAGIC, but address zero
+#define        NMAGIC          (0410)  /* split i&d, read-only text */
+#define A_MAGIC3       (0411)  /* (?) "separated I&D" */
+#define        ZMAGIC          (0413)  /* like NMAGIC, but demand loaded */
+#define PAGEMAGIC2     (0414)  /* (?) like ZMAGIC, but address zero
                                  explicitly unmapped. */
-#define REGMAGIC       (0414) /* (?) a PAGEMAGIC2 alias? */
-#define PAGEMAGIC3     (0415) /* (?) like ZMAGIC, but address zero mapped. */
-#define A_MAGIC5       (0437) /* (?) "system overlay, separated I&D" */
+#define REGMAGIC       (0414)  /* (?) a PAGEMAGIC2 alias? */
+#define PAGEMAGIC3     (0415)  /* (?) like ZMAGIC, but address zero mapped. */
+#define A_MAGIC5       (0437)  /* (?) "system overlay, separated I&D" */
 /* intended for non-unix cross development */
-#define SASMAGIC       (010000) /* Single Address Space */    
-#define MASMAGIC       (020000) /* (?) "Multiple (separate I & D) Address Spaces" */
-
-typedef        struct aouthdr {
-       short           magic;  /* type of file                         */
-       short           vstamp; /* version stamp                        */
-       unsigned long   tsize;  /* text size in bytes, padded to FW bdry*/
-       unsigned long   dsize;  /* initialized data "  "                */
-       unsigned long   bsize;  /* uninitialized data "   "             */
+#define SASMAGIC       (010000)/* Single Address Space */
+#define MASMAGIC       (020000)/* (?) "Multiple (separate I & D) Address Spaces" */
+
+typedef struct aouthdr
+  {
+    short magic;               /* type of file                         */
+    short vstamp;              /* version stamp                        */
+    unsigned long tsize;       /* text size in bytes, padded to FW bdry*/
+    unsigned long dsize;       /* initialized data "  "                */
+    unsigned long bsize;       /* uninitialized data "   "             */
 #if U3B
-       unsigned long   dum1;
-       unsigned long   dum2;   /* pad to entry point   */
+    unsigned long dum1;
+    unsigned long dum2;                /* pad to entry point   */
 #endif
-       unsigned long   entry;  /* entry pt.                            */
-       unsigned long   text_start;     /* base of text used for this file */
-       unsigned long   data_start;     /* base of data used for this file */
-       /* CAREFUL: some formats omit the tagentries member. */
-       unsigned long   tagentries;     /* number of tag entries to
+    unsigned long entry;       /* entry pt.                            */
+    unsigned long text_start;  /* base of text used for this file */
+    unsigned long data_start;  /* base of data used for this file */
+    /* CAREFUL: some formats omit the tagentries member. */
+    unsigned long tagentries;  /* number of tag entries to
                                           follow (always zero for i960) */
-} AOUTHDR;
+  }
+
+AOUTHDR;
 
 /* return a pointer to the tag bits array */
 
@@ -197,10 +204,10 @@ typedef   struct aouthdr {
 #endif /* TC_I960 */
 
 #ifdef TC_A29K
-#define C_GLBLREG      19              /* global register */
-#define C_EXTREG       20              /* external global register */
-#define        C_DEFREG        21              /* ext. def. of global register */
-#define C_STARTOF      22              /* as29 $SIZEOF and $STARTOF symbols */
+#define C_GLBLREG      19      /* global register */
+#define C_EXTREG       20      /* external global register */
+#define        C_DEFREG        21      /* ext. def. of global register */
+#define C_STARTOF      22      /* as29 $SIZEOF and $STARTOF symbols */
 #endif /* TC_A29K */
 
 #define C_BLOCK                100     /* ".bb" or ".eb" */
@@ -222,31 +229,32 @@ typedef   struct aouthdr {
 #define C_DEFINE       110     /* Preprocessor #define */
 #define C_PRAGMA       111     /* Advice to compiler or linker */
 #define C_SEGMENT      112     /* 80960 segment name */
-#define C_LEAFSTAT      113     /* Static leaf */
+#define C_LEAFSTAT      113    /* Static leaf */
 #endif /* TC_I960 */
 
 #ifdef TC_A29K
-#define C_SHADOW       107 /* shadow symbol */
+#define C_SHADOW       107     /* shadow symbol */
 #endif /* TC_A29K */
 
 /********************** SECTION HEADER **********************/
 
-struct scnhdr {
-       char            s_name[8];      /* section name */
-       long            s_paddr;        /* physical address, aliased s_nlib */
-       long            s_vaddr;        /* virtual address */
-       long            s_size;         /* section size */
-       long            s_scnptr;       /* file ptr to raw data for section */
-       long            s_relptr;       /* file ptr to relocation */
-       long            s_lnnoptr;      /* file ptr to line numbers */
-       unsigned short  s_nreloc;       /* number of relocation entries */
-       unsigned short  s_nlnno;        /* number of line number entries */
-       long            s_flags;        /* flags */
-       
+struct scnhdr
+  {
+    char s_name[8];            /* section name */
+    long s_paddr;              /* physical address, aliased s_nlib */
+    long s_vaddr;              /* virtual address */
+    long s_size;               /* section size */
+    long s_scnptr;             /* file ptr to raw data for section */
+    long s_relptr;             /* file ptr to relocation */
+    long s_lnnoptr;            /* file ptr to line numbers */
+    unsigned short s_nreloc;   /* number of relocation entries */
+    unsigned short s_nlnno;    /* number of line number entries */
+    long s_flags;              /* flags */
+
 #ifdef TC_I960
-       unsigned long   s_align;        /* section alignment */
+    unsigned long s_align;     /* section alignment */
 #endif /* TC_I960 */
-};
+  };
 
 #define        SCNHDR  struct scnhdr
 #define        SCNHSZ  sizeof(SCNHDR)
@@ -254,12 +262,12 @@ struct scnhdr {
 /*
  * names of "special" sections
  */
-#define _TEXT    ".text"               /* executable code section      */
-#define _DATA    ".data"               /* initialized data             */
-#define _BSS     ".bss"                        /* un-initialized data          */
-#define _DEBUG   ".debug"              /* special section used by dbx  */
-#define _COMMENT ".comment"            /* version info                 */
-#define _LIB     ".lib"                        /* shared lib info section      */
+#define _TEXT    ".text"       /* executable code section      */
+#define _DATA    ".data"       /* initialized data             */
+#define _BSS     ".bss"                /* un-initialized data          */
+#define _DEBUG   ".debug"      /* special section used by dbx  */
+#define _COMMENT ".comment"    /* version info                 */
+#define _LIB     ".lib"                /* shared lib info section      */
 #define _TV      ".tv"
 
 /*
@@ -275,25 +283,25 @@ struct scnhdr {
  * (at least for a29k.  Maybe others.)
  */
 
-#define STYP_REG        (0x0000) /* "regular" section: allocated, relocated, loaded */
-#define STYP_DSECT      (0x0001) /* "dummy" section: not allocated, relocated, not loaded */
-#define STYP_NOLOAD     (0x0002) /* "noload" section: allocated, relocated, not loaded */
-#define STYP_GROUP      (0x0004) /* "grouped" section: formed of input sections */
-#define STYP_PAD        (0x0008) /* "padding" section: not allocated, not relocated, loaded */
-#define STYP_COPY       (0x0010) /* "copy" section: for decision function used by field update;  not allocated, not relocated,
+#define STYP_REG        (0x0000)       /* "regular" section: allocated, relocated, loaded */
+#define STYP_DSECT      (0x0001)       /* "dummy" section: not allocated, relocated, not loaded */
+#define STYP_NOLOAD     (0x0002)       /* "noload" section: allocated, relocated, not loaded */
+#define STYP_GROUP      (0x0004)       /* "grouped" section: formed of input sections */
+#define STYP_PAD        (0x0008)       /* "padding" section: not allocated, not relocated, loaded */
+#define STYP_COPY       (0x0010)       /* "copy" section: for decision function used by field update;  not allocated, not relocated,
                                     loaded; reloc & lineno entries processed normally */
-#define STYP_TEXT       (0x0020) /* section contains text only */
-#define S_SHRSEG        (0x0020) /* In 3b Update files (output of ogen), sections which appear in SHARED segments of the Pfile
+#define STYP_TEXT       (0x0020)       /* section contains text only */
+#define S_SHRSEG        (0x0020)       /* In 3b Update files (output of ogen), sections which appear in SHARED segments of the Pfile
                                     will have the S_SHRSEG flag set by ogen, to inform dufr that updating 1 copy of the proc. will
                                     update all process invocations. */
-#define STYP_DATA       (0x0040) /* section contains data only */
-#define STYP_BSS        (0x0080) /* section contains bss only */
-#define S_NEWFCN        (0x0100) /* In a minimal file or an update file, a new function (as compared with a replaced function) */
-#define STYP_INFO       (0x0200) /* comment section : not allocated not relocated, not loaded */
-#define STYP_OVER       (0x0400) /* overlay section : relocated not allocated or loaded */
-#define STYP_LIB        (0x0800) /* for .lib section : same as INFO */
-#define STYP_MERGE      (0x2000) /* merge section -- combines with text, data or bss sections only */
-#define STYP_REVERSE_PAD (0x4000) /* section will be padded with no-op instructions wherever padding is necessary and there is a
+#define STYP_DATA       (0x0040)       /* section contains data only */
+#define STYP_BSS        (0x0080)       /* section contains bss only */
+#define S_NEWFCN        (0x0100)       /* In a minimal file or an update file, a new function (as compared with a replaced function) */
+#define STYP_INFO       (0x0200)       /* comment section : not allocated not relocated, not loaded */
+#define STYP_OVER       (0x0400)       /* overlay section : relocated not allocated or loaded */
+#define STYP_LIB        (0x0800)       /* for .lib section : same as INFO */
+#define STYP_MERGE      (0x2000)       /* merge section -- combines with text, data or bss sections only */
+#define STYP_REVERSE_PAD (0x4000)      /* section will be padded with no-op instructions wherever padding is necessary and there is a
                                     word of contiguous bytes beginning on a word boundary. */
 
 #ifdef TC_A29K
@@ -311,20 +319,23 @@ struct scnhdr {
  * grouping will have l_lnno = 0 and in place of physical address will be the
  * symbol table index of the function name.
  */
-struct lineno {
-       union {
-               long l_symndx;  /* symbol index of function name, iff l_lnno == 0*/
-               long l_paddr;   /* (physical) address of line number */
-       } l_addr;
-       unsigned short  l_lnno; /* line number */
+struct lineno
+  {
+    union
+      {
+       long l_symndx;          /* symbol index of function name, iff l_lnno == 0*/
+       long l_paddr;           /* (physical) address of line number */
+      }
+    l_addr;
+    unsigned short l_lnno;     /* line number */
 #ifdef TC_I960
-       /* not used on a29k */
-       char padding[2];        /* force alignment */
+    /* not used on a29k */
+    char padding[2];           /* force alignment */
 #endif /* TC_I960 */
-};
+  };
 
 #define        LINENO  struct lineno
-#define        LINESZ  sizeof(LINENO) 
+#define        LINESZ  sizeof(LINENO)
 
 
 /********************** SYMBOLS **********************/
@@ -333,78 +344,83 @@ struct lineno {
 #define FILNMLEN       14      /* # characters in a file name */
 #define DIMNUM         4       /* # array dimensions in auxiliary entry */
 
-struct syment {
-       union {
-               char    _n_name[SYMNMLEN];      /* old COFF version */
-               struct {
-                       long    _n_zeroes;      /* new == 0 */
-                       long    _n_offset;      /* offset into string table */
-               } _n_n;
-               char    *_n_nptr[2];    /* allows for overlaying */
-       } _n;
-       long            n_value;        /* value of symbol */
-       short           n_scnum;        /* section number */
-       
+struct syment
+  {
+    union
+      {
+       char _n_name[SYMNMLEN]; /* old COFF version */
+       struct
+         {
+           long _n_zeroes;     /* new == 0 */
+           long _n_offset;     /* offset into string table */
+         }
+       _n_n;
+       char *_n_nptr[2];       /* allows for overlaying */
+      }
+    _n;
+    long n_value;              /* value of symbol */
+    short n_scnum;             /* section number */
+
 #ifdef TC_I960
-       /* This isn't yet used on the i960.  In some formats this
+    /* This isn't yet used on the i960.  In some formats this
           is two bytes of padding.  In others, it is missing entirely. */
-       unsigned short  n_flags;        /* copy of flags from filhdr */
+    unsigned short n_flags;    /* copy of flags from filhdr */
 #endif /* TC_I960 */
-       
+
 #ifdef TC_A29K
-       unsigned short  n_type;         /* type and derived type */
+    unsigned short n_type;     /* type and derived type */
 #else /* TC_A29K */
-       /* at least i960 uses long */
-       unsigned long   n_type;         /* type and derived type */
+    /* at least i960 uses long */
+    unsigned long n_type;      /* type and derived type */
 #endif /* TC_A29K */
-       
-       char            n_sclass;       /* storage class */
-       char            n_numaux;       /* number of aux. entries */
-       
+
+    char n_sclass;             /* storage class */
+    char n_numaux;             /* number of aux. entries */
+
 #ifndef TC_A29K
-       char            pad2[2];        /* force alignment */
+    char pad2[2];              /* force alignment */
 #endif /* TC_A29K */
-};
+  };
 
 #define        SYMENT  struct syment
-#define        SYMESZ  sizeof(SYMENT) /* This had better also be sizeof(AUXENT) */
+#define        SYMESZ  sizeof(SYMENT)  /* This had better also be sizeof(AUXENT) */
 
 #define n_name         _n._n_name
 #define n_ptr          _n._n_nptr[1]
 #define n_zeroes       _n._n_n._n_zeroes
 #define n_offset       _n._n_n._n_offset
-    
-    /*
+
+/*
      * Relocatable symbols have number of the section in which they are defined,
      * or one of the following:
      */
-    
-#define N_SCNUM        ((short) 1-65535) /* section num where symbol defined */
-#define N_UNDEF        ((short)0)  /* undefined symbol */
-#define N_ABS  ((short)-1) /* value of symbol is absolute */
-#define N_DEBUG        ((short)-2) /* debugging symbol -- symbol value is meaningless */
-#define N_TV   ((short)-3) /* indicates symbol needs preload transfer vector */
-#define P_TV   ((short)-4) /* indicates symbol needs transfer vector (postload) */
+
+#define N_SCNUM        ((short) 1-65535)       /* section num where symbol defined */
+#define N_UNDEF        ((short)0)      /* undefined symbol */
+#define N_ABS  ((short)-1)     /* value of symbol is absolute */
+#define N_DEBUG        ((short)-2)     /* debugging symbol -- symbol value is meaningless */
+#define N_TV   ((short)-3)     /* indicates symbol needs preload transfer vector */
+#define P_TV   ((short)-4)     /* indicates symbol needs transfer vector (postload) */
 
 /*
  * Type of a symbol, in low 4 bits of the word
  */
-#define T_NULL         0 /* type not assigned */
-#define T_VOID         1 /* function argument (only used by compiler) (but now real void). */
-#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_NULL         0       /* type not assigned */
+#define T_VOID         1       /* function argument (only used by compiler) (but now real void). */
+#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 */
 
 #ifdef TC_I960
 #define T_LNGDBL       16      /* long double */
@@ -442,76 +458,103 @@ struct syment {
 
 #define DECREF(x) ((((x)>>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK))
 
-union auxent {
-       struct {
-               long x_tagndx;  /* str, un, or enum tag indx */
-               union {
-                       struct {
-                               unsigned short x_lnno; /* declaration line number */
-                               unsigned short x_size; /* str/union/array size */
-                       } x_lnsz;
-                       long x_fsize;   /* size of function */
-               } x_misc;
-               union {
-                       struct {                /* if ISFCN, tag, or .bb */
-                               long x_lnnoptr; /* ptr to fcn line # */
-                               long x_endndx;  /* entry ndx past block end */
-                       } x_fcn;
-                       struct {                /* if ISARY, up to 4 dimen. */
-                               unsigned short x_dimen[DIMNUM];
-                       } x_ary;
-               } x_fcnary;
-               unsigned short x_tvndx;         /* tv index */
-       } x_sym;
-       
-       /* This was just a struct x_file with x_fname only in a29k.  xoxorich. */
-       union {
-               char x_fname[FILNMLEN];
-               struct {
-                       long x_zeroes;
-                       long x_offset;
-               } x_n;
-       } x_file;
-       
-       struct {
-               long x_scnlen;                  /* section length */
-               unsigned short x_nreloc;        /* # relocation entries */
-               unsigned short x_nlinno;        /* # line numbers */
-       } x_scn;
-       
-       struct {
-               long            x_tvfill;       /* tv fill value */
-               unsigned short  x_tvlen;        /* length of .tv */
-               
-               /* This field was typo'd x_tvrna on a29k. xoxorich. */
-               unsigned short  x_tvran[2];     /* tv range */
-       } x_tv;         /* info about .tv section (in auxent of symbol .tv)) */
-       
+union auxent
+  {
+    struct
+      {
+       long x_tagndx;          /* str, un, or enum tag indx */
+       union
+         {
+           struct
+             {
+               unsigned short x_lnno;  /* declaration line number */
+               unsigned short x_size;  /* str/union/array size */
+             }
+           x_lnsz;
+           long x_fsize;       /* size of function */
+         }
+       x_misc;
+       union
+         {
+           struct
+             {                 /* if ISFCN, tag, or .bb */
+               long x_lnnoptr; /* ptr to fcn line # */
+               long x_endndx;  /* entry ndx past block end */
+             }
+           x_fcn;
+           struct
+             {                 /* if ISARY, up to 4 dimen. */
+               unsigned short x_dimen[DIMNUM];
+             }
+           x_ary;
+         }
+       x_fcnary;
+       unsigned short x_tvndx; /* tv index */
+      }
+    x_sym;
+
+    /* This was just a struct x_file with x_fname only in a29k.  xoxorich. */
+    union
+      {
+       char x_fname[FILNMLEN];
+       struct
+         {
+           long x_zeroes;
+           long x_offset;
+         }
+       x_n;
+      }
+    x_file;
+
+    struct
+      {
+       long x_scnlen;          /* section length */
+       unsigned short x_nreloc;/* # relocation entries */
+       unsigned short x_nlinno;/* # line numbers */
+      }
+    x_scn;
+
+    struct
+      {
+       long x_tvfill;          /* tv fill value */
+       unsigned short x_tvlen; /* length of .tv */
+
+       /* This field was typo'd x_tvrna on a29k. xoxorich. */
+       unsigned short x_tvran[2];      /* tv range */
+      }
+    x_tv;                      /* info about .tv section (in auxent of symbol .tv)) */
+
 #ifdef TC_I960
-       /******************************************
+    /******************************************
         *  I960-specific *2nd* aux. entry formats
         ******************************************/
-       struct {
-               /* This is a very old typo that keeps getting propogated. */
+    struct
+      {
+       /* This is a very old typo that keeps getting propogated. */
 #define x_stdindx x_stindx
-               long x_stindx;  /* sys. table entry */
-       } x_sc; /* system call entry */
-       
-       struct {
-               unsigned long x_balntry; /* BAL entry point */
-       } x_bal; /* BAL-callable function */
-       
-       struct {
-               unsigned long   x_timestamp;            /* time stamp */
-               char    x_idstring[20];         /* producer identity string */
-       } x_ident;                              /* Producer ident info */
-       
-       char a[sizeof(struct syment)];  /* force auxent/syment sizes to match */
+       long x_stindx;          /* sys. table entry */
+      }
+    x_sc;                      /* system call entry */
+
+    struct
+      {
+       unsigned long x_balntry;/* BAL entry point */
+      }
+    x_bal;                     /* BAL-callable function */
+
+    struct
+      {
+       unsigned long x_timestamp;      /* time stamp */
+       char x_idstring[20];    /* producer identity string */
+      }
+    x_ident;                   /* Producer ident info */
+
+    char a[sizeof (struct syment)];    /* force auxent/syment sizes to match */
 #endif /* TC_I960 */
-};
+  };
 
 #define        AUXENT  union auxent
-#define        AUXESZ  sizeof(AUXENT) /* This had better also be sizeof(SYMENT) */
+#define        AUXESZ  sizeof(AUXENT)  /* This had better also be sizeof(SYMENT) */
 
 #if VAX || I960
 #      define _ETEXT   "_etext"
@@ -521,20 +564,38 @@ union auxent {
 
 /********************** RELOCATION DIRECTIVES **********************/
 
-struct reloc {
-       long r_vaddr;           /* Virtual address of reference */
-       long r_symndx;          /* Index into symbol table */
-       unsigned short r_type;  /* Relocation type */
+struct reloc
+  {
+    long r_vaddr;              /* Virtual address of reference */
+    long r_symndx;             /* Index into symbol table */
+    unsigned short r_type;     /* Relocation type */
 #ifdef TC_I960
-       /* not used for a29k */
-       char pad[2];            /* Unused */
+    /* not used for a29k */
+    char pad[2];               /* Unused */
 #endif /* TC_I960 */
-};
+  };
 
 #define RELOC struct reloc
 #define RELSZ sizeof(RELOC)
 
-#define        R_ABS           (0x00) /* reference is absolute */
+#define        R_ABS           (0x00)  /* reference is absolute */
+
+#ifdef TC_I860
+#define RM_DIR32       (0x06)
+#define R_IPAIR                (0x1c)
+#define R_N10PAIR      (0x1d)
+#define R_N10HIGH      (0x1e)
+#define R_N10LOW0      (0x1f)
+#define R_N10LOW1      (0x20)
+#define R_N10LOW2      (0x21)
+#define R_N10LOW3      (0x22)
+#define R_N10LOW4      (0x23)
+#define R_N10SPLIT0    (0x24)
+#define R_N10SPLIT1    (0x25)
+#define R_N10SPLIT2    (0x26)
+#define R_N10HIGHADJ   (0x27)
+#define R_N10BRADDR    (0x28)
+#endif /* TC_I860 */
 
 #ifdef TC_I960
 #define R_RELLONG      (0x11)  /* Direct 32-bit relocation */
@@ -567,18 +628,18 @@ struct reloc {
  * constant fields of the instruction are set to zero.
  */
 
-#define        R_IREL          (0x18) /* instruction relative (jmp/call) */
-#define        R_IABS          (0x19) /* instruction absolute (jmp/call) */
-#define        R_ILOHALF       (0x1a) /* instruction low half  (const)  */
-#define        R_IHIHALF       (0x1b) /* instruction high half (consth) part 1 */
-#define        R_IHCONST       (0x1c) /* instruction high half (consth) part 2
+#define        R_IREL          (0x18)  /* instruction relative (jmp/call) */
+#define        R_IABS          (0x19)  /* instruction absolute (jmp/call) */
+#define        R_ILOHALF       (0x1a)  /* instruction low half  (const)  */
+#define        R_IHIHALF       (0x1b)  /* instruction high half (consth) part 1 */
+#define        R_IHCONST       (0x1c)  /* instruction high half (consth) part 2
                                  constant offset of R_IHIHALF relocation */
-#define        R_BYTE          (0x1d) /* relocatable byte value */
-#define R_HWORD                (0x1e) /* relocatable halfword value */
-#define R_WORD         (0x1f) /* relocatable word value */
-#define        R_IGLBLRC       (0x20) /* instruction global register RC */
-#define        R_IGLBLRA       (0x21) /* instruction global register RA */
-#define        R_IGLBLRB       (0x22) /* instruction global register RB */
+#define        R_BYTE          (0x1d)  /* relocatable byte value */
+#define R_HWORD                (0x1e)  /* relocatable halfword value */
+#define R_WORD         (0x1f)  /* relocatable word value */
+#define        R_IGLBLRC       (0x20)  /* instruction global register RC */
+#define        R_IGLBLRA       (0x21)  /* instruction global register RA */
+#define        R_IGLBLRB       (0x22)  /* instruction global register RB */
 #endif /* TC_A29K */
 
 
@@ -592,7 +653,7 @@ struct reloc {
 /*
  * X86 generic
  *     8-bit offset reference in 8-bits
- *     8-bit offset reference in 16-bits 
+ *     8-bit offset reference in 16-bits
  *     12-bit segment reference
  *     auxiliary relocation entry
  */
@@ -625,7 +686,7 @@ struct reloc {
 #define  R_IND24       015
 #define  R_IND32       016
 
-/* 
+/*
  * XL generics
  *     10-bit direct reference
  *     10-bit "relative" reference
@@ -646,34 +707,35 @@ struct reloc {
  *     32-bit direct reference with bytes swapped
  */
 #define  R_DIR32S      012
+
 #endif /* TC_I386 */
 
 #if defined(TE_I386AIX)
 
-#define UINFOSIZ        64      /* size of user info buffer */
+#define UINFOSIZ        64     /* size of user info buffer */
 typedef char uinfo_t[UINFOSIZ];
 
-struct env387 {
-  unsigned short control;
-  unsigned short r0;
-  unsigned short status;
-  unsigned short r1;
-  unsigned short tag;
-  unsigned short r2;
-  unsigned long eip;
-  unsigned short code_seg;
-  unsigned short opcode;
-  unsigned long operand;
-  unsigned short operand_seg;
-  unsigned short r3;
-  unsigned char regs[8][10];
-};
-
-#define        CD_NAMELEN 16   /* length of most names in this header */
-#define        CORHDRSIZ       2048 /* size to which header is padded out */
-#define        MAX_CORE_SEGS   32 /* maximum segments in a core dump */
-#define NUM_FREGS      1 /* # of saved FP regs */
+struct env387
+  {
+    unsigned short control;
+    unsigned short r0;
+    unsigned short status;
+    unsigned short r1;
+    unsigned short tag;
+    unsigned short r2;
+    unsigned long eip;
+    unsigned short code_seg;
+    unsigned short opcode;
+    unsigned long operand;
+    unsigned short operand_seg;
+    unsigned short r3;
+    unsigned char regs[8][10];
+  };
+
+#define        CD_NAMELEN 16           /* length of most names in this header */
+#define        CORHDRSIZ       2048    /* size to which header is padded out */
+#define        MAX_CORE_SEGS   32      /* maximum segments in a core dump */
+#define NUM_FREGS      1       /* # of saved FP regs */
 
 /*
  * These are defined such that 286 and 386 kernels can produce
@@ -698,64 +760,74 @@ struct env387 {
 #define NUM_REGS       16
 
 #ifndef SPATHLEN
-# define SPATHLEN 16 /* sys/param.h */
+# define SPATHLEN 16           /* sys/param.h */
 #endif
 #ifndef NSIG
-# define NSIG 63 /* sys/signal.h */
+# define NSIG 63               /* sys/signal.h */
 # define SIGSETSZ ((NSIG+31)/32)
-typedef struct ksigmask {
-       unsigned long sigs[SIGSETSZ];
-} ksigmask_t;
+typedef struct ksigmask
+  {
+    unsigned long sigs[SIGSETSZ];
+  }
+
+ksigmask_t;
 #endif
 
-struct corehdr {
-       char cd_magic[4];               /* COR_MAGIC = "core" */
-       
-       /* general information about the dump itself */
-       struct dumpseg { /* table of contents for dump */
-               long cs_type; /* seg. type; see below */
-               long cs_len; /* length (in bytes) of segment */
-               long cs_offset; /* offset (in dump) of segment */
-               long cs_address; /* address segment had in mem */
-       } cd_segs[MAX_CORE_SEGS];
-       
-       /* general information about the process */
-       char cd_comm[CD_NAMELEN]; /* command being run */
-       char cd_mach[CD_NAMELEN]; /* type of machine it ran on */
-       char cd_site[CD_NAMELEN]; /* name of site it ran on */
-       long cd_ldtype; /* type of load module running */
-       char cd_intsize; /* sizeof(int) */
-       char cd_dptrsize; /* sizeof(char *) */
-       char cd_tptrsize; /* sizeof(int (*)()) */
-       char cd_unused;
-       
-       /* user-mode program state */
-       long cd_regs[NUM_REGS]; /* user-mode general registers  */
-       struct env387 cd_fpregs; /* user-mode floating-point state */
-       
-       /* kernel-mode program state */
-       int (*cd_sig[NSIG])(); /* disposition of signals */
-       ksigmask_t cd_sigmask; /* signals to be blocked */
-       ksigmask_t cd_sigpend; /* signals currently pending */
-       long cd_cursig; /* signal that caused the dump */
-       
-       long cd_pid; /* process ID of the corpse */
-       long cd_ppid; /* parent process ID of corpse */
-       short cd_uid; /* process effective user ID */
-       short cd_ruid; /* process real user ID */
-       short cd_gid; /* process effective group ID */
-       short cd_rgid; /* process real group ID */
-       
-       uinfo_t cd_uinfo; /* buffer of user information */
-       char cd_locname[32]; /* name of /local */
-       char cd_uvers[CD_NAMELEN]; /* user version string */
-       unsigned short cd_spath[SPATHLEN]; /* sitepath */
-};
+struct corehdr
+  {
+    char cd_magic[4];          /* COR_MAGIC = "core" */
+
+    /* general information about the dump itself */
+    struct dumpseg
+      {                                /* table of contents for dump */
+       long cs_type;           /* seg. type; see below */
+       long cs_len;            /* length (in bytes) of segment */
+       long cs_offset;         /* offset (in dump) of segment */
+       long cs_address;        /* address segment had in mem */
+      }
+    cd_segs[MAX_CORE_SEGS];
+
+    /* general information about the process */
+    char cd_comm[CD_NAMELEN];  /* command being run */
+    char cd_mach[CD_NAMELEN];  /* type of machine it ran on */
+    char cd_site[CD_NAMELEN];  /* name of site it ran on */
+    long cd_ldtype;            /* type of load module running */
+    char cd_intsize;           /* sizeof(int) */
+    char cd_dptrsize;          /* sizeof(char *) */
+    char cd_tptrsize;          /* sizeof(int (*)()) */
+    char cd_unused;
+
+    /* user-mode program state */
+    long cd_regs[NUM_REGS];    /* user-mode general registers  */
+    struct env387 cd_fpregs;   /* user-mode floating-point state */
+
+    /* kernel-mode program state */
+    int (*cd_sig[NSIG]) ();    /* disposition of signals */
+    ksigmask_t cd_sigmask;     /* signals to be blocked        */
+    ksigmask_t cd_sigpend;     /* signals currently pending */
+    long cd_cursig;            /* signal that caused the dump */
+
+    long cd_pid;               /* process ID of the corpse */
+    long cd_ppid;              /* parent process ID of corpse */
+    short cd_uid;              /* process effective user ID */
+    short cd_ruid;             /* process real user ID */
+    short cd_gid;              /* process effective group ID */
+    short cd_rgid;             /* process real group ID        */
+
+    uinfo_t cd_uinfo;          /* buffer of user information   */
+    char cd_locname[32];       /* name of /local */
+    char cd_uvers[CD_NAMELEN]; /* user version string */
+    unsigned short cd_spath[SPATHLEN]; /* sitepath */
+  };
 
 #ifndef NOCHECKS
 /* this will generate an error if sizeof(struct corehdr) > CORHDRSIZ */
-struct { char xxcdxx[CORHDRSIZ+1-sizeof(struct corehdr)]; };
-#endif /* ! NOCHECKS */
+struct
+  {
+    char xxcdxx[CORHDRSIZ + 1 - sizeof (struct corehdr)];
+  };
+
+#endif /* ! NOCHECKS */
 
 /*
  * segment types (in cs_type)
This page took 0.035817 seconds and 4 git commands to generate.