1999-05-23  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (check_open_hook): Translate D_NO_SUCH_DEVICE to ENXIO.

1999-05-09  Mark Kettenis  <kettenis@gnu.org>

	* pager.c (dev_stop_paging): Do not try to count ports in
	PAGER_PORT_BUCKET if it has not been created.

1999-04-30  Mark Kettenis  <kettenis@gnu.org>

	* storeio.c (trivfs_modify_stat): Do not assume that we have the
	device open in the caculation of st_mode.  If the device is not
	open, only return S_IFCHR if inhibit_cache is set.

1999-01-31  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (trivfs_modify_stat): Return S_IFCHR if block size is 1.

	* storeio.c (trivfs_modify_stat): Return S_IFCHR iff inhibit_cache
	set, otherwsie S_IFBLK.  For a block-addressed device, S_IFCHR means
	"must do whole-block i/o".

1999-01-28  Roland McGrath  <roland@baalperazim.frob.com>

	* io.c (trivfs_S_file_syncfs): Fix inverted test.
	Reported by OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>.

1999-01-27  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (options): New option -c/--no-cache.
	(inhibit_cache): New variable.
	(parse_opt): Make -c set it.
	(trivfs_append_args): Report --no-cache if set.
	(check_open_hook): Pass inhibit_cache flag to dev_open.
	* dev.h (struct dev): New member `inhibit_cache'.
	(dev_open): Update decl.
	* dev.c (dev_open): Take new arg inhibit_cache, store in new dev.
	If set, don't initialize buf_offs, io_lock, pager, pager_lock.
	(dev_read, dev_write): If DEV->inhibit_cache is set, allow only
	whole-block i/o: EINVAL for non-whole-block attempts.
	* pager.c (dev_get_memory_object): If DEV->inhibit_cache is set, don't
	make our own pager; if store_map returns EOPNOTSUPP, so do we.

1998-10-20  Roland McGrath  <roland@baalperazim.frob.com>

	* dev.c (dev_buf_fill): Add braces to silence gcc warning.

1998-07-20  Roland McGrath  <roland@baalperazim.frob.com>

	* storeio.c (main): Fix return type to int, and use return.

Wed Aug 20 14:07:05 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* pager.c (dev_get_memory_object): Deal with errors from
	pager_create properly.

	* pager.c (service_paging_requests): New args for
	ports_manage_port_operations_multithread.
	* storeio.c (main): Likewise.

1997-07-23  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_readable, trivfs_S_io_read, trivfs_S_io_map):
	Return EBADF instead of EINVAL.
	(trivfs_S_io_select): Don't bother returning EBADF.

1997-07-22  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_read): Return EINVAL instead of EBADF.
	(trivfs_S_io_map): Return EINVAL if CRED cannot be read or written.

1997-07-21  Miles Bader  <miles@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): Add iohelp.

1997-07-17  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_map): Pass PROT argument to dev_get_memory_object.
	* pager.c (dev_get_memory_object): Add PROT arg.  Use store_map.
	* dev.h (dev_get_memory_object): Add PROT arg.

1997-07-16  Miles Bader  <miles@gnu.ai.mit.edu>

	* pager.c (pager_read_page): Initialize READ to 0.

	* pager.c (dev_get_memory_object): Implement correctly.
	(dev_stop_paging): Work entirely by flushing user pagers; don't kill pager.
	(pager_clear_user_data): Zero our pointer to the pager.

	* io.c (trivfs_S_io_map): Make sure there are enough references to
	MEMOBJ for both read & write ports.

Wed Feb 19 21:42:45 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (fsys_port_class, root_port_class, port_bucket,
	trivfs_protid_portclasses, trivfs_protid_nportclasses,
	trivfs_cntl_portclasses, trivfs_cntl_nportclasses): Variables removed.
	(main): Don't set or use port class/bucket variables, let
	trivfs_startup do it.
	Add FSYS variable.
	(doc): Make an initialized array.
	(parse_opt): New function (was nested in main).
	(argp, argp_kids): New variables (were nested in main).
	(trivfs_goaway): Get ROOT_PORT_CLASS from FSYS.

Fri Nov 15 17:54:10 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* storeio.c (trivfs_check_open_hook): New arg syntax.
	(check_open_hook): Likewise.

Thu Oct 24 16:24:53 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (main): Use elements of type `struct argp_child' for KIDS.

Mon Oct  7 16:38:06 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_file_get_storage_info): If necessary to enforce
 	security, make a copy of STORE and inactivate it before returning.

Thu Sep 26 14:26:17 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_S_file_check_access): Function removed (trivfs
	default is now sufficient).

Tue Sep 24 15:52:04 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_S_file_check_access): New function.
	(check_open_hook): Return EROFS if O_WRITE on a readonly device.

Mon Sep 23 17:21:23 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_append_args): Make ARGZ_LEN of type `size_t *'.
	Narrow scope of BUF.
	<argz.h>: New include.

Thu Sep 19 18:12:48 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (trivfs_append_args): New function.

Wed Sep 18 15:16:27 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io.c (trivfs_S_io_read, trivfs_S_io_write): Use void * buffers.
	* open.h (open_read, open_write): Likewise.
	* open.c (open_read, open_write): Likewise.
	* dev.h (struct dev, dev_read, dev_write): Likewise.
	* dev.c (dev_buf_fill, dev_read, dev_write): Likewise.
	* pager.c (pager_read_page): Cast BUF into void ** for dev_read.

	* storeio.c (main): Use STORE_PARAMS variable to get result from
	parsing STORE_ARGP.

	* dev.c (dev_open): Remove CLASSES argument to store_parsed_open.

Thu Sep 19 17:18:11 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): New variable.
	(storeio): Deleted special dependencies.

Fri Sep 13 11:05:06 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeio.c (argp_program_version): New variable.
	<version.h>: New include.

Tue Sep 10 17:13:55 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* dev.c (dev_rw): Return EINVAL instead of EIO for too-large offsets.

	* dev.c (dev_open, dev_close): Remove ifdef'd-out code for allocating
	DEV's buffer with valloc; other things depend on it being vm_allocated.

	* io.c (trivfs_S_file_get_storage_info): Use store_return.