gcc/libgfortran/io
Janne Blomqvist 0dc4346159 re PR libfortran/16339 (Unformatted i/o on large arrays inefficient)
2005-10-07  Janne Blomqvist <jblomqvi@cc.hut.fi>

	PR fortran/16339
	PR fortran/23363
	* io/io.h: Add read and write members to stream, define access
	macros.
	* io/transfer.c (read_block_direct): New function.
	(write_block_direct): New function.
	(unformatted_read): Change to use read_block_direct.
	(unformatted_write): Change to use write_block_direct.
	* io/unix.c: Remove mmap includes and defines.
	(writen): Remove.
	(readn): Remove.
	(reset_stream): New function.
	(do_read): New function.
	(do_write): New function.
	(fd_flush): Change to use do_write() instead of writen().
	(fd_alloc_r_at): Change to use do_read().
	(fd_seek): Change return type to try, as the prototype. Add check
	to avoid syscall overhead if possible.
	(fd_read): New function.
	(fd_write): New function.
	(fd_open): Set pointers for new functions.
	(mem_read): New function.
	(mem_write): New function.
	(open_internal): Set pointers for new functions.
	(is_seekable): Clean up comment.

From-SVN: r105101
2005-10-07 20:02:28 +00:00
..
close.c string.c (find_option): Change 3rd argument to const st_option *. 2005-09-29 15:53:59 +02:00
file_pos.c
format.c string.c (find_option): Change 3rd argument to const st_option *. 2005-09-29 15:53:59 +02:00
inquire.c string.c (find_option): Change 3rd argument to const st_option *. 2005-09-29 15:53:59 +02:00
io.h re PR libfortran/16339 (Unformatted i/o on large arrays inefficient) 2005-10-07 20:02:28 +00:00
list_read.c [multiple changes] 2005-09-26 20:24:45 +00:00
lock.c
open.c re PR libfortran/24112 (Reopening file with STATUS='OLD' doesn't work) 2005-09-30 20:47:54 +02:00
read.c libgfortran.h (GFC_ITOA_BUF_SIZE, [...]): Define. 2005-10-01 13:50:10 +02:00
transfer.c re PR libfortran/16339 (Unformatted i/o on large arrays inefficient) 2005-10-07 20:02:28 +00:00
unit.c libgfortran.h (GFC_ITOA_BUF_SIZE, [...]): Define. 2005-10-01 13:50:10 +02:00
unix.c re PR libfortran/16339 (Unformatted i/o on large arrays inefficient) 2005-10-07 20:02:28 +00:00
write.c transfer.c (write_block): Add test for end-of-file condition, removed from mem_alloc_w_at. 2005-10-07 17:01:48 +00:00