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-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>.