2008-12-08 Thomas Schwinge * Makefile (HURDLIBS): Add fshelp. Reported by Olaf Buddenhagen . 2007-11-13 Thomas Schwinge * times.c (trivfs_set_atime, trivfs_set_mtime): Adapt to ``struct stat'' changes. 2003-10-11 Marcus Brinkmann * nosenders.c, notify-stubs.c: Remove obsolete files. 2003-02-15 Roland McGrath * Makefile (installhdrs): Add generated headers only ifndef no_deps. 2002-06-13 Roland McGrath * 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 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 * 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 * trivfs.h (trivfs_modify_stat): Use io_statbuf_t instead of struct stat. 2002-05-28 Roland McGrath * 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 * 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 * file-inv.c: Remove this file, function no longer exists. * Makefile (FSSRCS): Remove reference to file-inv.c. 2000-03-17 Thomas Bushnell, BSG * startup.c (trivfs_startup): Don't use MAKE_SEND in Hurd RPC. 2000-03-17 Roland McGrath * io-reauthenticate.c (trivfs_S_io_reauthenticate): Use ports_get_send_right. 1999-11-08 Roland McGrath * io-write.c: Include . * 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 * 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 * Makefile, io-map.c, io-map-segment.c: Reverted changes related to io_map_segment. 1999-09-07 Thomas Bushnell, BSG * 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 * 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 * 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 * io-revoke.c: Add reply, reply_type args. Tue Feb 16 05:47:57 1999 Thomas Bushnell, BSG * io-revoke.c: New file. * Makefile (IOSRCS): Add io-revoke.c. 1999-02-12 Gordon Matzigkeit * open.c (trivfs_open): Add missing `=' from last change. 1999-02-05 Mark Kettenis * open.c (trivfs_open): Correctly initialize NEW->isroot. Sun Jan 31 18:29:22 1999 Thomas Bushnell, BSG * times.c (trivfs_set_atime, trivefs_set_mtime): Take advantage of new semantics for file_utimes. 1998-08-20 Roland McGrath * 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 * dir-lookup.c (trivfs_S_dir_lookup): Fix brainos in last change. Tue Jul 14 16:47:28 1998 Thomas Bushnell, n/BSG * 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 * 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 * cntl-create.c (trivfs_create_control): Put the actual port creation call back in! Fri Feb 14 02:10:50 1997 Miles Bader * 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 * 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 * dir-reparent.c (trivfs_S_dir_reparent): New file. * Makefile (FSSRCS): Add dir-reparent.c. Tue Nov 19 22:36:49 1996 Miles Bader * 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 * 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 * Makefile (HURDLIBS): Add `iohelp'. Thu Nov 14 13:13:10 1996 Thomas Bushnell, n/BSG * 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 Thu Nov 7 17:05:02 1996 Miles Bader * 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 * io-restrict-auth.c (trivfs_S_io_restrict_auth): Rewrite to use idvecs. Wed Nov 6 23:40:50 1996 Thomas Bushnell, n/BSG * 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 * 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 * file-get-fs-options.c : 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 * Makefile (HURDLIBS): Add shouldbeinlibc. Wed Sep 18 12:47:54 1996 Miles Bader * 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 * Makefile (HURDLIBS): New variable. (libtrivfs.so): Delete special depedency. Fri Aug 16 19:24:45 1996 Thomas Bushnell, n/BSG * 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 * io-pathconf.c (trivfs_S_io_pathconf): Implement by calling underlying node. Thu Jul 18 23:14:44 1996 Michael I. Bushnell, p/BSG * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * io-select.c (trivfs_S_io_select): Remove TAG arg. Tue May 7 16:14:10 1996 Miles Bader * 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 * 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 * handle-port.c: Comment out warning addition. Sun Apr 28 15:22:16 1996 Roland McGrath * handle-port.c: Add obsolescence link warning. Thu Apr 11 18:03:31 1996 Michael I. Bushnell, p/BSG * Makefile (MIGSFLAGS): Reference fsmutations.h in $(srcdir). Thu Jan 25 16:19:29 1996 Miles Bader * 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 * 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 * 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 * 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 * 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 * 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 * 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 * Makefile (FSSRCS): Add file-get-storage-info.c. * file-get-storage-info.c: New file. Mon Sep 18 14:29:37 1995 Miles Bader * 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 * 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 * interrupt.c (trivfs_S_interrupt_operation): Use ports_interrupt_rpc. Thu Aug 24 11:46:19 1995 Miles Bader * fsys-forward.c (trivfs_S_fsys_forward): New file. Wed Aug 23 15:09:31 1995 Miles Bader * Makefile (REMHDRS): Removed. (FSYSSRCS): Added fsys-forward.c. Mon Aug 21 15:25:36 1995 Miles Bader * 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 * protid-dup.c: Doc fix. Fri Aug 11 14:01:41 1995 Miles Bader * 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 * 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 * 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 * trivfs.h: Protect against including twice, and add includes that we depend on. Thu Jul 6 15:38:48 1995 Michael I Bushnell * Makefile: Removed dependencies that are now automatically generated. Tue Jun 27 10:55:16 1995 Michael I Bushnell * 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 * 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 * 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 * 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 * io-select.c: Updated for new io_select interface. Fri Dec 9 01:35:54 1994 Roland McGrath * 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 * fsys-getroot.c (trivfs_S_fsys_getroot): Don't clear O_NONBLOCK. Tue Aug 30 13:23:55 1994 Michael I Bushnell * 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 * io-reauthenticate.c (trivfs_S_io_reauthenticate): Use new authentication protocol. Wed Aug 17 20:11:29 1994 Roland McGrath * io-select.c (trivfs_S_io_select): Take poly arg for notify port. Thu Aug 11 11:58:48 1994 Michael I Bushnell * io-version.c (trivfs_S_io_server_version): Fix typo in name. Fri Jul 22 12:41:55 1994 Michael I Bushnell * 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 * 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 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.