2008-03-04  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* nbd.c (nbd_read): Initialize piecelen.

2005-09-24  Roland McGrath  <roland@frob.com>

	* store.h (STORE_STD_CLASS): Use __attribute_used__ macro
	instead of `unused' attribute.

2004-09-03  Alfred M. Szmidt  <ams@kemisten.nu>

	* store.h (__start_store_std_classes, __stop_store_std_classes):
	Declare using __attribute__ ((weak)).
	* typed.c (store_find_class): Removed `#pragma weak' for
	`__stop_store_std_classes' and `__start_store_std_classes'.

2003-08-05  Marcus Brinkmann  <marcus@gnu.org>

	* zero.c: Do not include <assert.h>.

2003-07-21  Ognyan Kulev  <ogi@mfmi.uni-sofia.bg>

	* rdwr.c (store_write): Return EINVAL when LEN is not aligned to
	STORE->block_size, instead of raising assertion failure.
	(store_read): Likewise.

2003-08-04  Roland McGrath  <roland@frob.com>

	* typed.c (store_find_class): Use dlopen/dlclose on the names found by
	looking through the list instead of passing list elements directly to
	dlsym, which is not kosher.

2003-08-02  Ognyan Kulev  <ogi@fmi.uni-sofia.bg>

	* module.c (store_module_open): NAME that doesn't contain ':' is
	not considered invalid argument, but a class name without
	class-specific portion.
	* typed.c (store_typed_open): When NAME is empty string, don't
	invoke store_open (name + 1, ...).

2002-10-01  Ludovic Courtès <ludovic.courtes@utbm.fr>

	* store.h: New type store_set_size_meth_t: New type.  New
	prototype store_set_size.
	(struct store_class): Added a set_size () method.
	* rdwr.c (store_set_size): New function.
	* file.c (file_store_set_size): New function.
	(store_file_class): Add file_store_set_size.
	* concat.c (concat_set_size): New function.
	(store_concat_class): concat_set_size.
	* copy.c (copy_set_size): New function.
	(store_copy_class): copy_set_size.
	* device.c (device_set_size): New function.
	(store_device_class): device_set_size.
	* memobj.c (memobj_set_size): New function.
	(store_memobj_class): memobj_set_size.
	* mvol.c (mvol_set_size): New function.
	(store_mvol_class): mvol_set_size.
	* nbd.c (nbd_set_size): New function.
	(store_nbd_class): nbd_set_size.
	* remap.c (remap_set_size): New function.
	(store_remap_class): remap_set_size.
	* stripe.c (stripe_set_size): New function.
	(store_stripe_class): stripe_set_size.
	* unknown.c (unknown_set_size): New function.
	(store_unknown_class): unknown_set_size.
	* zero.c (zero_set_size): New function.
	(store_zero_class): zero_set_size.

2002-11-03  Neal H. Walfield  <neal@cs.uml.edu>

	* kids.c: Do not include <malloc.h>.
	Include <stdlib.h>.
	(store_set_children): Use memcpy, not bcopy.
	Calculate SIZE correctly: STORE->children is a struct store **,
	not a struct store_run *.
	Reported by Moritz Schulte <moritz@duesseldorf.ccc.de>.

2002-06-07  Roland McGrath  <roland@frob.com>

	* store.h (struct store_enc): Use loff_t instead of off_t.
	(store_enc_init, store_enc_return, store_return): Likewise.

	* encode.c (store_std_leaf_encode): Do a sizeof comparison to get
	`too_big' optimized out when store_enc starts using 64 bit offsets.

2002-05-20  Ognyan Kulev <ogi@fmi.uni-sofia.bg>

	* Makefile: Move inclusion of ../Makeconf before using $(srcdir).

2002-05-16  Roland McGrath  <roland@frob.com>

	* device.c (enforced): Use dev_status_data_t for SIZES.
	(store_device_create): Likewise.
	(dev_write): Do some silly magic since device.defs uses int.

2002-05-07  Roland McGrath  <roland@frob.com>

	* module.c (open_class): Add cast to int for %* arg.

	* kids.c (store_open_children): Dereference pointer in isalnum call.

	* set.c (store_set_runs): Fix argument type.
	* kids.c (store_set_children): Likewise.

2002-03-15  Roland McGrath  <roland@frob.com>

	* Makefile (OBJS): Remove hack for part.o.
	(parted.o parted_p.o parted_pic.o): Targets removed.

2002-03-14  Roland McGrath  <roland@frob.com>

	* Makefile (cleantarg): Append $(store-types:%=libstore_%.a) here.
	(all): Depend on that list too.
	(install): Depend on those files in $(libdir).
	($(store-types:%=$(libdir)/libstore_%.a): $(libdir)/%: %): New static
	pattern rule to install them.

2002-03-13  Roland McGrath  <roland@frob.com>

	* Makefile ($(store-types:%=libstore_%.a)): Create object files with
	the undefined symbol rather than linker scripts.

2002-03-14  Marcus Brinkmann  <marcus@gnu.org>

	* unzipstore.c (unzip_store): New variable IN_BUF_SIZE to hold
	allocated space for IN_BUF.  Use that instead IN_BUF_LEN for that
	purpose if appropriate.  Always update IN_BUF_LEN after a read.

2002-03-11  Roland McGrath  <roland@frob.com>

	* unzipstore.c: New file, broken out of bunzip2.c.
	* bunzip2.c: Most code moved to unzipstore.c, which we #include.
	(DO_UNZIP, UNZIP): New function, macro.
	* gunzip.c: Most code deleted, now in unzipstore.c, which we #include.
	(DO_UNZIP, UNZIP): New function, macro.
	* Makefile (DIST_FILES): New variable, list unzipstore.c here.

	* Makefile (module-CPPFLAGS): New variable.
	* module.c (STORE_SONAME_SUFFIX): Macro removed.

	* Makefile (store-types): Add missing types here.
	(SRCS): Remove all those from here and use $(store-types:=.c) instead.

2002-02-08  Roland McGrath  <roland@frob.com>

	* Makefile (store-types): New variable.
	(all): Depend on $(store-types:%=libstore_%.a).
	(libstore_%.so.$(hurd-version)): New pattern rule.
	($(store-types:%=libstore_%.a): libstore_%.a): New static pattern rule
	to create `-lstore_TYPE' pseudo-objects (linker scripts) for each type.
	(libstore.so-LDLIBS): New variable, adds -ldl.
	(GUNZIP_OBJS, BUNZIP2_OBJS): New variables.
	(UNZIP_OBJS): Variable removed, replaced by those two.
	(OBJS): Update use.
	(libstore_gunzip.so.$(hurd-version)): Depend on PIC $(GUNZIP_OBJS).
	(libstore_bunzip2.so.$(hurd-version)): Depend on PIC $(BUNZIP2_OBJS).
	* unknown.c: Add STORE_STD_CLASS decl.
	* bunzip2.c: Likewise.
	* copy.c: Likewise.
	* device.c: Likewise.
	* file.c: Likewise.
	* gunzip.c: Likewise.
	* memobj.c: Likewise.
	* module.c: Likewise.
	* mvol.c: Likewise.
	* nbd.c: Likewise.
	* open.c: Likewise.
	* part.c: Likewise.
	* remap.c: Likewise.
	* stripe.c: Likewise.
	* stripe.c: Likewise.
	* task.c: Likewise.
	* typed.c: Likewise.
	* typed.c: Likewise.
	* unknown.c: Likewise.
	* url.c: Likewise.
	* zero.c: Likewise.

	* argp.c (DEFAULT_STORE_TYPE): Macro removed.
	(DEFAULT_STORE_CLASS): New macro replaces it.
	(parse_opt): Update the use.

2002-01-19  Roland McGrath  <roland@frob.com>

	* url.c (find_url_class): Function removed.
	(store_url_open): Use store_typed_open after validating syntax.
	(store_url_decode): Use store_find_class and store_module_find_class.

	* typed.c (store_find_class): New function.
	(store_typed_open): Use it.

	* url.c (url_decode): Renamed to store_url_decode, made public.
	(store_url_open_class): Changed use.
	* store.h: Declare store_url_decode.
	* decode.c (store_decode): Call store_url_decode for STORAGE_NETWORK
	as a special case.

2001-12-28  Roland McGrath  <roland@frob.com>

	* Makefile (SRCS): Remove std.c.

	* module.c: New file.
	* store.h (store_module_open, store_module_find_class,
	store_module_decode): Declare them.
	* argp.c (parse_opt): Leave PARSED->classes null here instead
	of defaulting to store_std_classes.
	(find_class): Default null class-list parameter to store_std_classes
	here instead.  If no matches when defaulted, try calling
	store_module_open_class	too.
	* typed.c (store_typed_open): If no match when search list is
	store_std_classes, try calling store_module_open_class too.
	* url.c (find_url_class): Likewise.
	* decode.c (store_decode): If no match when search list is
	store_std_classes, try calling store_module_decode too.

	* store.h (store_concat_class_vectors): Remove decl of nonexistent fn.

2002-03-14  Marcus Brinkmann  <marcus@gnu.org>

	* rdwr.c (store_read): Truncate amount to be read to size of
	store.  Use memcpy rather than bcopy.
	(store_write): Return EIO if caller tries to write over the end of
	the store.
	* copy.c (copy_read): Do not multiply LEN returned from vm_read
	with vm_page_size.

2002-03-11  Marcus Brinkmann  <marcus@gnu.org>

	* stripe.c (store_concat_class): Add store_concat_open.
	(store_concat_create): Do not multiply NUM_STORES with 2 to get
	the number of runs.
	* kids.c (store_allocate_child_encodings): Call allocate_encoding
	on child store K, not on STORE.
	(store_encode_children): Likewise.
	* decode.c (store_std_leaf_decode): Increment ENC->cur_data by
	NAME_LEN and MISC_LEN as appropriate.

2002-03-05  Roland McGrath  <roland@frob.com>

	* device.c (dev_map): Pass proper OFFSET and SIZE params to device_map.

2002-01-19  Roland McGrath  <roland@frob.com>

	Support explicit open of unknown store (with no name), i.e. -Tunknown.
	* unknown.c (unknown_allocate_encoding): Return EOPNOTSUPP
	if STORE->hook is null.
	(unknown_encode): Likewise.
	(unknown_cleanup): Do nothing if STORE->hook if is null.
	(unknown_clone): Likewise.
	(unknown_validate_name, unknown_open): New functions.
	(store_unknown_class): Use them.

2002-01-01  Roland McGrath  <roland@frob.com>

	* nbd.c (htonll): Make this a macro using bswap_64 from <byteswap.h>.

2001-12-31  Roland McGrath  <roland@frob.com>

	* url.c (url_decode): Don't clobber *ENC in the dummy run.

	* nbd.c (store_nbd_open): Make sure the store's name always
	starts with the "nbd://" prefix.

2001-12-30  Roland McGrath  <roland@frob.com>

	* nbd.c (nbd_read): Request multiple chunks of up to NBD_IO_MAX each.
	Handle needing multiple io_read calls to receive a single chunk.

2001-12-29  Roland McGrath  <roland@frob.com>

	* nbd.c (nbdopen): Fix in last change.
	(nbd_read): Let LEN receive the result count from io_read.

	* nbd.c (NBD_IO_MAX): New macro.
	(nbd_write): Write in chunks no larger than NBD_IO_MAX.
	(nbd_read): Cap AMOUNT to NBD_IO_MAX.

	* nbd.c (nbd_validate_name): Skip : before port number.
	(nbdopen): Fix test after connect loop.
	Use multiple read calls as needed to get the whole connection header.

2001-12-26  Roland McGrath  <roland@frob.com>

	* unknown.c: New file.
	* Makefile (SRCS): Add it.
	* store.h (store_unknown_class, store_unknown_decode): Declare them.
	* create.c (store_create): If store_decode fails with EINVAL,
	and we were called with the STORE_NO_FILEIO flag bit set,
	then use store_unknown_decode.

2001-12-23  Roland McGrath  <roland@frob.com>

	* kids.c (store_set_child_flags): Move decrement to avoid ill-defined
	C behavior that gets a warning.
	(store_clear_child_flags): Likewise.

2001-10-14  Roland McGrath  <roland@frob.com>

	* Makefile (SRCS): Add url.c to the list.

	* url.c: New file.
	(store_url_open): New function.
	(store_url_open_class): New const variable.
	* store.h: Declare them.
	* std.c (store_std_classes): Add &store_url_open_class to the list,
	move &store_nbd_class after it.

	* nbd.c (nbd_validate_name): Accept an optional "nbd://" prefix.
	(nbdopen): Likewise.

2001-10-06  Neal H Walfield  <neal@cs.uml.edu>

        * memobj.c: Include "store.h", not <hurd/store.h>.
        * nbd.c: Likewise.
        * part.c: Likewise.

2001-10-01  Marcus Brinkmann  <marcus@gnu.org>

	* part.c: Add const to type.
	Reported by Jeroen Dekkers.

2001-10-01  Marcus Brinkmann  <marcus@gnu.org>

	* device.c (dev_error): Add a break to silence gcc warning.
	(store_device_class): Add const to type.
	* typed.c (store_typed_open_class): Likewise.
	* file.c (store_file_class): Likewise.
	* stripe.c (store_concat_class): Likewise.
	(store_ileave_class): Likewise.
	* zero.c (store_zero_class): Likewise.
	* open.c (store_open_class): Likewise.
	* remap.c (store_remap_class): Likewise.
	* task.c (store_task_class): Likewise.
	* copy.c (store_copy_class): Likewise.
	* gunzip.c (store_gunzip_class): Likewise.
	* bunzip2.c (store_bunzip2_class): Likewise.
	* mvol.c (store_mvol_class): Likewise.
	* memobj.c (store_memobj_class): Likewise.
	* nbd.c (store_nbd_class): Likewise.
	Submitted by Maurizio Boriani <baux@debian.org>.

2001-09-30  Roland McGrath  <roland@frob.com>

	* memobj.c: New file.
	* Makefile (SRCS): Add it.
	* store.h (store_memobj_class, store_memobj_create): Declare them.

2001-09-29  Roland McGrath  <roland@frob.com>

	* nbd.c (struct nbd_startup): Replace sizehi, sizelo with just size.
	(nbdopen): Changed use.

2001-09-28  Roland McGrath  <roland@frob.com>

	* decode.c (store_std_leaf_decode): Actually copy data into MISC.
	Don't call malloc for it when MISC_LEN is zero, just store null.

2001-09-27  Roland McGrath  <roland@frob.com>

	* nbd.c (store_nbd_open): Divide reported size by block size.

	* std.c (store_std_classes): Add store_nbd_class.
	* store.h: Declare it.

	* nbd.c: New file.
	* Makefile (SRCS): Add it.
	* store.h (store_nbd_open, _store_nbd_create): Declare them.

2001-09-16  Roland McGrath  <roland@frob.com>

	* std.c (store_std_classes): Only include store_part_class
	if [HAVE_PARTED_PARTED_H].

2001-08-25  Roland McGrath  <roland@frob.com>

	* part.c (store_part_create): Do a run-time check on ped_get_version.

2001-08-25  Neal H Walfield  <neal@cs.uml.edu>

        * part.c: New file.
        * std.c (store_std_classes): Add store_part_class.
        * store.h (store_part_create): New prototype.
        (store_part_open): Likewise.

2001-08-25  Roland McGrath  <roland@frob.com>

	* Makefile (parted.o, parted_pic.o): Pass -nostdlib.

2001-08-25  Neal H Walfield  <neal@cs.uml.edu>

        * Makefile (libstore.so-LDFLAGS): Renamed from LDFLAGS-libstore.so.

2001-08-24  Roland McGrath  <roland@frob.com>

	* Makefile (SRCS): Add part.c here.
	(OBJS): Mutate part.o -> parted.o here.
	(parted.o, parted_p.o, parted_pic.o): New targets.
	(LDFLAGS-libstore.so): Set to $(PARTED_LIBS).

2001-08-12  Neal H Walfield  <neal@cs.uml.edu>

	* copy.c (copy_read): The protocol dictates that *LEN is in
	bytes, not pages.
	(copy_write): Be sure that the buffer passed to vm_read is
	page-aligned.  When determining how much to copy, use LEN, not the
	uninitialized *AMOUNT.
	(copy_clone): Use memcpy, not bcopy.
	* derive.c: Include <sys/types.h> and <mach.h>.
	(_store_derive): Initialize STORE->wrap_src.

	* set.c: Do not include <malloc.h>.
	Include <stdlib.h>, <errno.h> and <mach.h>.
	(store_set_runs): Use memcpy, not bcopy.
	(store_set_name): Use strdup, not a strlen, malloc and strcpy.
	* zero.c (zero_read): When checking if mmap failed, compare
	against MAP_FAILED, not -1.
	Use memset, not bzero.

2001-08-03  Roland McGrath  <roland@frob.com>

	* Makefile (HURDLIBS): Define it so we link in libshouldbeinlibc.

2001-04-26  Marcus Brinkmann  <marcus@gnu.org>

	* set.c: Use explicit comparison to MACH_PORT_NULL.

2001-03-07  Roland McGrath  <roland@frob.com>

	* store.h (store_write, store_write_meth_t): Make buffer arg const*.
	* copy.c (copy_write): Likewise.
	* device.c (dev_write): Likewise.
	* file.c (file_write): Likewise.
	(file_byte_write): Likewise.
	* rdwr.c (store_write): Likewise.
	* remap.c (remap_write): Likewise.
	* stripe.c (stripe_write): Likewise.
	* task.c (task_write): Likewise.
	* zero.c (zero_write): Likewise.
	* mvol.c (zero_write): Likewise.

2001-01-16  Roland McGrath  <roland@frob.com>

	* store.h (struct store_argp_params): Add member `store_optional'.
	* argp.c (parse_opt): If store_optional is set, don't make it an error
	when there are no store arguments and the type doesn't validate that.

2001-01-14  Roland McGrath  <roland@frob.com>

	* encode.c (too_big): New static function.
	(store_std_leaf_encode): Use it to return EOVERFLOW if a run
	does not fit in an off_t.

2001-01-09  Marcus Brinkmann  <marcus@gnu.org>

	* device.c (store_device_create): Protect code of last change with
	#ifdef DEV_GET_RECORDS, and set sizes_len again before second try.
	(enforce): Likewise. Move definition of variable err up to top
	level.

2001-01-09  Marcus Brinkmann  <marcus@gnu.org>

	* device.c (enforce): First try DEV_GET_RECORDS, and only fall
	back to DEV_GET_STORE if this fails with D_INVALID_OPERATION.
	(store_device_create): Likewise, but fall back for any failure.

2001-01-08  Marcus Brinkmann  <marcus@gnu.org>

	* zero.c (zero_remap): Change type of variables length, old_length
	to store_offset_t.
	(zero_decode): Change type of variable size to store_offset_t.
	(zero_open): Likewise. Use strtoull instead strtoul to parse
	size argument from name. Use store_offset_t for max_offs and
	its calculation.
	(store_zero_create): Use store_offset_t type for size argument.

	* derive.c (_store_derive): Use store_offset_t as type for
	variable last_part_base.

	* stripe.c (addr_adj): Change types of addr argument and return
	value to store_offset_t.
	(store_ileave_create): Change type of interleave argument and
	variables min_end and end to store_offset_t, but type of variable
	block_size to size_t.
	(store_concat_create): Change type of variable block_size to
	size_t.

	* make.c (_store_create): Change end argument type to store_offset_t.

	* store.h: New type store_offset_t, define to off64_t.
	(struct store_run): Change type of start and length to
	store_offset_t.
	(struct store): Change type of end, wrap_src, wrap_dst, blocks,
	size to store_offset_t.
	Change type of addr arg in store_read_meth_t and
	store_write_meth_t to store_offset_t, as well as in declarations
	for store_read and store_write.
	Change type of argument end in _store_create declaration to
	store_offset_t.
	Change type of argument size in store_zero_create to
	store_offset_t. Change type of argument interleace in
	store_ileace_create to store_offset_t.

	* rdwr.c (store_find_first_run): Change type of return value, addr
	and *base arguments, and variables wrap_src and run_blocks to
	store_offset_t.
	(store_next_run): Change type of *base argument to store_offset_t.
	(store_write): Change type of addr argument and variable base to
	store_offset_t.
	(store_read): Likewise, also for addr argument of local function seg_read.
	Change type of len argument to size_t.

	* copy.c (copy_read): Change type of addr argument to store_offset_t.
	(copy_write): Likewise.
	* device.c (dev_read): Likewise.
	(dev_write): Likewise.
	* file.c (file_read): Likewise.
	(file_write): Likewise.
	(file_byte_read): Likewise.
	(file_byte_write): Likewise.
	* mvol.c (mvol_read): Likewise.
	(mvol_write): Likewise.
	* remap.c (remap_read): Likewise.
	(remap_write): Likewise.
	* stripe.c (stripe_read): Likewise.
	(stripe_write): Likewise.
	* task.c (task_read): Likewise.
	(task_write): Likewise.
	* zero.c (zero_read): Likewise.
	(zero_write): Likewise.

	* remap.c (store_remap_runs): Change type of addr and len
	arguments of local function add_run and of local variables addr,
	length, baddr, blen and len to store_offset_t.
	(remap_open): Cast -1 to store_offset_t, not off_t.

	* argp.c (struct store_parsed): Change type of interleave from
	off_t to store_offset_t.
	(store_parsed_append_args): Use %Ld instead %ld to print
	interleave value.
	(store_parsed_name): Likewise.

2001-01-07  Marcus Brinkmann  <marcus@gnu.org>

	* copy.c: Include <mach.h>. New macro page_aligned.
	(copy_write): Cast buf to vm_address_t in call to vm_write.
	Dereference amount for memcpy.
	(copy_read): Add len parameter to vm_read, remove redundant following
	len assignment.

2000-12-20  Roland McGrath  <roland@frob.com>

	* zero.c (zero_open): Check for END being null after strtoul call.
	If character following number (*END) is b, multiply size by 512;
	k or K, by 1024; m or M by 1024*1024; g or G by 1024*1024*1024.

	* store.h (struct store_class): Fix typo in comment.

	* copy.c (copy_read): When reading whole aligned pages, use vm_read.
	Use MAP_FAILED in place of (void *) -1.  Use memcpy in place of bcopy.
	(copy_write): When reading whole aligned pages, use vm_write.
	Use memcpy in place of bcopy.

1999-11-20  Roland McGrath  <roland@baalperazim.frob.com>

	* store.h (struct store_class): Add const to type of `name' member.

1999-11-14  Roland McGrath  <roland@baalperazim.frob.com>

	* device.c (dev_error): New static function.
	Translate all expected D_* codes into POSIX codes.
	(dev_read, dev_write, dev_open): Use it.

1999-10-07  Roland McGrath  <roland@baalperazim.frob.com>

	* rdwr.c (store_read, store_write): Fix asserts in last change.

1999-10-03  Roland McGrath  <roland@baalperazim.frob.com>

	* rdwr.c (store_read, store_write): Fix calculations broken in last
	change, so they again properly account for starting intrarun offset.

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

	* rdwr.c (store_write, store_read): Carefully avoid scaling run
	lengths from blocks to bytes except when we're already sure the
	run's size in bytes won't overflow size_t.

1999-07-11  Thomas Bushnell, BSG  <tb@mit.edu>

	* argp.c (store_parsed_open): Add more braces to clarify if-else
	structure.

	* encode.c: Include <sys/mman.h>
	* zero.c: Likewise.

	* encode.c (store_encode): Repair syntax.
	* copy.c (copy_read): Likewise.

	* enc.c (store_enc_dealloc): Cast first arg of munmap correctly.

1999-07-10  Roland McGrath  <roland@baalperazim.frob.com>

	* rdwr.c: Add #include <sys/mman.h> for munmap decl.
	* enc.c: Likewise.
	* copy.c: Likewise.
	* gunzip.c: Likewise.
	* bunzip2.c: Likewise.

1999-07-09  Thomas Bushnell, BSG  <tb@mit.edu>

	* bunzip2.c (bunzip2): Use mmap instead of vm_allocate.
	* copy.c (copy_read): Likewise.
	(copy_clone): Likewise.
	* encode.c (store_encode): Likewise.
	* gunzip.c (gunzip): Likewise.
	* rdwr.c (store_read): Likewise.
	* zero.c (zero_read): Likewise.

1999-07-08  Roland McGrath  <roland@baalperazim.frob.com>

	* remap.c (remap_open): Recognize "N+" syntax in block list as from
	block N through the end of the store.

1999-07-03  Thomas Bushnell, BSG  <tb@mit.edu>

	* bunzip2.c (bunzip2): Use munmap instead of vm_deallocate.
	(store_bunzip2_create): Likewise.
	* rdwr.c (store_read): Likewise.
	* gunzip.c (gunzip): Likewise.
	(store_gunzip_create): Likewise.
	* enc.c (store_enc_dealloc): Likewise.
	* copy.c (copy_cleanup): Likewise.

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

	* remap.c (remap_open): Don't multiply by 512.  Offsets and sizes are
	in blocks, not bytes.

	* stripe.c (concat_decode): Add __attribute__((unused)) to suppress
	warning.
	(ileave_decode): Likewise.

	* bunzip2.c: Add extern decl for do_bunzip2.

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

	* remap.c (remap_decode): Add attribute((unused)) to suppress warning.

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

	* remap.c (remap_open, remap_validate_name): New functions, to support
	parsing block lists a la GRUB.
	(store_remap_class): Initialize those slots.

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

	* device.c (store_device_create): Deal with devices that return
	sucessfully from device_get_status, but do not return any sensible
	information.

1998-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>

	* bunzip2.c: New file.
	* store.h (store_bunzip2_create): New declarations.
	(store_bunzip2_open): Likewise.
	(store_bunzip2_class): Likewise.
	* std.c (store_std_classes): Add store_bunzip2_class.
	* Makefile (SRCS): Add bunzip2.c.
	(UNZIP_OBJS): Add do-bunzip2.o.

1998-12-27  Roland McGrath  <roland@baalperazim.frob.com>

	* store.h: Remove defns of STORAGE_*, now in <hurd/hurd_types.h>.

1998-12-21  Roland McGrath  <roland@baalperazim.frob.com>

	* open.c (store_open): Like file.c:fiopen, catch EACCES or EROFS
	and try to open read-only.

	* file.c (fiopen): Treat EROFS same as EACCES.

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

	* flags.c (store_clear_flags): Add braces to silence gcc warning.

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

	* rdwr.c (store_read): Add braces to silence gcc warning.
	* flags.c (store_set_flags): Likewise.
	* typed.c (store_typed_open): Likewise.
	* decode.c (store_decode): Likewise.
	* argp.c (store_parsed_append_args): Likewise.
	(store_parsed_name): Likewise.
	(store_parsed_open): Likewise.

1998-09-05  Roland McGrath  <roland@baalperazim.frob.com>

	* argp.c (store_parsed_append_args): Use %d for layer, which is int.
	Cast to int for %* field width arg.

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

	* encode.c (store_encode): Allocate the correct amount of memory
	for the encoding vectors.

	* make.c (_store_create): Initialize NEW->misc_len.

	* mvol.c (store_mvol_class): Set correct members.
	(store_mvol_create): Declare PHYS correctly.
	<stdio.h>: New include.
	* store.h (store_mvol_create): Declare PHYS correctly.
	* Makefile (SRCS): Add mvol.c.

1997-08-11  Miles Bader  <miles@gnu.ai.mit.edu>

	* store.h (store_mvol_create): New declaration.
	(store_mvol_class): New declaration.
	* mvol.c: New file.

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

	* device.c (store_device_create): Treat devices that can't do
	device_get_status as zero-length.
	(dev_map): Pass 0 for OFFSET and SIZE arguments to device_map --
	mach ignores them, and we often can't supply meaningful values.
	* make.c (_store_create): If BLOCK_SIZE is zero, make sure there
	are no runs.
	* derive.c (_store_derive): Let BSIZE be zero.

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

	* argp.c (store_parsed_append_args): Correctly unparse complex
	type names.

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

	* map.c (store_map): If we can't map STORE directly, and it has a
	source file, try to map that instead.
	* remap.c (store_remap): If we are mutating SOURCE, close any
	source port it has.
	* store.h (store_map_source): Declaration removed.

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

	* store.h (store_map): New declaration.
	(struct store_class): Add map field.
	* device.c (dev_map): New function.
	(store_device_class): Use dev_map.
	* zero.c (zero_map): New function.
	(store_zero_class): Use zero_map.
	* file.c (file_map): New function.
	(store_file_class): Use file_map.
	* map.c: New file.
	* Makefile (SRCS): Add map.c.

	* device.c (dev_read, dev_write): Remove debugging grot.

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

	* kids.c (store_open_children): Support factored type notation.

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

	* file.c (file_read, file_write, file_byte_read, file_byte_write):
	Remove debugging noise.

1997-06-30  Miles Bader  <miles@gnu.ai.mit.edu>

	* store.h: Doc fix.

1997-06-27  Miles Bader  <miles@gnu.ai.mit.edu>

	* file.c (store_file_open): Use fiopen to open the file.
	Set name of newly created store.
	(fiopen, ficlose, enforced, file_set_flags, file_clear_flags): New
	functions.
	(store_file_class): Use new functions.
	(store_file_byte_class): Fill in rest of functions.
	* device.c (enforced): Move some checking here from dev_set_flags,
	and correct the check for the number of stores.
	(dev_set_flags): Move enforcement checking code to enforce.

1997-06-26  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (parse_type): Fill in name_prefix field.
	(store_parsed_open): Apply it to any names we open.

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

	* argp.c (parse_type): New function.
	(parse_opt): Use parse_type to parse the -T option.
	(struct store_parsed): Add NAME_PREFIX field.
	(store_parsed_free): Free it.
	(store_parsed_append_args): Emit it.
	(store_parsed_open): Use it in opens.

	* typed.c (store_typed_open): If NAME doesn't contain a `:'
	separator, try to use it as either a class name or a file name.
	Interpret a trailing or leading `:' as unambiguously referring to
	a class-name or a filename, respectively.

1997-06-19  Miles Bader  <miles@gnu.ai.mit.edu>

	* rdwr.c (store_read): Limit reads to the amount available.

	* store.h (store_typed_open_class): Renamed from store_typed_class.
	* std.c (store_std_classes): Use store_typed_open_class instead of
	store_typed_class.

	* Makefile (SRCS): Remove storeread.c & storecat.c.
	(storeread, storecat): Rules removed.
	* storeread.c, storecat.c: Moved to ../utils.

1997-06-18  Miles Bader  <miles@gnu.ai.mit.edu>

	* store.h (struct store): BLOCKS & SIZE are off_t, not size_t.
	(store_zero_create): SIZE is off_t, not size_t.
	* zero.c (store_zero_create, zero_open): Likewise.

	* storecat.c (main): Update use of argp.
	* storeread.c (main): DATA is void *.

	* Makefile (UTILS_OBJS): Variable removed.
	(UNZIP_OBJS): New variable.
	(OBJS): Don't use $(UTILS_OBJS).  Do use $(UNZIP_OBJS).
	(VPATH, CPPFLAGS): Search for stuff in ../exec for unzip junk.

	* derive.c: Include <assert.h>
	(_store_derive): Assert that block_size & blocks_per_page are
	powers of two (which should be enforced elsewhere).

	* make.c (_store_create): Renamed from _make_store.
	Return an error_t code, and add an additional argument STORE to
	return the new store; all uses changed.
	* store.h (_make_store): Likewise.

	* Makefile (SRCS): Add typed.c, copy.c, and gunzip.c.

	* typed.c: New file
	* store.h (store_gunzip_class, store_typed_class): New declarations.
	* std.c (store_std_classes): Add store_copy_class,
	store_gunzip_class, and store_typed_class.

	* kids.c (store_open_children, store_children_name): New functions.
	* stripe.c (store_concat_open): New function.
	(store_concat_create): Set the store name if possible.
	* store.h (store_concat_open, store_children_name,
	store_open_children): New declaration.
	* rdwr.c (store_read): Deallocate memory returned when reading
	part of a multiple-segment read.

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

	* copy.c, gunzip.c: New files.
	* store.h (store_copy_class): New declaration.
	(store_copy_create, store_copy_open, store_buffer_create,
	store_gunzip_create, store_gunzip_open): New declarations.

	* decode.c (store_decode): Pass the original value of CLASSES to
	any decode method, not our search tail.

	* device.c (dopen): If *MOD_FLAGS already contains
	STORE_HARD_READONLY, don't ever try to open for reading.

Fri Feb 21 23:31:34 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* device.c (dopen): Add MOD_FLAGS param, and detect read-only devices.
	(dev_clear_flags, store_device_open): Use MOD_FLAGS arg to dopen.

Wed Feb 19 15:40:18 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* storeread.c (doc): Make doc string come after options.

	* device.c (dev_set_flags): Correctly check for unenforcable runs.

	* task.c: New file.
	* Makefile (SRCS): Add task.c.
	* store.h (store_task_class): New declaration.
	(store_task_create, _store_task_create, store_open): New declarations.
	* std.c (store_std_classes): Add &STORE_TASK_CLASS.

	* xinl.c: Renamed from store.c.
	* Makefile (SRCS): Change store.c to xinl.c.

Mon Oct 21 22:03:19 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* store.h: Add extern inline protection.
	* store.c: New file.
	* Makefile (SRCS): Add store.c.

Tue Oct  8 14:31:51 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* kids.c (store_set_child_flags, store_clear_child_flags): New funcs.
	* store.h (store_set_child_flags, store_clear_child_flags): New decls.
	* stripe.c (stripe_set_flags, stripe_clear_flags): Remove functions.
	* remap.c (store_remap_class): Init set_flags & clear_flags fields.
	* stripe.c (store_ileave_class, store_concat_class): Likewise.

	* clone.c (store_clone): Copy name field.

Mon Oct  7 14:56:27 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* device.c (dev_set_flags, dev_clear_flags): New functions.
	(store_device_class): Add dev_set_flags & dev_clear_flags.
	(dopen, dclose, enforced): New functions.
	(store_device_open): Use dopen.
	* store.h <fcntl.h>: New include.
	* stripe.c (stripe_set_flags, stripe_clear_flags): New functions.
	(store_ileave_create, store_concat_create): Add common backend
	flags from children to parent's flags.

Sat Oct  5 00:23:45 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* create.c (store_create): Add special handling of STORE_INACTIVE
	in FLAGS.

Fri Oct  4 23:44:51 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* create.c (store_create): Free *STORE when store_set_flags fails.

	* store.h (STORE_INNOCUOUS, STORE_INACTIVE): New macros.
	(store_is_securely_returnable): New function.
	* zero.c (store_zero_create): Set STORE_INNOCUOUS flags.

Fri Sep 27 17:01:07 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* remap.c (store_remap): Zero SOURCE->end before calling _store_derive.
	Turn off STORE_ENFORCED flag in source if munging it.

	* device.c (store_device_open): Set *STORE's name appropriately.

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

	* zero.c <limits.h>: New include.
	(zero_open): When no size is specified, use the maximum off_t
	value, not the maximum size_t value.

Mon Sep 23 12:55:43 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storecat.c (main): Use new PARAMS var for passing args to STORE_ARGP.

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

	* argp.c (parse_opt): Correctly check for non-default type.

	* kids.c (store_decode_children): Change CLASSES to **.
	* encode.c (store_encode): Make CLASS var const.
	* file.c (_store_file_create): Make CLASS arg const.
	* store.h (struct store): Make CLASS field const.
	(_make_store): Make CLASS arg const.
	* make.c (_make_store): Make CLASS arg const.
	* stripe.c (ileave_decode, concat_decode): Make CLASSES arg const.
	* remap.c (remap_decode): Likewise.
	* create.c (store_create): Likewise.

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

	* argp.c (struct store_parsed): Change CLASSES field to be a pointer to
	a vector of class pointers.
	(find_class): Change CLASSES to be a vector of class pointers.
	* decode.c (store_decode): Change CLASSES to be a vector of class
	pointers.
	* store.h (struct store_class, struct store_argp_params, store_create,
 	store_open, store_decode, store_decode_children): Change CLASSES args
	to be a pointer to a vector of class pointers.
	(_store_add_std_class): Declaration removed.
	(STORE_STD_CLASS): Macro removed.
	* std.c (store_std_classes): Make an initialized array.
	(_store_add_std_class): Function removed.
	* device.c (store_device_class): Renamed from dev_class; export.
	* file.c (store_file_class): Renamed from file_class; export.
	(store_file_byte_class): Renamed from file_byte_class; export.
	* zero.c (store_zero_class): Renamed from zero_class; export.
	* remap.c (store_remap_class): Renamed from remap_class; export.
	* open.c (store_query_class): Renamed from query_class; export.
	* stripe.c (store_ileave_class): Renamed from ileave_class; export.
	(store_concat_class): Renamed from concat_class; export.

	* zero.c (zero_open, zero_validate_name): New functions.
	(zero_class): Use them.

	* argp.c (store_parsed_open): Remove CLASSES argument.
	(struct store_parsed): Make some fields const.
	* store.h (store_parsed_open): Remove CLASSES argument.

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

	* store.h (struct store_class): Add OPEN and PARSE fields.
	(store_open): Make NAME const.
	(struct store_argp_params): New type.
	* device.c (dev_open): New function.
	(dev_class): Point to it.
	* file.c (fhile_open): New function.
	(file_class): Point to it.
	* argp.c (options, parse_opt): Add --store-type/-T & (hidden)
	--machdev/-m options, remove --device/-d option.
	(struct store_parsed): Rmove DEVICE field, add TYPE, DEFAULT_TYPE
	and CLASSES fields.
	(store_parsed_free): Free PARSED->type if it exists.
	(store_parsed_append_args): Use --store-type=... instead of --device.
	(store_parsed_open): When --store-type is specified, search
	CLASSES for that type, and call it's open function.
	* open.c (store_open): Make NAME const.
	(query_class): New variable.

Fri Sep 13 14:33:24 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (store_parsed_append_args, store_parsed_open, struct
	store_parsed): Use `device' instead of `machdev'.

	* encode.c (store_return): Only call store_enc_dealloc upon failure.
	(store_std_leaf_allocate_encoding): NUM_OFFSETS is NUM_RUNS * 2.

	* enc.c (store_enc_return): Don't call store_enc_dealloc.

Thu Sep 12 17:23:35 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storecat.c (main): Limit reads to 1M, and iterate until done.
	Use store_parsed_name to get store name for errors.
	Add program description.

	* store.h (STORAGE_REMAP, STORAGE_ZERO): New macros (temporary, to
	avoid touching hurd/hurd_types.h).

1996-09-12  Miles Bader  <miles@gnu.ai.mit.edu>

	* remap.c (store_remap): Call _store_derive after changing runs.

	* argp.c (store_parsed_name): New function.

Wed Sep 11 12:38:44 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* decode.c (store_with_decoded_runs): New function.
	(store_std_leaf_decode): Call it.
	* store.h (store_with_decoded_runs): New declaration.

	* stripe.c (ileave_class, concat_class): Initialize the REMAP field.
	(stripe_remap): New function.
	* store.h (store_remap_create): New declaration.
	* zero.c (zero_remap): New function.
	(zero_class): Initialize remap field with zero_remap.
	* Makefile (SRCS): Add remap.c.

	* zero.c: New file, from null.c.
	* null.c: File removed.
	* store.h (store_zero_create): Renamed from store_null_create.
	* Makefile (SRCS): Replace null.c by zero.c.

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

	* remap.c: New file.
	* store.h (struct store_class): Add remap field.
	(store_remap): New declaration.

	* encode.c (store_return): New function.
	* enc.c (store_enc_return, store_return): New functions.
	* store.h (store_enc_return, store_return): New declarations.

Mon Sep  9 12:32:11 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* rdwr.c (store_write, store_read): Use void * for buffers, not char *.
	* device.c (dev_write, dev_read): Likewise.
	* file.c (file_read, file_write, file_byte_read, file_byte_write):
	Likewise.
	* stripe.c (stripe_read, stripe_write): Likewise.
	* null.c (null_read, null_write): Likewise.
	* store.h (store_write_meth_t, store_read_meth_t, store_read,
	store_write): Make type of buffer void *, not char *.

Sun Sep  8 14:14:05 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* device.c (dev_read, dev_write): Don't print debugging messages.
	* argp.c (options, parse_opt): Change short option names around.

Wed Sep  4 13:01:19 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (parse_opt): --layer isn't implemented, so say so.

	* storeread.c (main): Add new args to store_*_create calls.
	* storecat.c (main): Use new interface to store_argp.

Wed Sep  3 11:00:00 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (struct store_parsed): New type.
	(store_parsed_free, store_parsed_append_args, store_parsed_open):
	New functions.
	(parse_opt): Use new store_parsed structure instead of the old
	store_pars_hook, and just fill in the names rather than doing the
	open here.  Don't take a struct store_argp_params as input any
	more; instead just take the address of a location in which to
	return a store_parsed structure.
	(struct store_parse_hook): Type removed.
	(free_hook, open_file): Functions removed.
	<assert.h>: New include.
	<stdlib.h>, <fcntl.h>: Includes removed.
	(options): --machdev/-m renamed to --device/-D.
	* store.h (struct store): Make log2_* fields unsigned.
	(STORE_NO_FILEIO): New macro.
	(STORE_HARD_READONLY, STORE_ENFORCED): Values changed.
	(STORE_GENERIC_FLAGS): Add STORE_NO_FILEIO.
	(struct store_argp_params): Type removed.
	(store_parsed_Free, store_parsed_open, store_parsed_append_args):
	New declarations.
	(struct store_parsed): New incomplete type.

Mon Sep  2 18:56:26 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* store.h (store_open): New declaration.
	* open.c: New file.
	* Makefile (SRCS): Add open.c.

Wed Aug 21 14:40:15 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* device.c (store_device_open): Don't call store_device_create if
	device_open fails.

Tue Aug 20 14:37:33 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (free_hook): Free H->params->args if necessary.
	(parse_opt): Initialize and fill in H->params->args when appropriate.
	<argz.h>: New include.

Mon Aug 19 14:31:33 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* store.h (struct store_argp_params): Add return_args, args, &
	args_len fields.

Fri Jul 19 16:16:46 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* decode.c (store_std_leaf_decode): Decode name too.
	Deal with NAME_LENGTH being 0.

Sun Jun 16 22:49:55 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (parse_opt): Use argp_failure.

Thu May 23 10:54:06 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (parse_opt): Honor ARGP_NO_ERRS.
	<error.h>: New include.

Wed May 22 00:14:18 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (parse_opt): Use error instead of ERR for non-parsing errors.
	Rename ERR to PERR.

Tue May 21 00:01:02 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* storecat.c (main): Delete most everything and use store arg parsing.
	(options, doc, args_doc): Variables removed.

	* create.c (store_create): Add FLAGS & CLASSES params.
	* rdwr.c (store_write): Return an error if STORE is readonly.
	* decode.c (store_decode): Add CLASSES param, use it instead of big
	hardwired switch statement.
	(store_default_leaf_decode): Use typedef for CREATE param.  Pass in
	FLAGS arg when calling it.
	* encode.c (store_std_leaf_allocate_encoding): Renamed from
	store_default_leaf_allocate_encoding.  Make STORE const.
	(store_std_leaf_encode): Renamed from store_default_leaf_encode.
	Make STORE const.  Get class id from store->class->id.
	(store_encode): Use CLASS field instead of METHS field.
	* clone.c (store_clone): Copy the flags by passing them to _make_store.
	Use CLASS field instead of METHS field.
	* file.c (store_file_open, file_decode): New functions.
	(store_file_create): Always set STORE_ENFORCED.
	(file_class): Renamed from file_meths.  Add more fields.  Make std
	with _STORE_STD_CLASS.
	(file_byte_class): Renamed from file_byte_meths.
	<fcntl.h>, <hurd.h>: New includes.
	* device.c (store_device_open, dev_decode): New functions.
	(store_device_create): Always set STORE_ENFORCED.
	(device_class): Renamed from device_meths.  Add more fields.  Make std
	with _STORE_STD_CLASS.
	<hurd.h>: New include.
	* stripe.c (ileave_allocate_encoding, ileave_encode, ileave_decode,
	concat_allocate_encoding, concat_encode, concat_decode): New functions.
	(concat_class): New variable.
	(ileave_class): Renamed from stripe_class.  More fields added.
	* store.h (struct store): Remove CLASS field.  METHS field renamed
	CLASS.
	(STORE_IMMUTABLE_FLAGS, STORE_GENERIC_FLAGS, STORE_BACKEND_SPEC_BASE,
	STORE_BACKEND_FLAGS, STORE_READONLY, STORE_HARD_READONLY,
	STORE_ENFORCED): New macros.
	(struct store_class): Renamed from store_meths; all uses changed.
	Add ID, NAME, DECODE, SET_FLAGS, CLEAR_FLAGS, and NEXT fields.
	(store_std_leaf_decode): Renamed from store_default_leaf_decode.
	(store_std_leaf_create_t): New type.
	(_STORE_STD_CLASS): New macro.
	(struct store_argp_params): READONLY field deleted, FLAGS field added.
	(store_allocate_child_encodings, store_encode_children,
 	store_decode_children, store_set_flags, store_clear_flags,
 	store_file_open, store_device_open, store_null_create,
 	store_std_classes, _store_add_std_class,
 	store_allocate_child_encodings, store_encode_children,
 	store_decode_children): New declarations
	(store_decode, store_create, store_device_create, _store_device_create,
 	store_file_create, _store_file_create, store_ileave_create,
	store_concat_create, _make_store): Declarations updated.
	* make.c (_make_store): CLASS param removed, METHS param renamed
	CLASS; all callers changed.  FLAGS param added.
	* stripe.c (store_ileave_create, store_concat_create): Likewise.
	* file.c (store_file_create, _store_file_create): Likewise.
	* device.c (store_device_create, _store_device_create): Likewise.
	* argp.c (open_machdev): Function removed.
	(parse_opt): Use store_device_open instead of open_machdev.
	(open_file, parse_opt): Add FLAGS arg to various function calls.
	* set.c (store_set_children): Function moved to kids.c.
	* null.c, flags.c, std.c, kids.c: New files.
	* Makefile (SRCS): Add null.c, flags.c, std.c, & kids.c.

Sun May 12 10:12:24 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c (store_parse_opt): Put result in the passed-in params struct.
	Pass hook to open_{file,machdev}.
	(open_machdev): Use params to determine readonly-ness.
	(open_file): New function.
	* store.h (store_argp): New declaration.
	(struct store_argp_params): New type.
	* Makefile (SRCS): Add argp.c.

	* create.c (store_create): Steal SOURCE instead of cloning it.

Sat May 11 01:17:39 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp.c: New file.

	* storeread.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
	* storecat.c (parse_opt): Likewise.

Fri May 10 13:23:36 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* store.h (struct store_run): New type.
	(struct store): RUNS is a vector of runs, not offsets.
	(_store_device_create, _store_file_create, _make_store,
	store_set_runs, store_default_leaf_decode): Update declaration.
	* rdwr.c (store_find_first_run, store_next_run, store_write,
	store_read): Use store_run, not off_t, vectors; tweak accordingly.
	Rename variables called `RUNS' to `RUN', because although they're
	always vectors, they're used more often for their first element.
	* derive.c (_store_derive): Use store_run, not off_t, vectors; tweak
	accordingly.
	* device.c (store_device_create, _store_device_create): Likewise.
	* set.c (store_set_runs): Likewise.
	* storecat.c (main): Likewise.
	* storeread.c (main): Likewise.
	* make.c (_make_store): Likewise.
	* stripe.c (store_ileave_create, store_concat_create): Likewise.
	* file.c (store_file_create, _store_file_create): Likewise.
	* decode.c (store_default_leaf_decode): Convert the slice of the
	offset vector we're using into a vector of store_runs to pass to
	CREATE.  Change type of CREATE accordingly.
	* encode.c (store_default_leaf_encode): Convert from the store_run
	vector to a off_t vector for encoding.

	* create.c (store_create): Use the real file_get_storage_info.
	(fgsi): Function removed.

	* store.h (struct store): Add CHILDREN & NUM_CHILDREN fields.
	Rename RUNS_LEN to NUM_RUNS (all uses changed).
	(store_set_children): New declaration.
	* make.c (_make_store): Initialize CHILDREN & NUM_CHILDREN.
	(store_free): Free all children too.
	* clone.c (store_clone): Clone children too.
	* set.c (store_set_children): New function.
	* stripe.c (store_ileave_create, store_concat_create): Use
	store_set_children.
	(stripe_clone): Function removed.
	(stripe_read, stripe_write): Get stripes from CHILDREN, not HOOK.

	* Makefile (storeread, storecat): Remove explicit dependency on
	program object file.
	Put include of ../Makeconf before dependencies.

Mon May  6 15:20:53 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* store.h: Move big comment describing file_get_storage_info
	encoding to <hurd/hurd_types.h>.
