* bfd-in.h (bfd_cache_close_all): New function declaration.
authorJerome Guitton <guitton@adacore.com>
Thu, 17 Jun 2004 11:47:51 +0000 (11:47 +0000)
committerJerome Guitton <guitton@adacore.com>
Thu, 17 Jun 2004 11:47:51 +0000 (11:47 +0000)
* bfd-in2.h: Regenerate.
* cache.c (bfd_cache_close_all): New function definition.

bfd/ChangeLog
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/cache.c

index abaaf7a..d475a27 100644 (file)
@@ -1,3 +1,9 @@
+2004-06-17  Jerome Guitton  <guitton@gnat.com>
+
+       * bfd-in.h (bfd_cache_close_all): New function declaration.
+       * bfd-in2.h: Regenerate.
+       * cache.c (bfd_cache_close_all): New function definition.
+
 2004-06-16  Mark Kettenis  <kettenis@gnu.org>
 
        * configure.in: Don't set COREFILE to trad-core.lo for FreeBSD
index cbf7e93..5f98164 100644 (file)
@@ -511,6 +511,8 @@ extern bfd_boolean bfd_cache_close
   (bfd *abfd);
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
 
+extern bfd_boolean bfd_cache_close_all (void);
+
 extern bfd_boolean bfd_record_phdr
   (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
    bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
index 851fe47..87dd250 100644 (file)
@@ -518,6 +518,8 @@ extern bfd_boolean bfd_cache_close
   (bfd *abfd);
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
 
+extern bfd_boolean bfd_cache_close_all (void);
+
 extern bfd_boolean bfd_record_phdr
   (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
    bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
index 58eda91..63d4d78 100644 (file)
@@ -344,6 +344,31 @@ bfd_cache_close (bfd *abfd)
 }
 
 /*
+FUNCTION
+       bfd_cache_close_all
+
+SYNOPSIS
+       bfd_boolean bfd_cache_close_all (void);
+
+DESCRIPTION
+       Remove all BFDs from the cache. If the attached file is open,
+       then close it too.
+
+RETURNS
+       <<FALSE>> is returned if closing one of the file fails, <<TRUE>> is
+       returned if all is well.
+*/
+
+bfd_boolean
+bfd_cache_close_all ()
+{
+  bfd_boolean ret = TRUE;
+
+  while (bfd_last_cache != NULL)
+    ret &= bfd_cache_close (bfd_last_cache);
+}
+
+/*
 INTERNAL_FUNCTION
        bfd_open_file