]> Git Repo - binutils.git/blobdiff - include/internalcoff.h
Add rs6k.h
[binutils.git] / include / internalcoff.h
index dbbb0ad4463f24914ed6c198011172ad5961941a..26cd14c340f0819c05e7f32e32cd74a7cfc3c6e4 100755 (executable)
@@ -1,3 +1,13 @@
+/* Internal format of COFF object file data structures, for GNU BFD.
+   This file is part of BFD, the Binary File Descriptor library.  */
+
+/* First, make "signed char" work, even on old compilers. */
+#ifndef signed
+#ifndef __STDC__
+#define        signed  /**/
+#endif
+#endif
+
 /********************** FILE HEADER **********************/
 struct internal_filehdr 
 {
@@ -47,18 +57,18 @@ struct internal_aouthdr {
        unsigned long   tagentries;     /* number of tag entries to follow */
 
        /* RS/6000 stuff */
-        ulong   o_toc;          /* address of TOC                       */
-        short   o_snentry;      /* section number for entry point       */
-        short   o_sntext;       /* section number for text              */
-        short   o_sndata;       /* section number for data              */
-        short   o_sntoc;        /* section number for toc               */
-        short   o_snloader;     /* section number for loader section    */
-        short   o_snbss;        /* section number for bss               */
-        short   o_algntext;     /* max alignment for text               */
-        short   o_algndata;     /* max alignment for data               */
-        short   o_modtype;      /* Module type field, 1R,RE,RO          */
-        ulong   o_maxstack;     /* max stack size allowed.              */
-} ;
+        unsigned long   o_toc; /* address of TOC                       */
+        short          o_snentry;      /* section number for entry point */
+        short          o_sntext;       /* section number for text      */
+        short          o_sndata;       /* section number for data      */
+        short          o_sntoc;        /* section number for toc       */
+        short          o_snloader;     /* section number for loader section */
+        short          o_snbss;        /* section number for bss       */
+        short          o_algntext;     /* max alignment for text       */
+        short          o_algndata;     /* max alignment for data       */
+        short          o_modtype;      /* Module type field, 1R,RE,RO  */
+        unsigned long   o_maxstack;     /* max stack size allowed.     */
+};
 
 /********************** STORAGE CLASSES **********************/
 
@@ -111,21 +121,21 @@ struct internal_aouthdr {
 #define C_EINCL         109     /* Marks ending of include file */
 
        /* storage classes for stab symbols for RS/6000 */
-#define C_GSYM          0x80
-#define C_LSYM          0x81
-#define C_PSYM          0x82
-#define C_RSYM          0x83
-#define C_RPSYM         0x84
-#define C_STSYM         0x85
-#define C_TCSYM         0x86
-#define C_BCOMM         0x87
-#define C_ECOML         0x88
-#define C_ECOMM         0x89
-#define C_DECL          0x8c
-#define C_ENTRY         0x8d
-#define C_FUN           0x8e
-#define C_BSTAT         0x8f
-#define C_ESTAT         0x90
+#define C_GSYM          ((signed char)0x80)
+#define C_LSYM          ((signed char)0x81)
+#define C_PSYM          ((signed char)0x82)
+#define C_RSYM          ((signed char)0x83)
+#define C_RPSYM         ((signed char)0x84)
+#define C_STSYM         ((signed char)0x85)
+#define C_TCSYM         ((signed char)0x86)
+#define C_BCOMM         ((signed char)0x87)
+#define C_ECOML         ((signed char)0x88)
+#define C_ECOMM         ((signed char)0x89)
+#define C_DECL          ((signed char)0x8c)
+#define C_ENTRY         ((signed char)0x8d)
+#define C_FUN           ((signed char)0x8e)
+#define C_BSTAT         ((signed char)0x8f)
+#define C_ESTAT         ((signed char)0x90)
 
 /********************** SECTION HEADER **********************/
 struct internal_scnhdr {
@@ -136,13 +146,8 @@ struct internal_scnhdr {
        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     */
-#ifdef M88
-       unsigned long   s_nreloc;
-       unsigned long   s_nlnno;
-#else
-       unsigned short  s_nreloc;       /* number of relocation entries */
-       unsigned short  s_nlnno;        /* number of line number entries*/
-#endif
+       unsigned long   s_nreloc;       /* number of relocation entries */
+       unsigned long   s_nlnno;        /* number of line number entries*/
        long            s_flags;        /* flags                        */
 #ifdef I960
        long            s_align;        
@@ -186,11 +191,7 @@ struct internal_lineno {
                long l_symndx;  /* function name symbol index, iff l_lnno == 0*/
                long l_paddr;   /* (physical) address of line number    */
        } l_addr;
-#ifdef M88
        unsigned long   l_lnno; /* line number          */
-#else
-       unsigned short  l_lnno; /* line number          */
-#endif
 };
 
 
@@ -213,10 +214,7 @@ struct internal_syment {
        short           n_scnum;        /* section number               */
        unsigned short  n_flags;        /* copy of flags from filhdr    */
        unsigned short  n_type;         /* type and derived type        */
-#if __STDC__
-       signed
-#endif
-       char            n_sclass;       /* storage class                */
+       signed char     n_sclass;       /* storage class                */
        char            n_numaux;       /* number of aux. entries       */
 };
 #define n_name         _n._n_name
@@ -340,6 +338,38 @@ union internal_auxent
     unsigned short  x_snstab;       /* sect num with dbx stab */
   } x_csect; /* csect definition information */
 
+/* x_smtyp values:  */
+
+#define        SMTYP_ALIGN(x)  ((x) >> 3)      /* log2 of alignment */
+#define        SMTYP_SMTYP(x)  ((x) & 0x7)     /* symbol type */
+/* Symbol type values:  */
+#define        XTY_ER  0       /* External reference */
+#define        XTY_SD  1       /* Csect definition */
+#define        XTY_LD  2       /* Label definition */
+#define XTY_CM 3       /* .BSS */
+#define        XTY_EM  4       /* Error message */
+#define        XTY_US  5       /* "Reserved for internal use" */
+
+/* x_smclas values:  */
+
+#define        XMC_PR  0       /* Read-only program code */
+#define        XMC_RO  1       /* Read-only constant */
+#define        XMC_DB  2       /* Read-only debug dictionary table */
+#define        XMC_TC  3       /* Read-write general TOC entry */
+#define        XMC_UA  4       /* Read-write unclassified */
+#define        XMC_RW  5       /* Read-write data */
+#define        XMC_GL  6       /* Read-only global linkage */
+#define        XMC_XO  7       /* Read-only extended operation (simulated insn) */
+#define        XMC_SV  8       /* Read-only supervisor call */
+#define        XMC_BS  9       /* Read-write BSS */
+#define        XMC_DS  10      /* Read-write descriptor csect */
+#define        XMC_UC  11      /* Read-write unnamed Fortran common */
+#define        XMC_TI  12      /* Read-only traceback index csect */
+#define        XMC_TB  13      /* Read-only traceback table csect */
+/*             14      ??? */
+#define        XMC_TC0 15      /* Read-write TOC anchor for TOC addressability */
+
+
   /******************************************
    *  I960-specific *2nd* aux. entry formats
    ******************************************/
@@ -362,7 +392,8 @@ union internal_auxent
 
 /********************** RELOCATION DIRECTIVES **********************/
 
-struct internal_reloc {
+struct internal_reloc 
+{
        long r_vaddr;           /* Virtual address of reference */
        long r_symndx;          /* Index into symbol table      */
        unsigned short r_type;  /* Relocation type              */
@@ -371,9 +402,8 @@ struct internal_reloc {
        unsigned char  r_size;
 #endif
 
-#if M88
        unsigned short r_offset;
-#endif
+
 };
 
 #define R_RELBYTE      017
This page took 0.030647 seconds and 4 git commands to generate.