diff options
Diffstat (limited to 'bfd/libbfd.h')
-rw-r--r-- | bfd/libbfd.h | 111 |
1 files changed, 75 insertions, 36 deletions
diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 795682b..e33275d 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1,23 +1,23 @@ -/* libbfd.h -- Declarations used by bfd library implementation. - This include file is not for users of the library */ +/* libbfd.h -- Declarations used by bfd library *implementation*. + (This include file is not for users of the library.) + Copyright (C) 1990-1991 Free Software Foundation, Inc. + Written by Cygnus Support. -/* Copyright (C) 1990, 1991 Free Software Foundation, Inc. +This file is part of BFD, the Binary File Descriptor library. -This file is part of BFD, the Binary File Diddler. - -BFD is free software; you can redistribute it and/or modify +This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 1, or (at your option) -any later version. +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. -BFD is distributed in the hope that it will be useful, +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with BFD; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* $Id$ */ @@ -93,18 +93,18 @@ PROTO (bfd *, new_bfd, ()); PROTO (boolean, bfd_add_to_string_table, (char **table, char *new_string, unsigned int *table_length, char **free_ptr)); -PROTO (bfd_64_type, _do_getb64, (unsigned char *addr)); -PROTO (bfd_64_type, _do_getl64, (unsigned char *addr)); -PROTO (unsigned int, _do_getb32, (unsigned char *addr)); -PROTO (unsigned int, _do_getl32, (unsigned char *addr)); -PROTO (unsigned int, _do_getb16, (unsigned char *addr)); -PROTO (unsigned int, _do_getl16, (unsigned char *addr)); -PROTO (void, _do_putb64, (bfd_64_type data, unsigned char *addr)); -PROTO (void, _do_putl64, (bfd_64_type data, unsigned char *addr)); -PROTO (void, _do_putb32, (unsigned long data, unsigned char *addr)); -PROTO (void, _do_putl32, (unsigned long data, unsigned char *addr)); -PROTO (void, _do_putb16, (int data, unsigned char *addr)); -PROTO (void, _do_putl16, (int data, unsigned char *addr)); +PROTO (bfd_vma, _do_getb64, (unsigned char *addr)); +PROTO (bfd_vma, _do_getl64, (unsigned char *addr)); +PROTO (bfd_vma, _do_getb32, (unsigned char *addr)); +PROTO (bfd_vma, _do_getl32, (unsigned char *addr)); +PROTO (bfd_vma, _do_getb16, (unsigned char *addr)); +PROTO (bfd_vma, _do_getl16, (unsigned char *addr)); +PROTO (void, _do_putb64, (bfd_vma data, unsigned char *addr)); +PROTO (void, _do_putl64, (bfd_vma data, unsigned char *addr)); +PROTO (void, _do_putb32, (bfd_vma data, unsigned char *addr)); +PROTO (void, _do_putl32, (bfd_vma data, unsigned char *addr)); +PROTO (void, _do_putb16, (bfd_vma data, unsigned char *addr)); +PROTO (void, _do_putl16, (bfd_vma data, unsigned char *addr)); PROTO (boolean, bfd_false, (bfd *ignore)); PROTO (boolean, bfd_true, (bfd *ignore)); @@ -179,22 +179,40 @@ extern bfd *bfd_last_cache; /* THE FOLLOWING IS EXTRACTED FROM THE SOURCE*/ -/* Return the log base 2 of the value supplied, rounded up. eg an arg +/* FROM libbfd.c*/ +/* ------------------------------START FROM libbfd.c + +*i bfd_log2 +Return the log base 2 of the value supplied, rounded up. eg an arg of 1025 would return 11. */ -PROTO(bfd_vma, bfd_log2,(bfd_vma x)); -/* The maxiumum number of files which the cache will keep open at one + PROTO(bfd_vma, bfd_log2,(bfd_vma x)); + +/* + + --------------------------------END FROM libbfd.c*/ + +/* FROM cache.c*/ +/* ------------------------------START FROM cache.c + BFD_CACHE_MAX_OPEN +The maxiumum number of files which the cache will keep open at one time. */ #define BFD_CACHE_MAX_OPEN 10 -/* Zero, or a pointer to the topmost bfd on the chain. This is used by the +/* + + bfd_last_cache +Zero, or a pointer to the topmost bfd on the chain. This is used by the bfd_cache_lookup() macro in libbfd.h to determine when it can avoid a function call. */ extern bfd *bfd_last_cache; -/* Checks to see if the required bfd is the same as the last one looked +/* + + bfd_cache_lookup +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 @@ -204,23 +222,44 @@ perform the complicated lookup function (FILE*)(bfd_last_cache->iostream): \ bfd_cache_lookup_worker(x)) +/* -/* Initialize a BFD by putting it on the cache LRU. +*i bfd_cache_init +Initialize a BFD by putting it on the cache LRU. */ -PROTO(void, bfd_cache_init, (bfd *)); -/* Remove the bfd from the cache. If the attatched file is open, then close it too. + PROTO(void, bfd_cache_init, (bfd *)); + +/* + +*i bfd_cache_close +Remove the bfd from the cache. If the attatched file is open, then close it too. */ -PROTO(void, bfd_cache_close, (bfd *)); -/* Call the OS to open a file for this BFD. Returns the FILE * + PROTO(void, bfd_cache_close, (bfd *)); + +/* + +*i bfd_open_file +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 cache, so it won't have to be removed from it. */ -PROTO(FILE *, bfd_open_file, (bfd *)); -/* Called when the macro @code{bfd_cache_lookup} fails to find a quick + PROTO(FILE *, bfd_open_file, (bfd *)); + +/* + +*i bfd_cache_lookup_worker +Called when the macro @code{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 avoid running out of file descriptors. */ -PROTO(FILE *, bfd_cache_lookup_worker, (bfd *)); + PROTO(FILE *, bfd_cache_lookup_worker, (bfd *)); + +/* + + --------------------------------END FROM cache.c*/ + +/* FROM reloc.c*/ + |