]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/gdb_bfd.h
* gdb_bfd.c (struct gdb_bfd_data): New.
[thirdparty/binutils-gdb.git] / gdb / gdb_bfd.h
1 /* Definitions for BFD wrappers used by GDB.
2
3 Copyright (C) 2011
4 Free Software Foundation, Inc.
5
6 This file is part of GDB.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
21 #ifndef GDB_BFD_H
22 #define GDB_BFD_H
23
24 /* Make a copy ABFD's filename using bfd_alloc, and reassign it to the
25 BFD. This ensures that the BFD's filename has the same lifetime as
26 the BFD itself. */
27
28 void gdb_bfd_stash_filename (struct bfd *abfd);
29
30 /* Open a read-only (FOPEN_RB) BFD given arguments like bfd_fopen.
31 Returns NULL on error. On success, returns a new reference to the
32 BFD, which must be freed with gdb_bfd_unref. BFDs returned by this
33 call are shared among all callers opening the same file. If FD is
34 not -1, then after this call it is owned by BFD. */
35
36 struct bfd *gdb_bfd_open (const char *name, const char *target, int fd);
37
38 /* Acquire a new reference to ABFD. Returns ABFD for convenience.
39 It is fine for ABFD to be NULL; in this case the function does
40 nothing and returns NULL. */
41
42 struct bfd *gdb_bfd_ref (struct bfd *abfd);
43
44 /* Release a reference to ABFD. If this is the last reference, ABFD
45 will be freed. If ABFD is NULL, this function does nothing. */
46
47 void gdb_bfd_unref (struct bfd *abfd);
48
49 #endif /* GDB_BFD_H */