compile-object-load.h revision 1.4
1/* Header file to load module for 'compile' command.
2   Copyright (C) 2014-2016 Free Software Foundation, Inc.
3
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU General Public License as published by
6   the Free Software Foundation; either version 3 of the License, or
7   (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   GNU General Public License for more details.
13
14   You should have received a copy of the GNU General Public License
15   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16
17#ifndef GDB_COMPILE_OBJECT_LOAD_H
18#define GDB_COMPILE_OBJECT_LOAD_H
19
20struct munmap_list;
21
22struct compile_module
23{
24  /* objfile for the compiled module.  */
25  struct objfile *objfile;
26
27  /* .c file OBJFILE was built from.  It needs to be xfree-d.  */
28  char *source_file;
29
30  /* Inferior function GCC_FE_WRAPPER_FUNCTION.  */
31  struct symbol *func_sym;
32
33  /* Inferior registers address or NULL if the inferior function does not
34     require any.  */
35  CORE_ADDR regs_addr;
36
37  /* The "scope" of this compilation.  */
38  enum compile_i_scope_types scope;
39
40  /* User data for SCOPE in use.  */
41  void *scope_data;
42
43  /* Inferior parameter out value type or NULL if the inferior function does not
44     have one.  */
45  struct type *out_value_type;
46
47  /* If the inferior function has an out value, this is its address.
48     Otherwise it is zero.  */
49  CORE_ADDR out_value_addr;
50
51  /* Track inferior memory reserved by inferior mmap.  */
52  struct munmap_list *munmap_list_head;
53};
54
55extern struct compile_module *compile_object_load
56  (const char *object_file, const char *source_file,
57   enum compile_i_scope_types scope, void *scope_data);
58extern void munmap_list_free (struct munmap_list *head);
59
60#endif /* GDB_COMPILE_OBJECT_LOAD_H */
61