gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / binutils / coffgrok.h
index c0ade42a61f7286bff798dd318ed87505de381cf..e5aedd8caf0623af1ed5eec9bd9c183ea0faac25 100644 (file)
@@ -1,41 +1,61 @@
+/* coffgrok.h
+   Copyright (C) 2001-2020 Free Software Foundation, Inc.
+
+   This file is part of GNU Binutils.
+
+   This program 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 3 of the License, or
+   (at your option) any later version.
+
+   This program 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 this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
 #define T_NULL         0
-#define T_VOID         1       /* function argument (only used by compiler) */
-#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_LNGDBL       16      /* long double          */
-
-
- struct coff_reloc
- {
-   int offset;
-   struct coff_symbol *symbol;
-   int addend;
- };
-
- struct coff_section 
- {
-   char *name;
-   int code;
-   int data;
-   int address;
-   int number;  /* 0..n, .text = 0 */
-   int nrelocs;
-   int size;
-   struct coff_reloc *relocs;
-   struct sec *bfd_section;
- };
+#define T_VOID         1       /* Function argument (only used by compiler).  */
+#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_LNGDBL       16      /* Long double          */
+
+
+struct coff_reloc
+{
+  int offset;
+  struct coff_symbol *symbol;
+  int addend;
+};
+
+struct coff_section
+{
+  char *name;
+  int code;
+  int data;
+  int address;
+  int number;  /* 0..n, .text = 0 */
+  unsigned int nrelocs;
+  int size;
+  struct coff_reloc *relocs;
+  struct bfd_section *bfd_section;
+};
 
 struct coff_ofile
 {
@@ -48,7 +68,8 @@ struct coff_ofile
   struct coff_symbol *symbol_list_tail;
 };
 
-struct coff_isection {
+struct coff_isection
+{
   int low;
   int high;
   int init;
@@ -62,145 +83,139 @@ struct coff_sfile
   struct coff_sfile *next;
 
   /* Vector which maps where in each output section
-     the input file has it's data */
-  struct coff_isection *section; 
-
+     the input file has it's data.  */
+  struct coff_isection *section;
 };
 
-
- struct coff_type
+struct coff_type
 {
   int size;
   enum
     {
       coff_pointer_type, coff_function_type, coff_array_type, coff_structdef_type, coff_basic_type,
       coff_structref_type, coff_enumref_type, coff_enumdef_type, coff_secdef_type
-      } type;
+    } type;
+
   union
     {
-      struct 
-       {
+      struct
+      {
        int address;
        int size;
       } asecdef;
 
       struct
-       {
-         int isstruct;
-         struct coff_scope *elements;
-         int idx;
-       }
-      astructdef;
+      {
+       int isstruct;
+       struct coff_scope *elements;
+       int idx;
+      } astructdef;
+
       struct
-       {
-         struct coff_symbol *ref;
-       } astructref;
+      {
+       struct coff_symbol *ref;
+      } astructref;
 
       struct
-       {
-         struct coff_scope *elements;
-         int idx;
-       } aenumdef;
+      {
+       struct coff_scope *elements;
+       int idx;
+      } aenumdef;
+
       struct
-       {
-         struct coff_symbol *ref;
-       } aenumref;
+      {
+       struct coff_symbol *ref;
+      } aenumref;
 
       struct
-       {
-         struct coff_type *points_to;
-       } pointer;
+      {
+       struct coff_type *points_to;
+      } pointer;
+
       struct
-       {
-         int dim;
-         struct coff_type *array_of;
-       } array;
+      {
+       int dim;
+       struct coff_type *array_of;
+      } array;
 
       struct
-       {
-         struct coff_type *function_returns;
-         struct coff_scope *parameters;
-         struct coff_scope *code;
-         struct coff_line *lines;
-       } function;
+      {
+       struct coff_type *   function_returns;
+       struct coff_scope *  parameters;
+       struct coff_scope *  code;
+       struct coff_line *   lines;
+      } function;
+
       int basic;               /* One of T_VOID.. T_UINT */
-    }  u;
+  } u;
+};
+
+struct coff_line
+{
+  int   nlines;
+  int * lines;
+  int * addresses;
+};
+
+struct coff_scope
+{
+  struct coff_section * sec;     /* Which section.  */
+  int                   offset;  /* Where.  */
+  int                   size;    /* How big.  */
+  struct coff_scope *   parent;         /* One up.  */
+  struct coff_scope *   next;   /* Next along.  */
+  int                   nvars;
+  struct coff_symbol *  vars_head;     /* Symbols.  */
+  struct coff_symbol *  vars_tail;
+  struct coff_scope *   list_head;     /* Children.  */
+  struct coff_scope *   list_tail;
 };
 
+struct coff_visible
+{
+  enum coff_vis_type
+  {
+    coff_vis_ext_def,
+    coff_vis_ext_ref,
+    coff_vis_int_def,
+    coff_vis_common,
+    coff_vis_auto,
+    coff_vis_register,
+    coff_vis_tag,
+    coff_vis_member_of_struct,
+    coff_vis_member_of_enum,
+    coff_vis_autoparam,
+    coff_vis_regparam,
+  } type;
+};
+
+struct coff_where
+{
+  enum
+  {
+    coff_where_stack, coff_where_memory, coff_where_register, coff_where_unknown,
+    coff_where_strtag, coff_where_member_of_struct,
+    coff_where_member_of_enum, coff_where_entag, coff_where_typedef
+  } where;
+
+  int offset;
+  int bitoffset;
+  int bitsize;
+  struct coff_section *section;
+};
+
+struct coff_symbol
+{
+  char *                name;
+  int                   tag;
+  struct coff_type *    type;
+  struct coff_where *   where;
+  struct coff_visible * visible;
+  struct coff_symbol *  next;
+  struct coff_symbol *  next_in_ofile_list; /* For the ofile list.  */
+  int                   number;
+  int                   er_number;
+  struct coff_sfile *   sfile;
+};
 
- struct coff_line 
- {
-   int nlines;
-   int *lines;
-   int *addresses;
- };
-
-
- struct coff_scope
-   {
-     struct coff_section *sec; /* What section */
-     int offset; /* where */
-     int size; /* How big */
-     struct coff_scope *parent;        /* one up */
-
-     struct coff_scope *next;  /*next along */
-
-     int nvars;
-
-     struct coff_symbol *vars_head;    /* symbols */
-     struct coff_symbol *vars_tail;
-
-     struct coff_scope *list_head;     /* children */
-     struct coff_scope *list_tail;
-
-   };
-
-
- struct coff_visible
-   {
-     enum coff_vis_type
-       {
-        coff_vis_ext_def,
-        coff_vis_ext_ref,
-        coff_vis_int_def,
-        coff_vis_common,
-        coff_vis_auto,
-        coff_vis_register,
-        coff_vis_tag,
-        coff_vis_member_of_struct,
-        coff_vis_member_of_enum,
-        coff_vis_autoparam,    
-        coff_vis_regparam,
-       } type;
-   };
-
- struct coff_where
-   {
-     enum
-       {
-        coff_where_stack, coff_where_memory, coff_where_register, coff_where_unknown,
-        coff_where_strtag, coff_where_member_of_struct,
-        coff_where_member_of_enum, coff_where_entag, coff_where_typedef
-
-       } where;
-     int offset;
-     int bitoffset;
-     int bitsize;
-     struct coff_section *section;
-   };
-
- struct coff_symbol
-   {
-     char *name;
-     int tag;
-     struct coff_type *type;
-     struct coff_where *where;
-     struct coff_visible *visible;
-     struct coff_symbol *next;
-     struct coff_symbol *next_in_ofile_list; /* For the ofile list */
-     int number;
-     int er_number;
-     struct coff_sfile *sfile;
-  };
-
-struct coff_ofile *coff_grok();
+struct coff_ofile * coff_grok (bfd *);
This page took 0.029401 seconds and 4 git commands to generate.