Fix script name in usage and generated year range.
[binutils-gdb.git] / gdb / compile / compile-object-load.h
index 850111e3d4384f74b0a3b8d0a3dbdc3ae7245cb7..c4adc7191413e972501747923a99b48dfddebc01 100644 (file)
@@ -1,5 +1,5 @@
 /* Header file to load module for 'compile' command.
-   Copyright (C) 2014 Free Software Foundation, Inc.
+   Copyright (C) 2014-2020 Free Software Foundation, Inc.
 
    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
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef GDB_COMPILE_OBJECT_LOAD_H
-#define GDB_COMPILE_OBJECT_LOAD_H
+#ifndef COMPILE_COMPILE_OBJECT_LOAD_H
+#define COMPILE_COMPILE_OBJECT_LOAD_H
+
+#include "compile-internal.h"
+#include <list>
+
+struct munmap_list
+{
+public:
+
+  munmap_list () = default;
+  ~munmap_list ();
+
+  DISABLE_COPY_AND_ASSIGN (munmap_list);
+
+  /* Add a region to the list.  */
+  void add (CORE_ADDR addr, CORE_ADDR size);
+
+private:
+
+  /* Track inferior memory reserved by inferior mmap.  */
+
+  struct munmap_item
+  {
+    CORE_ADDR addr, size;
+  };
+
+  std::vector<munmap_item> items;
+};
 
 struct compile_module
 {
@@ -25,15 +52,33 @@ struct compile_module
   /* .c file OBJFILE was built from.  It needs to be xfree-d.  */
   char *source_file;
 
-  /* Inferior function address.  */
-  CORE_ADDR func_addr;
+  /* Inferior function GCC_FE_WRAPPER_FUNCTION.  */
+  struct symbol *func_sym;
 
   /* Inferior registers address or NULL if the inferior function does not
      require any.  */
   CORE_ADDR regs_addr;
+
+  /* The "scope" of this compilation.  */
+  enum compile_i_scope_types scope;
+
+  /* User data for SCOPE in use.  */
+  void *scope_data;
+
+  /* Inferior parameter out value type or NULL if the inferior function does not
+     have one.  */
+  struct type *out_value_type;
+
+  /* If the inferior function has an out value, this is its address.
+     Otherwise it is zero.  */
+  CORE_ADDR out_value_addr;
+
+  /* Track inferior memory reserved by inferior mmap.  */
+  struct munmap_list *munmap_list_head;
 };
 
-extern struct compile_module *compile_object_load (const char *object_file,
-                                                  const char *source_file);
+extern struct compile_module *compile_object_load
+  (const compile_file_names &fnames,
+   enum compile_i_scope_types scope, void *scope_data);
 
-#endif /* GDB_COMPILE_OBJECT_LOAD_H */
+#endif /* COMPILE_COMPILE_OBJECT_LOAD_H */