2008-12-08  Thomas Schwinge  <tschwinge@gnu.org>

	* Makefile (HURDLIBS): Add iohelp.

2008-06-10  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* fakeroot.c (netfs_attempt_utimes): Use a union to avoid an improper
	cast.

2007-06-06  Thomas Schwinge  <tschwinge@gnu.org>

	* Makefile (default_pager-MIGCOMSFLAGS): Remove variable.
	* proxy-defpager.c (proxy_defpager_demuxer): Invoke
	`default_pager_server' instead of `S_default_pager_server'.

2007-05-01  Thomas Schwinge  <tschwinge@gnu.org>

	* crash.c (S_msg_startup_dosync): Remove function.

2006-11-27  Ben Asselstine  <benasselstine@canada.com>
	    Thomas Schwinge  <tschwinge@gnu.org>

	* crash.c (trivfs_append_args): Handle CRASH_ORPHANS_HOW.

2006-11-27  Thomas Schwinge  <tschwinge@gnu.org>

	* crash.c: Correct the usage of the argp documentation string.

	* Makefile (HURDLIBS): Add `netfs'.

2006-06-15  Thomas Schwinge  <tschwinge@gnu.org>

	* hello-mt.c (trivfs_S_io_seek): Seek into the correct direction for
	`SEEK_END'.  Return EINVAL if file pointer would become negative.
	* hello.c (trivfs_S_io_seek): Likewise.

2006-03-25  Thomas Schwinge  <tschwinge@gnu.org>

	[bug #15808]
	* ifsock.c: Include <argp.h>, <sys/cdefs.h> and <version.h>.
	(__XSTRING): New macro.
	(argp_program_version, doc, argp): New variables.
	(main): Call argp_parse().
	Based on a patch by Ben Asselstine <benasselstine@gmail.com>.

2005-07-12  Marcus Brinkmann  <marcus@gnu.org>

	* magic.c (magic_getroot): Deallocate DOTDOT if processing here.
	(magic_open): Do not allocate and deallocate DOTDOT, just consume
	the reference given to us.
	(magic_peropen_destroy): New function.
	(main): If in directory mode, install magic_peropen_destroy hook.

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

	* fakeroot.c: Include <stddef.h>.
	(struct netnode): Change type of member idport_locp
	to hurd_ihash_locp_t.
	(idport_ihash): Change type to struct hurd_ihash and initialize
	with HURD_IHASH_INITIALIZER.
	(new_node): Call hurd_ihash_add instead of ihash_add.
	(netfs_node_norefs): Call hrd_ihash_locp_remove instead
	ihash_locp_remove.
	(netfs_S_dir_lookup): Call hurd_ihash_find instead ihash_find.

2003-09-05  Greg Buchholz <greg@sleepingsquirrel.org>

	* fifo.c, new-fifo.c, null.c (trivfs_S_io_map): Change return value to
	EOPNOTSUPP (was EINVAL).

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

	Make /hurd/magic support translator delegation via /servers/magic.
	* magic.c (struct magic): New structure.
	(magic, directory, dirbuf, dirbufsize): Variables removed,
	not members of struct magic.
	(trivfs_modify_stat, magic_getroot, trivfs_S_dir_readdir): Use a
	struct magic hanging off CNTL->hook rather than global variables.
	(trivfs_append_args): Likewise.
	(trivfs_S_dir_lookup): Likewise.  Let magic string be null to indicate
	prepending nothing in --directory mode.
	(parse_opt): Use struct magic in STATE->input instead of globals.
	If no argument, turn on --directory and leave M->magic null.
	(argp): New static variable, instead of auto in main.
	(main): Set both trivfs hook functions unconditionally.
	Use a struct magic, pass it to argp_parse and store it in FSYS->hook.
	Move directory buffer setup to ...
	(parse_opt): ... here, do it on ARGP_KEY_SUCCESS.
	(magic_open): Track users with a count.
	(magic_protid_destroy): New function to track users.
	(main): Set trivfs_protid_destroy_hook to that.
	(trivfs_goaway): Call ports_destroy_right if FSYS has no users.
	(all_fsys): New variable, list of all filesystems.
	(trivfs_clean_cntl): New function, exit if no filesystems left.
	(main): Put FSYS on that list.  On timeout with no RPCs, try
	trivfs_goaway on each filesystem on the list.
	(trivfs_S_fsys_forward): New function.
	(delegate): New variable.
	(options): New option -U/--use-server to set it.

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

	* pump.c: File removed.

2002-08-16  Marcus Brinkmann  <marcus@gnu.org>

	* proxy-defpager.c (S_default_pager_object_pages): New function.
	(proxy_defpager_demuxer): Use S_default_pager_server (ie add the
	prefix).

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

	* Makefile: Revert undocumented changes related to devpts that
	were checked in unintentionally with the last change.

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

	* proxy-defpager.c: Rename all the server functions with S_ prefix.
	Include "default_pager_U.h" for client stub prototypes.
	* Makefile (default_pager-MIGCOMSFLAGS): New variable, give -prefix S_.
	(OBJS): Add default_pagerUser.o here.
	(proxy-defpager): Depend on it.

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

	* proxy-defpager.c (allowed): Check CRED, not PORT.
	(default_pager_info): Use real_defpager, not DEFAULT_PAGER.
	(proxy_defpager_demuxer): New demuxer.
	(main): Use it.

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

	* proxy-defpager.c: New file.
	* Makefile (targets, SRCS): Add it.
	(proxy-defpager): New target.
	(OBJS): Add default_pagerServer.o here.

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

	* streamio.c (parse_opt): Fix fencepost error in -n arg parsing.
	Reported by Nicola Girardi <nicola@g-n-u.de>.

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

	* firmlink.c (trivfs_S_io_read): Fix pointer arithmetic.
	Reported by Nicola Girardi <nicola@g-n-u.de>.

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

	* magic.c (trivfs_S_dir_readdir): u_int -> size_t

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

	* firmlink.c (trivfs_S_io_read): Fix type of DATA argument.
	* streamio.c (trivfs_S_io_read): Likewise.
	(trivfs_S_io_write): Likewise.
	* hello.c (trivfs_S_io_read): Likewise.
	* hello-mt.c (trivfs_S_io_read): Likewise.
	* null.c (trivfs_S_io_read): Likewise.
	(trivfs_S_io_write): Likewise.
	(trivfs_S_file_set_size): Add reply port args.

	* hello.c (trivfs_S_io_read): off_t -> loff_t
	* hello-mt.c (trivfs_S_io_read): Likewise.
	* streamio.c (trivfs_S_io_read, trivfs_S_io_write): Likewise.
	(trivfs_S_file_sync): Add missing arg.

	* new-fifo.c (trivfs_S_io_map): Add reply port args.
	(trivfs_S_io_select): Remove bogus last arg.

	* fifo.c (trivfs_S_io_map): Add reply port args.
	(trivfs_S_io_select): Remove bogus last arg.

	* null.c (trivfs_S_io_map): Add reply port args.
	(trivfs_S_io_read, trivfs_S_io_write): off_t -> loff_t
	(trivfs_S_file_set_size): Likewise.
	(trivfs_S_io_select): Remove bogus last arg.

	* firmlink.c (trivfs_S_io_read): off_t -> loff_t
	(trivfs_S_io_select): Remove bogus last arg.

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

	* fakeroot.c (new_node): Use ino_t for io_identity argument.
	(netfs_S_dir_lookup): Likewise.

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

	* firmlink.c (trivfs_S_io_readable): Use intptr_t, not off_t.
	(trivfs_S_io_read): Likewise.

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

	* symlink.c (S_fsys_getroot, S_fsys_getfile): u_int -> size_t
	* streamio.c (device_open_reply): size_t -> int for dev_status_t
	* crash.c (S_msg_report_wait): int -> mach_msg_id_t
	(S_crash_dump_task): int -> integer_t

2002-05-26  Marcus Brinkmann  <marcus@gnu.org>

	* magic.c (trivfs_S_dir_readdir): Increment I after comparing it
	with ENTRY, to fix off-by-one error.

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

	* fakeroot.c (netfs_report_access): Always report O_RDWR|O_EXEC.

2002-05-23  Marcus Brinkmann  <marcus@gnu.org>

	* fakeroot.c (check_openmodes): Remove spurious if clause.
	(netfs_attempt_mksymlink): Don't evaluate stat information to get
	the length of the name, but use the string length of NAME and
	store it in the new variable NAMELEN.
	(netfs_S_dir_lookup): Don't always add O_NOLINK to FLAGS, but add
	it to the mask instead.

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

	* fakeroot.c (netfs_S_file_exec): Call check_openmodes and extract a
	ref to the send right with the node locked.

	* fakeroot.c (new_node): Get a reference on NP to return to the caller.
	(netfs_attempt_mkfile): Unlock before new_node call.
	(new_node): Take new arg LOCKED, says idport_ihash_lock already held.
	(netfs_S_dir_lookup, netfs_attempt_mkfile, main): Update callers.

	* fakeroot.c (fakeroot_auth_port): New variable.
	(main): Initialize it.
	(check_openmodes): New static function.
	(netfs_check_open_permissions): Rewritten using it.
	(netfs_S_dir_lookup): New function.
	(netfs_attempt_lookup, netfs_attempt_create_file): Replaced with stubs.

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

	* fakeroot.c (netfs_validate_stat): Set NP->nn_translated.

	* fakeroot.c (netfs_S_file_exec): Don't lock the node (no need).
	Don't use MACH_MSG_TYPE_MOVE_SEND.

	* fakeroot.c (netfs_attempt_chmod): Handle a MODE argument with no
	S_IFMT bits set.

2002-05-13  Marcus Brinkmann  <marcus@gnu.org>

	* fakeroot.c (netfs_server_name, netfs_server_version): New
	variables.

2002-05-13  Marcus Brinkmann  <marcus@gnu.org>

	* symlink.c: Include <argp.h> and <version.h>.
	(argp_program_version, options, args_doc, doc, argp): New
	variables.
	(parse_opt): New function.
	(main): Replace argument count check and usage output by
	argp_parse invocation.

2002-05-13  Marcus Brinkmann  <marcus@gnu.org>

	* fakeroot.c (netfs_S_file_exec): New function.
	(netfs_S_io_prenotify): Fix last change.
	(netfs_S_io_postnotify): Likewise.

2002-05-13  Marcus Brinkmann  <marcus@gnu.org>

	* fakeroot.c (NETFS_S_SIMPLE): New macro.
	(netfs_S_io_get_conch): New function.
	(netfs_S_io_release_conch): New function.
	(netfs_S_io_eofnotify): New function.
	(netfs_S_io_prenotify): New function.
	(netfs_S_io_postnotify): New function.
	(netfs_S_io_readnotify): New function.
	(netfs_S_io_readsleep): New function.
	(netfs_S_io_sigio): New function.
	(netfs_S_io_map_cntl): New function.

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

	* fakeroot.c (netfs_attempt_lookup): Treat EOPNOTSUPP like EACCES.
	When all modes fail, try opening the node with zero openmodes.

	* fakeroot.c (netfs_demuxer): New function.  Reflect unrecognized
	messages to the underlying node port.

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

	* fakeroot.c (main): Stat the root node and fake its st_mode
	immediately to remove translator bits.

2002-05-06  Marcus Brinkmann  <marcus@gnu.org>

	* fakeroot.c (netfs_attempt_lookup): Really check for EROFS or
	EISDIR error from O_RDWR lookup (the last change checked for
	O_RDWR | O_EXEC look ups, which is also necessary).
	(netfs_attempt_mkfile): Unlock DIR.
	(netfs_attempt_create_file): Likewise.
	(netfs_S_io_map): New function.

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

	* fakeroot.c (netfs_attempt_lookup): Check for EROFS or EISDIR error
	from O_RDWR lookup.

	* fakeroot.c (netfs_attempt_lookup): Check io_identity result for our
	own fsys identity port; on match, look up the existing node for the
	port to ourselves.

	* fakeroot.c (netfs_attempt_lookup): Unlock DIR before doing RPCs.

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

	* fakeroot.c (netfs_node_norefs): Unlock node after not dropping
	it at all.

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

	* Makefile (fakeroot): New target.
	(targets): Add it.
	(SRCS): Add fakeroot.c.
	* fakeroot.c: New file.

2002-03-23  James A. Morrison  <ja2morri@uwaterloo.ca>

	* ifsock.c (main): Use ERR, not errno.
	* symlink.c: Include <error.h> and <errno.h>.
	(main): Use err, not fprintf and exit.  Use error, not perror and
	exit.  Use err, not error.  Check for MACH_PORT_NULL
	explicitly. Check for proper usage of symlink before checking if
	symlink is started as a translator.

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

	* crash.c: Add `corelimit' parameter to `dump_core' forward decl.
	(S_crash_dump_task): Change caller, pass (off_t)-1 for now.
	(struct crasher): New member `core_limit'.
	(dead_crasher): Pass C->core_limit to dump_core.
	(S_crash_dump_task): Set C->core_limit, to (off_t) -1 for now.
	(dump_core): Function removed; now ../exec/elfcore.c defines it.
	* Makefile (OBJS, crash): Add elfcore.o.
	(elfcore.c): vpath decl to find this in $(top_srcdir)/exec.

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

	* streamio.c (create_buffer): extern inline -> static inline
	(buffer_size, buffer_readable, buffer_writable): Likewise.
	(clear_buffer, buffer_read): Likewise.

2001-12-11  Marcus Brinkmann  <marcus@gnu.org>

	* streamio.c (device_open_reply): In the D_INVALID_OPERATION case,
	clear ERR, which is a global variable.

2001-04-01  Neal H Walfield  <neal@cs.uml.edu>

	* magic.c (trivfs_S_dir_lookup): Use iohelp_dup_iouser
	as per the new semantics.

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

	* streamio.c (trivfs_modify_stat): Fix inverted sense of tests
	for O_READ, O_WRITE bits.

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

	* symlink.c: Include <string.h> for decls of built-ins.
	* firmlink.c: Include <stdlib.h> for exit decl.
	* ifsock.c: Likewise.
	* null.c: Likewise.
	* magic.c: Likewise.
	* fifo.c: Likewise.
	* hello.c: Likewise.
	* hello-mt.c: Likewise.

2001-02-12  Marcus Brinkmann  <marcus@gnu.org>

	* fifo.c: Make version string say `fifo', not `null'.
	Add period to doc text in ARGP.
	* firmlink.c: Add period to doc text in ARGP_DOC, convert
	semi-colon to colon.
	* magic.c (options): Add period to DOC.
	* new-fifo.c (fifo_trans_parse_args): Add doc string to ARGP.
	Include <version.h>, new global variable ARGP_PROGRAM_VERSION.
	* crash.c: Include <version.h>, add global variable
	ARGP_PROGRAM_VERSION.
	* hello.c: Include <version.h>, add global variable
	ARGP_PROGRAM_VERSION.
	(hello_argp): Add doc string.
	* hello-mt.c: Likewise.
	* streamio.c: Add period to DOC.  Change streamdev to streamio in
	version string.
	* password.c (main): Add period to doc string in ARGP.

2001-01-17  Neal H Walfield  <neal@cs.uml.edu>

	* pump.c (start_pfinet): Conform to new fshelp_start_translator
	semantics.

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

	* streamio.c (options): Add aliases --rdonly, --ro for -r.
	Add aliases --rdwr, -rw for -w.
	Add new option --writeonly/--wronly/-W.
	(readonly): Variable removed.
	(parse_opt): Set trivfs_allow_open for -r/-w/-W.
	(main): Don't set trivfs_allow_open here.  Instead, use it to decide
	whether to set up input_buffer/output_buffer or not.
	(open_hook): Use trivfs_allow_open instead of readonly.
	Check whether read is allowed too.
	(trivfs_modify_stat): Likewise.
	(clear_buffer): Do nothing if argument is null.

	* streamio.c (stream_name, readonly, rdev, nperopens): Remove
	superfluous zero initializers.

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

	* Makefile (SRCS): Add streamio.c
	(streamio): Add dependency on device_replyServer.o.
	Other dependencies identical to those for crash and password.

	(OBJS): Add missing object files to list (crashServer.o
	crash_replyUser.o msgServer.o device_replyServer.o).

	* streamio.c: New file by OKUJI Yoshinori.

2000-07-26  Mark Kettenis  <kettenis@gnu.org>

	* Makefile: Reorder libs such that the threads lib comes before
	the ports lib.  This makes sure the functions in libthreads
	properly override the stubs in libports with the new dynamic
	linker semantics in glibc 2.2.

2000-03-19  Roland McGrath  <roland@baalperazim.frob.com>

	* new-fifo.c (trivfs_protid_portclasses, trivfs_protid_nportclasses):
	Fix to size 2.

2000-03-17  Thomas Bushnell, BSG  <tb@mit.edu>

	* symlink.c (main): Don't use MAKE_SEND in Hurd RPC.

2000-03-17  Roland McGrath  <roland@baalperazim.frob.com>

	* crash.c (S_crash_dump_task): Use ports_get_send_right.

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

	* crash.c (enum crash_action): New alternative crash_unspecified (0).
	(crash_orphans_how): New variable.
	(S_crash_dump_task): If crash_how != crash_orphans_how, ascertain if
	the task is an orphan before deciding what to do.
	(options): New options --action, --orphan-action.
	Old options now compatability aliases for --action=foo.
	(parse_opt): Parse them.
	(doc): New variable.
	(crash_argp): Use DOC.

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

	* null.c: Support --full/-f option to be /dev/full (ENOSPC writes).
	(write_error_code): New variable.
	(options, argp): New static const variables.
	(parse_opt): New function.
	(main): Move local ARGP out to static.
	(trivfs_S_io_write): Return write_error_code instead of zero.

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

	* hello-mt.c: New file, modified from hello.c to be multithreaded.
	* Makefile (targets, SRCS): Add hello-mt, hello-mt.c.
	(hello-mt): Add appropriate deps.

	* Makefile (hello): Don't depend on libthreads.

	* hello.c (trivfs_modify_stat): Set st_size from contents_len, not
	sizeof (hello) - 1.

	* hello.c: New file.  From Gord with some cleanups and hacks from me.
	* Makefile (targets, SRCS): Add hello, hello.c.
	(hello): Add appropriate deps.

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

	* magic.c: Rewritten using libtrivfs.
	With new flag --directory/-d, present an empty directory that
	has . and .. as normal and lists no other contents, but
	looking up anything else within it does the magical retry.
	* Makefile (magic): Update library deps accordingly.

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

	* fifo.c, null.c, new-fifo.c: Reverted changes related to
	io_map_segment.

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

	* null.c (trivfs_S_io_map): Renamed to ...
	(trivfs_S_io_map_segment): ... here, with new parameter `index'.
	* new-fifo.c (trivfs_S_io_map): Renamed to ...
	(trivfs_S_io_map_segment): ... here, with new parameter `index'.
	* fifo.c (trivfs_S_io_map): Renamed to ...
	(trivfs_S_io_map_segment): ... here, with new parameter `index'.

1999-08-31  Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>

	* crash.c (trivfs_modify_stat): Remove redundant fstype setting.
	* password.c (trivfs_modify_stat): Likewise.

	* bogus-fifo.c (main): Deallocate bootstrap port after using it.
	* fifo.c (main): Likewise.
	* firmlink.c (main): Likewise.
	* ifsock.c (main): Likewise.
	* magic.c (main): Likewise.
	* null.c (main): Likewise.
	* symlink.c (main): Likewise.

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

	* firmlink.c: Add #include <sys/mman.h>.

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

	* firmlink.c (trivfs_S_io_read): Use mmap instead of vm_allocate.

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

	* crash.c: Add #include <sys/mman.h> for munmap decl.

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

	* crash.c (stop_pgrp): Use munmap instead of vm_deallocate.

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

	* crash.c (options): Add --dump-core as alias for --core-file.

	* crash.c: Support three modes of operation, selected by command line
	switches:
		-s/--suspend	suspend crashing process (old behavior)
		-k/--kill	kill crashing process, no core dump
		-c/--core-file	dump core file
	(enum crash_action): New type.
	(crash_how): New variable.
	(options, crash_argp, trivfs_runtime_argp): New variables.
	(parse_opt, trivfs_append_args): New functions.
	(main): Call argp_parse.

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

	* null.c (trivfs_S_io_read): Fix return value.
	Reported by Steinar Hamre <steinarh@fim.ntnu.no>.

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

	* fwd.c (main): Add missing newline in usage msg.
	From Marcus Brinkmann.

1999-02-20  Mark Kettenis  <kettenis@gnu.org>

	* password.c: New file.
	* Makefile (targets): Add password.
	(SRCS): Add password.c.
	(OBJS): Add passwordServer.o.
	(password-LDLIBS): New variable.
	Use dependencies identical to those for crash.

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

	* fifo.c (open_hook: WAIT): Add braces to silence gcc warning.
	(trivfs_S_io_select): Likewise.
	* new-fifo.c (fifo_trans_open): Likewise.
	(trivfs_S_io_select): Likewise.

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

	* firmlink.c (main): Fix return type to int, and use return.
	* fwd.c (main): Likewise.
	* new-fifo.c (main): Likewise.
	* magic.c (main): Likewise.
	* fifo.c (main): Likewise.
	* null.c (main): Likewise.

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

	* null.c (main): Fix typo.

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

	* crash.c (main): New args for
	ports_manage_port_operations_multithread.
	* fifo.c (main): Likewise.
	* firmlink.c (main): Likewise.
	* new-fifo.c (main): Likewise.
	* null.c (main): Likewise.

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

	* devport.c: File removed.
	* Makefile (targets): Remove devport.
	(SRCS): Remove devport.c.

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

	* magic.c (main): Actually parse the arg.

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

	* magic.c (argp_program_version, args_doc, doc): New variables.
	(main): Use argp to parse args.
	Add new includes <argp.h> & <version.h>.

Fri Feb 28 20:00:14 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* Makefile (fwd null ifsock fifo new-fifo devport firmlink):
	Add firmlink to targets depending on libthreads.

	* null.c (main): Make multithreaded.

Tue Feb 25 15:42:40 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* firmlink.c (main): Make multithreaded.

Sun Feb 23 00:23:49 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* firmlink.c (argp): Use OPTIONS.
	(getroot): If firmlink returns ENOENT, act like an unresolvable link.
	Don't support visible mode.
	(options, parse_opt): Remove -i.

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

	* null.c (argp_program_version): Make const.

	* fifo.c (argp_program_version, argp): New variables.
	(parse_opt): New function.
	(options): Use argp structures instead of getopt ones.
	(main): Use argp instead of getopt.
	<argp.h>: New include.
	<getopt.h>: Include removed.
	(trivfs_protid_port_class, trivfs_cntl_portclasses,
	trivfs_protid_nportclasses, trivfs_cntl_nportclasses):
	Variables removed.
	(main): Don't use them.
	Don't create our own port classes/bucket, let trivfs_startup do it.

Tue Feb 18 12:55:50 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* fifo.c <version.h>: New include.
	(parse_opt): Use KEY, not OPT.

Fri Feb 14 03:05:59 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* null.c (control_class, node_class, port_bucket,
	trivfs_protid_port_class, trivfs_cntl_portclasses,
	trivfs_protid_nportclasses, trivfs_cntl_nportclasses):
	Variables removed.
	(main): Don't use them.

Thu Feb 13 19:42:38 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* firmlink.c: New file.
	* Makefile (targets): Add firmlink.
	(SRCS): Add firmlink.c.
	(firmlink): New target.

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

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

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

	* null.c (provide_zeros): Variable removed.
	(trivfs_S_io_read): Don't return zeros anymore.
	(trivfs_S_io_readable): Always return 0.
	(argp_program_version): New variable.
	(main): Use argp for argument parsing.
	(trivfs_S_file_check_access): New function.

Thu Sep 12 16:39:47 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): New variable.

Fri Jul 12 23:02:36 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* crash.c (stop_pgrp): Fetch pgrp using correct call.

Mon Jul  8 13:52:36 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* crash.c (stop_pgrp): Don't do anything if ORPHANED.

Mon Jul  8 08:54:05 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* crash.c (stop_pgrp): Take second arg CTTYID.  Fetch each pgrp
 	member's msgpor and send msg_sig_post with that as refport instead of
 	calling POSIX.1 kill function like a bonehead.
	(S_crash_dump_task): Pass CTTY_ID arg through to stop_pgrp.

Sun Jul  7 22:43:23 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* crash.c (stop_pgrp): New function.
	(S_crash_dump_task): Call stop_pgrp.

	* Makefile (fwd): Depend on libports.

Mon Jul  1 16:09:10 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (crash): New target.
	* Makefile (SRCS): Added crash.c.
	* crash.c: Moved here from ../exec.
	(S_crash_dump_task): New args EXC, CODE, SUBCODE, CTTY_ID.
	Supply SIGCODE arg to proc_mark_stop.
	(signal_crasher): New arg SIGCODE, supply to proc_mark_exit.  All
	callers changed.
	(S_msg_sig_post_untraced): Supply C->sigcode to proc_mark_stop.
	(S_crash_dump_task): Drop arg TARGET.
	(dump_core): Likewise; all callers changed.
	(struct crasher): Delete member `target'.
	(S_msg_describe_ports): New function.

Thu Jun 20 16:28:33 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* Makefile (null ifsock fifo new-fifo devport): Depend on
	../libfshelp/libfshelp.a.

Wed May 29 10:31:16 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* devport.c (trivfs_S_file_get_storage_info): Implement new interface.

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

	* new-fifo.c (fifo_trans_parse_args): Use ARGP_ERR_UNKNOWN instead
	of EINVAL.

Tue Apr 30 09:58:47 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (all): Delete target.
	(include ../Makeconf): *Before* all dependences.
	($(targets)): Each program depends on its associated .o.

Mon Apr 15 12:50:37 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* new-fifo.c (fifo_trans_parse_args): Supply missing arg to
 	argp_parse.

Sun Mar 31 13:26:48 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* Makefile (targets): Add devport.
	(SRCS): Add devport.c.
	Add devport as a target to various dependency rules.

Wed Feb  7 17:51:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fifo.c (trivfs_S_file_set_size): Add #!$@&* reply port args.
	* new-fifo.c (trivfs_S_file_set_size): Likewise.

Mon Jan 29 09:53:01 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fifo.c (close_hook): Also disconnect ACTIVE_FIFO if the laster
	writer is going away and there were no readers.
	(open_hook): Unbreak a new read pipe even if not waiting for writers.

	* new-fifo.c (fifo_trans_open): Typo.

Sun Jan 28 21:52:00 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fifo.c (open_hook): Only bother to do anything if O_READ | O_WRITE.
	* new-fifo.c (fifo_trans_open): Likewise.
	When O_NONBLOCK is set, just don't block if possible, instead of
	of returning EWOULDBLOCK.
	(trivfs_S_io_select): The pipe is on CRED->po->hook, not CRED->hook.
	(trivfs_modify_stat): Zero the returned size if there's no pipe.

Sat Jan 27 19:30:25 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fifo.c (open_hook): When O_NONBLOCK is set, just don't block if
	possible, instead of of returning EWOULDBLOCK.
	Only set PO->hook if O_READ or O_WRITE is set.
	(trivfs_S_io_select): The pipe is on CRED->po->hook, not CRED->hook.
	(trivfs_modify_stat): Zero the returned size if there's no pipe.

Thu Jan 25 18:34:26 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fifo.c (trivfs_goaway): Handle errors from ports_inhibit_bucket_rpcs.
	* new-fifo.c (trivfs_goaway): Likewise.
	Call ports_interrupt_rpcs instead of ports_interrupt_rpc.

Tue Jan 16 14:18:57 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* new-fifo.c (trivfs_S_io_select): Request interruption if the
	reply-port dies.
	Don't block if there's an error immediately available.
	* fifo.c (trivfs_S_io_select): Ditto.

Mon Nov  6 12:39:32 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* magic.c (S_fsys_get_options): New function.
	* symlink.c (S_fsys_get_options): New function.

Sun Nov  5 01:56:20 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* ifsock.c (main): Add flags argument to trivfs_startup call.
	* null.c (main): Ditto.
	* fifo.c (main): Ditto.
	* new-fifo.c (fifo_trans_start): Ditto.
	* symlink.c (main): Add flags argument to fsys_startup call.
	(S_fsys_startup): Add FLAGS arg.
	* magic.c (main): Add flags argument to fsys_startup call.
	(S_fsys_startup): Add FLAGS arg.

Sat Oct  7 23:41:02 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* symlink.c (S_fsys_getpriv): Add new extra args.
	* magic.c (S_fsys_getpriv): Ditto.

Mon Sep 18 14:54:55 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* fifo.c (trivfs_S_file_set_size): Renamed from trivfs_S_file_truncate;
	Return EINVAL if the new size isn't 0.
	* new-fifo.c (trivfs_S_file_truncate): Ditto.
	* null.c (trivfs_S_file_set_size): Renamed from trivfs_S_file_truncate.

Fri Sep  8 12:27:35 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* fifo.c, new-fifo.c (open_hook): Block for read only when there's
 	really someone reading already, or until there's a writer.
  	(open_hook): Use the WAIT macro to block.
	* fifo.c (wait_for_writer): New variable.
	(main): Set WAIT_FOR_WRITER with WAIT_FOR_READER.
	* new-fifo.c (struct fifo_trans): Added wait_for_writer field.
	Delete standalone field.  Add some comments.
	(fifo_trans_create): Propagate and set the wait_for_writer field.
	(fifo_trans_parse_args): Set the wait_for_writer field.

	* fifo.c (trivfs_modify_stat): Only return pipe info if there's a pipe.
	(close_hook): Don't die if there's no pipe.
	* new-fifo.c (trivfs_modify_stat): Only return pipe info if
 	there's a pipe.
	(fifo_trans_close): Don't die if there's no pipe.

Thu Aug 31 19:16:25 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* fifo.c (trivfs_S_io_select): Use pipe_pair_select.
	(trivfs_S_io_write): Pass in the NOBLOCK parameter to pipe_write.

Wed Aug 30 12:14:58 1995  Miles Bader  <miles@geech.gnu.ai.mit.edu>

	* fifo.c (trivfs_goaway): Implement correctly.
	(main): When we time out, don't exit unless there are no opens.
	(main): Add timeouts.
	(port_bucket): Now a local variable in main.
	(trivfs_S_io_select): Implement correctly.

Tue Aug 29 17:31:45 1995  Miles Bader  <miles@geech.gnu.ai.mit.edu>

	* fifo.c (open_hook): Use hurd_condition_wait to detect interrupts.

Thu Aug 24 10:41:31 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (all): New target.
	(symlink, magic, ifsock, fifo, null): Put all dependencies in
	these targets.
	(null-HURDLIBS, ifsock-HURDLIBS, fifo-HURDLIBS): Removed.
	Get rid of rules dealing with error.o

Wed Aug 23 13:11:18 1995  Miles Bader  <miles@duality.gnu.ai.mit.edu>

	* magic.c (S_fsys_forward): New function.
	* symlink.c (S_fsys_forward): New function.
	* bogus-fifo.c (S_fsys_forward): New function.

Tue Aug 22 10:48:47 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (HURDLIBS): Add libshouldbeinlibc (everyone uses it).
	(symlink, magic, fifo, null, ifsock): Remove error.o.
	Get rid of rules dealing with error.o.

	* fifo.c (trivfs_goaway, trivfs_modify_stat): Update arguments.
	(trivfs_modify_stat): Give the size of the fifo now that we've got
	a handle on it.

Mon Aug 21 14:43:46 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* null.c (trivfs_goaway, trivfs_modify_stat): Update arguments.
	* ifsock.c (trivfs_goaway, trivfs_modify_stat): Update arguments.

	* fifo.c (open_hook): Use condition_broadcast instead of
 	condition_signal on active_fifo_changed, as all waiters need be
 	notified of changes.

Tue Jul 25 13:53:30 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* fifo.c: New file.
	(main): Don't pass in the MACH_RCV_TIMEOUT flag with a zero timeout.
	* Makefile (SRCS): Add fifo.c.
	(targets): Add fifo.
	(fifo): New target.

Thu Jul  6 15:42:25 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile (OBJS): New var.

	* Makefile: Removed dependencies that are now automatically
 	generated.

Wed Jul  5 21:17:34 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* Makefile (ifsock-HURDLIBS, null-HURDLIBS): New vars.
	(null, ifsock): Fix dependencies.

Wed Jun 28 15:07:25 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* null.c (PT_CTL, PT_NODE): Deleted macros.
	(trivfs_protid_porttypes, trivfs_cntl_porttypes,
	trivfs_protid_nporttypes, trivfs_cntl_nporttypes): Deleted vars.
	(trivfs_protid_portclasses, trivfs_cntl_portclasses,
	trivfs_protid_nportclasses, trivfs_cntl_nportclasses): New vars.
	(control_class, node_class, port_bucket): New vars.
	(main): Initialize control_class, node_class, port_bucket,
	trivfs_protid_portclasses, and trivfs_cntl_portclasses.
	(ports_cleanroutines): Delete initialization.
	(main): Convert to new trivfs interface.
	(trivfs_goaway): Likewise.
	(main): Convert to new ports interface.
	(ports_demuxer, ports_notice_idle, ports_no_live_ports,
	ports_no_hard_ports): Deleted functions.

	* Makefile (ifsock): Add dependency on libihash.
	(null): Likewise.

	* ifsock.c (PT_CTL, PT_NODE): Deleted macros.
	(ports_cleanroutines): Deleted var.
	(ports_notice_idle, ports_no_live_ports, ports_no_hard_ports):
	Deleted functions.
	(control_class, node_class, port_bucket): New vars.
	(trivfs_protid_porttypes, trivfs_cntl_porttypes,
	trivfs_protid_nporttypes, trivfs_cntl_nporttypes): Deleted vars.
	(trivfs_protid_portclasses, trivfs_cntl_portclasses,
	trivfs_protid_nportclasses, trivfs_cntl_nportclasses): New vars.
	(main): Initialize control_class, node_class, port_bucket,
	trivfs-protid_portclasses, and trivfs_cntl_portclasses.
	(main): Use new trivfs interface.
	(trivfs_goaway): Likewise.
	(main): Use new ports interface.
	(S_ifsock_getsockaddr): Likewise.
	(demuxer): Renamed from ports_demuxer.
	(demuxer): Declare ifsock_server.

Fri May 12 19:07:54 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* magic.c (S_fsys_set_options, S_fsys_mod_readonly):  Change from
	mod_readonly to set_options.
	* symlink.c (S_fsys_set_options, S_fsys_mod_readonly): Ditto.

Thu May 11 13:36:28 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* null.c (trivfs_modify_stat): Make st_blksize really large.

Mon Apr 10 20:38:49 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* null.c (trivfs_S_file_truncate): Always return 0, so O_TRUNC works.

Sun Apr  9 00:26:07 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* null.c (main): Use trivfs_startup() instead of doing things manually.
	Get rid of _libports_initialize() [it gets called automatically].
	* ifsock.c (main): Ditto; also, use error() to print error messages.

Mon Apr  3 16:39:33 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* null.c (trivfs_modify_stat): Return more useful values for the
        st_blksize and st_fstype fields.

Fri Mar 31 12:20:48 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* null.c (main): Move the check for the bootstrap port after the
	args check, so that users can run it from the shell to get a usage
	message.

	* magic.c (main): Don't deallocate our right to the underlying
	disk node, so we don't get garbage collected prematurely.  Also
	move the check for the bootstrap port after the args check, so
	that users can run it from the shell to get a usage message.

Wed Mar 29 19:30:33 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* magic.c: New file: Translator to return F_RETRY_MAGIC strings.
	* null.c: New file: Translator for /dev/null & /dev/zero.
	* Makefile: Add support for the magic and null servers.

Wed Aug 31 11:08:10 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* symlink.c (S_fsys_mod_readonly, S_fsys_syncfs): New functions.

Tue Aug 30 16:42:29 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* ifsock.c (main): Call file_name_lookup instead af path_lookup.

Tue Aug 16 11:38:26 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* Makefile (symlink, symlink.o): New targets.
	Change to be type `servers.'.

Fri Jul 22 15:15:49 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* Makefile: Rewritten in accord with new scheme.
