2001-01-14 Roland McGrath * 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 * 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 * 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 * 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 * copy.c: Include . 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 * 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 * store.h (struct store_class): Add const to type of `name' member. 1999-11-14 Roland McGrath * 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 * rdwr.c (store_read, store_write): Fix asserts in last change. 1999-10-03 Roland McGrath * 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 * 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 * argp.c (store_parsed_open): Add more braces to clarify if-else structure. * encode.c: Include * 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 * rdwr.c: Add #include for munmap decl. * enc.c: Likewise. * copy.c: Likewise. * gunzip.c: Likewise. * bunzip2.c: Likewise. 1999-07-09 Thomas Bushnell, BSG * 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 * 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 * 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 * 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 * remap.c (remap_decode): Add attribute((unused)) to suppress warning. 1999-05-14 Roland McGrath * 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 * 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 * 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 * store.h: Remove defns of STORAGE_*, now in . 1998-12-21 Roland McGrath * 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 * flags.c (store_clear_flags): Add braces to silence gcc warning. 1998-10-19 Roland McGrath * 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 * 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 * 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. : New include. * store.h (store_mvol_create): Declare PHYS correctly. * Makefile (SRCS): Add mvol.c. 1997-08-11 Miles Bader * store.h (store_mvol_create): New declaration. (store_mvol_class): New declaration. * mvol.c: New file. 1997-07-24 Miles Bader * 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 * argp.c (store_parsed_append_args): Correctly unparse complex type names. 1997-07-18 Miles Bader * 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 * 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 * kids.c (store_open_children): Support factored type notation. 1997-07-05 Miles Bader * file.c (file_read, file_write, file_byte_read, file_byte_write): Remove debugging noise. 1997-06-30 Miles Bader * store.h: Doc fix. 1997-06-27 Miles Bader * 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 * argp.c (parse_type): Fill in name_prefix field. (store_parsed_open): Apply it to any names we open. 1997-06-22 Miles Bader * 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 * 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 * 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 (_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 * 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 * 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 * 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 * store.h: Add extern inline protection. * store.c: New file. * Makefile (SRCS): Add store.c. Tue Oct 8 14:31:51 1996 Miles Bader * 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 * 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 : 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 * create.c (store_create): Add special handling of STORE_INACTIVE in FLAGS. Fri Oct 4 23:44:51 1996 Miles Bader * 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 * 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 * zero.c : 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 * storecat.c (main): Use new PARAMS var for passing args to STORE_ARGP. Thu Sep 19 11:12:44 1996 Miles Bader * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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. : New include. , : 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 * store.h (store_open): New declaration. * open.c: New file. * Makefile (SRCS): Add open.c. Wed Aug 21 14:40:15 1996 Miles Bader * device.c (store_device_open): Don't call store_device_create if device_open fails. Tue Aug 20 14:37:33 1996 Miles Bader * argp.c (free_hook): Free H->params->args if necessary. (parse_opt): Initialize and fill in H->params->args when appropriate. : New include. Mon Aug 19 14:31:33 1996 Miles Bader * store.h (struct store_argp_params): Add return_args, args, & args_len fields. Fri Jul 19 16:16:46 1996 Miles Bader * decode.c (store_std_leaf_decode): Decode name too. Deal with NAME_LENGTH being 0. Sun Jun 16 22:49:55 1996 Miles Bader * argp.c (parse_opt): Use argp_failure. Thu May 23 10:54:06 1996 Miles Bader * argp.c (parse_opt): Honor ARGP_NO_ERRS. : New include. Wed May 22 00:14:18 1996 Miles Bader * 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 * 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. , : 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. : 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 * 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 * 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 * 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 * store.h: Move big comment describing file_get_storage_info encoding to .