OSDN Git Service

* bfd-in.h (bfd_cache_close_all): New function declaration.
authorguitton <guitton>
Thu, 17 Jun 2004 11:47:17 +0000 (11:47 +0000)
committerguitton <guitton>
Thu, 17 Jun 2004 11:47:17 +0000 (11:47 +0000)
* bfd-in2.h: Regenerate.
* cache.c (bfd_cache_close_all): New function definition.

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

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