diff options
author | David MacKenzie <djm@cygnus> | 1993-11-05 19:51:52 +0000 |
---|---|---|
committer | David MacKenzie <djm@cygnus> | 1993-11-05 19:51:52 +0000 |
commit | c188b0bec3b6f147efe7474a606799ed7185d806 (patch) | |
tree | 880b6ef2d75443502b96d143f5e4d4244d1a5e15 /bfd/cache.c | |
parent | 5090e82cca377dd12046a4bb7dc1922f363348b4 (diff) | |
download | gdb-c188b0bec3b6f147efe7474a606799ed7185d806.zip gdb-c188b0bec3b6f147efe7474a606799ed7185d806.tar.gz gdb-c188b0bec3b6f147efe7474a606799ed7185d806.tar.bz2 |
doc cleanup
Diffstat (limited to 'bfd/cache.c')
-rw-r--r-- | bfd/cache.c | 92 |
1 files changed, 44 insertions, 48 deletions
diff --git a/bfd/cache.c b/bfd/cache.c index 6be253c..cefae72 100644 --- a/bfd/cache.c +++ b/bfd/cache.c @@ -20,7 +20,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* SECTION - File Caching + File caching The file caching mechanism is embedded within BFD and allows the application to open as many BFDs as it wants without @@ -28,7 +28,7 @@ SECTION limit (often as low as 20 open files). The module in <<cache.c>> maintains a least recently used list of <<BFD_CACHE_MAX_OPEN>> files, and exports the name - <<bfd_cache_lookup>> which runs around and makes sure that + <<bfd_cache_lookup>>, which runs around and makes sure that the required BFD is open. If not, then it chooses a file to close, closes it and opens the one wanted, returning its file handle. @@ -52,6 +52,12 @@ DESCRIPTION */ +static boolean +bfd_cache_delete PARAMS ((bfd *)); + +/* Number of bfds on the chain. All such bfds have their file open; + if it closed, they get snipd()d from the chain. */ + static int open_files; static bfd *cache_sentinel; /* Chain of BFDs with active fds we've @@ -73,26 +79,23 @@ DESCRIPTION bfd *bfd_last_cache; /* - * INTERNAL_FUNCTION - * bfd_cache_lookup - * - * DESCRIPTION - * Checks to see if the required BFD is the same as the last one - * looked up. If so then it can use the iostream in the BFD with - * impunity, since it can't have changed since the last lookup, - * otherwise it has to perform the complicated lookup function - * - * .#define bfd_cache_lookup(x) \ - * . ((x)==bfd_last_cache? \ - * . (FILE*)(bfd_last_cache->iostream): \ - * . bfd_cache_lookup_worker(x)) - * - * + INTERNAL_FUNCTION + bfd_cache_lookup + + DESCRIPTION + Check to see if the required BFD is the same as the last one + looked up. If so, then it can use the stream in the BFD with + impunity, since it can't have changed since the last lookup; + otherwise, it has to perform the complicated lookup function. + + .#define bfd_cache_lookup(x) \ + . ((x)==bfd_last_cache? \ + . (FILE*)(bfd_last_cache->iostream): \ + . bfd_cache_lookup_worker(x)) + + */ -static boolean EXFUN(bfd_cache_delete,(bfd *)); - - static void DEFUN_VOID(close_one) { @@ -161,22 +164,16 @@ DEFUN(insert,(x,y), } -/* -INTERNAL_FUNCTION - bfd_cache_init - -SYNOPSIS - void bfd_cache_init (bfd *); - -DESCRIPTION - Initialize a BFD by putting it on the cache LRU. -*/ +/* Initialize a BFD by putting it on the cache LRU. */ void DEFUN(bfd_cache_init,(abfd), bfd *abfd) { + if (open_files >= BFD_CACHE_MAX_OPEN) + close_one (); cache_sentinel = insert(abfd, cache_sentinel); + ++open_files; } @@ -184,13 +181,13 @@ DEFUN(bfd_cache_init,(abfd), INTERNAL_FUNCTION bfd_cache_close +SYNOPSIS + boolean bfd_cache_close (bfd *abfd); + DESCRIPTION - Remove the BFD from the cache. If the attached file is open, + Remove the BFD @var{abfd} from the cache. If the attached file is open, then close it too. -SYNOPSIS - boolean bfd_cache_close (bfd *); - RETURNS <<false>> is returned if closing the file fails, <<true>> is returned if all is well. @@ -214,15 +211,15 @@ DEFUN(bfd_cache_close,(abfd), INTERNAL_FUNCTION bfd_open_file +SYNOPSIS + FILE* bfd_open_file(bfd *abfd); + DESCRIPTION - Call the OS to open a file for this BFD. Returns the FILE * - (possibly null) that results from this operation. Sets up the - BFD so that future accesses know the file is open. If the FILE - * returned is null, then there is won't have been put in the + Call the OS to open a file for @var{abfd}. Return the <<FILE *>> + (possibly NULL) that results from this operation. Set up the + BFD so that future accesses know the file is open. If the <<FILE *>> + returned is NULL, then it won't have been put in the cache, so it won't have to be removed from it. - -SYNOPSIS - FILE* bfd_open_file(bfd *); */ FILE * @@ -256,7 +253,6 @@ DEFUN(bfd_open_file, (abfd), } if (abfd->iostream) { - open_files++; bfd_cache_init (abfd); } @@ -267,16 +263,16 @@ DEFUN(bfd_open_file, (abfd), INTERNAL_FUNCTION bfd_cache_lookup_worker +SYNOPSIS + FILE *bfd_cache_lookup_worker(bfd *abfd); + DESCRIPTION Called when the macro <<bfd_cache_lookup>> fails to find a - quick answer. Finds a file descriptor for this BFD. If - necessary, it open it. If there are already more than - BFD_CACHE_MAX_OPEN files open, it trys to close one first, to + quick answer. Find a file descriptor for @var{abfd}. If + necessary, it open it. If there are already more than + <<BFD_CACHE_MAX_OPEN>> files open, it tries to close one first, to avoid running out of file descriptors. -SYNOPSIS - FILE *bfd_cache_lookup_worker(bfd *); - */ FILE * |