Home | History | Annotate | Line # | Download | only in doc
cache.texi revision 1.1.1.4
      1 @section File caching
      2 The file caching mechanism is embedded within BFD and allows
      3 the application to open as many BFDs as it wants without
      4 regard to the underlying operating system's file descriptor
      5 limit (often as low as 20 open files).  The module in
      6 @code{cache.c} maintains a least recently used list of
      7 @code{bfd_cache_max_open} files, and exports the name
      8 @code{bfd_cache_lookup}, which runs around and makes sure that
      9 the required BFD is open. If not, then it chooses a file to
     10 close, closes it and opens the one wanted, returning its file
     11 handle.
     12 
     13 @subsection Caching functions
     14 
     15 
     16 @findex bfd_cache_init
     17 @subsubsection @code{bfd_cache_init}
     18 @deftypefn {Function} bool bfd_cache_init (bfd *abfd); 
     19 Add a newly opened BFD to the cache.
     20 
     21 @end deftypefn
     22 @findex bfd_cache_close
     23 @subsubsection @code{bfd_cache_close}
     24 @deftypefn {Function} bool bfd_cache_close (bfd *abfd); 
     25 Remove the BFD @var{abfd} from the cache. If the attached file is open,
     26 then close it too.
     27 
     28 @code{FALSE} is returned if closing the file fails, @code{TRUE} is
     29 returned if all is well.
     30 
     31 @end deftypefn
     32 @findex bfd_cache_close_all
     33 @subsubsection @code{bfd_cache_close_all}
     34 @deftypefn {Function} bool bfd_cache_close_all (void); 
     35 Remove all BFDs from the cache. If the attached file is open,
     36 then close it too.  Note - despite its name this function will
     37 close a BFD even if it is not marked as being cacheable, ie
     38 even if bfd_get_cacheable() returns false.
     39 
     40 @code{FALSE} is returned if closing one of the file fails, @code{TRUE} is
     41 returned if all is well.
     42 
     43 @end deftypefn
     44 @findex bfd_cache_size
     45 @subsubsection @code{bfd_cache_size}
     46 @deftypefn {Function} unsigned bfd_cache_size (void); 
     47 Return the number of open files in the cache.
     48 
     49 @end deftypefn
     50 @findex bfd_open_file
     51 @subsubsection @code{bfd_open_file}
     52 @deftypefn {Function} FILE* bfd_open_file (bfd *abfd); 
     53 Call the OS to open a file for @var{abfd}.  Return the @code{FILE *}
     54 (possibly @code{NULL}) that results from this operation.  Set up the
     55 BFD so that future accesses know the file is open. If the @code{FILE *}
     56 returned is @code{NULL}, then it won't have been put in the
     57 cache, so it won't have to be removed from it.
     58 
     59 @end deftypefn
     60