diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-01-07 09:33:53 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-01-07 09:33:53 +0000 |
commit | 0469311e8702371ee6270ec0ccd05e85e5138483 (patch) | |
tree | efbf96c9796b587b09119d832df76a1a23ccd186 /libio/iofopen64.c | |
parent | 463918b5f2323285b89bde42c732b83f63eb4881 (diff) | |
download | glibc-0469311e8702371ee6270ec0ccd05e85e5138483.tar glibc-0469311e8702371ee6270ec0ccd05e85e5138483.tar.gz glibc-0469311e8702371ee6270ec0ccd05e85e5138483.tar.bz2 glibc-0469311e8702371ee6270ec0ccd05e85e5138483.zip |
Update.
2002-01-07 Ulrich Drepper <drepper@redhat.com>
* libio/fileops.c (_IO_file_underflow_mmap): New function.
(_IO_file_close_mmap): New function.
(_IO_file_jumps_mmap): New variable.
* libio/wfileops.c (_IO_wfile_underflow): Reset read pointer before
trying to convert rest of byte buffer.
(_IO_wfile_underflow_mmap): New function.
(_IO_wfile_jumps_mmap): New variable.
* libio/iofopen.c (__fopen_maybe_mmap): New function.
(__fopen_internal): New function. Split out from _IO_new_fopen.
(_IO_new_fopen): Call __fopen_internal.
* libio/iofopen64.c: Just call __fopen_internal.
* libio/iofdopen.c: Call __fopen_maybe_mmap before returning
successfully.
* libio/iolibio.h: Declare __fopen_internal and __fopen_maybe_mmap.
* libio/libioP.h: Declare _IO_file_jumps_mmap, _IO_wfile_jumps_mmap,
_IO_file_close_mmap.
* sysdeps/gnu/_G_config.h: Define _G_MMAP64.
* sysdeps/unix/sysv/linux/cris/_G_config.h: Likewise.
* stdio-common/Makefile (tests): Add tst-rndseek.
* stdio-common/tst-rndseek.c: New file.
Diffstat (limited to 'libio/iofopen64.c')
-rw-r--r-- | libio/iofopen64.c | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/libio/iofopen64.c b/libio/iofopen64.c index d7f97478f6..69e62b8cda 100644 --- a/libio/iofopen64.c +++ b/libio/iofopen64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -36,31 +36,7 @@ _IO_fopen64 (filename, mode) const char *mode; { #ifdef _G_OPEN64 - struct locked_FILE - { - struct _IO_FILE_plus fp; -#ifdef _IO_MTSAFE_IO - _IO_lock_t lock; -#endif - struct _IO_wide_data wd; - } *new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE)); - - if (new_f == NULL) - return NULL; -#ifdef _IO_MTSAFE_IO - new_f->fp.file._lock = &new_f->lock; -#endif - _IO_no_init (&new_f->fp.file, 0, 0, &new_f->wd, &_IO_wfile_jumps); - _IO_JUMPS (&new_f->fp) = &_IO_file_jumps; - _IO_file_init (&new_f->fp); -#if !_IO_UNIFIED_JUMPTABLES - new_f->fp.vtable = NULL; -#endif - if (_IO_file_fopen ((_IO_FILE *) new_f, filename, mode, 0) != NULL) - return (_IO_FILE *) &new_f->fp; - _IO_un_link (&new_f->fp); - free (new_f); - return NULL; + return __fopen_internal (filename, mode, 0); #else __set_errno (ENOSYS); return NULL; |