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

	* Makefile (HURDLIBS): Add fshelp.  Reported by Olaf Buddenhagen
	<olafbuddenhagen@gmx.net>.

2007-11-13  Thomas Schwinge  <tschwinge@gnu.org>

	* times.c (trivfs_set_atime, trivfs_set_mtime): Adapt to ``struct
	stat'' changes.

2003-10-11  Marcus Brinkmann  <marcus@gnu.org>

	* nosenders.c, notify-stubs.c: Remove obsolete files.

2003-02-15  Roland McGrath  <roland@frob.com>

	* Makefile (installhdrs): Add generated headers only ifndef no_deps.

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

	* dir-chg.c: Don't include stub header, trivfs.h now gets those decls.
	* dir-link.c: Likewise.
	* dir-lookup.c: Likewise.
	* dir-mkdir.c: Likewise.
	* dir-mkfile.c: Likewise.
	* dir-readdir.c: Likewise.
	* dir-rename.c: Likewise.
	* dir-rmdir.c: Likewise.
	* dir-unlink.c: Likewise.
	* file-access.c: Likewise.
	* file-chauthor.c: Likewise.
	* file-chflags.c: Likewise.
	* file-chg.c: Likewise.
	* file-chmod.c: Likewise.
	* file-chown.c: Likewise.
	* file-get-fs-options.c: Likewise.
	* file-get-storage-info.c: Likewise.
	* file-get-trans.c: Likewise.
	* file-get-transcntl.c: Likewise.
	* file-getcontrol.c: Likewise.
	* file-getfh.c: Likewise.
	* file-getlinknode.c: Likewise.
	* file-lock.c: Likewise.
	* file-reparent.c: Likewise.
	* file-set-size.c: Likewise.
	* file-set-trans.c: Likewise.
	* file-statfs.c: Likewise.
	* file-sync.c: Likewise.
	* file-syncfs.c: Likewise.
	* file-utimes.c: Likewise.
	* fsys-forward.c: Likewise.
	* fsys-get-options.c: Likewise.
	* fsys-getroot.c: Likewise.
	* fsys-goaway.c: Likewise.
	* fsys-set-options.c: Likewise.
	* fsys-stubs.c: Likewise.
	* fsys-syncfs.c: Likewise.
	* io-async-icky.c: Likewise.
	* io-async.c: Likewise.
	* io-duplicate.c: Likewise.
	* io-identity.c: Likewise.
	* io-map.c: Likewise.
	* io-modes-get.c: Likewise.
	* io-modes-off.c: Likewise.
	* io-modes-on.c: Likewise.
	* io-owner-get.c: Likewise.
	* io-owner-mod.c: Likewise.
	* io-pathconf.c: Likewise.
	* io-read.c: Likewise.
	* io-readable.c: Likewise.
	* io-reauthenticate.c: Likewise.
	* io-restrict-auth.c: Likewise.
	* io-revoke.c: Likewise.
	* io-seek.c: Likewise.
	* io-select.c: Likewise.
	* io-stat.c: Likewise.
	* io-stubs.c: Likewise.
	* io-write.c: Likewise.

	* Makefile (mig-sheader-prefix): New variable.
	(installhdrs): Add trivfs_*_S.h for fs, io, fsys (server stub headers).
	($(MIGSTUBS:%Server.o=%.sdefsi)): Give dep $(srcdir)/fsmutations.h.
	* priv.h: All declarations moved to ...
	* trivfs.h: ... here.  #include those server stub headers.
	* fsmutations.h (FILE_IMPORTS, IO_IMPORTS, FSYS_IMPORTS):
	Use <hurd/trivfs.h> instead of "priv.h" here.

	* io-version.c (trivfs_S_io_server_version): Fix receiver arg type.

	* file-exec.c (trivfs_S_file_exec): Add reply port args.

	* dir-readdir.c (trivfs_S_dir_readdir): Revert last change.

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

	* io-identity.c (trivfs_S_io_identity): Use ino_t for FILENO.

	* dir-readdir.c (trivfs_S_dir_readdir): Use vm_size_t for AMOUNT.

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

	* trivfs.h (trivfs_modify_stat):
	Use io_statbuf_t instead of struct stat.

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

	* dir-readdir.c (trivfs_S_dir_readdir): u_int -> size_t
	* file-get-trans.c (trivfs_S_file_get_translator): Likewise.
	* file-set-trans.c (trivfs_S_file_set_translator): Likewise.
	* file-getfh.c (trivfs_S_file_getfh): Likewise.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise
	* fsys-stubs.c (trivfs_S_fsys_getfile): Likewise.
	(trivfs_S_fsys_startup): Fix argument type.

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

	* dir-lookup.c (trivfs_S_dir_lookup): Use iohelp_dup_iouser as
	per the new semantics.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use
	iohelp_create_complex_iouser.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate):
	Use iohelp_reauth as per the new semantics.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth):
	Use iohelp_create_complex_iouser.  Check return values.
	* protid-dup.c (trivfs_protid_dup): Use iohelp_dup_iouser
	as per the new semantics.

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

        * file-inv.c: Remove this file, function no longer exists.
        * Makefile (FSSRCS): Remove reference to file-inv.c.

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

	* startup.c (trivfs_startup): Don't use MAKE_SEND in Hurd RPC.

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

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use
	ports_get_send_right.

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

	* io-write.c: Include <fcntl.h>.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Fix typo.

	* io-write.c (trivfs_S_io_write): Return EBADF if trivfs_allow_open
	doesn't include O_WRITE.

	* io-modes-get.c (trivfs_S_io_get_openmodes): Remove assert.
	The default implementation ought to be fine for this.

	* io-owner-get.c (trivfs_S_io_get_owner): Remove asserts.
	It is entirely reasonable to have EOPNOTSUPP be the default
	implementation for these calls that files are not obligated to provide.
	* io-owner-mod.c (trivfs_S_io_mod_owner): Likewise.
	* io-map.c (trivfs_S_io_map): Likewise.
	* io-async.c (trivfs_S_io_async): Likewise.
	* io-async-icky.c (trivfs_S_io_get_icky_async_id): Likewise.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Return EROFS or EACCES for a
	disallowed open attempt, instead of EOPNOTSUPP.  EOPNOTSUPP results in
	the confusing result of ENOTDIR being delivered to the user.

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

	* dir-readdir.c (trivfs_S_dir_readdir): Take DATA_DEALLOC parameter.

	* dir-lookup.c (trivfs_S_dir_lookup): Duplicate CRED->user to pass it
	to trivfs_open.  Add ref to CRED->realnode when used by trivfs_open.

	* trivfs.h (trivfs_open_hook): New variable.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use it.

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

	* Makefile, io-map.c, io-map-segment.c: Reverted changes related to
	io_map_segment.

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

	* io-map-segment.c (trivfs_S_io_map): New file.
	* io-map.c (trivfs_S_io_map): Just call trivfs_S_io_map_segment.
	* Makefile (IOSRCS): Add io-map-segment.c.

Mon Mar 15 14:36:33 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* migsupport.c (trivfs_begin_using_protid): In first branch,
	protect work against PI being null, and call ports_port_deref with
	the proper value.
	(trivfs_begin_using_control): Likewise.
	Reported by Mark Kettenis (kettenis@wins.uva.nl).

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

	* trivfs.h (trivfs_check_access_hook): New variable.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use
	trivfs_check_acces_hook.
	* dir-lookup.c (trivfs_S_dir_lookup): Likewise.
	* file-access.c (trivfs_S_file_check_access): Likewise.

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

	* io-revoke.c: Add reply, reply_type args.

Tue Feb 16 05:47:57 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* io-revoke.c: New file.
	* Makefile (IOSRCS): Add io-revoke.c.

1999-02-12  Gordon Matzigkeit  <gord@trick.fig.org>

	* open.c (trivfs_open): Add missing `=' from last change.

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

	* open.c (trivfs_open): Correctly initialize NEW->isroot.

Sun Jan 31 18:29:22 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* times.c (trivfs_set_atime, trivefs_set_mtime): Take advantage of
	new semantics for file_utimes.

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

	* file-get-fs-options.c (trivfs_S_file_get_fs_options):
	fshelp_return_malloced_buffer renamed to iohelp_*.
	* fsys-get-options.c (trivfs_S_fsys_get_options): Likewise.

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

	* dir-lookup.c (trivfs_S_dir_lookup): Fix brainos in last change.

Tue Jul 14 16:47:28 1998  Thomas Bushnell, n/BSG  <tb@mit.edu>

	* dir-lookup.c (trivfs_S_dir_lookup): In null-pathname case, this
	should work even for non-directories, so actually do it, making
	this a simpler case of trivfs_S_fsys_getroot.

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

	* protid-classes.c (trivfs_protid_portclasses,
 	trivfs_protid_nportclasses): Make common.
	* cntl-classes.c (trivfs_cntl_portclasses,
	trivfs_cntl_nportclasses): Likewise.

Tue Feb 18 19:47:16 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* cntl-create.c (trivfs_create_control): Put the actual port
	creation call back in!

Fri Feb 14 02:10:50 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* dyn-classes.c: New file.
	* cntl-create.c (trivfs_create_control): Possibly allocate and add
	the port classes/buckets to the list of ones recognized by trivfs.
	* migsupport.c
	(trivfs_begin_using_protid): Support dynamic protid port classes.
	(trivfs_begin_using_control): Support dynamic control port classes.
	* cntl-clean.c (trivfs_clean_cntl): Clean up dynamic port
	classes/buckets.
	* trivfs.h (trivfs_add_control_port_class,
	trivfs_add_protid_port_class, trivfs_add_port_bucket,
	trivfs_remove_control_port_class, trivfs_remove_protid_port_class,
	trivfs_remove_port_bucket): New declarations.
	Doc fixes.
	* priv.h (trivfs_dynamic_protid_port_classes,
	trivfs_num_dynamic_protid_port_classes,
	trivfs_dynamic_control_port_classes,
	trivfs_num_dynamic_control_port_classes,
	trivfs_dynamic_port_buckets, trivfs_num_dynamic_port_buckets):
	New declarations.
	* Makefile (OTHERSRCS): Add dyn-classes.c, protid-classes.c, &
	cntl-classes.c.

Thu Feb 13 18:30:45 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* trivfs.h (trivfs_getroot_hook): New declaration.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use trivfs_getroot_hook.
	* Makefile (FSSRCS): Replace dir-reparent.c by file-reparent.c.

Mon Jan 20 16:37:04 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* dir-reparent.c (trivfs_S_dir_reparent): New file.
	* Makefile (FSSRCS): Add dir-reparent.c.

Tue Nov 19 22:36:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io-stat.c (trivfs_S_io_stat): Clear S_ITRANS and set S_IROOT in
	ST->st_mode (before calling trivfs_modify_stat).

Mon Nov 18 18:13:42 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-stat.c (trivfs_S_io_stat): Make the mode specify IFCHR by
	default.

Sat Nov 16 17:20:15 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): Add `iohelp'.

Thu Nov 14 13:13:10 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-restrict-auth.c (trivfs_S_io_restrict_auth): idvec_set ->
 	idvec_set_ids.  Fix unrelated typos.

	* protid-dup.c (trivfs_protid_dup): Use iouser_dup_iouser instead
	of copying old arrays by hand.
	* protid-clean.c (trivfs_clean_protid): Free CRED->user instead of
	CRED->uids and CRED->gids.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Args for
	io_restrict_auth now come from the new structure definitions.
	* open.c (trivfs_open): Pass correct first arg to idvec_contains.

	* open.c (trivfs_open): Delete variable I.

	* trivfs.h: Include <hurd/iohelp.h>

Thu Nov  7 17:05:02 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io-restrict-auth.c (trivfs_S_io_restrict_auth): If CRED has
	root, use the requested id sets verbatim.

Thu Nov  7 01:01:05 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Rewrite to use
 	idvecs.

Wed Nov  6 23:40:50 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* trivfs.h (struct trivfs_protid): Delete members `uids', `gids',
 	`nuids', and `ngids'.  Replace with `user'.
	(trivfs_check_open_hook): Delete args `uids', `nuids', `gids',
	`ngids'.  Replace with new arg `user'.  All callers changed.
	(trivfs_open): Likewise.
	* open.c (trivfs_open): Change to match new declaration.

	* trivfs.h (struct trivfs_protid): Delete members `uids', `gids',
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use new
 	iohelp_reauth call.

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

	* file-access.c (trivfs_S_file_check_access): Return
	CRED->realnode's access bits rather than always 0.

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

	* file-get-fs-options.c <argz.h>: New include.

	* trivfs.h (trivfs_append_args): Make ARGZ_LEN `size_t *'.
	* append-args.c (trivfs_append_args): Likewise.

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

	* Makefile (HURDLIBS): Add shouldbeinlibc.

Wed Sep 18 12:47:54 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fsys-get-options.c (trivfs_S_fsys_get_options): Initialize ARGZ
	with the program name, and call trivfs_append_args instead of
	trivfs_get_options.
	* file-get-fs-options.c (trivfs_S_file_get_fs_options): Likewise.
	* trivfs.h (trivfs_append_args): New declaration.
	(trivfs_get_options): Declaration removed.
	* Makefile (OTHERSRCS): Replace get-options.c with apend-args.c.
	* append-args.c (trivfs_append_args): New file.

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

	* Makefile (HURDLIBS): New variable.
	(libtrivfs.so): Delete special depedency.

Fri Aug 16 19:24:45 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* migsupport.c (trivfs_end_using_protid): Only call
	ports_port_deref if CRED is set.
	(trivfs_end_using_control): Likewise.

Thu Aug 15 16:14:33 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* io-pathconf.c (trivfs_S_io_pathconf): Implement by calling
	underlying node.

Thu Jul 18 23:14:44 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use noinstall
	version of ports_create_port.  Put it in the port set after the
	node has been fully initialized.

Sat Jul 13 20:15:56 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Repeat
 	ports_create_port, auth_server_authenticate, io_restrict_auth, and
 	*trivfs_protid_create_hook for as long as we get EINTR.  Deal with
 	other errors without crashing.

Sun Jul  7 16:06:37 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Don't use
 	MACH_MSG_TYPE_MOVE_SEND; it's unreliable.

Thu Jun 20 22:54:01 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* file-get-fs-options.c (trivfs_S_file_get_fs_options):
	Call trivfs_get_options, and package up the results.
	* fsys-get-options.c (trivfs_S_fsys_get_options): Likewise.
	* fsys-set-options.c (trivfs_S_fsys_set_options): Call
	trivfs_set_options.
	* set-options.c, get-options.c: New files.
	* trivfs.h: Add trivfs_set_options & trivfs_get_options.
	* Makefile (OTHERSRCS): Add set-options.c & get-options.c.

Wed Jun 19 21:29:45 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* trivfs.h (trivfs_runtime_argp): New declaration.
	* fsys-set-options.c (trivfs_S_fsys_set_options): Use
	trivfs_runtime_argp to parse options.
	* runtime-argp.c: New file.
	* Makefile (OTHERSRCS): Add runtime-argp.c.

Sat Jun 15 19:50:37 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* fsys-stubs.c (trivfs_S_fsys_set_options, trivfs_S_fsys_get_options,
 	trivfs_S_file_get_fs_options): Functions removed.
	* fsys-set-options.c, fsys-get-options.c, file-get-fs-options.c:
	New files.
	* Makefile (FSSRCS): Add file-get-fs-options.c
	(FSYSSRCS): Add fsys-set-options.c & fsys-get-options.c.

Thu May  9 20:03:28 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-identity.c: New file.
	* Makefile (IOSRCS): Add io-identity.c.
	* cntl-clean.c (trivfs_clean_cntl): Destroy filesys_id and file_id
 	members.
	* cntl-create.c (trivfs_create_control): Initialize filesys_id and
	file_id members of new control.
	* trivfs.h (trivfs_control): New members `filesys_id' and
 	`file_id'.

Thu May  9 16:58:31 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Change
	to new interface.

Thu May  9 15:32:38 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Don't send
 	right for CRED to auth_server_authenticate.

	* fsys-stubs.c (trivfs_S_fsys_get_options): Expect (and ignore)
 	reply port args.

	* file-syncfs.c (trivfs_S_file_syncfs): Provide new third arg to
 	file_sync.
	* fsys-syncfs.c (trivfs_S_fsys_syncfs): Likewise.
	* file-sync.c (trivfs_S_file_sync): Accept and pass through new
 	omitmeta parm.

	* file-statfs.c (trivfs_S_file_statfs): Use new struct statfs
 	format.

	* dir-rename.c (trivfs_S_dir_rename): Accept new excl parm.
	* dir-link.c (trivfs_S_dir_link): Likewise.

	* Makefile (OTHERSRCS): Delete handle-port.c.
	* trivfs.h (trivfs_handle_port): Delete declaration.
	* handle-port.c: Delete file.

Thu May  9 12:16:38 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* io-select.c (trivfs_S_io_select): Remove TAG arg.

Tue May  7 16:14:10 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Swap
	PORTS_TYPE and NUM_PORTS args.

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

	* file-get-storage-info.c (trivfs_S_file_get_storage_info):
	Rewrite for new interface.

Mon Apr 29 15:19:26 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* handle-port.c: Comment out warning addition.

Sun Apr 28 15:22:16 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* handle-port.c: Add obsolescence link warning.

Thu Apr 11 18:03:31 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (MIGSFLAGS): Reference fsmutations.h in $(srcdir).

Thu Jan 25 16:19:29 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* cntl-create.c (trivfs_create_control): New function.
	* trivfs.h (trivfs_create_control): New declaration.
	* startup.c (trivfs_startup): Use trivfs_create_control.
	* handle-port.c (trivfs_handle_port): Likewise.
	* Makefile (OTHERSRCS): Add cntl-create.c.

	* open.c (trivfs_open): Use ports_create_port instead of
	ports_allocate_port, and return any error.
	* protid-dup.c (trivfs_protid_dup): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.

Mon Jan 15 12:02:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* protid-clean.c (trivfs_clean_protid): Don't hold
	CRED->po->cntl->lock while calling TRIVFS_PEROPEN_DESTROY_HOOK.

SUN Nov  5 00:01:53 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* fsys-stubs.c (trivfs_S_fsys_get_options,
	trivfs_S_file_get_fs_options): New functions.

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Add
	FLAGS arg.

	* dir-chg.c (trivfs_S_dir_notice_changes): Waste some time adding
	reply port args that no one will use.
	* dir-link.c (trivfs_S_dir_link): Ditto.
	* dir-lookup.c (trivfs_S_dir_lookup): Ditto.
	* file-utimes.c (trivfs_S_file_utimes): Ditto.
	* file-statfs.c (trivfs_S_file_statfs)Ditto.
	* file-set-trans.c (trivfs_S_file_set_translator): Ditto.
	* file-lock.c (trivfs_S_file_lock, trivfs_S_file_lock_stat): Ditto.
	* file-getlinknode.c (trivfs_S_file_getlinknode): Ditto.
	* file-getfh.c (trivfs_S_file_getfh): Ditto.
	* file-get-transcntl.c (trivfs_S_file_get_translator_cntl): Ditto.
	* file-get-trans.c (trivfs_S_file_get_translator): Ditto.
	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Ditto.
	* file-chown.c (trivfs_S_file_chown): Ditto.
	* file-chflags.c (trivfs_S_file_chflags): Ditto.
	* file-chg.c (trivfs_S_file_notice_changes): Ditto.
	* dir-unlink.c (trivfs_S_dir_unlink): Ditto.
	* dir-rmdir.c (trivfs_S_dir_rmdir): Ditto.
	* dir-rename.c (trivfs_S_dir_rename): Ditto.
	* dir-readdir.c (trivfs_S_dir_readdir): Ditto.
	* dir-mkfile.c (trivfs_S_dir_mkfile): Ditto.
	* dir-mkdir.c (trivfs_S_dir_mkdir): Ditto.
	* file-chmod.c (trivfs_S_file_chmod): Ditto.
	* file-chauthor.c (trivfs_S_file_chauthor): Ditto.

Wed Nov  1 15:53:38 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* startup.c (trivfs_startup): Add FLAGS arg, passed to fsys_startup.
	* trivfs.h (trivfs_startup): Add FLAGS arg.
	* fsys-stubs.c (trivfs_S_fsys_startup): Ditto.

Sat Oct  7 05:04:02 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* fsys-stubs.c (trivfs_S_fsys_getpriv): Add poly args.

	* Makefile (libtrivfs.so): Depend on ../libports/libports.so.

Fri Oct  6 17:44:08 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* migsupport.c: Remove leading _ from function names.
	* fsmutations.h: Likewise.
	* trivfs.h (trivfs_{begin,end}_using_{protid,control}): Declare them.

Fri Oct  6 17:28:07 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* dir-link.c (trivfs_S_dir_link): Swap first two arguments.

	* file-get-storage-info.c (trivfs_S_file_get_storage_info): Change
 	type of RUNS to off_t **, and add the BLOCK_SIZE parameter.

Thu Oct  5 00:41:33 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (FSSRCS): Add file-get-storage-info.c.
	* file-get-storage-info.c: New file.

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

	* file-set-size.c (trivfs_S_file_set_size): Renamed from
	file-truncate.c:trivfs_s_file_truncate.
	* io-pathconf.c (trivfs_S_io_pathconf): Renamed from
	file-pathconf.c:trivfs_S_file_pathconf.
	(trivfs_S_io_pathconf): Add reply port to args.
	* Makefile (FSSRCS): Remove file-pathconf.c.
	(IOSRCS): Add io-pathconf.c.
	(FSSRCS): Rename file-truncate.c to file-set-size.c.

Wed Sep  6 10:33:03 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* demuxer.c (trivfs_demuxer): Use ports_notify_server and
	ports_interrupt_server instead of our own versions.
	* Makefile (SRCS): Removed $(NOTIFYSRCS) and $(INTSRCS).
	(NOTIFYSRCS, INTSRCS): Removed.
	(MIGSTUBS): Removed notifyServer.o and interruptServer.o.
	* interrupt.c: File deleted.

Fri Aug 25 12:11:26 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* interrupt.c (trivfs_S_interrupt_operation): Use ports_interrupt_rpc.

Thu Aug 24 11:46:19 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* fsys-forward.c (trivfs_S_fsys_forward): New file.

Wed Aug 23 15:09:31 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (REMHDRS): Removed.
	(FSYSSRCS): Added fsys-forward.c.

Mon Aug 21 15:25:36 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* handle-port.c (trivfs_handle_port): Initialize the hook field.
	* io-stat.c (trivfs_S_io_stat): Pass CRED to trivfs_modify_stat.
	* fsys-goaway.c (trivfs_S_fsys_goaway): Use new args for trivfs_goaway.
	* trivfs.h (struct trivfs_control): Add the hook field.
	(trivfs_goaway): Pass the control structure directly instead of
	random fields from it.
	(trivfs_modify_stat): Pass in the node as well.

Mon Aug 21 10:51:24 1995  Michael I. Bushnell, p/BSG  <mib@duality.gnu.ai.mit.edu>

	* protid-dup.c: Doc fix.

Fri Aug 11 14:01:41 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* open.c (trivfs_open): Actually set the PO field to what we create.
	* Makefile (OTHERSRCS): Add protid-dup.c and open.c.

Tue Aug  8 14:07:04 1995  Miles Bader  <miles@geech.gnu.ai.mit.edu>

	* open.c: New file, containing trivfs_open.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Guts (except for
	protection check) moved into trivfs_open.
	* protid-dup.c: New file, containing trivfs_protid_dup.
	* io-duplicate.c (trivfs_S_io_duplicate): Guts moved into
	trivfs_protid_dup.

	* trivfs.h (trivfs_protid_create_hook, trivfs_peropen_create_hook):
	Change the declarations now that these return an error code.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Allow
 	trivfs_protid_create_hook and trivfs_peropen_create_hook to return
 	an error code, and abort if either does.
	* protid-clean.c (trivfs_clean_protid): Only call
	trivfs_protid_destroy_hook hook on CRED if it was fully initialized.
	* io-duplicate.c (trivfs_S_io_duplicate): Allow
 	trivfs_protid_create_hook to return an error code.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Ditto.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Ditto.

Fri Jul 21 17:01:12 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* fsys-getroot.c (trivfs_S_fsys_getroot): Free initial reference
	created by ports_allocate_port.
	* handle-port.c (trivfs_handle_port): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.

Sun Jul 16 13:00:44 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* trivfs.h: Protect against including twice, and add includes that
	we depend on.

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

	* Makefile: Removed dependencies that are now automatically
 	generated.

Tue Jun 27 10:55:16 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* fsys-goaway.c (trivfs_S_fsys_goaway): Call trivfs_goaway the new
        way.
	* startup.c (trivfs_startup): New parms CONTROL_BUCKET and
	PROTID_BUCKET; pass them to trivfs_handle_port.  Use new ports
	interface.
	* protid-clean.c (trivfs_clean_protid): Use new ports interface.
	Use PREdecrement in reference counting check.
	* nosenders.c (trivfs_do_mach_notify_no_senders): Use new ports
        interface.
	* migsupport.c (_trivfs_begin_using_protid,
	_trivfs_end_using_protid, _trivfs_begin_using_oontrol,
	_trivfs_end_using_control): Use new ports interface.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Use new ports
        interface.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use new ports
        interface.
	* io-duplicate.c (trivfs_S_io_duplicate): Use new ports interface.
	* handle-port.c (trivfs_handle_port): Take new parms; use new
	ports interface; initialize CNTL->protid_bucket.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Use new form of
        ports_allocate_port call.
	* trivfs.h (trivfs_protid_portclasses): Renamed from
	trivfs_protid_porttypes. Change type to `struct port_class *'.
	(trivfs_protid_nportclasses): Renamed from trivfs_protid_nporttypes.
	(trivfs_cntl_portclasses): Renamed from trivfs_cntl_porttypes.  Change
	type to `struct port_class *'.
	(trivfs_cntl_nportclasses): Renamed from trivfs_cntl_nporttypes.
	(trivfs_startup): Pass port classes instead of integer types.  New
	parms CONTROL_BUCKET and  PROTID_BUCKET.
	(trivfs_handle_port): Pass port classes instead of integer types.
	New parms CONTROL_BUCKET and PROTID_BUCKET.
	(trivfs_goaway): Pass port classes instead of integer types.
	(struct trivfs_control): Renamed member `protid_types' to be
	`protid_class' and changed type to be `stroct port_class *'.
	New member `protid_bucket'.

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

	* fsys-stubs.c (trivfs_S_fsys_set_options,
	trivfs_S_fsys_mod_readonly): Change from mod_readonly to set_options.

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

	* io-stat.c (trivfs_S_io_stat): Before calling trivfs_modify_stat,
	set the st_fstype & st_fsid fields to trivfs_fstype & trivfs_fsid.
	But first, if trivfs_fsid is zero, set it to our process id, which
	should be a nice unique value.
	* file-statfs.c (trivfs_S_file_statfs): Ditto about the PID.

	* startup.c (trivfs_startup): New function, which implements a
	common sequence of steps when starting up a new trivfs.
	* trivfs.h: Declare trivfs_startup.
	* Makefile (OTHERSRCS): Add startup.c.

Thu Mar 30 12:27:59 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* trivfs.h (trivfs_check_open_hook): Doc fix.
	(trivfs_complete_open): Delete declaration.
	(struct trivfs_control): Delete members `openshead' and
        `openstail'.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Strip out old
	hack for blocking.
	(struct pending_open): Delete type.
	(trivfs_complete_open): Delete function.

	* trivfs.h (struct trivfs_control): New member `lock'.
	* handle-port.c (trivfs_handle_port): Initialize CNTL->lock.
	* io-duplicate.c (trivfs_S_io_duplicate): Lock
	CRED->po->cntl->lock around relevant code.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* protid-clean.c (trivfs_clean_protid): Likewise.

Tue Jan 17 19:00:28 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io-select.c: Updated for new io_select interface.

Fri Dec  9 01:35:54 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io-write.c: Use mach_msg_type_number_t in place of unsigned int
        and int.
	* io-read.c: Likewise.
	* io-readable.c: Likewise.

Tue Oct 25 10:54:06 1994  Michael I Bushnell  <mib@churchy.gnu.ai.mit.edu>

	* fsys-getroot.c (trivfs_S_fsys_getroot): Don't clear O_NONBLOCK.

Tue Aug 30 13:23:55 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* fsys-syncfs.c: New file.
	* Makefile (FSYSSRCS): Added fsys-syncfs.c.
	* fsys-stubs.c (trivfs_S_fsys_mod_readonly): New function.

	* Makefile (FSSRCS): Remove dir-pathtrans.c; add dir-lookup.c.
	* dir-lookup.c: Renamed from dir-pathtrans.c
	* dir-pathtrans.c (trivfs_S_dir_lookup): Renamed from
	trivfs_S_dir_pathtrans.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Use FS_RETRY_NORMAL
	instead of FS_RETRY_NONE.
	(trivfs_complete_open): Likewise.

	* file-set-trans.c (trivfs_S_file_set_translator): Change to args
	as for new file_set_translator procotol.

Mon Aug 29 12:52:43 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use new
	authentication protocol.

Wed Aug 17 20:11:29 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io-select.c (trivfs_S_io_select): Take poly arg for notify port.

Thu Aug 11 11:58:48 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* io-version.c (trivfs_S_io_server_version): Fix typo in name.

Fri Jul 22 12:41:55 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* fsys-goaway.c: Include fsys_S.h with " not with <>.
	* handle-port.c: Include priv.h with " not with <>.

	* Makefile: Converted to use new scheme.
	* fsmutations.h (SERVERPREFIX): Deleted macro.
	* fsys-getroot.c: Include "fsys_reply_U.h" instead of "fsys_reply.h".

Wed Jul 20 15:59:36 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* file-inv.c: New file.
	* Makefile (FSSRCS): Added file-inv.c.

Tue Jul 19 19:23:33 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-stubs.c (trivfs_S_fsys_startup): Deleted dotdot args.
	* fsys-getroot.c (trivfs_S_fsys_getroot): New arg `dotdot';
	don't do anything with it.

Mon Jul 11 14:49:03 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* trivfs.h (trivfs_set_atime, trivfs_set_mtime): New functions.
	* times.c: New file.
	* Makefile (OTHERSRCS): Added `times.c'.

Thu Jul  7 10:39:04 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* Makefile (DIST_FILES): Add priv.h.

Tue Jul  5 13:24:59 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* Makefile (DIST_FILES): Added fsmutations.h.
	(TAGSHDRS): New variable.

	* fsys-getroot.c: Include "fsys_reply.h".
	(trivfs_S_fsys_getroot, trivfs_complete_open):
	Uncomment code now that we have reply ports.
	(struct pending_open): Delete USERS_PORT, add CRED.
	(trivfs_S_fsys_getroot): When creating PENDO, don't call
	ports_get_right, call ports_port_ref; store CRED in PENDO.
	(trivfs_complete_open): Deal with errors properly.  When sending
	port to user, call ports_get_right.  Always call
	ports_done_with_port when freeing pending open struct.
	* Makefile (MIGSTUBS): Added fsys_replyUser.o.
	(fsys_reply.h fsys_replyUser.c): New rule.
	(fsys-getroot.c): Add dependency on fsys_reply.h.

	* fsmutations.h (REPLY_PORTS): New macro, affecting io and fsys
	interfaces.
	* io-async-icky.c (trivfs_S_io_get_icky_async_id): Added new
	REPLY and REPLYTYPE args.
	* io-async.c (trivfs_S_io_async): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-map.c (trivfs_S_io_map): Likewise.
	* io-modes-get.c (trivfs_S_io_get_openmodes): Likewise.
	* io-modes-off.c (trivfs_S_io_clear_some_openmodes): Likewise.
	* io-modes-on.c (trivfs_S_io_set_some_openmodes): Likewise.
	* io-modes-set.c (trivfs_S_io_set_all_openmodes): Likewise.
	* io-owner-get.c (trivfs_S_io_get_owner): Likewise.
	* io-owner-mod.c (trivfs_S_io_mod_owner): Likewise.
	* io-read.c (trivfs_S_io_read): Likewise.
	* io-readable.c (trivfs_S_io_readable): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* io-seek.c (trivfs_S_io_seek): Likewise.
	* io-select.c (trivfs_S_io_select): Likewise.
	* io-stat.c (trivfs_S_io_stat): Likewise.
	* io-stubs.c (trivfs_S_io_map_cntl): Likewise.
	(trivfs_S_io_get_conch): Likewise.
	(trivfs_S_io_release_conch): Likewise.
	(trivfs_S_io_eofnotify): Likewise.
	(trivfs_S_io_prenotify): Likewise.
	(trivfs_S_io_postnotify): Likewise.
	(trivfs_S_io_readsleep): Likewise.
	(trivfs_S_io_sigio): Likewise.
	(trivfs_S_io_readnotify): Likewise.
	* io-write.c (trivfs_S_io_write): Likewise.
	* io-version.c (trivfs_S_trivfs_io_server_version): Likewise.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* fsys-goaway.c (trivfs_S_fsys_goaway): Likewise.
	* fsys-stubs.c (trivfs_S_fsys_startup): Likewise.
	(trivfs_S_fsys_getpriv): Likewise.
	(trivfs_S_fsys_init): Likewise.
	(trivfs_S_fsys_getfile): Likewise.

Wed Jun 29 13:02:17 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* io-read.c (trivfs_S_io_read): Always return EOPNOTSUPP.
	* io-write.c (trivfs_S_io_write): Likewise.
	* file-truncate.c (trivfs_S_file_truncate): Likewise.
	* io-readable.c (trivfs_S_io_readable): Likewise.
	* io-select.c (trivfs_S_io_select): Likewise.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Use trivfs_allow_open
	instead of trivfs_support_* vars.

	* trivfs.h (trivfs_allow_open): New variable.

	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Delete unused var
	`newcred'.

Mon Jun 27 15:05:06 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-getroot.c: Comment out code for blocking opens; don't
	permit trivfs_check_open_hook to return EWOULDBLOCK.

Thu Jun 23 12:28:49 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-getroot.c (trivfs_S_fsys_getroot): Don't call
	ports_done_with_port for CNTL; the MiG destructor function does
	that for us.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Call trivfs_check_open_hook
	to allow trivfs users to block or restrict opens.
	* trivfs.h (trivfs_check_open_hook, trivfs_complete_open): New
	declarations.
	(struct trivfs_control): New members `openshead' and `openstail'.

Wed Jun 22 14:49:00 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* fsys-getroot.c (trivfs_S_fsys_getroot): Initialize both hook
	members to 0.
	* io-duplicate.c (trivfs_S_io_duplicate): Copy NEWCRED->hook
	from CRED->hook.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.

	* fsys-getroot.c (trivfs_S_fsys_getroot): Don't force read/write
	systems to redefine this function.  If O_foo is set, but
	trivfs_support_foo isn't, then return EACCES.  Call
	io_restrict_auth at the front so we can check open permission
	using the result.  Initialise CRED->po->openmodes.

	* trivfs.h (trivfs_peropen): New member `openmodes'.
	* io-modes-get.c (trivfs_S_io_get_openmodes): Set bits from
	CRED->po->openmodes, but only if we are not a read/write
	server; otherwise the server might be hiding bits elsewhere.

	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Strip out code; always
	return ENOTDIR.

Tue Jun 21 13:21:07 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* file-access.c: New file.
	* dir-chg.c: New file.
	* file-chg.c: New file.
	* Makefile (FSSRCS): Added file-access.c, dir-chg.c, and file-chg.c.

Mon Jun 20 14:42:12 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* dir-readdir.c (trivfs_S_dir_readdir): Declare args in accord
	with fs.defs interface change.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.  Set
	DO_RETRY and RETRY_NAME appropriately.
	* file-get-transcntl.c (trivfs_S_file_get_translator_cntl):
	CNTL_TYPE is a pointer.

Fri Jun 17 11:23:47 1994  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* file-get-transcntl.c (trivfs_S_file_get_translator_cntl): Add
	missing poly arg.

Wed Jun 15 21:27:20 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* dir-pathtrans.c: Include <string.h> for bcopy.
	* fsys-getroot.c: Likewise.
	* io-duplicate.c: Likewise.
	* io-reauthenticate.c: Likewise.
	* io-restrict-auth.c: Likewise.

Wed Jun 15 16:58:02 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* trivfs.h (trivfs_goaway): New args REALNODE, CNTLTYPE,
	PROTIDTYPE.  All callers changed.

	* fsmutations.h (FSYS_DESTRUCTOR, FSYS_INTRAN): New macros.
	* priv.h (trivfs_control_t): New type.
	(_trivfs_begin_using_control, _trivfs_end_using_control): New
	declarations.
	* migsupport.c (_trivfs_begin_using_control,
	_trivfs_end_using_control): New functions.
	* fsys-getroot.c (trivfs_S_fsys_getroot): First arg is now
	`struct trivfs_control *'; don't call ports_check_port_type
	ourselves or ports_done_with_port.
	* fsys-goaway.c (trivfs_S_fsys_goaway): Likewise.
	* fsys-stubs.c (trivfs_S_fsys_startup, trivfs_S_fsys_getpriv,
	trivfs_S_fsys_init, trivfs_S_fsys_getfile): Declare first
	arg as `struct trivfs_control *'.

	* trivfs.h (trivfs_protid_porttype, trivfs_cntl_porttype):
	Deleted vars.
	(trivfs_protid_porttypes, trivfs_cntl_porttypes,
	trivfs_protid_nporttypes, trivfs_cntl_nporttypes): New vars.
	(trivfs_control): New member protidtypes.
	(trivfs_handle_port): New args PROTIDTYPE and CNTLTYPE.
	* migsupport.h (_trivfs_begin_using_protid): Check
	against all the members of trivfs_protid_porttypes.
	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Copy type of new port
	from existing port.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* handle-port.c (trivfs_handle_port): Allocate port of type
	from new arg CNTLTYPE.  Initialize CNTL->protidtypes from new arg
	PROTIDTYPE.
	* fsys-getroot (trivfs_S_fsys_getroot): Allocate port of type
	from CNTL->protidtypes.

	* trivfs.h (struct trivfs_protid) [hook]: New member.
	(trivfs_protid_create_hook, trivfs_peropen_create_hook,
	trivfs_protid_destroy_hook, trivfs_peropen_destroy_hook): New
	hook functions.
	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Call
	trivfs_peropen_create_hook.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* dir-pathtrans.c (trivfs_S_dir_pathtrans): Call
	trivfs_protid_create_hook.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* protid-clean.c (trivfs_clean_protid): Call
	trivfs_protid_destroy_hook and trivfs_peropen_destroy_hook.

	* trivfs.h (struct trivfs_protid) [po]: New member.
	(struct trivfs_protid) [cntl]: Deleted member.
	(struct trivfs_peropen): New type.
	* file-getcontrol.c (trivfs_S_file_getcontrol): Fetch control
	port through peropen structure.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Likewise.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Likewise.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Reference
	peropen, not cntl.
	* io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
	* io-duplicate.c (trivfs_S_io_duplicate): Likewise.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Create new peropen
	and reference it.
	* dir-pathtrans (trivfs_S_dir_pathtrans): Actually create new
	peropen and cred.
	* protid-clean.c (trivfs_clean_protid): Drop reference on peropen,
	deallocating it if necessary.

	* trivfs.h (struct trivfs_protid) [uids, gids, nuids, ngids]: New
	 members.
	* io-reauthenticate.c (trivfs_S_io_reauthenticate): Save received
	ids in newly created protid.
	* io-restrict-auth.c (listmember): New function.
	(trivfs_S_io_restrict_auth): Save uids and gids in newly created
	protid.
	* io-duplicate.c (trivfs_S_io_duplicate): Copy uids and gids.
	* protid-clean.c (trivfs_clean_protid): Free CRED->uids and
	CRED->gids.
	* fsys-getroot.c (trivfs_S_fsys_getroot): Initialize uids
	and gids.
