/* BFD library -- caching of file descriptors.
- Copyright 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001
+ Copyright 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001, 2002
Free Software Foundation, Inc.
Hacked by Steve Chamberlain of Cygnus Support (steve@cygnus.com).
static void insert PARAMS ((bfd *));
static void snip PARAMS ((bfd *));
-static boolean close_one PARAMS ((void));
-static boolean bfd_cache_delete PARAMS ((bfd *));
+static bfd_boolean close_one PARAMS ((void));
+static bfd_boolean bfd_cache_delete PARAMS ((bfd *));
/*
INTERNAL_FUNCTION
/* We need to open a new file, and the cache is full. Find the least
recently used cacheable BFD and close it. */
-static boolean
+static bfd_boolean
close_one ()
{
register bfd *kill;
if (kill == NULL)
{
/* There are no open cacheable BFD's. */
- return true;
+ return TRUE;
}
kill->where = ftell ((FILE *) kill->iostream);
/* Close a BFD and remove it from the cache. */
-static boolean
+static bfd_boolean
bfd_cache_delete (abfd)
bfd *abfd;
{
- boolean ret;
+ bfd_boolean ret;
if (fclose ((FILE *) abfd->iostream) == 0)
- ret = true;
+ ret = TRUE;
else
{
- ret = false;
+ ret = FALSE;
bfd_set_error (bfd_error_system_call);
}
bfd_cache_init
SYNOPSIS
- boolean bfd_cache_init (bfd *abfd);
+ bfd_boolean bfd_cache_init (bfd *abfd);
DESCRIPTION
Add a newly opened BFD to the cache.
*/
-boolean
+bfd_boolean
bfd_cache_init (abfd)
bfd *abfd;
{
if (open_files >= BFD_CACHE_MAX_OPEN)
{
if (! close_one ())
- return false;
+ return FALSE;
}
insert (abfd);
++open_files;
- return true;
+ return TRUE;
}
/*
bfd_cache_close
SYNOPSIS
- boolean bfd_cache_close (bfd *abfd);
+ bfd_boolean bfd_cache_close (bfd *abfd);
DESCRIPTION
Remove the BFD @var{abfd} from the cache. If the attached file is open,
then close it too.
RETURNS
- <<false>> is returned if closing the file fails, <<true>> is
+ <<FALSE>> is returned if closing the file fails, <<TRUE>> is
returned if all is well.
*/
-boolean
+bfd_boolean
bfd_cache_close (abfd)
bfd *abfd;
{
if (abfd->iostream == NULL
|| (abfd->flags & BFD_IN_MEMORY) != 0)
- return true;
+ return TRUE;
return bfd_cache_delete (abfd);
}
bfd_open_file (abfd)
bfd *abfd;
{
- abfd->cacheable = true; /* Allow it to be closed later. */
+ abfd->cacheable = TRUE; /* Allow it to be closed later. */
if (open_files >= BFD_CACHE_MAX_OPEN)
{
break;
case both_direction:
case write_direction:
- if (abfd->opened_once == true)
+ if (abfd->opened_once)
{
abfd->iostream = (PTR) fopen (abfd->filename, FOPEN_RUB);
if (abfd->iostream == NULL)
unlink (abfd->filename);
#endif
abfd->iostream = (PTR) fopen (abfd->filename, FOPEN_WUB);
- abfd->opened_once = true;
+ abfd->opened_once = TRUE;
}
break;
}
{
if (bfd_open_file (abfd) == NULL)
return NULL;
- if (fseek ((FILE *) abfd->iostream, abfd->where, SEEK_SET) != 0)
+ if (abfd->where != (unsigned long) abfd->where)
+ return NULL;
+ if (fseek ((FILE *) abfd->iostream, (long) abfd->where, SEEK_SET) != 0)
return NULL;
}