summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog895
-rw-r--r--auth/ChangeLog129
-rw-r--r--benchmarks/ChangeLog9
-rw-r--r--boot/ChangeLog581
-rw-r--r--bsdfsck/ChangeLog98
-rw-r--r--config/ChangeLog70
-rw-r--r--daemons/ChangeLog58
-rw-r--r--defpager/ChangeLog5
-rw-r--r--devio/ChangeLog253
-rw-r--r--doc/ChangeLog4
-rw-r--r--exec/ChangeLog643
-rw-r--r--ext2fs/ChangeLog547
-rw-r--r--fstests/ChangeLog47
-rw-r--r--hurd/ChangeLog844
-rw-r--r--include/ChangeLog4
-rw-r--r--init/ChangeLog491
-rw-r--r--libdirmgt/ChangeLog5
-rw-r--r--libdiskfs/ChangeLog2448
-rw-r--r--libfshelp/ChangeLog430
-rw-r--r--libihash/ChangeLog21
-rw-r--r--libiohelp/ChangeLog37
-rw-r--r--libmom/ChangeLog31
-rw-r--r--libnetfs/ChangeLog234
-rw-r--r--libpager/ChangeLog374
-rw-r--r--libpipe/ChangeLog137
-rw-r--r--libports/ChangeLog430
-rw-r--r--libps/ChangeLog747
-rw-r--r--libshouldbeinlibc/ChangeLog589
-rw-r--r--libstore/ChangeLog147
-rw-r--r--libthreads/ChangeLog264
-rw-r--r--libtrivfs/ChangeLog659
-rw-r--r--login/ChangeLog15
-rw-r--r--mkbootfs/ChangeLog22
-rw-r--r--nfs/ChangeLog160
-rw-r--r--pfinet/ChangeLog232
-rw-r--r--pflocal/ChangeLog244
-rw-r--r--release/ChangeLog75
-rw-r--r--sutils/ChangeLog55
-rw-r--r--term/ChangeLog394
-rw-r--r--trans/ChangeLog324
-rw-r--r--ufs-fsck/ChangeLog245
-rw-r--r--ufs-utils/ChangeLog104
-rw-r--r--ufs/ChangeLog1586
-rw-r--r--utils/ChangeLog1057
44 files changed, 15744 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 00000000..d1ed5d15
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,895 @@
+Wed Jul 17 14:28:29 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf: gs/install-hdrs/install-headers/g
+ * Makefile: Likewise.
+
+Tue Jul 16 11:35:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf (CFLAGS): Define EWOULDBLOCK here to work around new
+ libc bug.
+
+Sat Jul 13 20:34:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (other-subdirs): Add `include'.
+ * Makeconf (install-hdrs) [library]: Depend on installed copies of
+ headers.
+ (install-hdrs): Provide default target.
+ * Makefile (%-install-hdrs, install-hdrs): New targets.
+ * INSTALL: Discourage cross-building; include instructions for
+ libc/hurd co-installation.
+ * README: Discourage cross-building.
+
+ * Makefile (install): Install $(other-subdirs) too.
+
+Fri Jul 12 14:18:37 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf (install) [doinst==one || doinst==many]: Include
+ file-specific options in call to INSTALL_PROGRAM.
+
+Mon Jul 8 00:54:56 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Removed *.h.
+
+ * Makefile (DIST_FILES): Removed INSTALL-binary; now in
+ ./release/.
+ (other-subdirs): Add `release'.
+ * release: New directory.
+
+ * Makeconf: disable excessive cleverness for now...
+
+Sun Jul 7 22:41:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (lib-subdirs): Move libthreads up before libpager.
+ * Makeconf (libs) [library]: Depend on add-to-librecord instead of
+ $(targets).
+ (install) [library]: Add dependency on add-to-librecord.
+ (add-to-librecord) [library]: Depend on $(targets).
+ (librecord) [MAKELEVEL == 0]: Define and export.
+ (include librecord): New inclusion.
+ ($(librecord)): New target.
+ (add-to-librecord): New target.
+
+Thu Jun 27 09:51:44 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * config.make.in (installationdirlist): New variable.
+ * Makeconf (MKINSTALLDIRS): New variable.
+ (install) [all versions]: Add dependency on the directory being
+ installed into.
+ ($(installationdirlist)): New dependency.
+
+ * Makefile (linked-files, lf-inst): New variables.
+ (cp-linked-files): Use implicit rule.
+ ($(lfinst)): New implicit rule.
+ * mkinstalldirs: New symlink to /gd/gnu/lib program.
+
+ * Makefile (distclean): Add config.cache.
+
+ * Makefile (lndist-cthreads-h): Delet target.
+ (lndist): Remove `lndist-cthreads-h'.
+
+Fri Jun 21 12:28:26 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makeconf ($(target)): Get rid of -defsym hack for ___brk_addr
+ (there's a hack in libc now).
+
+Thu Jun 20 14:33:01 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (prog-subdirs): Add `daemons'.
+ * daemons: New directory.
+ * config.make.in (libexecdir): New variable.
+
+Mon Jun 17 11:24:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf ($(target)): Add bletcherous hack to deal with undefined
+ (and unused) libc symbol.
+
+ * Makefile (prog-subdirs): init.trim -> init.
+ (other-subdirs): Delete init; add config.
+ * init.trim: Renamed to be init.
+ * init: Sluffed into olds.
+
+ * config: New directory.
+
+Mon Jun 17 10:30:54 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makeconf (CPPFLAGS): Add -I$(top_srcdir)/include.
+ (INSTALLED_LOCAL_HEADERS): Split into two cases based on
+ $(installhdrsubdir).
+ ($(INSTALLED_LOCAL_HEADERS)) [$(installhdrsubdir) == .]: Linked to
+ $(top_srcdir)/include. Prefix ../ to link contents.
+ * include: New directory.
+
+ * Makefile (prog-subdirs): Rename fsck to ufs-fsck. Add sutils.
+ * ufs-fsck: Renamed from fsck.
+ * sutils: New directory.
+
+Thu Jun 13 17:14:44 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * config.make.in (localstatedir, sharedstatedir): Add variables.
+
+Fri May 24 15:16:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (lib-subdirs): Add libmom.
+ * libmom: New directory.
+
+Sat May 11 17:00:19 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * Makeconf: Add .PHONY spec for phony targets.
+
+Thu May 9 12:19:08 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Add *.h.
+
+ * Makeconf (INSTALLED_LOCAL_HEADERS): New variable that $(libs)
+ depends on. This arranges to make sure that headers exported by
+ this library always get installed eventually into the source
+ directory as symlinks.
+
+Mon May 6 16:25:46 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * libiohelp: Renamed from `libioserver'.
+ * Makefile (lib-subdirs): libioserver -> libiohelp.
+
+Tue Apr 30 22:06:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Add build.mkcf.in.
+ * build.mkcf.in: New file.
+ * configure.in (makefiles): Add Makeconf:build.mkcf.in.
+
+ * Makefile (srcdir): Set to . if undefined. Find Makeconf in
+ $(srcdir).
+
+Tue Apr 30 09:27:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf ($(target)): Don't depend on $(OBJS) or $(OTHERLIBS) in
+ the main build rule. Add new rule specifying such a dependency
+ only when doinst is one.
+
+Sun Apr 28 19:02:56 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * Makeconf (make-deps): New canned sequence. Remove gcc-lib hdrs from
+ deps. Use atomic mv for output.
+ (%.d: %.c, %.d: %.S): Use $(make-deps).
+
+Fri Apr 26 09:25:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf (OBJS): Provide default definition.
+ (_objs): Delete variable; replace references with $(OBJS).
+
+ * Makefile (cp-linked-files): New target.
+ (lndist): Add `cp-linked-files'.
+
+Thu Apr 25 03:13:51 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * Makeconf: Use -include for generated dep files.
+
+Thu Apr 11 16:18:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * INSTALL-binary: Renamed from README-binary.
+
+Thu Apr 11 16:13:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Add SETUP.
+
+Thu Apr 11 16:06:21 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * README: Rewritten for a new purpose.
+ * INSTALL-cross: Renamed from INSTALL.
+ * INSTALL: New file.
+
+Mon Mar 25 03:09:09 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * configure.in: After CC tool check, invoke AC_PROG_CC to set default
+ CFLAGS and test for GCC. Barf if not GCC.
+
+Thu Mar 21 11:41:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf (CFLAGS): Always turn on -g and -O3.
+
+Wed Mar 20 15:30:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf (vpath %.defs): Make that $(includedir)/mach and
+ $(includedir)/device.
+ (CPPFLAGS): Add -D_GNU_SOURCE.
+
+Wed Mar 20 15:29:21 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * Makeconf (vpath %.defs): Use $(includedir) to locate mach files.
+
+Tue Feb 27 14:48:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (prog-subdirs): Change `newfs' to `ufs-utils'.
+
+ * Makeconf ($(target): %): Add $(target-suffix) to destination name.
+
+Thu Nov 30 10:57:21 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (prog-subdirs): Added pfinet.
+
+Tue Nov 21 14:34:04 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makeconf (top_srcdirinc, srcdirinc): New variables.
+ (CPPFLAGS): Use new vars $(top_srcdirinc) and $(srcdirinc) to avoid
+ ugly duplication of `.' and `..' in compile lines when possible.
+
+Tue Oct 24 17:24:36 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Replace hurd.boot.in with hurd.boot
+ (hurd.boot): Target removed.
+ (clean-misc): Don't remove hurd.boot.
+ (all): Don't depend on it.
+ * hurd.boot: Renamed back from hurd.boot.in.
+ Name ufs and ld.so as they will be found in an installed Hurd
+ filesystem.
+
+Tue Oct 10 23:31:26 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (rpath): New variable.
+ ($(target)): Use it in link command.
+ ($(libname).so): Likewise.
+ Use $^ instead of $+.
+
+Sat Oct 7 05:02:17 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf ($(libname).so): Pass $(LDFLAGS) and $($@-LDFLAGS).
+
+Wed Oct 4 16:21:33 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (%_pic.o: %.c): Use $(COMPILE.c) instead of its
+ contents. Pass -DPIC.
+ (%_pic.o: %.S): New rule.
+
+Sat Sep 23 02:45:18 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (top_srcdir): Define properly in parent directory.
+
+ * Makefile (other-subdirs): Remove lib.
+
+Fri Sep 22 14:26:12 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * build.mk.in (VPATH): New variable.
+
+Thu Sep 21 19:07:44 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (hurd.boot): New target.
+ (all): Depend on hurd.boot
+ (DIST_FILES): Add build.mk.in and hurd.boot.in.
+ (clean-misc, distclean): New targets.
+ (clean): Depend on clean-misc.
+
+ * hurd.boot.in: Renamed from hurd.boot; use @exec_prefix@ instead
+ of hardcoded dir. Added some comments.
+ * build.mk.in: New file.
+ * configure.in: If not in $srcdir, produce */Makefile from
+ build.mk.in.
+
+Thu Sep 21 14:28:26 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (prog-subdirs): Removed `pfinet'.
+
+ * term, newterm: Renamed `term' to be `term.old'; renamed
+ `newterm' to be `term', thus installing the new version.
+
+Wed Sep 20 20:10:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hurd.boot: Run ld.so with arg of /hurd/exec, instead of running
+ exec/exec. Now exec can be dynamically linked.
+
+Tue Sep 19 13:40:47 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (LDFLAGS): Variable removed.
+
+Tue Sep 19 02:33:13 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (libthreads-libsubst): Variable removed.
+
+Sat Sep 16 14:17:08 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * configure.in: New file.
+ * config.make.in: New file.
+ * Maketools: File removed.
+ * Makefile (DIST_FILES): Remove Maketools.
+ Add config.make.in, configure.in, configure.
+ * Makeconf: Include $(..)config.make for configure-generated
+ parameters.
+ No longer include Maketools.
+ (prefix, exec_prefix, srcdir, hurddir, bindir, sbindir, libdir,
+ infodir, includedir): Variables removed.
+ (..): New variable.
+ (srcdir, top_srcdir): Set if not already set.
+ (CPPFLAGS): Append -I's for . and .. and $(srcdir) and $(top_srcdir).
+ (CFLAGS): Remove -g.
+ Change miscellaneous uses of $(srcdir) to $(top_srcdir).
+ (vpath %.defs): Remove $(crossheaders) dirs from path.
+
+Sat Sep 16 13:26:59 1995 Miles Bader <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (sbindir): New variable.
+ (installationdir): Don't set if already set.
+
+Mon Sep 11 12:06:44 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Maketools (CCVERSION): Changed to 2.7.1.
+ (CCVERSION-duality.gnu.ai.mit.edu): Removed.
+
+Fri Sep 1 13:02:12 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (libsubst, libsubst-override, _libsubst): New vars.
+ ($(target): %): Replace each library reference with $(_libsubst).
+ (libthreads-libsubst): New variable.
+ [$(makemode)==library] (targets): Default to both .a and .so libraries.
+ [$(makemode)==library] (all, install): Make and install $(targets)
+ instead of the explicit default list of them.
+ [$(makemode)==library] (libs): New target.
+ (../%.a ../%.so): Make the `libs' target instead of an explicit
+ list of libraries.
+
+Mon Aug 28 17:22:24 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hurd.boot: Use ${boot-args} preset variable.
+ Use $(...) for action directives.
+
+Mon Aug 28 15:52:16 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (inclusion of .d files based on OBJS): Only deal with
+ .o files in $(OBJS).
+
+Mon Aug 28 09:59:04 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (TAGS): Automagically find all the files to scan from
+ the dependency information.
+ (DEP_SRCS): Sort in reverse order so that local files come first.
+
+Fri Aug 25 08:02:04 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makeconf ($(libname).so): Use the linker -soname option to
+ specify what library name should be recorded by users.
+ (__libext, __libext-static, _libext): New variables.
+ ($(target): %): Link against the absolute library with the
+ appropiate extension do determine whether shared or not, instead
+ of using -L...-l syntax.
+
+Thu Aug 24 10:09:59 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (HURDLIBS-files, HURDLIBS-libs): Removed.
+ ($(targets): %): The same rule now used for both many and one
+ cases. Get the things to be linked against entirely from the
+ dependency list, and munge it to convert library pathnames to
+ -L...-l pairs.
+ Stop using *HURDLIBS as the mechanism for passing in libraries to
+ be linked against. Now you should just put the pathname in the
+ dependency list of the target, along with the object files, etc.
+ [$(doinst)==many] (target): Set this from $(targets).
+ ($(sort $(HURDLIBS-files))): Rule deleted.
+ (../%.a ../%.so): New rule, replacing the previous one.
+
+Wed Aug 23 17:55:04 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Add hurd.boot.
+ * hurd.boot: New file.
+
+Tue Aug 22 17:04:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makeconf ($(addprefix $(installationdir)/,$(targets)),): Use
+ INSTALL_PROGRAM, not INSTALL_BIN.
+ * Maketools (INSTALL_BIN): Changed to INSTALL_PROGRAM.
+
+ * Makeconf (HURDLIBS-libs): Re-enable the -L... version, but using
+ -Wl,-L... instead to avoid gcc hosage.
+ (HURDLIBS-files): Use both the target specific and general values
+ of HURDLIBS.
+ Get rid of the merging of all target-specific HURDLIBS into the
+ general HURDLIBS, as the former are use properly now.
+ [$(doinst)==one] ($(target)): Don't explicitly link with $(libc).
+ [$(doinst)==many] ($(targets): %:): Depend on the .o file of the
+ same name, and on all the hurd library files, and on all
+ appropriate other libraries. Use $^ instead of $+ as we now get
+ all the libraries from the various HURDLIBS instead of from the
+ dependencies list, and this allows us to put %.o in our
+ dependencies without worrying about duplicating what the user has
+ done. Don't explicitly link with $(libc).
+
+ * Makeconf [$(makemode)==library]: Use $(installhdrsubdir) to
+ determine where headers in $(installhdrs) should be installed,
+ instead of a constant `hurd'.
+
+Fri Aug 18 21:53:17 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * Makeconf [$(doinst)==many]: Depend on what's in plain OTHERLIBS
+ as well as the target specific $@-OTHERLIBS.
+
+Mon Aug 7 16:29:53 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * Makefile (prog-subdirs): Remove pipes.
+
+Fri Aug 4 14:49:25 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * README-binary: Say to run /hurd/pflocal instead of /hurd/pipes.
+
+Wed Jul 26 14:30:17 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (lib-subdirs): Added libpipe.
+ (prog-subdirs): Added pflocal.
+ * libpipe: New directory.
+
+Sun Jul 23 15:57:50 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Removed `missing'.
+ (dist): Include date in snapshot name.
+
+Sat Jul 22 14:19:36 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (%-lndist, %-clean, %-TAGS): Set no_deps in recursive
+ make.
+ * Makeconf: Don't include dependency files if no_deps is set.
+
+Tue Jul 18 20:09:35 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makeconf (%.d: %.c): Include the _pic.o files if we are making a
+ library.
+
+Wed Jul 12 11:41:19 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (lib-subdirs): Removed `libnetserv'.
+ * libnetserv: Move to old.
+ * pfinet: Move to old; start new directory.
+
+Fri Jul 7 17:34:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf [$(doinst)==many] ($(targets) installation rule): Fix typo.
+
+Fri Jul 7 00:29:12 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (install) [doinst == one || doinst == many]: Don't
+ install files if they already exist and are up to date.
+
+Thu Jul 6 14:45:30 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Maketools (OBJCOPY): New var.
+
+ * Makeconf (HURDLIBS-libs): Comment out path-search rule here; I
+ don't yet trust -L to work right; particularly inside linker
+ parens.
+
+ * Makeconf (%.d:%.c %.d:%.S): Repair sed line to include more
+ context.
+
+ * Makeconf (Building targets) [doinst == many]: Don't try and
+ build $(special-targets).
+
+ * Makeconf: Delete now-unneeeded explicit dependencies.
+
+ * Makeconf (clean): Add dependency files to be removed.
+
+ * cthreads.h: New link to libthreads/cthreads.h to make sure we
+ get the local copy instead of the one in the include dir.
+ * Makefile (lndist): Add new dependency.
+ (lndist-cthreads-h): Rule to create the cthreads.h link.
+
+ * Makeconf ($(target) [doinst == one]): Don't explicitly depend on
+ libc. Too hairy for now.
+
+ * Makeconf: Added many new rules for automatic dependency
+ generation.
+
+ * Makeconf (install) [makemode == library]: Install libraries and
+ headers as separate targets.
+
+Wed Jul 5 17:41:33 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf: Make things work nicer for $(doinst)==many by allowing
+ per-target HURDLIBS and LDFLAGS values.
+
+ * Makefile (prog-subdirs): Removed `pflocal'.
+
+Thu Jun 29 15:14:25 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (cleantarg) [makemode == library]: Add $(libname).so.
+ (`Building Hurd libraries'): Make simpler rule that doesn't need
+ allibs.
+ (alllibs): Delete variable.
+ (all) [makemode == library]: Add $(libname).so.
+ (install) [makemode == library]: Install $(libname.so) too.
+ ($(libname).so) [makemode == library]: New rule to build shared
+ library.
+ (%_pic.o): New rule to build pic object files.
+
+Wed Jun 28 15:06:25 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (HURDLIBS-libs): Restore variable definition.
+ ($(target)) [doinst == one]: Use HURDLIBS-libs instead of
+ HURDLIBS-files.
+ (HURDLIBS-files): Compute names automatically. Dike out
+ per-library variables up above.
+
+ * Makefile (prog-subdirs): Removed dev.trim.
+
+Thu Jun 22 11:47:05 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (libihash): New variable.
+ (alllibs): Add libihash.
+
+Mon Jun 19 21:34:14 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (CFLAGS): Omit -Wno-parentheses.
+
+Tue Jun 6 13:18:14 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (lib-subdirs): Added libihash.
+ * libihash: New directory.
+
+Thu May 18 03:34:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (LDFLAGS): Append -static.
+
+Fri May 12 18:39:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (prog-subdirs): Removed mkbootfs.
+
+Fri May 5 09:46:01 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makeconf: Make MIGCOMUFLAGS & <target>-MIGCOMUFLAGS actually work.
+
+Fri Apr 21 11:44:05 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Maketools (INSTALL_BIN): Reverse Miles's last change.
+
+Wed Apr 12 11:12:51 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (install [$(makemode) == library]): Use `$(RANLIB)',
+ not `ranlib'.
+
+Tue Apr 11 10:51:22 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Add README-binary.
+ * README: Small doc fix.
+ * INSTALL: Many changes.
+ * README-binary: New file.
+
+ * Makeconf (prefix): Change to /home/gd4/hurdinst.
+
+ * Makefile (all, install): Do lib-subdirs too.
+
+ * Makefile (prog-subdirs): Added devio, newfs, ext2fs, benchmarks,
+ pfinet, tmpfs, defpager, login, and nfs.
+ (other-subdirs): Added lib.
+ (lib-subdirs): Added libps, libnetserv, libdirmgt, and libnetfs.
+ (subdirs-nodist): Remove libnetserv.
+
+ * devio, lib, libps, ext2fs: New directories (actually created
+ several weeks before this log entry).
+
+Mon Apr 10 14:38:26 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Maketools (INSTALL_BIN): Use /gd4/hurd-cross/install-stripped to
+ install binaries stripped.
+
+ * Makeconf (prefix, exec_prefix): Point at the currently correct place.
+
+Fri Apr 7 18:14:01 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * ext2fs: Delete directory and its contents.
+ * Makefile (subdirs-nodist, other-subdirs): Delete `ext2fs'.
+
+Wed Apr 5 12:59:10 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (clean): Only clean in working-prog-subdirs.
+
+ * Makeconf (hurdinst, hurdroot): Deleted vars. Replaced usages
+ with $(prefix) and derivatives.
+ (hurdroot-douglas.gnu.ai.mit.edu, hurdroot-ernst.gnu.ai.mit.edu,
+ hostname, hurdrootdev): Deleted vars.
+ (hurdsource): Replaced with `srcdir'.
+ (startup, libc): Deleted vars; now in Maketools.
+ (prefix, exec_prefix): New vars.
+ (hurddir, bindir, libdir, infodir, includedir): New vars.
+ ($(hurdroot), $(hurdroot)/mounted): Deleted rules.
+ (vpath %.defs): Look in $(crossheaders), not installation dir.
+ * Maketools (crossdir, startup, libc, crossheaders): New vars.
+ (MIGCOM): Use $(crossdir) instead of literal string.
+
+Fri Mar 31 23:45:11 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf [makemode=library] (install): Only do $(installhdrs) if
+ defined.
+ * Makeconf [makemode=library] (install): Use $(INSTALL_DATA).
+ * Maketools (INSTALL, INSTALL_DATA, INSTALL_BIN): Define normally
+ using `install'.
+
+Mon Mar 20 14:02:08 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makeconf (libps): New variable.
+ (alllibs): Add libps.
+
+ * ps, libps: New directories.
+
+ * Makeconf: Doc fix.
+
+ * Maketools (CC): Specify `$(CCTARGET)-gcc' instead of just `gcc'.
+
+Thu Feb 16 00:43:43 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (CPPFLAGS, CFLAGS): Set with += so Makefiles can add things.
+
+ * Maketools (hostname): New variable, so CCVERSION actually works.
+
+Wed Feb 15 22:40:25 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Maketools (CCVERSION-duality.gnu.ai.mit.edu): New variable.
+
+Sat Feb 11 03:59:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Maketools (INSTALL_BIN): Use objcopy.
+
+Wed Dec 14 07:31:46 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (libnetserv): New variable.
+ (alllibs): Added `libnetserv'.
+
+Thu Nov 24 07:36:57 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Remove gcc-specs.
+
+Tue Nov 22 22:29:41 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf ($(target)): Use normal linking with -Wl,-( $+ -Wl,-).
+
+Wed Nov 16 14:52:20 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Maketools (MIG, MIGCOM): Never define using rsh; use
+ /usr/local/i386-gnu/....
+
+Tue Nov 8 14:27:58 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makeconf (link-objects): Mention libgcc.a explicitly here.
+ * Maketools (CCVERSION): Upgrade default to version 2.6.2.
+
+Thu Nov 3 17:17:15 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Renamed `fsck' to `bsdfsck'; renamed `newfsck' to `fsck'.
+ * Makefile (prog-subdirs): Added bsdfsck.
+
+Tue Nov 1 13:15:28 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (hurdroot): Don't set if already defined.
+
+Fri Oct 14 17:43:46 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * newfsck: New directory.
+
+Fri Sep 23 15:57:45 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (working-prog-subdirs): New variable, omits dirs
+ containing a file BROKEN.
+ (all, install): Use that instead of $(prog-subdirs).
+
+Fri Sep 16 10:16:19 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (libc): Now that libc.a is a linker script, do the
+ Right Thing here.
+ ($(target)): Here too.
+
+Thu Sep 8 12:20:05 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * Makefile (prog-subdirs): Added `fsck'.
+
+ * Makefile (DIST_FILES): Added `INSTALL'.
+ * INSTALL: New file.
+
+Tue Aug 30 11:29:50 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (other-subdirs): Add libnetserv.
+ (lib-subdirs): Remove libnetserv.
+
+Tue Aug 23 09:35:44 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makeconf (link-objects): Don't use -v anymore.
+
+Fri Aug 19 01:36:11 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (link-objects): Don't put $(OBJS) inside -( ... -).
+
+Tue Aug 16 14:21:46 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makeconf (link-objects): Don't use $^; it omits duplicates.
+
+Tue Aug 16 00:47:08 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (link-objects): Define with hair to use -( ... -).
+
+Mon Aug 15 21:24:42 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * gcc-specs: Updated; now expects gcc configured for
+ {i386,mips}-gnu target and libc installed in
+ /usr/local/{i386,mips}-gnu/{lib,include} or wherever configured.
+ (cpp): Grok only -posix.
+ (lib): Use -( ... -) hack.
+ (startfile): Use normal defn.
+ (predefines): Remove `hurd'; `gnu' is enough.
+
+ * Makeconf (link-objects): New variable.
+ ($(target)): Use it in place of other objects variables.
+ Depend on $(libc).
+
+ * Maketools (BUILD_CC): Set this instead of HOST_CC.
+
+Wed Aug 10 13:59:40 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * netinet: New directory.
+
+Wed Aug 10 13:41:54 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Maketools (LD): Find ld in $(tooldir) instead of $(ccdir).
+
+Mon Aug 8 15:37:29 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * libnetserv: New directory.
+ * Makefile (lib-subdirs): Added `libnetserv'.
+
+ * Makeconf (distfiles): Don't set with :=.
+ * Makefile (dist): Fix typo.
+
+Fri Aug 5 15:23:49 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (machdefs, devicedefs): Deleted vars.
+ (vpath %.defs): Added $(includedir)/device.
+
+ * Makeconf (install) [doinst == many]: Repair shell syntax.
+
+ * sh.trim, ps, su: Deleted directories.
+
+Mon Aug 1 19:41:06 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Maketools (CC): Add -pipe.
+
+Sun Jul 31 21:12:40 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Maketools (tooldir): Use /usr/local/i386-gnu/bin.
+ (CCVERSION): Use 2.6.0.
+ (INSTALL_BIN): Use objcopy -S.
+
+Sat Jul 23 01:35:03 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf: Removed all the hairy mig rules.
+ Replaced with two pattern rules and a vpath %.defs directive.
+ Rationalized use of flag variables; add dash after interface name
+ in computed flag variable names.
+
+ * gcc-specs (predefines): Remove -Asystem(hurd); `gnu' is enough.
+
+ * Makeconf ($(target)): Pass $(LDFLAGS) like a sane person.
+
+Fri Jul 22 19:42:53 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makeconf (HURDLIBS-files): New variable.
+ ($(target)): Use that instead of $($(HURDLIBS)). (mib braino.)
+ (distfiles): Use $(DIST_FILES) instead of just DIST_FILES.
+ (TAGS): Use a substitution reference instead of several function
+ invocations.
+
+Fri Jul 22 10:18:33 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (other-subdirs): Removed `i386'.
+ * i386: Deleted directory.
+ * machine: Deleted symlink.
+
+ * Makeconf (CFLAGS): Use += instead of :=.
+ (TAGS): New var OTHERTAGS for source not in the usual places.
+
+Thu Jul 21 15:09:34 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makeconf (CPPFLAGS): Remove -I. and add -I$(hurdsource) in
+ accord with reorganization.
+ (libthreads,libports,libioserver,libpager,libfshelp,libdiskfs,
+ libtrivfs): Changed to find libraries in local (uninstalled)
+ locations.
+ ($(hurdsource)/lib%/lib%.a): Define this instead of bogus rules for
+ each installed library and header file separately.
+ (%_S.h, %Server.c): New implicit rules for Hurd and Mach
+ interfaces; associated variables.
+ (makemode): New variable parent should set.
+ (doinst, installationdir): New vars.
+ (install, $(target), $(libname).a): New targets.
+ (TAGS): Rewritten with new variable names.
+
+ * Makefile (prog-subdirs): Removed sh.trim, ps, and su. Added
+ utils. Removed ifsock and symlink. Added trans.
+
+Wed Jul 20 16:27:50 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Maketools (MIGHOSTCCVERSION, MIGCCTYPE, MIGHOSTCC): Deleted
+ variables.
+
+Tue Jul 19 12:25:06 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (other-subdirs): Added ext2fs.
+ (subdirs-nodist): New variable.
+ (dist): Don't include things in subdirs-nodist.
+
+ * gcc-specs (cpp): Use -idirafter instead of -I in searching for
+ our substitute /usr/include.
+ (lib): Don't look for libmalloc.
+
+ * Maketools (CCTARGET): Changed to be i386-gnu.
+ (CPP): Use $(CC) instead of calling CPP directly.
+ * Makeconf (CPPFLAGS): Deleted -nostdinc and -I flags.
+ (link): Deleted macro.
+ (ldflags, gccheaders, libgcc): Deleted variables.
+
+ * Makeconf (malloc): Deleted variable.
+ (link): Deleted $(malloc) and `-u _malloc'.
+
+Tue Jul 12 15:23:43 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (other-subdirs): Moved dev here from $(prog-subdirs).
+ (prog-subdirs): Added dev.trim.
+
+Tue Jul 5 14:07:02 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Snapshot published.
+
+ * Makefile (prog-subdirs): Added dev, su, symlink.
+ (DIST_FILES): Added tasks and ChangeLog.
+
+ * Makeconf (TAGS): New target.
+ * Makefile (%-TAGS): New target.
+ (TAGS): New target.
+
+ (other-subdirs): Moved tmpfs here from $(prog-subdirs).
+
+Mon Jun 20 15:03:14 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Maketools (INSTALL_BIN): New macro.
+
+Sat Jun 18 12:34:04 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * Maketools (MIGCOM): Fix mib's losing command to propagate umask
+ through rsh to the remote migcom run.
+
+Wed May 25 12:55:35 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makeconf (libtrivfs): New variable.
+ ($(libtrivfs), $(includedir/hurd/trivfs.h)): New targets.
+
+Tue May 24 16:15:30 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Maketools (MIGHOSTCC, CC): Don't use -pipe any more.
+
+Wed May 18 13:02:44 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * tasks: New file.
+
+Tue May 17 19:51:15 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Snapshot published.
+
+ * gcc-specs: New file.
+ * Makefile (DIST_FILES): Added gcc-specs.
+
+Fri May 6 13:24:42 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Maketools (MIGHOSTCCVERSION, MIGHOSTCCTYPE, MIGHOSTCC):
+ New variables.
+ (mighost): Fully canonicalize name.
+
+Thu May 5 19:34:57 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makeconf (malloc): Changed to point to libmalloc.a; installed
+ there by libthreads/Makefile.
+
+Thu May 5 07:10:49 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makeconf (malloc): Pass -u _malloc and reference $(libthreads).
+
+ * Makeconf (headers): Variable renamed to includedir; all uses changed.
+ (CPPFLAGS): Add -I. before other -Is.
+
+Wed May 4 07:07:16 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Maketools (machine): Define variable.
+
+Wed Apr 27 01:54:34 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile (LIB_SUBDIRS, PROG_SUBDIRS, OTHER_SUBDIRS, SUBDIRS):
+ Renamed to less annoying names, not in ALL GRATUITOUS CAPS.
+ (lib-subdirs): Fixed name of libthreads.
diff --git a/auth/ChangeLog b/auth/ChangeLog
new file mode 100644
index 00000000..1398cca2
--- /dev/null
+++ b/auth/ChangeLog
@@ -0,0 +1,129 @@
+Sat Jul 6 23:16:42 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * auth.c (AUTH_VERSION): New macro.
+ (argp_program_version): New variable.
+ (auth_version): Variable removed.
+ (main): Call argp_parse to get defaults.
+ Use AUTH_VERSION instead of auth_version.
+ <argp.h>: New include.
+ <idvec.h>: Changed from <hurd/idvec.h>.
+
+Wed Jun 26 14:22:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * auth.c (S_auth_makeauth): Don't special-case the 0 explicit ids
+ case (it used to merge in all the ids from passed in auth-handles
+ in that case).
+
+Mon May 6 14:22:13 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * auth.c (auth_version): Upgrade to 0.0.
+
+Sat May 4 22:40:42 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * auth.c (S_auth_user_authenticate, S_auth_server_authenticate):
+ Use ports_interrupt_self_on_port_death instead of
+ cancel_on_dead_name. Hurd_condition_wait returns a boolean, not
+ an error_t, so supply EINTR ourselves.
+ (cancel_on_dead_name): Function removed.
+
+Fri May 3 17:07:45 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * auth.c (S_auth_server_authenticate, S_auth_user_authenticate):
+ Remove IGNORED arg.
+
+Tue Apr 30 21:16:07 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * auth.c (S_auth_makeauth): Increment NAUTHS for first elt.
+ (main): Initialize the ihash tables, dammit.
+
+Thu Apr 25 02:57:53 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * auth.c: Rewritten.
+ * authmutations.h: New file.
+ * Makefile (LCLHDRS): Add it, remove auth_mig.h.
+ (OBJS): Remove auth_replyUser.o, notifyServer.o.
+ (auth): Depend on libports, libihash, libthreads, libshouldbeinlibc.
+
+ * auth_mig.h: Rewritten.
+ * Makefile (OBJS): Add auth_replyUser.o.
+
+Thu Jul 6 15:29:43 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Fri Nov 18 07:34:11 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Add notifyServer.o.
+ (auth.o): Depend on notify_S.h.
+ * auth.c: Include "notify_S.h". Remove _S_ from all
+ do_mach_notify_* server routines.
+
+Wed Sep 7 13:14:41 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * auth.c (isuid): Look for TEST in the uid arrays, not the gid arrays.
+
+Tue Sep 6 14:33:02 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * auth.c (auth_nosenders): Remove auth struct from allapts
+ list correctly.
+
+Thu Aug 25 13:24:24 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * auth.c (struct saved_user): Use second rendezvous port in place
+ of rend_int.
+ (strut saved_server): Likewise.
+ (S_auth_user_authenticate): Replace int arg with secondary
+ rendezvous port. Check it instead of old rend_int for match.
+ Deallocate it (twice) if we are completing the auth transaction
+ here. Store it in U in place of the old int.
+ (S_auth_server_authenticate): Likewise, mutatis mutandis.
+
+Mon Aug 15 11:52:49 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * auth.c (main): Make startup_essential_task the last thing we
+ do before processing messages.
+
+Thu Jul 21 18:39:38 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+ * auth.c: Include "auth_reply_U.h" instead of "auth_reply.h".
+
+Tue Jul 19 12:32:54 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (auth): Don't use variable $(link) anymore.
+
+Tue Jul 5 14:18:23 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (SRCS, TAGSHDRS): New variables.
+
+Mon Jun 20 15:04:42 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (install): Use $(INSTALL_BIN) instead of cp.
+
+Thu May 19 15:18:52 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * auth.c (auth_nosenders): Take auth off of allapts list
+ before destroying it.
+
+Thu May 12 15:28:50 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * auth.c (main): Declare args ARGC and ARGV; pass ARGV in call
+ to _hurd_proc_init.
+
+Mon May 9 16:50:09 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * auth.c (auth_version): New variable.
+ (main): Call proc_register_version.
+
+Thu May 5 07:42:28 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
+Fri Apr 29 16:50:50 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * auth.c (main): Fetch hostpriv arg and provide it to
+ startup_essential_task in accord with interface change to
+ startup.defs.
+
+
diff --git a/benchmarks/ChangeLog b/benchmarks/ChangeLog
new file mode 100644
index 00000000..a46fe1e8
--- /dev/null
+++ b/benchmarks/ChangeLog
@@ -0,0 +1,9 @@
+Wed Apr 12 11:25:25 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): New var.
+
+Tue Apr 11 11:17:32 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Rewrote in accordance with new scheme.
+
+
diff --git a/boot/ChangeLog b/boot/ChangeLog
new file mode 100644
index 00000000..a19e0eee
--- /dev/null
+++ b/boot/ChangeLog
@@ -0,0 +1,581 @@
+Sun Jul 7 21:10:08 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * boot.c (S_io_reauthenticate): Don't use unsafe MOVE_SEND in
+ auth_server_authenticate.
+
+Fri May 10 16:11:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot.c (S_io_identity): Typo.
+
+Fri May 10 09:18:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * boot.c (S_io_identity): New function.
+
+Thu May 9 18:57:34 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * boot.c (S_io_select): No longer has TAG parm.
+
+ * boot.c (S_io_reauthenticate): Use new interface.
+
+Sun Apr 28 22:50:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot.c (main): Use select instead of SIGIO.
+
+Mon Apr 15 12:57:29 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (uxboot): Permit errors because people might not have
+ the a.out-mach3 target installed, and that's OK for many users.
+
+ * Makefile (uxboot.0): Find frank1.ld in #(srcdir).
+
+ * boot_script.h (safe_gets): Add decl.
+ * boot_script.c: Include <stdio.h>.
+
+Wed Apr 3 18:54:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ux.c (printf): Add %d.
+
+Wed Mar 27 11:30:29 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot.c [notanymore] (S_tioctl_tiocgeta, S_tioctl_tiocseta,
+ S_tioctl_tiocsetaf, term_modes, term_ccs, term_speeds):
+ Functions & variables removed.
+ * Makefile (COMMON-OBJS): Remove tcattr.o.
+ (SRCS): Remove tcattr.c.
+
+Thu Mar 14 10:10:20 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * Makefile (boot): Depend on libthreads.so, nothing wrong with shared
+ libs.
+ (uxboot.0, uxboot.1): Use automatic vars in cmds instead of gratuitous
+ redundancy.
+ (LDFLAGS-uxboot.0): Remove useless indirection through variable.
+
+Wed Feb 14 16:50:05 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot.c [!UX]
+ (orig_tty_state): New variable.
+ (init_termstate, restore_termstate): New hurd versions of these funcs.
+ * ux.c (init_termstate, restore_termstate, term_sgb, localbits):
+ Moved here from boot.c
+
+Tue Feb 13 18:49:26 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot.c (load_image, boot_script_read_file, main): Use O_RDONLY,
+ not 0 (kind of ironic, this...).
+ (load_image): Give the filename with the error message (and a newline).
+
+ * ux.h (O_RDONLY, O_WRONLY, O_RDWR): New macros.
+
+ * ux.c, ux.h: New files.
+ * boot.c: Move all the ux-specific grot into ux.c & ux.h.
+ If UX is defined, include "ux.h", else define hurdish stuff.
+ (main): Use get_privileged_ports instead of task_by_pid.
+ (load_image, boot_script_read_file, main, do_mach_notify_no_senders,
+ do_mach_notify_dead_name): Use host_exit instead of uxexit.
+ (boot_script_read_file): Use host_stat instead of uxstat.
+ (init_termstate, S_tioctl_tiocseta): Use sg_flags fld in struct sgttyb.
+
+ * Makefile (all): Depend on `boot' and `uxboot'.
+ (COMMON-OBJS, UX-OBJS): New macros.
+ (OBJS): Inherit most names from $(COMMON-OBJS).
+ (LCLHDRS): Add ux.h.
+ (LDFLAGS): Use target-specific value.
+ (uxboot.0-LDFLAGS): New macro (with contents from old LDFLAGS).
+ (uxboot.o, uxboot.0): New targets.
+ (uxboot): Target renamed from boot.a.
+
+Sun Dec 10 18:05:14 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot.c (read_reply): Don't call clear_should_read(), just do
+ things ourselves.
+ (should_read_lock): Variable deleted.
+ (service_sigio): Function deleted.
+ (main): Use read_reply to service SIGIO again, not service_sigio.
+
+ * boot.c (service_sigio): New function, replacing set_should_read.
+ Calls read_reply() itself too.
+ (unlock_readlock): New function.
+ (ds_device_read, ds_device_read_inband, S_io_read): Call
+ unlock_readlock instead of directly unlocking READLOCK.
+ (request_server, main): Don't call read_reply() anymore.
+
+ * boot.c (should_read): New variable.
+ (main): SIGIO uses set_should_read instead of read_reply.
+ Call read_reply() after sigpause() returns.
+ (read_reply): Call clear_should_read(), and don't do anything if
+ SHOULD_READ wasn't set.
+ (set_should_read): New function.
+ (clear_should_read): New function.
+ (request_server): Call read_reply() before returning.
+
+Sat Dec 9 19:01:10 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot.c (S_io_read, ds_device_read_inband, ds_device_read): Don't
+ block SIGIO.
+ (main): Don't trap SIGMSG & SIGEMSG.
+
+Mon Dec 4 23:54:18 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c (main): Request no-senders notification on
+ pseudo_master_device_port.
+ Deallocate our send right to it when we no longer need it.
+ (do_mach_notify_no_senders): Exit only when both pseudo_console and
+ pseudo_master_device_port have no senders.
+ (ds_device_read_inband): Unlock readlock properly.
+
+Thu Nov 30 15:58:47 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * boot.c (readlock): New variable.
+ (read_reply): Check FIONREAD before dequeueing QR so that we don't
+ abandon requests. Lock READLOCK around FIONREAD/read pair.
+ (ds_device_read): Lock READLOCK around FIONREAD/read pair.
+ (ds_device_read_inband): Likewise.
+ (S_io_read): Likewise.
+
+Nov 22 16:25:01 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c (request_server): Don't call exec_server.
+ (S_exec_*): Functions removed.
+ (boot_script_task_port): Variable removed.
+ (boot_script_task_*, boot_script_port_*): Functions removed.
+
+Tue Nov 14 12:07:24 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Remove execServer.o.
+
+Thu Sep 28 14:47:46 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot_script.c (read_file): Pass CMD->path for file name.
+ (CHECK_CMDLINE_LEN): Update ARGV pointers after reallocating the line
+ buffer.
+
+Wed Sep 27 14:01:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c (struct uxstat): New type.
+ (uxfstat): Renamed from fstat; use struct uxstat * for arg.
+ (boot_script_read_file): Use those.
+ Return the memory object port, not zero.
+
+ * boot.c (fstat): New syscall function.
+
+ * boot_script.c (read_file): New function.
+ (builtin_symbols): Add $(read-file) builtin.
+ * boot_script.h (boot_script_read_file): Declare it.
+ * boot.c (close): New syscall function.
+ (defpager): New variable.
+ (main): Set it up.
+ (boot_script_read_file): New function.
+ (useropen_dir): New variable.
+ (useropen): New function.
+ (load_image): Call it instead of open.
+ (main): Grok -D arg to set useropen_dir.
+
+Sat Sep 23 00:53:51 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * syscall.S: Restore entry SP before return.
+
+ * boot.c (main): Use static const for constant strings.
+ On boot script error, write script line with error msg.
+
+ * boot_script.c (boot_script_parse_line): Ignore line beginning
+ with #.
+
+ * boot.c (S_io_pathconf): New function.
+
+ * Makefile (LDFLAGS): Add -static.
+
+Fri Sep 22 14:14:23 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * mach-crt0.c (__data_start): New variable.
+
+Tue Aug 29 10:41:29 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * boot.c (mig_dealloc_reply_port): Remove __ from call to
+ mach_port_mod_refs.
+ (main): Look for -d in bootstrap_args, not (nonexistent)
+ boot_args. Remove `const' keyword from decl of MSG.
+
+ * boot.c (sigblock, sigsetmask): New functions.
+ (sigmask): New macro.
+ (ds_device_read): Block SIGIO around critical section.
+ (ds_device_read_inband): Likewise.
+ (S_io_read): Likewise.
+
+Mon Aug 28 17:16:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot_script.h, boot_script.c: Updated by Shantanu Goel, to
+ accept action keywords only inside $(...) and only variable values
+ inside ${...}.
+ * boot.c: Updated for changes in boot_script.h protocol by
+ Shantanu Goel.
+ (main): Use boot_script_set_variable instead of magic variables.
+ Under -d, pause between parsing bootscript and executing it.
+
+Wed Aug 23 16:08:04 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ New script-driven boot mechanism, mostly implemented by Shantanu Goel.
+ * Makefile (SRCS): Add boot_script.c.
+ (OBJS): Add boot_script.o.
+ (LCLHDRS): New variable.
+ (HURDLIBS): Variable removed.
+ (boot): Depend on ../libthreads/libthreads.a.
+ * boot_script.c, boot_script.h: New files.
+ * boot.c (boot_like_kernel, boot_like_cmudef, boot_like_hurd):
+ Variables removed.
+ (main): Don't interpret switches. Instead of servers, take
+ command line argument of boot script file name. Read the file and
+ use boot_script functions to parse and execute its directives.
+ (boot_script_*): New variables and functions for boot_script callbacks.
+
+Sun Jul 30 23:50:53 1995 Michael I. Bushnell, p/BSG <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: DISTFILES -> DIST_FILES.
+
+Sat Jul 8 11:37:32 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * boot.c (free_reply_ports, free_reply_ports_lock): New variables.
+ (__mig_get_reply_port, __mig_put_reply_port, __mig_dealloc_reply_port,
+ mig_get_reply_port, mig_put_reply_port, mig_dealloc_reply_port):
+ Provide better versions of these routines that won't leak reply ports.
+
+Fri Jul 7 15:55:18 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * mach-crt0.c: New file, from mach4-i386/libmach/standalone.
+ * boot.c (mach_init_routine): New variable, wanted by mach-crt0.o.
+ (__mig_get_reply_port, __mig_dealloc_reply_port, __mig_put_reply_port):
+ New functions, to avoid using hurdish versions.
+ * Makefile (OBJS): Add mach-crt0.o.
+ (SRCS): Add mach-crt0.c.
+ (LDFLAGS): Add -nostartfiles (as we now use mach-crt0.o).
+
+Thu Jul 6 15:30:18 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (boot.1, boot.a): Use $(LD) and $(OBJCOPY) instead of
+ explicit names.
+
+ * boot.c: Include <mach/mig_support.h>.
+ (S_io_reauthenticate): Cast first arg to mig_deallocate.
+ (load_image): Cast second arg to read.
+ * tcattr.c: Undo last change; add private decl of ioctl.
+
+ * boot.c (bootdevice): Initialize to hard-coded `sd0a' instead of
+ DEFAULT_BOOTDEVICE.
+
+ * Makefile (all): Depend on boot.a too.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Wed May 31 10:02:11 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (DISTFILES): New variable; include frank1.ld and
+ frankemul.ld.
+ (CPPFLAGS): Variable removed.
+ (LDFLAGS): Append -T frank1.ld.
+ (boot.1, boot.a): New targets.
+
+ * syscall.S: Omit .globl decl for errno; it caused some as
+ complaint.
+
+Mon May 22 11:48:58 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * sigvec.S: Remove copyright notice.
+
+Wed May 17 13:10:27 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * boot.c (load_image): Make sure we actually allocate enough
+ memory to read into, including the offset into the buffer at which
+ the segment is read.
+
+ * sigvec.S (sigreturn, _sigreturn, sigvec): Remove the explicit
+ underscore prefixes from these names, now that we're using elf.
+ Instead we use the various macros from <i386/asm.h>. Also, return
+ errors correctly. [Also added a copyright notice]
+
+Sat May 13 03:37:24 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c (load_image): Fixed alignment calculation in ELF segment
+ loading.
+
+ * syscall.S: Include i386/asm.h and use ENTRY and EXT macros,
+ instead of explicit _s.
+
+Fri May 12 18:36:39 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c (load_image): Grok ELF executables as well as a.out.
+ (main): Load multiple servers. Suspend all but the first.
+ The first gets an extra arg, its name for the task port of the
+ second.
+
+Wed Apr 12 09:18:50 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Don't try and install boot in /usr/local/bin.
+
+Wed Apr 5 17:25:19 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c: Don't include <errno.h>. Define `errno' variable.
+ * Makefile (SRCS): Add syscall.S.
+ (OBJS): Add syscall.o.
+ * syscall.S: Check for errors.
+
+Thu Jan 19 01:21:24 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c (S_io_select): Updated to new io_select protocol.
+
+Fri Dec 9 01:23:22 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c: Use mach_msg_type_number_t in place of unsigned int and
+ int.
+
+Fri Nov 11 14:05:43 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * boot.c (main): Always set `f' flag (signifying "fake" because we
+ aren't a real native bootstrap).
+
+Thu Nov 3 17:26:37 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (boot.o): Depend on bootstrap_S.h.
+
+Fri Oct 28 17:08:12 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot.c (main): Create the thread before setting it up.
+ (bootstrap_compat): Make a send right for psuedo_master_device_port.
+ (main): Explicitly clear NEWTASK's bootstrap port for boot_like_kernel.
+ (main): Format strings for port names for boot_like_kernel.
+
+Fri Oct 28 15:26:48 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * boot.c (boot_like_kernel, boot_like_cmudef, boot_like_hurd): New
+ global vars.
+ (set_mach_stack_args): New function.
+ (main): If the -k flag is given, set BOOT_LIKE_KERNEL.
+ If the -p flag is given, set BOOT_LIKE_CMUDEF. If neither is
+ given, set BOOT_LIKE_HURD.
+ Only set a bootstrap port if BOOT_LIKE_CMUDEF or BOOT_LIKE_HURD.
+ If BOOT_LIKE_KERNEL or BOOT_LIKE_CMUDEF, set up the stack the
+ Mach way using set_mach_stack_args.
+ (request_server): Declare and call bootstrap_server.
+ (do_bootstrap_priveleged_ports, bootstrap_compat): New functions.
+ * Makefile (OBJS): Require bootstrapServer.o.
+ * bootstrap.defs: New file.
+
+Tue Aug 30 11:41:33 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * boot.c (S_io_reauthenticate): Use new authentication protocol.
+
+Mon Aug 22 13:43:32 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * boot.c: Include <cthreads.h>.
+ (main): Run msg_thread fork; don't call
+ mach_msg_server_timeout here. Use sigpause instead of getpid.
+ (msg_thread): New function.
+ (queuelock): New variable.
+ (queue_read): Acquire queuelock.
+ (read_reply): Acquire queuelock.
+ * Makefile (HURDLIBS): New var to get threads.
+
+Thu Aug 18 18:04:36 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * boot.c (restore_termstate): New function.
+ (do_mach_notify_no_senders): Call restore_termstate before exiting.
+
+ * boot.c (main): New var `usagemsg'; print it if args are wrong.
+ Allow flags and disk device to be given on command line.
+ New var `bootfile'.
+ (bootdevice, bootstrap_args): New vars.
+ (load_image): Exit nicely if the startup file can't be found.
+ (S_exec_startup): Use `bootdevice' instead of hardcoded name.
+ Use `bootstrap_args' instead of hardcoded "-x".
+ (main): Only do `pausing' hack if -d was provided.
+
+ * Makefile (CPPFLAGS): Define DEFAULT_BOOTDEVICE.
+
+ * Makefile (/usr/local/bin/boot): Depend on boot.
+
+ * boot.c (S_termctty_open_terminal): New "function".
+ (S_io_select): Added `rettype' arg.
+
+Sat Jul 23 02:58:05 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (io-MIGSFLAGS): Renamed from ioMIGSFLAGS.
+
+Fri Jul 22 15:10:45 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * boot.c (request_server): Remove S_ from io_server and
+ term_server.
+
+Thu Jul 21 19:00:36 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten to use new scheme.
+ * boot.c: Include io_reply_U.h and device_reply_U.h instead
+ of io_repl.h and device_reply.h.
+
+Wed Jul 20 13:19:45 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * boot.c: Comment out bits relating to tioctl interface.
+ * Makefile: Likewise.
+
+Tue Jul 19 12:41:46 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (boot): Don't use variable $(link) anymore.
+
+Tue Jul 5 14:19:36 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (SRCS): New variable.
+
+Sun Jul 3 17:20:07 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * tcattr.c: New file.
+ * boot.c (S_tioctl_tiocgeta): Call tcgetattr.
+ (S_tioctl_tiocseta): Call tcsetattr.
+ * Makefile (OBJS): Add tcattr.o.
+ (DIST_FILES): Add tcattr.c.
+
+Fri Jul 1 11:16:27 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * boot.c (init_termstate): Enter raw mode here.
+
+Fri Jun 24 14:27:56 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * boot.c (S_term_open_ctty): Renamed from term_become_ctty.
+ Deleted SIGPT arg. Add msg type arg for NEWTTY.
+
+Fri Jun 17 13:46:07 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * boot.c (request_server): Remove S_ prefix from exec_server
+ and notify_server.
+
+Fri Jun 17 00:12:16 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * Makefile (boot.o): Depend on term_S.h.
+
+Tue Jun 14 01:28:10 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * boot.c (request_server): Add S_ prefix to demuxer functions.
+
+Wed Jun 8 18:02:19 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * boot.c (S_tioctl_tiocseta): Turn off ECHO.
+ (S_io_select): Implement.
+
+Tue Jun 7 04:33:42 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * Makefile (tioctlServer.o): Depend on ../hurd/ioctl_types.h.
+
+Mon Jun 6 20:33:39 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * boot.c (authserver): New variable.
+ (S_io_reauthenticate): Do auth_server_authenticate and throw away
+ the returned info.
+ (S_exec_init): Set authserver to the passed port.
+
+Sat Jun 4 02:32:03 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * boot.c: Include term_S.h and tioctl_S.h.
+ (S_term_getctty): New function.
+ (S_term_*): Stub functions.
+ (request_server): Use S_term_server.
+
+ * Makefile (termServer.c term_S.h): New rule.
+ (OBJS): Add termServer.o.
+
+ * boot.c (S_exec_setexecdata, S_exec_exec): Fix prototypes.
+
+Tue May 17 18:44:29 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * boot.c (ds_device_write): DATA arg is char *; don't dereference
+ it in call to write.
+
+Mon May 16 14:34:15 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * boot.c (fsname): New variable.
+ (main): Set fsname to argv[1].
+ (S_exec_startup): Include fsname in child's argv[0].
+
+ * boot.c (init_termstate): Add forward declaration.
+ (struct sigvec): Make SV_HANDLER member void (*)().
+ (sigvec): Add declaration to avoid warning.
+
+Tue May 10 18:14:39 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * boot.c (tioctl_tiocseta, tioctl_tiocsetw, tioctl_tiocsetf,
+ tioctl_tiocgeta, init_termstate): New functions.
+ (term_modes, term_ccs, term_speeds, term_sgb, localbits): Nev
+ vars.
+ Also added new bits from ioctl.h.
+ (main): Call init_termstate.
+ (request_server): Call tioctl_server.
+ * Makefile (tioctlServer.c tioctl_S.h): New targets.
+ (OBJS): Include tioctlServer.o.
+ (boot.o): Depend on tioctl_S.h
+
+Fri May 6 13:56:58 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * boot.c (main): Restore braindamage of yesterday relating to
+ signals; that is, restore declaration of VEC and calls to sigvec.
+ * Makefile (DIST_FILES): Add sigvec.S.
+
+Thu May 5 13:16:42 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makefile (device_replyUser.c): Mention that this build
+ device_reply.h as well.
+ (boot.o): Add dependency on device_reply.h and io_repl.h.
+
+ * boot.c: Include <stdlib.h> for malloc and free prototypes.
+ Include <string.h> for bcopy and bzero prototypes.
+ Include <stdio.h> for sprintf prototype.
+ Include "device_reply.h" for its prototypes.
+ Include "io_reply.h" for its prototypes.
+ Declare return type for all the server functions that were lacking
+ such.
+ (sigpause): Declare type of MASK.
+ (ioctl): Declare third arg to be generic pointer, not char *.
+ (request_server): Declare MiG functions we call.
+ (load_image): Delete unused variable STACKADDR.
+ (main): Comment out declaration of VEC.
+ Comment out calls to sigvec.
+ Cast STARTPC in call to __mach_setup_thread.
+ Delete unused variable TIMEOUT.
+ (read_reply): Cast BUF correctly in call to ds_device_read_reply.
+ (S_exec_startup): Delete unused variable DTABLE.
+ (ds_device_write): Double cast arg to write to avoid warning.
+ (S_io_read): Order args to vm_allocate properly; cast DATA arg.
+ Check *datalen properly for unsigned type.
+
+ * boot.c: Renamed _exit to uxexit to avoid library name clash.
+ (do_mach_notify_dead_name, do_mach_notify_no_senders):
+ Call uxexit instead of _exit.
+
+ * boot.c (S_io_async, S_io_get_icky_async_id, S_io_map_cntl):
+ Expect new type arg for returned port.
+ (S_io_prenotify, S_io_postnotify): START and END args are now
+ vm_offset_t.
+
+ * boot.c: Change error_t to kern_return_t because error_t
+ is now unsigned and conflicts with MiG's use of kern_return_t.
+
+ * Makefile (io_S.h, ioServer.c): Punt mungio hack; use
+ -DREPLY_PORTS.
+ * boot.c: Changed all io server stubs to expect reply ports.
+
+ * mungio: removed file.
+ * Makefile (DIST_FILES): Removed mungio.
+
+ * boot.c (load_image): Only read from the image file the actual
+ amount being read, not that amount rounded to the nearest page.
+ Otherwise, the first bit of the BSS will not be zero, but will be
+ whatever is in the front of the symbol section of the a.out.
+
+Thu May 5 07:43:06 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
+Mon May 2 16:47:49 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * boot.c (S_io_readable): Implement io_readable fully.
+
+Fri Apr 1 17:55:38 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile (OBJS): Remove boot_machdep.o.
+
diff --git a/bsdfsck/ChangeLog b/bsdfsck/ChangeLog
new file mode 100644
index 00000000..0a948518
--- /dev/null
+++ b/bsdfsck/ChangeLog
@@ -0,0 +1,98 @@
+Thu Jul 6 15:30:43 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (tables.o): Delete target.
+ (vpath tables.c): Tell where to find tables.c.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Thu Nov 3 17:18:35 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (dir): Changed to bsdfsck.
+ (target): Changed to bsdfsck.
+
+Thu Oct 6 13:19:25 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * dir.c (dircheck): Fix from Charles Hannum: dircheck() shouldn't
+ be looking at d_type or d_namlen in blank entries *at all*. Not
+ only is it wrong, but it causes a serious problem on little-endian
+ machines, since after -c2 conversion, d_type will often be > 15.
+
+Wed Oct 5 12:53:45 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * pass1.c (checkinode) [mode == 0]: Check that di_trans
+ is also clear here.
+
+ * fsck.h (IFTODT): Provide macro here.
+ * inode.c: Not here.
+
+Tue Oct 4 22:42:54 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * inode.c (ckinode) [dino.di_trans set]: Only call IDESC->id_func
+ if IDESC->id_type is ADDR (meaning call function for each block).
+ If it's DATA, then that means call dirscan on each data block,
+ something entirely different.
+
+ * inode.c (IFTODT): Provide macro.
+
+Fri Sep 30 21:28:57 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Define.
+
+Fri Sep 16 10:57:04 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * fsck.h (direct): Define macro.
+
+Thu Sep 1 14:51:23 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (ckinode): Don't pay attention to fs_maxsymlinklen
+ if it's -1.
+ * pass1.c (checkinode): Likewise.
+
+ * fsck.h (DI_MODE): Use | not & for bitwise disjunction.
+
+Fri Aug 26 12:35:21 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * main.c (main): Don't call checkblock.
+
+ * pass5.c (ffs_fragacct): Copy in function from ../ufs/subr.c.
+
+ * inode.c (ckinode): Call IDESC->id_func for passive translator
+ if it's set.
+
+Thu Aug 25 11:07:05 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * setup.c: Don't include <disklabel.h>.
+ (setup): Comment out variable LP and label fetching code.
+ (calcsb, getdisklabel): Comment out functions. Replace
+ calcsb with one returning constant zero.
+
+ * main.c: Don't include <sys/mount.h> or <fstab.h>.
+ (main): Don't run checkfstab; just print an error in that case.
+ (docheck): Comment out this function.
+ (checkfilesys): Comment out special code for HOTROOT.
+
+Wed Aug 24 11:11:23 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * fsck.h (NBBY): Define macro.
+
+Tue Aug 23 15:54:49 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * dir.c (fileerror): Use DI_MODE instead of di_mode member.
+ (adjust): Likewise.
+ (linkup): Likewise.
+ * inode.c (ckinode): Likewise.
+ (clri): Likewise.
+ (pinode): Likewise.
+ * pass1.c (checkinode): Likewise.
+ * pass2.c (pass2check): Likewise.
+ * utilities.c (ftypeok): Likewise.
+
+ * inode.c (allocino): Set di_model and di_modeh instead of di_mode.
+ * pass1.c (checkinode): Likewise.
+ * pass2.c (pass2): Likewise.
+
+ * fsck.h (DIRSIZ): Replace ufs version with old BSD version.
+ (struct dirtemplate, struct odirtemplate): Proved old BSD types.
+ (DEV_BSIZE, MAXPATHLEN): Provide definitions.
+ (DI_MODE): New macro.
diff --git a/config/ChangeLog b/config/ChangeLog
new file mode 100644
index 00000000..2e086f2b
--- /dev/null
+++ b/config/ChangeLog
@@ -0,0 +1,70 @@
+Wed Jul 17 17:09:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * root-.bashrc: Fixup test and source of user's .root_bashrc.
+ * root-.profile: Likewise.
+
+Tue Jul 16 11:12:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * passwd (root): Group should be `0'.
+
+ * Makefile: Prettier installation of dotfiles for root and login.
+
+Mon Jul 15 19:16:30 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ttys: Comment out tty00 entry.
+
+Sat Jul 13 18:06:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile: Always touch /dev/null. If OVERRIDE_CONF, then
+ $(installed_rootdots) and $(installed_conf) depend on it.
+ $(installed_logins) always depend on /dev/null.
+
+ * Makefile (DIST_FILES): New variable. Move rules to past
+ `include ../Makeconf'.
+
+ * Makefile (ROOTDOTS, installed_rootdots): New variables.
+ (install): Depend on $(installed_rootdots).
+ ($(installed_rootdots): New target.
+ * root-.bash_login, root-.bashrc, root-.profile: New files.
+
+ * Makefile (LOGINDOTS, installed_logins): New variables.
+ (install): Depend on $(installed_logins).
+ ($(installed_logins)): New rule.
+ * login-.bash_login, login-.bashrc, login-.hushlogin,
+ login-.profile, login-README: New files.
+
+ * passwd, fstab: New files.
+ * hostname: New (empty) file.
+ * Makefile (SYSCONFFILES): Add hostname, fstab, and passwd.
+
+Thu Jun 20 14:46:39 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (install): Install symlink for rc.
+
+ * Makefile (SYSCONFFILES): Removed `rc'.
+ * rc: Removed to daemons/rc.sh.
+
+Wed Jun 19 15:25:15 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * rc: Print date before running fsck. Comment out pty permission
+ frobbing.
+
+Tue Jun 18 22:40:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * rc: Understand special more status codes for signals from fsck.
+ Fix some messages. Factor out date.
+
+Mon Jun 17 13:45:40 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * motd: Drop first line.
+ * rc: Comment out motd update.
+
+ * ttys: Fixup getty spec.
+
+ * protocols: Updated from RFC 1700.
+
+ * Makefile (SYSCONFFILES): Add protocols services shells motd ttys
+
+ * rc: Update /etc/motd.
+ (autoboot) Make root readonly before fscking it.
+ Clean /var/run and make utmp.
diff --git a/daemons/ChangeLog b/daemons/ChangeLog
new file mode 100644
index 00000000..af37651c
--- /dev/null
+++ b/daemons/ChangeLog
@@ -0,0 +1,58 @@
+Mon Jul 15 17:27:27 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * rc.sh: Create /var/run/uptime *after* clearing /var/run. Always
+ create /var/run/mtab to keep e2fsck happy.
+
+Fri Jul 12 16:49:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * rc.sh: Only clean /tmp and /var/run if they are respectively
+ directories.
+
+Sun Jul 7 10:39:27 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * getty.c (print_banner): Use basename instead of rolling our own.
+
+Sat Jul 6 13:58:40 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * getty.c (print_banner): Don't include directory in terminal
+ name.
+
+Sat Jul 6 00:10:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * getty.c (print_banner): Use localhost instead of grotty loop.
+ Make static.
+ (main): Use syslog instead of error to report exec failure.
+ * Makefile (getty): Depend on ../libshouldbeinlibc/libshouldbeinlibc.a.
+
+Fri Jul 5 22:02:16 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * getty.c: Include <sys/utsname.h> and <stdlib.h>.
+ (print_banner): New function.
+ (main): Call print_banner.
+
+ * getty.c (main): Return something.
+
+Tue Jul 2 23:36:33 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * rc.sh: Touch /var/run/uptime file.
+
+Mon Jul 1 17:54:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * getty.c (main): Don't time out hardwired lines.
+ Print an error if exec fails.
+
+Thu Jun 27 16:44:52 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * getty.c (main): Repair loop.
+
+Tue Jun 25 18:01:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * rc.sh: Use real fsck instead of kluge.
+
+ * Makefile (%: %.sh): Make target writable.
+
+Thu Jun 20 14:38:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * rc.sh: Copied from ../config.
+ * getty.c: Copied from ../utils.
+ * Makefile: New file.
diff --git a/defpager/ChangeLog b/defpager/ChangeLog
new file mode 100644
index 00000000..75f34716
--- /dev/null
+++ b/defpager/ChangeLog
@@ -0,0 +1,5 @@
+Tue Apr 11 11:19:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: New file.
+
+
diff --git a/devio/ChangeLog b/devio/ChangeLog
new file mode 100644
index 00000000..98362b44
--- /dev/null
+++ b/devio/ChangeLog
@@ -0,0 +1,253 @@
+Wed Jul 17 10:00:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * MAKEDEV (st): New function.
+ Use new st function (get rid of chmods).
+ Accept disk device names without partitions, & with slice + partition.
+
+Sat Jun 15 14:13:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * MAKEDEV ([hrs]d*): Allow user to specify slice as well. Patch
+ from Gord Matzigkeit, gord@enci.ucalgary.ca.
+
+Thu May 9 12:15:47 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_io_select): Remove TAG arg.
+ (trivfs_S_file_get_storage_info): Fix param type.
+
+Tue May 7 16:41:48 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_file_get_storage_info): Swap PORTS_TYPE & NUM_PORTS.
+
+Mon May 6 20:14:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_file_get_storage_info): Enable new version.
+
+Fri May 3 15:09:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c [0] (trivfs_S_file_get_storage_info): Rewrite for new interface.
+
+Tue Apr 30 10:03:50 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (include ../Makeconf): BEFORE dependencies.
+ ($(prefix)/dev/MAKEDEV): Find MAKEDEV in $(srcdir).
+
+Fri Feb 16 19:28:32 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * MAKEDEV: Add rule for `time', and add `time' to std.
+
+Tue Jan 30 12:34:28 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * MAKEDEV: Grok `tty'.
+
+Thu Jan 25 18:10:24 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * devio.c (trivfs_goaway): Handle errors from ports_inhibit_class_rpcs.
+ Allow rpcs to resume if we're going to return EBUSY.
+
+Tue Jan 16 16:19:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * devio.c (trivfs_modify_stat): The peropen hook holds a struct
+ open, not a struct dev.
+
+Fri Dec 29 23:41:39 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * MAKEDEV (std): Make `fd' one of the standard devices.
+
+Fri Dec 15 13:30:33 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * MAKEDEV (ST): Variable holding the proper settrans command,
+ which use.
+ (_CWD): Use this variable to pass down the current directory to
+ sub MAKEDEVS.
+ (console): Use the new term syntax.
+ (tty[0-9]?|tty[0-9a-f]): New rule for normal ttys.
+ ([pt]ty[pqPQ]?): New rule for ptys (both master and slave).
+ ([pt]ty[pqPQ]): New rule for making sets of ptys.
+
+Mon Dec 4 15:17:14 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_file_set_size, trivfs_S_file_sync,
+ trivfs_S_file_syncfs, trivfs_S_file_get_storage_info): Add totally
+ gratuitous, annoying, and trouble-making reply-port args.
+
+ * io.c (trivfs_S_file_get_storage_info): Use inline return if possible.
+
+Wed Nov 8 16:44:05 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_file_set_size): Renamed from trivfs_S_file_truncate.
+
+Sun Nov 5 10:00:56 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * devio.c (main): Add FLAGS arg to trivfs_startup call.
+
+Sat Nov 4 20:03:05 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_file_get_storage_info): Add FLAGS argument.
+
+Fri Oct 6 17:25:37 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_file_get_storage_info): Change type of ADDRESSES
+ to off_t **, and add BLOCK_SIZE parameter.
+
+Sun Oct 1 16:20:45 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * devio.c (main, trivfs_S_fsys_syncfs): Get rid of debugging noise.
+ * rdwr.c (open_write, open_read): Ditto.
+ * dev.c (dev_open, dev_sync, dev_write, dev_read): Ditto.
+ * io.c (trivfs_S_file_syncfs, trivfs_S_file_sync): Ditto.
+ * devpager.c (pager_write_page, pager_read_page): Ditto.
+ * window.c (position): Ditto.
+
+Tue Sep 26 15:33:14 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (trivfs_S_file_get_storage_info): New function.
+ * dev.c (dev_open): Record NAME in the returned dev structure.
+ * dev.h (struct dev): Add the NAME field.
+
+Thu Aug 24 10:28:00 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (devio): Put all dependencies here.
+ (HURDLIBS): Removed.
+
+Tue Aug 22 10:45:31 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (HURDLIBS): Add libshouldbeinlibc.
+ (OBJS): Get rid of error.o.
+ Get rid of rules dealing with error.o.
+ ($(prefix)/dev/MAKEDEV): Use $(INSTALL_PROGRAM) instead of
+ $(INSTALL_DATA) + `chmod +x'.
+
+ * devio.c (trivfs_modify_stat): Get the device from CRED now that
+ we have it.
+
+Mon Aug 21 16:34:29 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * devio.c (trivfs_goaway, trivfs_modify_stat): Update arguments.
+
+Tue Aug 15 19:47:57 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * MAKEDEV ([hrs]d*): Fixed partition parsing: use glob pattern,
+ not regexp.
+
+Sun Aug 13 10:57:03 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * devio.c (trivfs_peropen_create_hook): This now returns an error_t.
+ (open_hook): And thus this does as well.
+
+Sat Jul 22 18:32:03 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * rdwr.c (open_read, open_write): Clean up STATE before returning
+ with an error.
+ * devpager.c (dev_get_memory_object): A new pager now comes with 1
+ ref, so we allocate a ref ourselves when we're using an old one,
+ and once we've created the send right, remove a reference.
+
+Mon Jul 10 15:15:45 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * rdwr.c (open_seek): New function.
+ (raw_read, raw_write): Return EINVAL if *OFFS isn't a block boundary.
+ * open.h: Add declaration for open_seek.
+ * io.c (trivfs_S_io_seek): Call open_seek instead of doing ourselves.
+
+Sat Jul 8 18:35:17 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * MAKEDEV (fd): Put the fd server on `fd', not `stdin'.
+ * MAKEDEV (console): Give /hurd/term a ttyname argument.
+
+Thu Jul 6 15:33:33 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * Makefile: Remove include dependencies.
+
+Wed Jun 28 19:22:47 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (HURDLIBS): Add libihash.
+
+ * iostate.c (io_state_sync): Remember that we've synced the buffer.
+ * devpager.c (dev_stop_paging): New function.
+ (pager_dropweak): New function.
+ * dev.h (struct dev): Add the pager_port_bucket field.
+ Declare dev_stop_paging ().
+ * devio.c (trivfs_goaway): Make trivfs_goaway do the right thing.
+ (clean_exit, close_device): Deleted functions.
+ (thread_cancel): New function.
+
+ * devpager.c (pager_port_type): Deleted var.
+ (pager_port_bucket, pager_port_class): New vars.
+ (dev_get_memory_object): Moved here from dev.c. Also, call
+ init_dev_pager if necessary.
+ (service_paging_requests): New function.
+ (init_dev_pager): New function.
+ * dev.c (dev_get_memory_object): Moved function to devpager.c.
+
+ * devio.c (fsys_port_class, root_port_class, port_bucket): New vars.
+ (trivfs_protid_portclasses, trivfs_cntl_portclasses,
+ trivfs_protid_nportclasses, trivfs_cntl_nportclasses): New vars.
+ (main): Initialize *portclasses vars, and convert to new trivfs lib.
+ (trivfs_protid_porttypes, trivfs_cntl_porttypes,
+ trivfs_protid_nporttypes, trivfs_cntl_nporttypes): Deleted vars.
+ (trivfs_goaway): Convert args for new trivfs lib.
+ (ports_cleanroutines): Delete var.
+ (ports_demuxer, ports_notice_idle, ports_no_live_ports,
+ ports_no_hard_ports): Delete functions.
+ * ptypes.h: Deleted file.
+
+Wed Jun 28 15:51:51 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Repair mangled include-file dependencies.
+
+Fri Apr 21 14:17:19 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * MAKEDEV: Split out `std' into individual device-makers it calls.
+ Rewrote /dev/fd stuff (still commented out). Use case built-in
+ instead of expr program.
+
+Tue Apr 11 15:46:35 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): New var, for MAKEDEV.
+ (install): Depend on $(prefix)/dev/MAKEDEV.
+ ($(prefix)/dev/MAKEDEV): New target.
+ * MAKEDEV: New file.
+
+Mon Apr 10 10:22:26 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * rdwr.c (open_write, open_read): Bounds check I/O.
+
+ * io.c (trivfs_S_file_truncate): Always return 0, so O_TRUNC works.
+
+ * devio.c (main, check_open_hook, close_device, trivfs_goaway):
+ Add a new lock, device_lock, and use it to control access to the
+ DEVICE variable.
+ (open_hook, trivfs_modify_stat, trivfs_S_fys_syncfs): Copy DEVICE
+ before using it, so it doesn't change underneath us.
+
+ * devio.c (clean_exit): Add a new argument that says whether to
+ aquire a lock before doing our work.
+ (ports_notice_idle, ports_no_live_ports): Use it.
+
+ * devio.c (close_device): New function, closes DEVICE cleanly.
+ (clean_exit, ports_no_hard_ports): Use close_device.
+
+ * devio.c (main): Use trivfs_startup instead of doing it manually.
+
+ * devio.c (trivfs_goaway): Try and do it better, paying attention
+ to flags, etc.; this still isn't right though, we may want to wait
+ for the ports library to be fixed first.
+
+ * devio.c (DEBUG): New macro, executes its arg with debug_lock locked.
+ (most everything): use DEBUG instead of doing things manually.
+
+ * open.c (open_create): Supply our dev's size when creating a window.
+
+Sun Apr 9 14:49:33 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * window.h: Add a new window field, max_pos. Rename the location
+ field `pos'.
+ * window.c (position): Use a shorter than normal window if
+ necessary to avoid going past the end of the device.
+ (window_create): Initialize the new MAX_POS field.
+ (window_create, position, window_write, window_read): Rename the
+ location field `pos'.
+
+ * devpager.c (pager_read_page, pager_write_page): Read or write
+ partial pages at the end of the device.
+
diff --git a/doc/ChangeLog b/doc/ChangeLog
new file mode 100644
index 00000000..cdf28951
--- /dev/null
+++ b/doc/ChangeLog
@@ -0,0 +1,4 @@
+Mon Aug 8 15:50:17 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+
diff --git a/exec/ChangeLog b/exec/ChangeLog
new file mode 100644
index 00000000..d650dbd8
--- /dev/null
+++ b/exec/ChangeLog
@@ -0,0 +1,643 @@
+Sun Jul 7 21:13:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * exec.c (S_exec_exec): Don't use unsafe MOVE_SEND in call to
+ interruptible exec_exec stub.
+
+Mon Jul 1 16:08:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Removed crash.c.
+ * crash.c: Moved to ../trans.
+
+Thu Jun 20 15:43:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (exec): Link against fshelp too now.
+
+ * exec.c (do_exec): Call proc_setowner *after* possible
+ proc_reassign; otherwise it modifies the stub process's state and
+ not the real process's.
+
+Wed Jun 19 14:08:15 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * exec.c (do_exec, S_exec_exec): Pass 0 for new LOOKUP arg to
+ hurd_file_name_lookup.
+ * hashexec.c (hurd_file_name_path_lookup): Declaration removed.
+ (check_hashbang): Pass 0 for new LOOKUP arg to hurd_file_name_lookup.
+
+Wed Jun 12 21:17:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * gzip.h (basename): Comment out declaration; it conflicts with
+ libc's.
+
+ * exec.c (do_exec): If secure, set the owner with proc_setowner.
+
+Fri May 10 16:47:11 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hashexec.c (search_path): Don't make PATH or PFXED_NAME const.
+
+Fri May 10 09:20:26 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * exec.c (do_exec) [use1]: Use new auth_user_authenticate interface.
+ * hashexec.c (check_hashbang) [userport/reauthenticate]: Likewise.
+
+ * hashexec.c (check_hashbang) [setup_args/search_path]: Declare
+ PATH to be `char const *'.
+
+Tue May 7 16:24:52 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * hashexec.c (check_hashbang): Use io_identity instead of io_stat to
+ compare files.
+
+Mon May 6 14:26:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c (exec_version): Upgrade to 0.0.
+
+Fri May 3 14:16:17 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * exec.c (map): Use F->__offset and F->__target properly.
+
+Thu May 2 10:21:37 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * exec.c (map): Fix fencepost error in check of current mapping
+ window. Request round_page (LEN) bytes in io_read to avoid many small
+ reads.
+
+ * exec.c (do_exec): Terminate OLDTASK if we get an error after killing
+ its threads and deallocating its address space.
+
+Tue Apr 30 11:36:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * exec.c (check_gzip) [ziprderr]: Treat all read errors as
+ ENOEXEC. First off, because that's what they are; also because
+ some callers of read_error don't set errno at all.
+
+Mon Apr 29 15:11:55 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * exec.c (check_section): If the format makes no sense, return
+ ENOEXEC, not EINVAL.
+ (check_bfd): Likewise.
+ (check_elf): Likewise.
+ (check_elf_phdr): Likewise.
+ (do_exec): Likewise.
+
+ * exec.c (do_exec): Use correct args to ports_create_port.
+
+Sat Apr 27 06:02:42 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * crash.c: Use ports_create_port instead of ports_allocate_port, and
+ notice the error.
+ * exec.c: Likewise.
+
+Tue Apr 23 18:53:54 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * hashexec.c (check_hashbang: user_port): Use default root port when
+ secure.
+
+Mon Apr 15 12:48:35 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Add elfcore.c, crash.c, and exectrans.c.
+ (SRCS): That's hashexec.c, not .o.
+
+ * Makefile (exec-MIGSFLAGS): Look for execmutations.h in
+ $(srcdir).
+
+Mon Apr 8 15:49:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * exec.c (prepare): If io_map returns EOPNOTSUPP, suppress the
+ error, and still setup E's stream.
+ (prepare_and_check): If prepare returns an error, do no more.
+
+Thu Mar 28 14:06:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hashexec.c (check_hashbang): Pass open flags & mode args to
+ hurd_file_name_path_lookup.
+
+Mon Feb 26 16:33:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hashexec.c (check_hashbang): Correctly deal with interpreter
+ lines having no argument.
+
+Sat Jan 13 12:28:03 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hashexec.c (check_hashbang): Use hash_file_name_path_lookup()
+ instead of doing the path search ourselves, and get rid of
+ LOOKUP_CWDIR & associated logic.
+ * exec.c (S_exec_exec): Use strdupa(). Also update use of
+ hurd_file_name_lookup() [still probably not right though].
+
+Thu Jan 11 15:36:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hashexec.c (check_hashbang): When using executable name found on
+ the path, don't return alloca()ed memory from search_path(); use
+ malloc() instead.
+ Use envz_get() to search the environment.
+
+ * exec.c (S_exec_exec): Use envz_get() to search the environment.
+
+Thu Jan 4 11:30:15 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (safe_bzero): Rewritten using hurd_catch_signal.
+ * hashexec.c (check_hashbang): Rearrange arg frobbing code
+ somewhat to use hurd_catch_signal instead of old preemption interface.
+
+Fri Dec 29 15:54:06 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * exec.c (do_exec): Be careful not to look at BOOT after we
+ release our reference on it.
+ Correctly initialize BOOT->intarray in the case where NINTS <
+ INIT_INT_MAX but we don't alloc a new array.
+
+Fri Dec 15 01:53:07 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (map): Rearrange code to fix some bugs and not remap
+ unless necessary.
+ (input_room): Simplify.
+ (check_elf): Extract all information from file header before
+ calling `map' for program headers.
+
+Sat Nov 25 22:10:41 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * crash.c (S_msg_sig_post_untraced): Also let the debugger have
+ the process back if it's posting the crashing signal.
+
+Tue Nov 21 15:01:56 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (safe_bzero): New function, broken out of load_section.
+ (load_section): Call it.
+
+ * main.c (going_down): Variable removed.
+ (deadboot): Don't test it. Instead, use ports calls to check if
+ there are no other live ports.
+ (trivfs_goaway): Don't set it.
+
+Wed Nov 15 19:40:44 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hashexec.c (user_port): Fixed port selection logic.
+ (check_hashbang): Fixed PATH searching in script name guessing.
+
+Mon Nov 13 15:11:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (S_exec_startup): Compatibility RPC removed.
+
+ * exec.c (load_section): Catch faults while zeroing partial bss page.
+
+Sun Nov 5 00:15:07 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Add flags arg to trivfs_startup call.
+
+Wed Oct 25 15:50:38 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (S_exec_startup_get_info): New function, modified from
+ S_exec_startup.
+ (S_exec_startup): Just call it.
+ * main.c (exec_demuxer): Call exec_startup_server.
+
+Tue Oct 24 19:21:20 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Add exec_startupServer.o.
+
+ * priv.h (struct bootinfo): Use vm_size_t for phdr_size.
+
+Wed Oct 18 18:36:30 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hashexec.c (check_hashbang: prepare_args): Enable and clean up
+ code to guess the name of the script before resorting to /dev/fd.
+
+Wed Oct 18 03:05:05 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hashexec.c: New file.
+ * exec.c (struct execdata): Moved to priv.h.
+ (std_*, finish): Make global.
+ (do_exec): Only reset CWDIR when null, even if secure.
+ Actually call check_hashbang and return success if it does.
+ Use new hurd_file_name_lookup protocol with private callbacks to open
+ interpreter file on behalf of client.
+ Remove `bootout' label; use `stdout' or `out' as appropriate instead.
+ At `out' label always deref BOOT, which cleans it up iff necessary.
+ (S_exec_exec): #if 0 out $EXECSERVERS processing for time being.
+ * priv.h: Added some #includes.
+ (struct execdata): Moved here from exec.c.
+ (std_*): Declare these.
+ (finish, check_hashbang): Declare them.
+ * Makefile (SRCS, OBJS): Add hashexec.[co].
+ (DIST_FILES): Remove it from here.
+
+Wed Oct 11 01:45:32 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * main.c, priv.h, execmutations.h: New files.
+ * exec.c: Server mechanics removed; now uses libtrivfs/libports.
+ Main program split out into main.c.
+ (std_lock): New variable (rwlock).
+ (do_exec): Acquire reader lock to access std_ints and std_ports.
+ (S_exec_setexecdata): Acquire writer lock to change them.
+ * Makefile (OBJS): Add main.o; remove fsysServer.o, notifyServer.o.
+ (LCLHDRS): Add priv.h and execmutations.h.
+ (exec-MIGSFLAGS): New variable.
+ (exec): Depend on livtrivfs, libthreads, libshouldbeinlibc.
+
+Mon Oct 2 10:33:14 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * exec.c (do_exec): Doc fix.
+
+Wed Sep 27 11:21:19 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (do_exec): Don't set NEWTASK's bootstrap port until after
+ we have finished completely with OLDTASK.
+ (do_mach_notify_no_senders): Remove bogus mod_refs call on
+ receive_portset.
+
+Wed Sep 20 19:57:55 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (struct bootinfo): New members `phdr_addr', `phdr_size',
+ `user_entry'.
+ (do_exec): Set them. Code rearranged to construct bootinfo before
+ looking up interpreter file, keep proper track of port rights and
+ VM copied into bootinfo (there were leaks).
+
+Sat Sep 16 13:15:42 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Remove vpath directive.
+
+Fri Sep 8 17:50:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OTHERLIBS, CPPFLAGS): Disable bfd by default.
+
+Mon Aug 28 16:57:14 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (S_fsys_forward): New stub function.
+
+Sun Jul 30 23:49:49 1995 Michael I. Bushnell, p/BSG <mib@geech.gnu.ai.mit.edu>
+ * Makefile (SRCS): Added unzip.c, util.c, and inflate.c.
+
+Thu Jul 6 15:32:39 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * hostarch.c (bfd_mach_host_arch_mach): Remove assignment from
+ inside if test.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Wed Jul 5 18:00:49 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (OTHERLIBS): Define var.
+ (all, exec): Delete targets.
+
+Tue Jun 27 11:48:08 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * exec.c (load_section): Remove assignments from if tests.
+ (map): Likewise.
+ (prepare): Likewise.
+ (load): Likewise.
+ (servercopy): Likewise.
+ (do_exec): Likewise.
+ (S_exec_setexecdata): Likewise.
+ (S_exec_exec): Put extra parens around assignment inside while
+ test.
+
+Thu Jun 8 02:57:28 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (struct execdata.info.elf): Add members `anywhere' and
+ `loadbase'.
+ (load_section): Use them; if `anywhere' set, load the section anywhere.
+ Record load address in `loadbase'.
+ (check_elf): Initialize `anywhere' and `loadbase'.
+ (postload): Merged into load.
+ (load): Perform postload functionality here, after calling
+ finish_mapping.
+ (finish): Take new flag arg; deallocate file port only if set.
+ (do_exec): Pass flag to finish appropriately.
+ Don't call finish_mapping and postload after load. KLUDGE: Load
+ the interpreter before the program instead of after.
+
+Mon Jun 5 06:42:33 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c: Majorly revamped: Now supports the ELF format directly.
+ Secondarily uses the BFD library #ifdef BFD. Supports gunzipping
+ only #ifdef GZIP.
+ * hostarch.c: Rewritten to unconditionally return both BFD and ELF
+ machine types.
+
+Fri May 12 18:59:21 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * exec.c (S_fsys_set_options, S_fsys_mod_readonly): Change from
+ mod_readonly to set_options.
+
+Thu Apr 20 22:14:47 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (check_gzip): Rewind the stream before calling
+ `get_method'. Open a new BFD on the uncompressed data stream
+ before return.
+
+Sun Apr 9 01:27:10 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (struct execdata) [BFD]: New member `interp_section'.
+ (check_section): Notice section named ".interp" and set that pointer.
+ (load_section): Do nothing if the section is zero size.
+ When reading into our copy of the overlap page, don't read past
+ the end of the section.
+ (do_exec): Consolidate new subfunction `check_maybe_gzip'.
+ If there is an interpreter section, load the interpreter file too,
+ and use its entry point instead of the user program's. Cleaned up
+ and made more robust deallocation of BOOT info on error.
+ (deadboot): New function, split out of do_mach_port_notify_no_senders.
+
+ * Makefile (vpath lib%.a): Add search path.
+ (exec): Depend on -lbfd and -liberty.
+ (CPPFLAGS): Append -DBFD; omit -DA_OUT_H=...
+ (bfdexec): Target removed.
+ * exec.c (load_section): fseek to desired position before freading.
+ (input_room): Always map a page-aligned region.
+
+Thu Feb 9 01:01:57 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (check_section): Don't check SEC_RELOC flag.
+
+Wed Feb 8 19:48:11 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * exec.c (load_section) [BFD]: BFD does not set SEC_HAS_CONTENTS
+ on a.out BSS's ever; don't make zeroing of bss conditional on that.
+ It's not clear exactly what SEC_HAS_CONTENTS is for anyhow;
+ perhaps the Right Thing is to set in on BSS. In any case, don't
+ depend on this flag here.
+
+Sat Jan 28 17:08:02 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (prepare): Give the stream a seek function.
+
+Sun Jan 22 03:16:17 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c: Update BFD code; it works now.
+ * hostarch.c [BFD]: Fix prototype.
+
+Thu Jan 19 01:24:18 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hostarch.c: Add case for CPU_TYPE_ALPHA.
+
+ * hostarch.c (bfd_mach_host_arch_mach, aout_mach_host_machine):
+ Use mach_msg_type_number_t instead of unsigned int. Cast
+ &HOSTINFO to (natural_t *).
+
+Sun Jan 15 06:29:56 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c [BFD] (bfd_mach_host_arch_mach): In decl, MACHINE arg is
+ `long int *' now.
+ [BFD] (host_bfd_arch_info): New variable.
+ [BFD] (host_bfd): Initialize `arch_info' member to its address.
+ (check) [BFD]: Use bfd_arch_get_compatible properly, rather than the
+ nonexistent bfd_arch_compatible.
+ (main) [BFD]: Fill in host_bfd.arch_info instead of old
+ `obj_machine' and `obj_archiecture' members, which BFD no longer has.
+ * hostarch.c [BFD] (bfd_mach_host_arch_mach): MACHINE arg is `long
+ int *' now.
+
+Tue Dec 13 23:28:08 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Add unzip.o util.o inflate.o.
+ (LCLHDRS): Add gzip.h crypt.h tailor.h.
+ (unzip.o util.o inflate.o): Depend on those.
+ (CFLAGS): Use +=.
+ * inflate.c, unzip.c, util.c, tailor.h, gzip.h, crypt.h: New files.
+
+Sun Dec 11 19:49:01 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (struct execdata): New members `headbuf', `file_data',
+ `optimal_block'.
+ (load_section): Copy data from U->file_data if that is nonnull.
+ Use new subfunction `write_to_task' that handles non-page aligned
+ sections.
+ (input_room): Fix EOF check.
+ Use io_read if no memory object.
+ (prepare): New function, broken out of check.
+ Initialize E->file_data and E->optimal_block. Set
+ E->stream.__seen bit.
+ (check): No longer take FILE arg.
+ Use E->file_data if nonnull; else read from stream if no memory object.
+ (finish_mapping): Reset members after deallocating resources.
+ (finish): Likewise. Call fclose. Don't deallocate E->header if
+ it points to &E->headbuf or E->file_data.
+ (check_gzip): New function, implements executing gzip'd binaries.
+ (do_exec): Call prepare before check.
+ Call check_gzip if file format unrecognized.
+
+Wed Nov 9 01:40:28 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * exec.c (set_active_trans): Don't deallocate EXECNODE here to
+ work around a ufs bug.
+
+ * exec.c: Include <hurd/paths.h> and <fcntl.h>.
+ (set_active_trans): New function.
+ (S_exec_init): Call set_active_trans.
+
+Wed Aug 31 11:16:04 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * exec.c (load_section): Pass address of stream in call to fread.
+ (input_room): Cast second arg to vm_deallocate. Dereference F
+ in setting __error member.
+ (close_exec_stream): Provide all three args to vm_deallocate
+ and cast the second one properly.
+
+Wed Aug 31 04:32:26 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c (do_exec): Do check before task_suspend.
+ #if 0'd out: If check gets ENOEXEC, call check_hashbang.
+ (struct execdata): Move member `stream' outside of [BFD].
+ (load_section): Use fread instead of hand mapping and copying
+ unconditionally (was [BFD]); old code left #if'd out.
+ (close_exec_stream): Renamed from close_stdio_bfd; moved out of [BFD].
+ (input_room): Define unconditionally, not [BFD].
+ (check): Set up E->stream unconditionally.
+
+Tue Aug 30 11:58:27 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * exec.c (S_fsys_syncfs, S_fsys_mod_readonly): New stubs.
+
+ * exec.c (set_init_port): Use new authentication protocol.
+
+ * exec.c (S_exec_exec): Call hurd_file_name_lookup instead
+ of hurd_path_lookup.
+
+ * exec.c (S_fsys_getroot): Return FS_RETRY_NORMAL instead
+ of FS_RETRY_NONE.
+
+ * exec.c (procserver): New global variable.
+ (S_exec_init): Set procserver.
+ (do_exec): Use `procserver' instead of USEPORT macro.
+ (S_exec_init): Likewise.
+
+Mon Aug 29 13:08:44 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * exec.c (do_exec): Enable and fix up code for doing proc_reassign
+ in the EXEC_NEWTASK case.
+ (do_exec): If we don't provide the proc port, and this is a
+ newtask exec, then use the proc port to fetch a new one
+ corresponding to the new task.
+
+Wed Aug 17 14:59:58 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * exec.c (S_exec_exec): Bother to pass flags to do_exec.
+
+ * exec.c (essentialstartupport, essentialhostport): Deleted vars.
+ (S_exec_init): Do startup_essential_task here like before, but
+ make sure we do it last.
+ (S_exec_setexecdata): Don't do startup_essential_task here.
+
+Tue Aug 16 10:02:50 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * exec.c (set_init_port): Don't assume that MACH_PORT_NULL == 0.
+ (do_exec): Likewise.
+
+Mon Aug 15 21:23:13 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.c: Include <unistd.h> for getpid decl.
+ (set_init_port): Use pid_t for PID.
+ (S_exec_init): Pass poly arg to proc_execdata_notify.
+
+Mon Aug 15 15:24:45 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * exec.c (do_exec): Finish implementing EXEC_SECURE flag;
+ implement EXEC_DEFAULTS flag.
+ (S_exec_init): Delay startup_essential_task until after
+ we've received the first essential ports from the proc server.
+ (essentialstartupport essentialhostport): New global vars.
+
+Fri Jul 22 10:21:30 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+ * exec.c: Include "exec_S.h" instead of "exec_server.h".
+ Include "notify_S.h".
+
+Tue Jul 19 20:51:58 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile (exec_server.h execServer.c, fsys_S.h fsysServer.c):
+ Find .defs file in ../hurd, not $(includedir).
+
+Tue Jul 19 12:42:32 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * exec.c (S_fsys_getroot): New arg `dotdot'; don't do anything
+ with it.
+ (S_fsys_startup): Removed dotdot args.
+ (main): Deleted var `dotdot'; don't expect it from fsys_startup.
+
+ * Makefile (exec): Don't use variable $(link) anymore.
+
+Tue Jul 5 14:20:15 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (SRCS, TAGSHDRS): New variables.
+
+Fri Jun 24 14:42:59 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * exec.c (load_section) [AOUT, mapstart > addr]: Dereference
+ U->header in use of N_MAGIC.
+
+Fri Jun 24 02:40:32 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.c (load_section): Store protection of section in new local
+ VM_PROT. If vm_write of overlap page gets KERN_PROTECTION_FAILURE,
+ change protection of overlap page long enough to write it.
+ [AOUT]: Return ENOEXEC if there is overlap in NMAGIC or ZMAGIC.
+
+Thu Jun 16 16:15:17 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * exec.c (S_fsys_getroot): Implement new fsys_getroot interface.
+
+Mon Jun 13 04:06:24 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * exec.c (check): Store FILE in E->file.
+
+Tue May 31 17:20:24 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * a.out.h (struct exec): Type removed.
+ (OMAGIC, NMAGIC, ZMAGIC, N_MAGIC, N_MACHTYPE, N_BADMAG): Macros
+ removed. Just #include "a.out.gnu.h" to get all these defined.
+ (N_TXTLEN, N_TXTOFF): Use N_MAGIC instead of a_magic member.
+
+ * Makefile (DIST_FILES): Add a.out.gnu.h.
+ (exec.o, hostarch.o): Depend on a.out.gnu.h.
+
+Fri May 27 01:40:04 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.c (servercopy): New function to check the servercopy flag
+ and possibly vm_allocate a copy of argument data.
+ (do_exec): Take new args DTABLE_COPY, PORTARRAY_COPY,
+ INTARRAY_COPY. Use servercopy for ARGV, ENVP, DTABLE, PORTARRAY,
+ and INTARRAY.
+ (S_exec_exec): Take those new args and pass them to do_exec.
+ (S_exec_setexecdata): Take new args PORTS_COPY and INTS_COPY.
+ Use servercopy for PORTS and INTS.
+ (S_exec_startup): Never copy from info in *BOOT, always just set
+ the argument pointers to the pointers in *BOOT. MiG will copy and
+ deallocate the space as necessary.
+
+ * exec.c (check): Lock and unlock E->cntl->lock properly.
+ (finish_mapping): New function, broken out of finish.
+ (postload_section): New function, broken out of load_section.
+ (postload): New function, like load but calls postload_section.
+ (do_exec): Call finish_mapping and postload between load and finish.
+
+Tue May 24 19:49:16 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.c (S_exec_exec): Use strsep instead of strtok.
+ (main): Keep looping after error from mach_msg_server.
+
+Tue May 24 14:22:16 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * exec.c (load_section): Cast arg to vm_deallocate properly.
+
+Tue May 24 01:05:08 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.c (struct bootinfo): Remove members argv_vmalloc, envp_vmalloc.
+ (do_exec): Don't set BOOT->argv_vmalloc or BOOT->envp_vmalloc. If
+ ARGV_COPY is set, vm_allocate space for ARGV; likewise for
+ ENVP_COPY and ENVP.
+ (S_exec_startup): Don't test BOOT->argv_vmalloc and
+ BOOT->envp_vmalloc; BOOT->argv and BOOT->envp are always vm_allocate'd.
+ (do_mach_notify_no_senders): Likewise.
+ (load_section): Handle non-bss sections that are not page aligned.
+
+Mon May 23 22:01:11 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.c (S_exec_exec): Reverse args to memmem.
+ (do_exec): Don't vm_deallocate DEALLOCNAMES or DESTROYNAMES; mig
+ deallocates the space for us.
+
+Tue May 17 13:33:41 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * exec.c (S_exec_init): Don't deallocate host_priv until after
+ we've used it in the call to startup_essential_task.
+
+Thu May 12 03:53:57 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.c (S_fsys_init): Add reply port args.
+
+Wed May 11 16:03:07 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * exec.c (S_exec_init): Spelling fix.
+
+ * Makefile (exec.o): Add dependencies on fsys_S.h and notify_S.h.
+ (fsysServer.c, notifyServer.c): Notice that these rules build
+ fsys_S.h and notify_S.h respectively.
+
+Mon May 9 17:06:52 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * exec.c (exec_version, save_argv): New variable.
+ (main): Set save_argv.
+ (S_exec_init): Give the real argv to proc.
+ Call proc_register_version if we can.
+ (S_exec_init): Call startup_essential_task if we can.
+
+Thu May 5 06:25:02 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
+ * exec.c: Change return type of all RPC server functions to
+ kern_return_t. error_t is not compatible with the declarations in
+ the mig-generated header files.
+
+ * exec.c (do_exec): Set BOOT->stack_base and BOOT->stack_size with
+ mach_setup_thread.
+ (S_exec_exec): Pass msg type arg for FILE arg to exec_exec.
+
+Thu Dec 23 18:05:04 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.c (do_exec): For a newtask exec when EXEC_SECURE is not set
+ and OLDTASK is not null, send the `task_create' RPC on OLDTASK
+ rather than mach_task_self ().
diff --git a/ext2fs/ChangeLog b/ext2fs/ChangeLog
new file mode 100644
index 00000000..6af01e4a
--- /dev/null
+++ b/ext2fs/ChangeLog
@@ -0,0 +1,547 @@
+Mon Jul 15 18:00:26 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.h (struct disknode): Add debugging info.
+ (RECORD_LAST): New function.
+ (LAST_BUFSZ): New macro.
+ (enum last_act): New type.
+ * pager.c (pager_unlock_page, diskfs_grow, file_pager_read_page,
+ file_pager_write_page): Record debugging info.
+ * truncate.c (diskfs_truncate): Likewise.
+ * inode.c (diskfs_cached_lookup): Initialize debugging info.
+
+ * pager.c (file_pager_read_page): Initialize *WRITELOCK to 0.
+
+Tue Jun 25 12:22:21 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.h (sync_global): Renamed from sync_global_data. Add WAIT
+ flag. Don't call diskfs_set_hypermetadata.
+ (alloc_sync): Call diskfs_set_hypermetadata instead of sync_global_data.
+ (sync_super_block): Function removed.
+ * hyper.c (diskfs_readonly_changed): No longer clear the clean bit.
+ (diskfs_set_hypermetadata): Work correctly.
+ * truncate.c (diskfs_truncate): Add call diskfs_check_readonly to
+ clear clean bit.
+ * inode.c (diskfs_cached_lookup): Use diskfs_check_readonly
+ instead of diskfs_readonly.
+ * dir.c (diskfs_lookup_hard, diskfs_dirempty): Likewise.
+ * pager.c (diskfs_shutdown_pager): Don't shutdown the disk pager,
+ just sync it.
+ (diskfs_sync_everything): Call sync_global instead of pokel_sync.
+ (final_sblock): Variable removed.
+ (diskfs_grow): Add call diskfs_check_readonly to clear clean bit.
+
+Mon Jun 24 17:14:25 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (check_high_bits, diskfs_validate_owner_change,
+ diskfs_validate_group_change, diskfs_validate_mode_change,
+ diskfs_validate_author_change): New functions.
+ (write_node): For non-hurd filesystems, assert that no hurd
+ extensions should be used.
+
+Thu Jun 20 22:36:23 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.c (main): Rename diskfs_device_startup_argp to
+ diskfs_std_device_startup_argp.
+
+Sat Jun 15 15:56:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (read_disknode, write_inode): Use hurd-specific fields
+ only on a hurd filesystem.
+
+Fri May 10 09:32:43 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_statfs): Fix one reference to old name of ST
+ member.
+
+Thu May 9 11:52:20 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_statfs): Expect and fill in new format
+ statfs buffer.
+
+ * Makefile (ext2fs ext2fs.static): s/ioserver/iohelp/g.
+ * ext2fs.h: ioserver.h -> iohelp.h.
+
+Tue May 7 16:22:56 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (diskfs_S_file_get_storage_info): Rewrite for new
+ interface.
+
+Tue Apr 30 12:51:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (targets): Renamed from `target'.
+
+Fri Apr 26 16:10:19 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (makemode): Now `servers'.
+ (targets): Renamed from `target'; now include ext2fs.static.
+ (ext2fs.static-LDFLAGS): Renamed from `LDFLAGS'.
+ (ext2fs.static): Depend on same things as `ext2fs'.
+ (include ../Makeconf): Must come before dependency information.
+
+Wed Apr 17 13:30:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_write_disknode): Only sync DI if WAIT.
+
+ * dir.c (diskfs_lookup_hard): Set atime appropriately, and sync
+ the new atime if we are running synchronously (!).
+ (diskfs_dirempty): Likewise.
+ (diskfs_direnter_hard): Set mtime appropriately.
+ (diskfs_dirremove_hard): Likewise.
+ (diskfs_dirrewrite_hard): Likewise.
+
+Thu Apr 4 18:51:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_cached_lookup): Renamed from iget; all uses updated.
+ Initialize the CACHE_ID field in the new node.
+ * ext2fs.h (struct disknode): Get rid of NUMBER field; all references
+ replaced by references to the CACHE_ID field in the corresponding node.
+
+Fri Mar 29 11:03:58 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir.c (diskfs_null_dirstat): New function.
+ (diskfs_lookup_hard, diskfs_direnter, diskfs_dirremove_hard,
+ diskfs_dirrewrite_hard): Renamed from versions without `_hard' suffix.
+ Get rid of stuff now done by diskfs.
+
+ * ext2fs.c (main): Pass new argument to argp_parse.
+
+Tue Mar 19 17:52:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pager.c (pager_unlock_page, diskfs_grow): Try to make the logic
+ a bit simpler and more robust.
+
+Fri Feb 16 17:05:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.c (main): Check error return from diskfs_init_diskfs.
+
+Tue Feb 6 14:49:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.h (ext2_warning): Make a declaration, not a macro.
+ * msg.c (ext2_warning): Rename from _ext2_warning; don't take (or
+ print) a function argument any more.
+
+ * dir.c (diskfs_get_directs): When BUFSIZ is 0, allocate enough
+ extra space over the directory size to account for the worst case
+ difference between the ext2 and canonical formats.
+
+Sat Feb 3 11:27:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hyper.c (get_hypermetadata, diskfs_readonly_changed): Use
+ ext2_warning to print warnings instead of error().
+ * msg.c (_ext2_warning): Include `warning:' in message.
+
+Sat Feb 3 06:10:43 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hyper.c: Fixed handling of the filesystem `clean bit'.
+ (ext2fs_clean): New boolean variable.
+ (get_hypermetadata): Set it iff the clean bit is set on entry.
+ If not clean, complain and force read-only.
+ (diskfs_set_hypermetadata): Set clean bit only if ext2fs_clean is set.
+ (diskfs_readonly_changed): Complain if going writable and clean
+ bit clear.
+
+ * ext2fs.c: Include string.h for strerror decl.
+
+Tue Jan 30 22:25:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hyper.c (get_hypermetadata): Don't return any error value, just
+ panic if we can't read the superblock.
+ * ext2fs.c (main): Move warp_inode() inline. Make sure root inode
+ is really there. Don't check return value from get_hypermetadata.
+ (warp_inode): Function removed.
+ * ext2fs.h (get_hypermetadata): Returns void now.
+
+Tue Jan 30 17:04:41 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * pager.c (file_pager_read_page, file_pager_write_page): Check for
+ a page offset beyond the allocsize and return EIO.
+
+Wed Jan 17 15:11:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (diskfs_S_file_get_storage_info): Calculate the
+ right value for *RUNS_LEN.
+
+Tue Jan 16 17:37:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pager.c (diskfs_file_update): Ext2fs doesn't require that the
+ last block in the file always be allocated, so don't.
+ (diskfs_grow, pager_unlock_page): Don't set last_block_allocated.
+ * ext2fs.h (struct disknode): Get rid of last_block_allocated field.
+ * inode.c (read_disknode): Don't set last_block_allocated.
+ * truncate.c (diskfs_truncate): Likewise.
+
+ * Makefile (LDFLAGS): Add -static.
+
+Mon Jan 15 10:25:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pager.c (pager_unlock_page, diskfs_grow): Leave things in a
+ slightly more consistent state when block allocation errors happen.
+
+ * dir.c (diskfs_direnter): Don't include the terminating '\0' in
+ on-disk directory entry names.
+
+ * inode.c (diskfs_node_norefs): When losing our in-core copy of an
+ inode, remember which indirect blocks still have to be written.
+ * pokel.c (pokel_inherit, pokel_finalize): New functions.
+ * ext2fs.h (pokel_inherit, pokel_finalize): New declarations.
+
+ * dir.c (diskfs_lookup): Patch from ufs/dir.c: If we are returning
+ an error, then set the dirstat to be ignored by drop_dirstat.
+
+Sun Jan 14 13:17:33 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ialloc.c (diskfs_alloc_node): Set NP->istranslated to 0.
+ * inode.c (write_node): If NP isn't translated, force
+ DI->i_translator to 0.
+
+ * getblk.c (inode_getblk, block_getblk): Set dn_set_mtime too.
+
+Sat Jan 6 11:57:26 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * pager.c (pager_bucket): Made global.
+ (create_disk_pager): Pass MAY_CACHE to disk_pager_setup.
+ * ext2fs.c (main): Don't map in disk image here; create_disk_pager
+ now does it.
+
+Fri Jan 5 16:57:54 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ext2fs.h: Declare create_disk_pager.
+
+Thu Jan 4 18:46:40 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ext2fs.h (disk_pager, disk_pager_port, disk_image,
+ create_disk_pager): Decls removed.
+ Include hurd/diskfs-pager.h instead.
+
+ * pager.c (create_disk_pager): Use disk_pager_setup.
+
+Tue Nov 14 14:59:32 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir.c (dirscanblock): Apply mib's changes to ufs/dir.c.
+
+Sat Nov 4 20:01:01 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (diskfs_S_file_get_storage_info): Add FLAGS argument.
+
+Wed Nov 1 20:09:59 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.c (main): Add FLAGS arg to diskfs_startup_diskfs call.
+
+Mon Oct 23 17:49:16 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_get_translator, diskfs_set_translator): Only
+ support these if the filesystem's creator-os is `hurd'.
+ (read_disknode): Only check the i_translator field if the
+ filesystem's creator-os is `hurd'.
+
+Fri Oct 20 19:18:16 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.h (MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC,
+ MS_SYNCHRONOUS, MS_REMOUNT, S_APPEND, S_IMMUTABLE, IS_APPEND,
+ IS_IMMUTABLE): Macros deleted.
+
+Thu Oct 19 19:15:15 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pager.c (create_disk_pager, diskfs_get_filemap,
+ pager_clear_user_data): Don't use the p field in a upi.
+ (diskfs_get_filemap): Update/initialize the max_prot field.
+ Add the prot arg.
+
+ * ext2fs.h (struct user_pager_info): Add max_prot field, remove p.
+ * pager.c (drop_pager_softrefs): Declare PAGER, not UPI.
+ (enable_caching): The disk node is upi->node, not upi->np.
+ (diskfs_enable_pagers): Function removed.
+ * inode.c (read_disknode): Add DN and OFFSET variables. Use
+ log2_block_size to mask instead of doing a modulo with block_size.
+ * hyper.c (diskfs_readonly_changed): Typo.
+ (allocate_mod_map): Declare ERR; OLD_MOD_MAP_SIZE --> MOD_MAP_SIZE.
+ * dir.c (diskfs_lookup, diskfs_dirempty): Give diskfs_get_filemap
+ a protection arg.
+ * truncate.c (force_delayed_copies): Ditto.
+
+Wed Oct 18 21:00:28 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.h (struct disknode): Replace fileinfo field with pager.
+ * inode.c (diskfs_node_norefs, iget): Use pager field, not fileinfo.
+ * pager.c (diskfs_get_filemap_pager_struct, flush_node_pager,
+ diskfs_file_update, pager_clear_user_data, drop_pager_softrefs): Ditto.
+ * truncate.c (enable_delayed_copies, force_delayed_copies): Ditto.
+
+ * ext2fs.c (main): Always include VM_PROT_WRITE in max prot.
+ * hyper.c (diskfs_readonly_changed): Change the protection of
+ DISK_IMAGE to reflect the new state.
+ * pager.c (diskfs_enable_pagers): New function.
+
+Tue Oct 17 21:16:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pokel.c (_pokel_exec, pokel_flush): New functions.
+ (pokel_sync): Use _pokel_exec to do the work.
+ * pager.c (flush_node_pager): New function.
+ * ext2fs.h (pokel_flush, flush_node_pager): New declarations.
+
+ * hyper.c (allocate_mod_map): New function (from get_hypermetadata).
+ (zeroblock, modified_global_blocks): Define (were common).
+ (get_hypermetadata): Deallocate ZEROBLOCK if necessary. Use
+ allocate_mod_map to allocate MODIFIED_GLOBAL_BLOCKS.
+ (diskfs_readonly_changed): New function.
+ * main.c (main): Move stuff into get_hypermetadata.
+ Writable init code moved to diskfs_readonly_changed.
+
+ * inode.c (diskfs_node_reload): New function.
+ (iget, read_disknode): Code to set allocsize and the last_* fields
+ moved from iget to read_disknode.
+
+ * ext2fs.h (disk_pager): Type changed to struct pager.
+ (sync_global_ptr): Use DISK_PAGER, not DISK_PAGER->p.
+ * pager.c (create_disk_pager): Store the actual pager into DISK_PAGER.
+ * ext2fs.c (main): Use DISK_PAGER directly, not ->p.
+ * inode.c (iget): Ditto.
+ * pager.c (diskfs_shutdown_pager, diskfs_sync_everything): Ditto.
+
+Mon Oct 16 15:23:25 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_lost_hardrefs): #ifdef'd out contents removed.
+
+Fri Oct 13 17:50:23 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.c (main): Use argp for parsing.
+ (usage, USAGE, SHORT_OPTS, long_opts, console_stdio): Removed
+
+Thu Oct 12 18:16:00 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * hyper.c (get_hypermetadata): Use diskfs device functions &
+ variables instead of our own.
+ * ext2fs.h (device_arg, device_name, device_port, device_start,
+ device_size, device_block_size): Declarations removed.
+
+ * ext2fs.c (printf, _ext2_error, _ext2_panic, _ext2_warning):
+ Functions moved to msg.c
+ * msg.c: New file.
+ (printf, _ext2_error, _ext2_panic, _ext2_warning): Funcs from ext2fs.c.
+ * Makefile (SRCS): Remove devio.c, add msg.c.
+
+Sat Oct 7 20:47:19 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (diskfs_S_file_get_storage_info): run_elem_t --> off_t.
+
+ * ext2fs.c (diskfs_init_completed): Func deleted (now in libdiskfs).
+
+Fri Oct 6 17:24:57 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (diskfs_S_file_get_storage_info): Change type of
+ ADDRESSES to off_t **, and add BLOCK_SIZE parameter.
+
+Wed Oct 4 20:02:34 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_statfs): fsys_stb_bsize -> fsys_stb_iosize.
+ fsys_stb_fsize -> fsys_stb_bsize.
+
+Wed Sep 27 20:07:53 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ext2fs.c (main): Use diskfs routines to open the device.
+ Support both file and mach devices. Move the parse function here.
+ (parse_opt): Move into main (as a nested function).
+ * ext2fs.h (device_arg, device_start): New declarations.
+ * devio.c (dev_read_sync, dev_write_sync): Offset the address to
+ which we're doing i/o with DEVICE_START.
+
+Tue Sep 26 18:39:58 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (diskfs_S_file_get_storage_info): New function.
+ * Makefile (SRCS): Add storeinfo.c.
+
+Fri Sep 15 14:21:18 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * truncate.c (trunc_indirect): Only record an indirect block as
+ being modified when it actually is.
+
+ * truncate.c (diskfs_truncate): Use the new truncate functions.
+ (poke_pages): Gratuitous cosmetic changes.
+ (trunc_direct): Rewritten, new args.
+ (trunc_indirect): Rewritten, new args, now more general to support
+ all the various indirection levels.
+ (trunc_triple_indirect, trunc_double_indirect,
+ trunc_single_indirect): New functions.
+ (struct free_block_run): New structure.
+ (free_block_run_finish, free_block_run_free_ptr,
+ free_block_run_add, free_block_run_init, _free_block_run_flush):
+ New functions.
+ (trunc_dindirect, trunc_tindirect): Functions deleted.
+ (DIRECT_BLOCK, INDIRECT_BLOCK, DINDIRECT_BLOCK, TINDIRECT_BLOCK):
+ Macros deleted.
+
+ * getblk.c (block_getblk, ext2_getblk): u32 --> block_t.
+ * balloc.c (ext2_new_block): Ditto.
+ * hyper.c (get_hypermetadata): Ditto.
+ * pager.c (file_pager_write_page): Ditto.
+
+Wed Sep 13 12:30:23 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.c (diskfs_lookup): Don't attempt to lock NP if NPP is not
+ set. Don't even set NP if NPP is not set; use INUM as "lookup
+ succeeded flag" instead. Lookups for REMOVE and RENAME now *must*
+ set NPP.
+
+Tue Sep 12 11:03:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pokel.c (pokel_init): Initialize the free_pokes field.
+ (pokel_add): Assert that this malloc should succeed.
+ (pokel_sync): Don't hold POKEL's spin lock while syncing.
+
+ * ialloc.c (diskfs_alloc_node): Check for a non-zero ALLOCSIZE.
+
+Tue Sep 5 16:59:40 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pager.c (diskfs_pager_users): Ignore the disk pager when seeing
+ if there are any active pagers.
+ (diskfs_shutdown_pager): shutdown_one gets passed a pager, not a upi.
+ (diskfs_sync_everything): sync_one gets passed a pager, not a upi.
+
+Sun Sep 3 17:28:13 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ext2fs.c (thread_cancel): Removed.
+
+Fri Aug 25 14:37:32 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (ext2fs): Put libports in the right place in the
+ linking order.
+
+Thu Aug 24 10:34:15 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (ext2fs): Put all dependencies here.
+ (HURDLIBS): Removed.
+
+Tue Aug 22 19:39:06 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (HURDLIBS): Add libshouldbeinlibc.
+ Remove rules for error.o.
+
+Fri Jul 21 17:51:33 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * pager.c (diskfs_get_filemap): Free initial reference created by
+ pager_create.
+
+ * pager.c (diskfs_get_filemap): Avoid race with simultaneous
+ termination by looping until we win.
+ (pager_clear_user_data): Only clear UPI->np->dn->fileinfo if it
+ still points to us.
+
+Thu Jul 6 15:33:24 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Thu Jul 6 13:36:25 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * pager.c (diskfs_pager_users): New function.
+
+Tue Jun 27 13:08:33 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * pager.c (pager_unlock_page): Declare BLOCK volatile.
+
+Sat Jun 24 17:59:36 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (HURDLIBS): Add libihash.
+
+ * ext2fs.c (thread_cancel): Dummy function.
+
+ * dir.c (diskfs_direnter): Move assignment out of test.
+ (diskfs_get_directs): Fix print-format types.
+ * ialloc.c (diskfs_free_node): Fix print-format types.
+
+ * pager.c (thread_function): New function.
+ (create_disk_pager): Make a new thread to service paging requests.
+ * ext2fs.c (main): Have the initial thread die when it's done, leaving
+ other thread to do the work.
+
+ * pager.c (pager_bucket): New variable.
+ (pager_list_lock, file_pager_list): Variables deleted.
+ (create_disk_pager): Create pager_bucket.
+ (create_disk_pager, diskfs_get_filemap): Pass pager_bucket to
+ pager_create.
+ (pager_traverse): Function deleted.
+ (diskfs_get_filemap, pager_clear_user_data): Don't add/remove UPI
+ to/from the pager list, as there isn't any.
+ (diskfs_shutdown_pager, diskfs_sync_everything): Use
+ ports_bucket_iterate on pager_bucket to go through all the pagers,
+ instead of pager_traverse.
+ (diskfs_file_update, pager_traverse, allow_pager_softrefs,
+ drop_pager_softrefs): Change pager [un]ref calls to use the new ports
+ ref calls directly instead.
+ (pager_dropweak): New function (does nothing).
+ * ext2fs.h (struct user_pager_info): Remove the next & prevp fields.
+
+ * truncate.c (force_delayed_copies, enable_delayed_copies): Change
+ pager [un]ref calls to use the new ports ref calls directly instead.
+ * inode.c (diskfs_lost_hardrefs): Ditto.
+
+ * inode.c (diskfs_node_iterate): New function.
+ (write_all_disknodes): Re-implemented using diskfs_node_iterate.
+
+Wed Jun 14 16:19:49 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_get_translator): Conform to new memory usage
+ semantic.
+
+Fri May 19 20:56:51 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ext2fs.c (main): Use options_parse & diskfs_standard_startup_options
+ to do command line options parsing.
+ (long_opts): Was `options'. Most things removed, as
+ they're now handled by libdiskfs.
+ (parse_opt): New routine to deal with our few meagre remaining
+ options in the approved options_parse manner.
+
+Mon May 15 15:55:49 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ext2fs.c (main, usage, options): Add --writable & --nosync options.
+
+Sat May 13 20:04:55 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_statfs): Set st->fsys_stb_bsize, not _fsize,
+ to the block size.
+
+Sat May 13 05:02:59 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Remove exec_server_image.o.
+ (exec_server_image.o): Rule removed.
+
+Fri May 12 15:23:02 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ext2fs.c (main): Add an optional argument to the --sync option
+ that lets the user specify an initial sync interval.
+
+Thu May 11 13:30:06 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pager.c (pager_unlock_page): Give an explanation of why the file
+ system will shortly crash.
+
+ * balloc.c (ext2_free_blocks, ext2_new_block): Get rid of the
+ CHECK_STRICT variable, and just always do the tests it controlled.
+ * ext2fs.h: Get rid of the CHECK_STRICT variable.
+
+ * ext2fs.h (ext2_error, ext2_warning, ext2_panic, all callers changed):
+ Make these into macros that automagically supply the caller's
+ function name, and rename the original functions (which these
+ macros call) to have an underline prefix.
+ * ext2fs.c (ext2_error, ext2_warning, ext2_panic): Rename to add
+ the underline prefix. Also rearrange a bit to hold the lock
+ around the use of the global message buffer.
+
+ * ext2fs.c (main): Enable the bootstrap code.
+
+ * inode.c (read_disknode): Make st_blksize larger: 2 * pagesize.
+
+Wed May 10 14:03:34 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * getblk.c (block_getblk, inode_getblk): Return ENOSPC instead of
+ EIO when we can't allocate a new block.
+
+ * bitmap.c (find_next_zero_bit): Fix stupid typos (present in the
+ original linux source I copied this function from!) which were
+ causing occasional garbage results.
+
+Tue May 9 18:08:41 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ext2fs.h (DONT_CACHE_MEMORY_OBJECTS): Don't define this any
+ more, as the bugs we were using it to catch are supposedly gone :-|
diff --git a/fstests/ChangeLog b/fstests/ChangeLog
new file mode 100644
index 00000000..e7bbb31c
--- /dev/null
+++ b/fstests/ChangeLog
@@ -0,0 +1,47 @@
+Thu Jun 27 17:59:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (targets): Comment out opendisk for now.
+
+Mon Apr 29 16:43:44 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Delete variable.
+
+Thu Jul 6 21:03:12 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): New var.
+ (timertest, fstests, opendisk, fdtests): List object files.
+
+Wed Aug 31 12:02:01 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (targets): Added opendisk.
+ (SRCS): Added opendisk.c.
+ * opendisk.c: New file.
+
+Wed Aug 31 03:26:13 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * fstests.c: Include unistd.h.
+ (main): #if 0 out unused variables.
+
+Tue Aug 16 13:55:04 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * timertest.c (main): Don't sigpause; instead getchar, so we are
+ blocked in an RPC when the signal arrives--do sigpause on EOF.
+
+Thu Jul 21 19:14:30 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten to use new scheme.
+
+Tue Jul 19 12:43:00 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (OBJS): Deleted variables.
+ (fstests, fdtests, timertest): Don't use variable $(link) anymore.
+ (install): Install all three programs.
+
+Tue Jul 5 14:20:48 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (SRCS): New variable.
+
+Mon Jun 20 15:05:34 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (install): Use $(INSTALL_BIN) instead of cp.
+
diff --git a/hurd/ChangeLog b/hurd/ChangeLog
new file mode 100644
index 00000000..99a0fe2f
--- /dev/null
+++ b/hurd/ChangeLog
@@ -0,0 +1,844 @@
+Wed Jul 17 14:30:36 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile: gs/install-hdrs/install-headers/g.
+
+Tue Jul 16 11:37:35 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (INSTHDRS): Repair syntax.
+ (install-hdrs install): Correctly form pathname.
+
+Sat Jul 13 20:55:59 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile: Rewritten to get the right things installed in the
+ right places.
+
+ * Makefile (install-hdrs): New target; eq to install.
+
+Mon Jul 1 16:28:01 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * crash.defs (crash_dump_task): Use integer_t for sigcode. Add exc,
+ code, subcode, cttyid_port args.
+
+Wed Jun 12 15:56:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * startup_notify.defs (subsystem declaration): Use correct value
+ 29500 from subsystems file.
+
+Sat May 25 17:09:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * msg_request.defs (msg_sig_post_request,
+ msg_sig_post_untraced_request): Add SIGCODE argument.
+
+Wed May 22 18:50:14 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * process_reply.defs (proc_wait_reply): Add SIGCODE argument.
+
+Tue May 14 17:39:24 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * Makefile (install): Depend on $(includedir)/hurd and add rule to
+ create it.
+
+Sat May 11 17:32:20 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * Makefile: Quick hack for installing headers prior to building libc.
+ (hdrs): New variable, do wildcarding in $(srcdir).
+ (DIST_FILES): Use that.
+ (install): Install $(hdrs) in $(includedir)/hurd from $(srcdir).
+
+Thu May 9 12:44:43 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Reference *.h, instead of individual
+ files.
+
+ * Makefile (REMHDRS, dohdrs): Deleted targets.
+
+Tue May 7 12:54:19 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * io.defs (io_identity): Server passes back fs id port and st_ino
+ value.
+
+Mon May 6 15:28:50 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * msg.defs (msg_describe_ports): New rpc.
+
+ * fs.defs (file_get_storage_info): Change arguments & comment.
+
+Mon May 6 13:31:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * version.h (hurd_versions): Add version 0.0.
+ * hurd_types.h (HURD_RELEASE): Update to 0.0.
+
+ * hurd_types.h (struct procinfo): Add exitstatus and sigcode
+ members.
+
+ * hurd_types.h (FSTYPE_SOCKET): Doc fix.
+
+ * hurd_types.h (retry_type) [FS_RETRY_REAUTH]: Doc fix.
+
+ * hurd_types.h (file_storage_class): Add STORAGE_NULL,
+ STORAGE_CONCAT, STORAGE_INTERLEAVE, and STORAGE_LAYER.
+
+ * hurd_types.h (struct fsys_statfsbuf): Delete type.
+ (fsys_statfsbuf_t): Now based upon struct statfs.
+ * hurd_types.defs (fsys_statfsbuf_t): Now 16 long.
+ Import <sys/statfs.h>.
+
+ * fsys.defs (fsys_get_options): Add RPT.
+
+ * startup_notify.defs: New file.
+ * startup.defs (startup_request_notification): NOTIFY_PORT now
+ mach_port_send_t. New arg NAME.
+ * subsystems: Add startup_notify.
+
+ * process.defs (proc_getprocinfo): Make FLAGS inout.
+
+ * process.defs (proc_get_tty): New RPC.
+ * process_request.defs (proc_get_tty_request): Likewise.
+
+ * process.defs (proc_mark_stop, proc_mark_exit): Add SIGCODE arg.
+ (proc_wait): Return SIGCODE parm too.
+ * process_request.defs (proc_mark_stop_request,
+ proc_mark_exit_request): Likewise.
+
+ * process.defs (proc_setowner): Add CLEAR parm.
+ * process_request.defs (proc_setowner_request): Likewise.
+
+ * process.defs (proc_setmsgport): Return old message port with
+ mach_port_send_t to permit more flexibility in proc server.
+
+ * fs.defs (file_sync): New parm `omit_metadata'.
+ (dir_link, dir_rename): Add parm `excl'.
+
+ * io.defs (io_verify_identity): Delete RPC.
+ (io_identity): New RPC.
+
+Fri May 3 16:56:22 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * hurd_types.h (EXEC_INHERITED): Macro removed.
+ (EXEC_TRACED): Macro removed.
+ (INIT_TRACEMASK): New enum constant.
+
+ * msg.defs (msg_*_exec_flags): RPCs removed.
+
+ * msg.defs (msg_sig_post, msg_sig_post_untraced): Add SIGCODE arg.
+ (msg_startup_dosync): RPC removed.
+
+ * io.defs (io_select): Remove ID_TAG arg.
+ (io_verify_identity): New RPC.
+
+ * auth.defs (auth_user_authenticate, auth_server_authenticate): Remove
+ second rendezvous port arg, leaving just one, of type mach_port_send_t.
+
+Tue Apr 30 13:54:34 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * auth.defs: Mark with INTR_INTERFACE.
+ (auth_user_authenticate): Remove sreplyport arg.
+
+Sun Apr 28 19:13:42 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * interrupt.defs: Remove 1 second waittime spec.
+ (interrupt_operation): Add waittime arg.
+ * msg.defs (msg_startup_dosync): Add waittime arg.
+
+Thu Apr 25 16:27:20 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pfinet.defs: New file.
+ * subsystems: Added pfinet.
+
+Fri Feb 9 11:30:08 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * tioctl.defs: Import hurd/ioctl_types.h with <> instead of "".
+
+Thu Feb 8 20:35:34 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ioctl_types.h: Protect from multiple inclusion.
+
+Tue Dec 26 17:47:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.defs (io_select): Fix ifdefs around the reply port decls to
+ work properly when the server side ports are desired.
+
+Wed Dec 20 15:21:41 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * process.defs (proc_getsidport): Use mach_port_send_t instead of
+ mach_port_make_send_t.
+
+Tue Dec 19 18:28:35 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * process.defs (proc_getsidport): Make SESSPORT's type
+ mach_port_make_send_t, since proc always just holds a receive right.
+
+Mon Dec 11 15:21:42 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Added netfs.h.
+ (REMHDRS): Added ../libnetfs/netfs.h.
+
+Fri Dec 1 15:45:11 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * tioctl.defs (tioctl_tiocsig): Needs one int arg.
+
+Tue Nov 21 09:58:13 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * interrupt.defs (interrupt_operation): Include SEQNO server
+ argument.
+
+Mon Nov 20 18:26:52 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * msg_request.defs: Add skip for `Obsolete io_select_done'
+ to match msg.defs.
+ * msg_reply.defs: Ditto.
+
+Sat Nov 18 23:33:55 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * crash.defs (crash_dump_task): Add sreplyport arg.
+ * crash_reply.defs: New file.
+
+Mon Nov 13 15:05:04 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.defs (exec_startup): RPC removed; replaced with skip.
+
+Fri Nov 10 10:02:17 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * process_request.defs: New file.
+
+Sat Nov 4 23:15:01 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsys_reply.defs (fsys_startup_reply, fsys_get_options_reply): Tyop.
+
+Tue Oct 31 15:54:20 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hurd_types.h: Add missing */.
+
+Tue Oct 31 14:14:39 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * process.defs (proc_getprocinfo): New parm THREADWAITS.
+
+Tue Oct 31 02:23:55 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * msg.defs (msg_report_wait): Add string out arg.
+
+Mon Oct 30 10:41:06 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * hurd_types.h (PI_FETCH_TASKINFO, PI_FETCH_THREADS,
+ PI_FETCH_THREAD_BASIC, PI_FETCH_THREAD_SCHED,
+ PI_FETCH_THREAD_WAITS): New flags.
+ (procinfo): New (buried) members `rpc_block' and `died'.
+ * msg.defs (msg_report_wait): Change second arg to be a real
+ thread_t. Change returned reason from a string to an rpc code.
+
+ * process.defs (proc_getprocinfo): New parm FLAGS.
+
+ * hurd_types.h (enum file_storage_class): Added new classes
+ STORAGE_MEMORY and STORAGE_TASK. Doc fixes. Drop all the MUTATED
+ bits.
+ (STORAGE_MUTATED) New flag.
+ * fs.defs (file_get_storage_info): New parm FLAGS.
+
+ * hurd_types.h (PI_LOGINLD, PI_WAITING, PI_TRACED, PI_GETMSG): New
+ flags.
+
+ * io.defs (io_select): Make sreply port also available if
+ IO_SELECT_REPLY_PORT is defined.
+
+Fri Oct 27 14:43:17 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * fsys.defs (fsys_startup): New parm OPENFLAGS.
+
+ * hurd_types.defs (SCP): New macro.
+ * io.defs (io_write, io_restrict_auth): Add SCP to incoming
+ variable sized arrays.
+ * socket.defs (socket_create_address, socket_setopt, socket_send):
+ Likewise.
+ * fs.defs (file_exec, file_set_translator): Likewise.
+
+ * socket.defs (socket_create_address): Drop parm `binding'.
+
+ * fs.defs: Added reply port option to all RPC's.
+
+ * fsys.defs (fsys_get_options): New RPC.
+ * fsys_reply.defs (fsys_get_options_reply): New stub.
+ * fs.defs (file_get_fs_options): New RPC.
+
+ * msg.defs (msg_report_wait): New RPC.
+
+ * fs.defs (file_invoke_translator): Function deleted.
+
+ * fsys_reply.defs (fsys_startup_reply, fsys_getfile_reply,
+ fsys_syncfs_reply, fsys_set_options_reply, fsys_getpriv_reply,
+ fsys_forward_reply): New functions, completing interface.
+
+ * fsys.defs: Doc fix.
+
+Wed Oct 25 15:59:25 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec_startup.defs: New file.
+ * subsystems: Add exec_startup at 30500.
+
+Thu Oct 12 16:56:52 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.defs: Add INTR_INTERFACE marker.
+
+ * fs.defs (file_exec): Remove dealloc[] keywords, and revert
+ EXEC_TASK arg to task_t from mach_port_send_t. We cannot safely
+ use dealloc ool or move rights with the current RPC system.
+
+Tue Oct 10 17:29:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * exec.defs [EXEC_IMPORTS]: Use this if defined.
+ (exec_exec, exec_init, exec_setexecdata): Use file_t for receiver.
+ (exec_exec): Use mach_port_send_t for FILE.
+
+Sat Oct 7 05:26:20 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * fs.defs (file_exec): Add dealloc[] flag to most args.
+
+Fri Oct 6 17:18:36 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsys.defs (fsys_getpriv): Change types of returned ports to
+ mach_port_send_t.
+
+ * fs.defs (file_get_storage_info): Change type of ADDRESSES to
+ off_array_t. Add ADDRESS_UNITS out parameter.
+ (dir_link): Swap the DIR and FILE parameters.
+
+ * hurd_types.defs (off_array_t, size_t, ssize_t): New types.
+ * hurd_types.h (off_array_t): New type.
+
+Tue Oct 3 13:51:00 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * hurd_types.h (struct fsys_statfsbuf): fsys_stb_bsize ->
+ fsys_stb_iosize. fsys_stb_fsize -> fsys_stb_bsize.
+
+Tue Sep 26 11:16:56 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * hurd_types.h (file_storage_class): New type.
+ * fs.defs (file_get_storage_info): New RPC; use the slot that used
+ to hold file_pathconf.
+
+Sun Sep 17 17:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * fs.defs (file_truncate): RPC renamed to file_set_size.
+
+ * io.defs (io_pathconf): New RPC.
+ * fs.defs (file_pathconf): RPC removed (replaced with skip).
+
+ * hurd_types.h (EXEC_STACK_ARGS): New macro.
+
+Fri Sep 15 21:32:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * subsystems: core renamed to crash.
+ * paths.h (_SERVERS_CRASH): New macro.
+ (_SERVERS_CORE): Macro removed.
+ * core.defs: Renamed to crash.defs.
+ * crash.defs (crash_dump_task): Renamed from core_dump_task.
+
+Thu Aug 24 11:55:28 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * fsys.defs (fsys_forward): New rpc.
+ * subsystems: Remove tserver.
+ * tserver.defs: Removed.
+
+Mon Aug 21 14:08:52 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * tserver.defs (tserver_translate): New file.
+ * subsystems: Add tserver.
+
+Mon Jul 17 15:05:16 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * socket.defs (socket_create): Change type of SERVER to pf_t.
+ (socket_create_address, socket_fabricate_address): Rename first
+ arg to `server', of type mach_port_t (so it can be either pf_t or
+ socket_t).
+ (socket_recv): Change type of ADDR to mach_port_send_t.
+ (socket_send, socket_recv): Change type of AMOUNT to
+ mach_msg_type_number_t.
+ * hurd_types.h (pf_t): New type.
+ * hurd_types.defs (pf_t): New type.
+
+Mon Jun 26 19:23:38 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fsys_reply.defs (fsys_goaway_reply): New routine, in its proper
+ place.
+
+Fri May 12 18:54:17 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * fsys.defs (fsys_set_options, fsys_mod_readonly): Replace
+ mod_readonly with the more general set_options interface.
+
+Mon Mar 20 21:44:59 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (REMHDRS): Add ../libps/ps.h.
+
+Mon Mar 6 15:25:27 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * process.defs: Doc fix.
+
+Tue Jan 17 03:14:22 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * msg_request.defs: Fix typo reply->request.
+
+ * io.defs (io_select): Add user reply port and reply timeout args.
+ Make arg SELECT_TYPE inout, remove SELECT_RESULT out arg.
+ * io_reply.defs: Synchronize with new io_select definition.
+
+ * hurd_types.h (EXEC_INHERITED): New macro.
+
+ * msg_reply.defs: Prepend `msg_' to all RPC names.
+ (dir_changed, file_changed): Remove these skips.
+ * msg_request.defs: Prepend `msg_' to all RPC names. Add
+ msg_sig_post_untraced_reply and intervening skips.
+ * msg.defs: Prepend `msg_' to all RPC names.
+ (dir_changed, file_changed): RPCs moved to fs_notify.defs.
+ (msg_get_exec_flags, msg_set_exec_flags,
+ msg_set_some_exec_flags, msg_clear_some_exec_flags): New RPCs.
+ * fs_notify.defs: New file, broken out of msg.defs.
+ * subsystems: Add fs_notify at 20500.
+
+ * msg_reply.defs: Add sig_post_untraced_reply, and intervening skips.
+
+Mon Jan 16 17:34:34 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hurd_types.h (EXEC_TRACED): New macro.
+ * msg.defs (sig_post_untraced): New RPC.
+
+ * msg.defs (io_select_done): RPC removed, replaced with a skip.
+ * io_reply.defs: Add ID_TAG arg.
+ * io_request.defs (io_select_request): Remove RETURN_PORT arg.
+ * io.defs (io_select): Remove RETURN_PORT arg; make ID_TAG inout.
+
+Fri Dec 9 00:35:47 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * io.defs (io_read, io_write, io_readable): Use
+ mach_msg_type_number_t in place of int.
+
+Tue Sep 13 11:03:23 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * auth.defs (auth_getids, auth_server_authenticate): Reverse
+ these changes; the auth server doesn't want them.
+
+ * msg.defs (get_init_ports, get_init_ints, get_dtable,
+ get_env_variable): Added `dealloc' to variable sized OUT parameters.
+
+Mon Sep 12 19:28:35 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * auth.defs (auth_getids, auth_server_authenticate): Added
+ `dealloc' to variable sized OUT parameters.
+ * fs.defs (file_getfh, dir_readdir, file_get_translator): Likewise.
+ * io.defs (io_read): Likewise.
+ * login.defs (login_get_location, login_get_input_devices): Likewise.
+ * process.defs (proc_gethostname, proc_getallpids,
+ proc_getexecdata, proc_getprocargs, proc_getprocenv,
+ proc_getloginpids, proc_getsessionpgids, proc_getsessionpids,
+ proc_getpgrppids): Likewise.
+ * socket.defs (socket_whatis_address, socket_getopt, socket_recv):
+ Likewise.
+
+Sat Sep 10 06:08:19 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * tioctl.defs (sizes_t): Rename to winsize_t; make struct, not array.
+ * ioctl_types.h (sizes_t): Removed.
+ (winsize_t): New typedef for struct winsize.
+ (modes_t, speeds_t, cc_t): Use proper termios.h types.
+
+Tue Aug 30 04:23:25 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * fs.defs (dir_pathtrans): Renamed to dir_lookup; fixed comment.
+
+Fri Aug 26 12:45:51 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * fs.defs (file_set_translator): Separate FLAGS arg into PASSIVE_FLAGS
+ and ACTIVE_FLAGS; rename TRANS and EXISTING args to less confusing
+ names.
+ * hurd_types.h: New flag FS_TRANS_SET.
+
+Thu Aug 25 11:55:27 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * auth.defs (auth_user_authenticate, auth_server_authenticate):
+ Changed rend_int to be a port; mach_port_send_t on both sides.
+ * io.defs (io_reauthenticate): Pass a port instead of an int
+ for secondary rendezvous.
+ * process.defs (proc_reauthenticate): Pass a port instead of an
+ int for secondary rendezvous.
+
+ * hurd_types.h (retry_type): Removed FS_RETRY_NONE; added
+ explicit initializers to keep the values constant.
+
+ * hurd_types.h (FSTYPE_EXT2FS): New macroo.
+
+ * hurd_types.h (struct procinfo): New member `logincollection'.
+
+ * fsys.defs (fsys_syncfs, fsys_mod_readonly): New RPC's.
+ * fsys_reply.defs: Added two skips corresponding to new RPC's.
+
+Wed Aug 17 20:03:29 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * io.defs (io_select): Make RETURN_PORT arg mach_port_poly_t.
+ * msg.defs (io_select_done): Make NOTIFY_PORT arg mach_port_poly_t.
+
+Wed Aug 17 15:23:03 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * term.defs (termctty_open_terminal): New RPC.
+
+Mon Aug 15 11:49:54 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * startup.defs (startup_essential_task): Add sreplyport arg.
+ * startup_reply.defs: Add startup_essential_task_reply.
+
+Tue Aug 9 19:43:50 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * core.defs (core_dump_task): Add SIGERROR arg.
+
+ * interrupt.defs (INTERRUPT_TIMEOUT): New macro.
+ Specify `waittime' with that value.
+
+Mon Aug 8 15:49:30 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+
+Thu Jul 21 15:44:43 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES, HDRS): Name header files explicitly.
+
+Fri Jul 15 22:53:29 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * subsystems: Rename utmp to login.
+ Mark begin and end of spread of subsystems used by ioctls.
+ * login.defs: Renamed from utmp.defs; renamed all calls.
+
+Fri Jul 15 18:20:34 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * fsys.defs (fsys_startup): Remove DOTDOT_NODE.
+ (fsys_getroot): Add arg DOTDOT_NODE.
+
+Thu Jul 14 11:46:56 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * utmp.defs: New file.
+
+Mon Jul 11 20:07:52 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * hurd_types.defs (INTR_ROUTINE): Macro removed.
+ (INTR_INTERFACE): New macro.
+ * fs.defs: Invoke INTR_INTERFACE. Remove all INTR_ROUTINE uses.
+ * io.defs, process.defs, socket.defs: Likewise.
+
+Fri Jul 8 15:53:02 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * hurd_types.h (retry_type): Added new magical types "machtype"
+ and "/".
+ * fs.defs (dir_pathtrans): Doc fix.
+
+ * msg.defs: Doc fix.
+
+ * process.defs (proc_wait): Doc fix.
+
+ * socket.defs (socket_fabricate_address): Added sockaddr_type
+ arg.
+
+Fri Jul 8 15:26:19 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * fs.defs (file_invoke_translator): New RPC.
+
+ * hurd_types.defs (INTR_ROUTINE): New macro.
+ * socket.defs: Use INTR_ROUTINE for all interruptible RPCs.
+ * process.defs: Likewise.
+ * fs.defs: Likewise.
+ (dir_readdir): Make this interruptible.
+
+Fri Jul 8 14:22:11 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * tioctl.defs: Remove ifdefs that were omitting most of the
+ ioctls. Added RPCs for missing codes 118-123. Added
+ block of skips between 99 and 100. Added INTR to appropriate
+ calls.
+
+Tue Jul 5 14:46:49 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (DIST_FILES): Added subsystems.
+
+ * fsys_reply.defs: Added fsys_getroot_reply in its proper place.
+
+Wed Jun 29 13:06:42 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * ifsock.defs (ifsock_setsockaddr, ifsock_assume_responsibility):
+ Deleted RPCs.
+
+ * msg.defs (set_init_port, set_fd): Change back to using
+ mach_port_send_t instead of mach_port_t for PORT arg.
+
+Tue Jun 28 18:39:02 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * msg.defs (get_dtable, set_dtable): Add REFPORT arg.
+ (get_fd, set_fd): Add REFPORT and FD args.
+ (set_init_port, set_fd): Use mach_port_t instead of
+ mach_port_send_t for PORT arg.
+ (get_environment): Add dealloc flag to VALUE arg.
+
+ * fsys.defs: Add RPT arg to all routines except fsys_init (which
+ has an unconditional sreplyport arg).
+
+ * hurd_types.defs (sreply_port_t): New type.
+ (RPTDECL, RPT, RPTLAST): New macros (moved from io.defs).
+ * io.defs (reply_port_t): Type removed.
+ (RPTDECL, RPT, RPTLAST): Macros moved to hurd_types.defs.
+ * auth.defs (reply_port_t): Type removed.
+ (auth_user_authenticate, auth_server_authenticate): Use
+ sreply_port_t in place of reply_port_t.
+ * fsys.defs (fsys_init): Likewise.
+
+ * msg.defs (sig_post): Likewise.
+ * process.defs (proc_getmsgport, proc_setmsgport, proc_wait): Likewise.
+ * startup.defs (startup_procinit, startup_authinit): Likewise.
+
+Fri Jun 24 03:54:53 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * term.defs (term_become_ctty): Renamed to term_open_ctty.
+
+ * process.defs (proc_setprocargs): Renamed to proc_set_arg_locations.
+ (proc_get_arg_locations): New rpc.
+ * process_reply.defs: Add skip for proc_get_arg_locations.
+
+Thu Jun 23 11:59:49 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * term.defs (term_become_ctty): Delete SIGPT arg.
+
+Wed Jun 22 16:34:51 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * term.defs: Changed NEWTTY arg to be mach_port_send_t.
+
+Thu Jun 16 00:48:45 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * hurd_types.defs (file_changed_type_t, dir_changed_type_t): New types.
+ * hurd_types.h (INIT_PORT_LOGINCOLL): Removed.
+ (dir_changed_type_t, file_changed_type_t): New typedefs.
+
+ * fs.defs (file_check_access): Renamed from file_access, interface
+ changed.
+
+Wed Jun 15 21:24:46 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * fsys.defs (fsys_getroot): New interface; similar to
+ fs.defs:dir_pathtrans. This eliminates the noxious need for
+ dir_pathtrans to work on null pathnames for non directories. This
+ is the Right Thing.
+
+ * fs.defs (file_get_translator_cntl): Return port as
+ `mach_port_send_t' not `fsys_t'.
+
+Wed Jun 15 12:13:35 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * fs.defs (file_access): New RPC.
+
+Tue Jun 14 13:57:18 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * hurd_types.h: Reorganized; many comments fixed or improved.
+
+ * hurd_types.h (enum verstype): Removed declaration.
+ (enum term_bottom_type): New type.
+ (TERM_ON_MACHDEV, TERM_ON_HURDIO, TERM_ON_MASTERPTY): Moved
+ into enum above.
+ (FSTYPE_SOCKET, FSTYPE_MISC): New macros.
+
+ * msg.defs (dir_changed, file_changed): New RPCs.
+ * fs.defs (dir_notice_changes, file_notice_changes): New RPCs.
+ * hurd_types.h (enum dir_changed_type, enum file_changed_type):
+ New declarations.
+
+ * fs.defs (dir_readdir): Totally new interface.
+
+Mon Jun 13 07:14:23 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * socket.defs: Corrected subsystem to 26000; was 20000, same as fs.
+
+Mon Jun 6 23:07:08 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * ioctl_types.h (modes_t, speeds_t, ccs_t, sizes_t): Make these
+ arrays of the appopriate sizes, not pointers.
+
+Sun Jun 5 22:41:08 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * tioctl.defs: Fix subsystem.
+
+Fri May 27 07:53:15 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * exec.defs (exec_exec): Add `servercopy' flag to DTABLE,
+ PORTARRAY, and INTARRAY args.
+ (exec_startup): Add `dealloc' flag to ARGV, ENVP, PORTARRAY, and
+ INTARRAY args.
+ (exec_setexecdata): Add `servercopy' flag to PORTS and INTS args.
+
+Wed May 25 13:32:31 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * io_reply.defs (io_readable_reply, io_get_openmodes_reply): Fix
+ typos.
+
+Thu May 12 00:43:08 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * fsys_reply.defs: New file.
+ * fsys.defs (reply_port_t): Define type.
+ (fsys_init): Add sreplyport arg.
+
+ * process.defs (proc_setmsgport): Add sreplyport arg.
+ * process_reply.defs: Add proc_setmsgport_reply.
+
+ * version.h: Added multiple inclusion protection.
+ (struct hurd_version): Fixed `vers' member.
+ (hurd_versions): Add braces.
+
+Wed May 11 16:05:43 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * startup.defs (startup_uname, startup_register_version): For
+ some bizzaro reason these didn't get removed. Now they are for real.
+
+Tue May 10 18:17:41 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * tioctl.defs, ioctl_types.h: New files.
+
+Mon May 9 14:28:06 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * version.h: New file.
+
+ * startup.defs (startup_uname, startup_register_version): Removed
+ * process.defs (proc_uname, proc_register_version): New RPCs.
+ * process_reply.defs: Added skips corresponding to proc_name
+ and proc_register_version.
+
+Wed May 4 01:01:11 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * msg_request.defs: New file.
+
+Sun May 1 17:40:48 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * hurd_types.h (utsname_t): New typedef.
+ * hurd_types.defs (utsname_t): Define type for MiG.
+ Import <sys/utsname.h>.
+
+Fri Apr 29 16:19:10 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * io.defs (io_prenotify, io_postnotify): File offsets should be
+ vm_offset_t.
+
+ * io.defs (io_async): NOTIFY_PORT and ASYNC_ID_PORT
+ should be mach_port_send_t.
+ (io_get_icky_async_id): ICKY_ASYNC_ID_PORT should be
+ mach_port_send_t.
+ (io_map_cntl): Returned object should be mach_port_send_t.
+
+ * io.defs: Added new type reply_port_t; added sreplyport of
+ that type to all the stubs when REPLY_PORTS is defined.
+
+ * term.defs (term_getctty): CTTY arg should be mach_port_send_t
+ for the convenience of servers.
+
+ * io.defs (io_readnotify): New RPC.
+ * shared.h (use_readnotify_size, readnotify_size): New members.
+
+ * socket.defs: Change ports returned from servers to be
+ mach_port_send_t for the convenience of servers.
+
+ * ifsock.defs (ifsock_assume_responsibility): Just take over the
+ bootstrap port directly; this is more reliable anyway.
+
+ * fs.defs (file_set_translator): EXISTING arg should be
+ mach_port_send_t.
+
+ * shared.h (shared_io): Added optimal_transfer_size.
+
+ * hurd_types.h (HURD_RELEASE): New macro.
+
+ * startup.defs (startup_uname, startup_register_version): New
+ RPCs.
+
+ * startup.defs (startup_essential_task): require host priv port
+ for security.
+
+ * exec.defs (exec_exec) : FILE arg should be mach_port_send_t.
+
+Thu Apr 28 22:58:14 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * msg.defs (reply_port_t): Define type.
+ (sig_post): Use reply_port_t for sreplyport arg; remove #ifdef.
+ * msg_reply.defs (reply_port_t): Define type.
+ (sig_post_reply): Use reply_port_t for first arg.
+
+Wed Apr 27 06:39:46 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * msg.defs (sig_post): Put sreplyport arg inside #ifdef MSG_SREPLYPORT.
+
+Thu Apr 21 21:17:37 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * msg.defs (get_init_port, set_init_port, get_fd, set_fd): Make
+ PORT arg mach_port_send_t.
+ (get_environment, set_environment,
+ get_env_variable, set_env_variable): New routines.
+
+Thu Feb 17 17:59:13 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * hurd_types.defs (io_statbuf_t): Change size to 32 ints.
+
+Tue Feb 8 20:53:25 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * msg_reply.defs: Change subsystem to `msg_reply'. MiG-generated
+ header files use `#ifndef _subsystem_user_' to protect against
+ multiple inclusion, so two headers with the same subsystem conflict.
+
+Thu Feb 3 03:45:18 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * hurd_types.h: Include <mach/task_info.h> and <mach/thread_info.h>
+ before using task_basic_info and thread_basic_info in sturct procinfo.
+
+Mon Jan 24 17:33:00 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * msg_reply.defs: New file.
+
+Tue Dec 21 01:11:04 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * socket.defs: Fix typos.
+
+Mon Dec 6 22:52:00 1993 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Made snapshot.
+
+Mon Dec 6 22:36:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * hurd_types.defs (flock_t): Defined.
+ * hurd_types.h (flock_t): Added typedef.
+
+Mon Dec 6 19:28:27 1993 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * process.defs (proc_get_collports): Designate as INTR, also
+ return the pids.
+
+Wed Dec 1 21:41:06 1993 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * hurd_types.h: Remove deprecated information:
+ INBAND_MAX_DATA, FS_LOOKUP_* bits.
+ Added PI_ZOMBIE.
+
+ * process.defs (proc_getmsgport): Now is INTR.
+
+ * io.defs (io_get_conch, io_release_conch, io_eofnotify,
+ io_prenotify, io_postnotify, io_readsleep, io_sigio):
+ Remove cntl argument.
+
+Tue Nov 23 12:18:21 1993 Michael I. Bushnell (mib at ernst.gnu.ai.mit.edu)
+
+ * fsys.defs (fsys_startup): control_port is now mach_port_send_t.
+
+ * io.defs (io_map): remove `xx' argument.
+
+ * process.defs (proc_handle_exceptions): forwardport is now
+ mach_port_send_t.
+
+ * auth.defs, auth_reply.defs: Removed auth_combine and extended
+ auth_makeauth to take multiple auth ports.
+
+ * shared.h, io.defs: Changed `it' terminology to `conch'.
+
+Mon Nov 22 22:58:59 1993 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * io.defs: Changed io_map to use mach_port_send_t.
+
+ * auth.defs: Changed auth_user_authenticate arg newport to be
+ mach_port_send_t.
+
+
diff --git a/include/ChangeLog b/include/ChangeLog
new file mode 100644
index 00000000..9110eea4
--- /dev/null
+++ b/include/ChangeLog
@@ -0,0 +1,4 @@
+Sat Jul 13 21:02:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile: New file.
+
diff --git a/init/ChangeLog b/init/ChangeLog
new file mode 100644
index 00000000..5e1d8a2b
--- /dev/null
+++ b/init/ChangeLog
@@ -0,0 +1,491 @@
+Tue Jul 16 11:55:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (process_signal): Set WUNTRACED in call to waitpid.
+
+Sun Jul 7 21:18:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (init_stdarrays): Don't use unsafe MOVE_SEND in call to
+ interruptible proc_setexecdata.
+ (open_console): Likewise, for file_set_translator.
+
+Wed Jul 3 14:46:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (init): Add libports (because libfshelp.so requires it,
+ lose lose lose).
+
+ * init.c (process_signal) [case SIGCHLD]: Correctly place `break'
+ *outside* of for loop.
+
+Mon Jul 1 18:07:56 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (process_signal): On SIGCHLD, keep reaping children until
+ we get an error; tolerate all errors silently.
+
+Mon Jun 24 16:29:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (kill_multi_user): Kill user tasks before doing
+ notify_shutdown.
+
+Fri Jun 21 16:17:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init.c (open_console): Pass correct length of argument vector
+ when setting active translators.
+ <maptime.h>: New include.
+ (open_console): Print error messages for /dev/console failures.
+ Reduce the scope of some variables.
+
+Thu Jun 20 14:51:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (mapped_time): New variable.
+ (launch_multi_user): Initialize mapped_time.
+
+ * init.c (_PATH_RUNCOM): Move to /libexec/rc.
+
+Wed Jun 19 14:49:08 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (run_for_real): Doc fix.
+ (startup_terminal): Deal properly if one of the run_for_real's
+ fails.
+ (launch_single_user): If the shell can't be started, crash the
+ system.
+ (process_rc_script): Return non-zero if run_for_real fails.
+ (process_signal) [SIGCHLD]: If process_rc_script fails, go back to
+ single-user.
+ (S_startup_essential_task): Likewise.
+ (init_ttys): Return non-zero if we fail.
+ (startup_terminal): Return non-zero if we don't actually start
+ anything.
+ (startup_ttys): Return non-zero if we fail.
+ (launch_multi_user): If init_ttys fails, go back to single. If we
+ go multi, actually set system_state accordingly. If startup_ttys
+ fails, go back to single.
+ (init_ttys, reread_ttys): Test return value of setttyent
+ correctly.
+
+Mon Jun 17 14:05:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (libutil-libsubst): Define (as -lutil); and link
+ against -lutil.
+ * init.c: Include <ttyent.h>, <argz.h>, and <utmp.h>.
+ (add_terminal, init_ttys, free_ttys, startup_terminal,
+ startup_ttys, find_line, reread_ttys, restart_terminal): New functions.
+ (launch_multi_user): Use new functions to do things right.
+ (session_pid): Delete variable.
+ (kill_multi_user): Call free_ttys.
+ (process_signal) [SIGHUP]: Call reread_ttys.
+ [SIGCHLD/MULTI]: Call restart_terminal.
+
+ * init.c (run_for_real): New arg `setsid'; only do setsid if it's
+ set. All callers changed. Return the pid of the new program,
+ not the task port. All callers changed.
+
+ * Makefile (dir): Now init.
+
+ * init.c: Include "mung_msg_S.h" instead of "msg_S.h".
+ (S_msg_sig_post, S_msg_sig_post_untraced): Include SIGCODE parm.
+ * Makefile (mung_msg_S.h): New rule.
+
+Mon Jun 17 00:17:37 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init.c (run_for_real, open_console, process_signal, reboot_mach,
+ run_for_real, run, reboot_system): Use error instead of fprintf.
+ (notify_shutdown): Always emit terminating newline.
+
+Fri Jun 14 11:07:30 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c: Include <paths.h>, <error.h>, <sys/wait.h>, and
+ <hurd/msg_reply.h>.
+ (S_startup_essential_task): When all core servers have
+ showed up, call launch_single_user only if RB_SINGLE; otherwise
+ call process_rc_script. Call init_stdarrays here.
+ (open_console): New function; massaged guts taken from
+ launch_single_user. Be more verbose if we do something unusual.
+ (launch_single_user): Call open_console. Don't call
+ init_stdarrays here.
+ (system_state, default_ints): New variables.
+ (main): Initialize SYSTEM_STATE and DEFAULT_INTS.
+ (run_for_real): Pass default_ints.
+ (run): Likewise.
+ (S_startup_essential_task): Delete var INITDONE; use SYSTEM_STATE
+ instead.
+ (launch_single_user): Set SYSTEM_STATE to SINGLE.
+ (process_rc_script): New function.
+ (launch_multi_user): New function.
+ (kill_everyone): New function.
+ (kill_multi_user): New function.
+ (do_fastboot, rc_pid, session_pid): New variables.
+ (process_signal): New function; guts from S_msg_sig_post_untraced.
+ Handle state transitions here when programs exit. Process
+ SIGTERM, and SIGHUP appropriately.
+ (_PATH_RUNCOM, _PATH_LOGIN): New macros.
+ (S_msg_sig_post_untraced): Only validate signal here; use
+ process_signal to do the work, but reply first.
+ (S_msg_sig_post): Likewise.
+ (notify_shutdown): New function.
+ (reboot_system): Use notify_shutdown.
+
+Wed Jun 12 16:01:17 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (S_startup_request_notification): Fill NT->name properly.
+
+Mon May 27 11:33:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init.c (launch_single_user): Open TERM RDWR.
+ Use openport to get FD from TERM.
+ Print errno on assertion failure for FD.
+
+Fri May 24 12:29:20 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (reboot_mach): Insert a brief pause before actually
+ rebooting the kernel so that the user has a chance to see any
+ messages that may be displayed.
+
+Tue May 14 11:26:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (S_msg_get_exec_flags, S_msg_set_all_exec_flags,
+ S_msg_set_some_exec_flags, S_msg_clear_some_exec_flags): Delete
+ functions.
+ (S_msg_describe_ports): New function.
+
+ * init.c (reboot_system): Print prettier messages for shutdown
+ notifications.
+
+Fri May 10 09:25:16 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c: <hurd/startup_notify.h> -> "startup_notify_U.h".
+ * Makefile (OBJS): Add startup_notifyUser.o.
+
+Thu May 9 19:03:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (struct ntfy_task): New member `name'.
+ (S_startup_request_notification): Expect and record name.
+ (S_msg_startup_dosync): Delete function.
+ Include <hurd/startup_notify.h>.
+ (reboot_system): Use new startup_dosync interface.
+
+ * init.c (init_stdarrays): Use new authentication interface.
+
+Mon May 6 14:25:02 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (init_version): Upgrade to 0.0.
+
+Mon Apr 29 16:49:18 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (reboot_system): Not quite yet, though.
+
+Sun Apr 28 19:15:30 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * init.c (reboot_system): Use 1 minute timeout on reply to
+ msg_startup_dosync.
+
+Wed Apr 17 17:06:30 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init.c (launch_single_user): Set an active, not passive,
+ translator on /tmp/console, so it works with / read-only.
+ * Makefile (init): Depend on libfshelp.
+
+Mon Mar 25 16:55:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (init): Add explicit dependency so that
+ libshouldbeinlibc is included.
+ * init.c: Include <wire.h>.
+ (main): Delete declarations of _etext _edata, and __data_start.
+ (main): Use new wire_task_self function instead of doing it ourselves.
+
+Tue Dec 19 18:29:19 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c (launch_core_servers, run_for_real): Call proc_mark_exec
+ on child proc ports.
+
+Tue Dec 5 15:22:25 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init.c (launch_single_user): Change initialization of TERMINAL
+ to match new term driver arg syntax. Start terminal as ordinary
+ passive translator instead of special weird kludge. Deleted
+ variables foobiebletchcount, foobiebletch, and termtask.
+
+Sun Nov 5 02:03:33 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init.c (reboot_system): Add flags, noise, & noise_len params to
+ proc_getprocinfo. Deallocate NOISE if necessary.
+ (S_msg_report_wait): New function.
+
+Tue Oct 24 16:49:08 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c: Undo last change of 9Oct95.
+
+Mon Oct 9 04:29:39 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c: Pass dealloc args in file_exec calls.
+
+Thu Jul 6 15:34:23 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * init.c (S_msg_sig_post, S_msg_sig_post_untraced): Reverse order
+ of these definitions.
+
+ * init.c: Include <hurd/msg_server.h>.
+ (reboot_mach): Insert extra parens around assignment inside while
+ test.
+ (launch_core_servers): Remove assignment from inside if test.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Thu Feb 9 17:18:21 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (S_msg_sig_post_untraced): Omit obnoxious "random child
+ died" messages.
+
+Sat Jan 28 15:00:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c: Include "msg_S.h". Prepend `msg_' to msg.defs server
+ functions. Add stubs for new msg.defs functions.
+
+Thu Jan 19 01:59:30 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c: Prepend `msg_' to names of msg.defs RPCs.
+
+Mon Nov 28 15:00:42 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c (run_for_real): Print error msg if file_exec fails.
+ (shell_pid): New variable.
+ (demuxer): Also try msg_server.
+ (launch_single_user): Open terminal O_RDWR and dup to 0, 1, 2.
+ Set shell_pid after starting shell.
+ (S_sig_post): New function; grok SIGCHLD and restart shell if
+ shell_pid dies.
+ * Makefile (OBJS): Add msgServer.o.
+ (init.o): Depend on msg_S.h.
+
+Fri Nov 11 14:06:43 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * init.c (fakeboot): New variable.
+ (STANDALONE): Deleted macro.
+ (main): Set FAKEBOOT if -f was passed.
+ (reboot_mach): Use FAKEBOOT flag instead of STANDALONE macro.
+ (launch_core_servers): Likewise.
+ (reboot_system): Likewise. Also don't exit here; let
+ reboot_mach exit.
+
+Tue Nov 1 04:13:49 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c (main): Use &_start for start of text to wire.
+ (main): Use assert_perror in place of `assert (!err)'.
+ (launch_single_user): Use _PATH_CONSOLE and _PATH_BSHELL instead
+ of hardcoded strings.
+ Check for error from io_stat on console, print message.
+ Add #if 0'd code to prompt for shell name.
+
+Tue Sep 6 13:09:40 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * init.c (launch_single_user): Don't run device or pipes
+ servers by default. Run terminal server inside /tmp if
+ /dev/console isn't set up properly.
+
+Wed Aug 31 01:03:51 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c (launch_single_user): Test TERMTASK as port, not boolean;
+ if null, properly initialize TERM to MACH_PORT_NULL as well.
+
+Tue Aug 30 17:07:07 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c: Include <hurd/term.h>.
+
+ * init.c (run): Use file_name_lookup instead of path_lookup.
+ (launch_single_user): Likewise.
+ (run_for_real): Likewise.
+
+ * init.c (init_stdarrays): Use new authentication protocol.
+
+Mon Aug 22 16:44:11 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (run_for_real): If CTTY is set, then also put the process
+ in its own login collection.
+
+Fri Aug 19 12:16:47 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (run_for_real): New arg `ctty'. All callers changed.
+ If it's set, then set the new process's INIT_PORT_CTTYID
+ accordingly, and change CTTY's owner to be the new process pgrp.
+ (launch_single_user): Don't free TERM right away, only do it
+ after we've passed it to run_for_real on the shell.
+
+Thu Aug 18 16:48:08 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (main): Print informative bootstrap messages.
+ (launch_core_servers): Likewise.
+ (launch_single_user): Likewise.
+ (run): Don't print meaningless bootstrap clutter.
+
+ * init.c (launch_single_user): Use task_info; it's less intrusive
+ than task_suspend/task_resume.
+
+ * init.c (launch_single_user): Run pipes before shell.
+
+ * init.c (launch_single_user): Pause a bit to give term a chance
+ to startup.
+
+ * init.c (bootstrap_args): New variable.
+ (main): Set `bootstrap_args' appropriately from argv[1].
+ (prompt_for_servers): Deleted variable.
+ (run): Use RB_INITNAME instead of prompt_for_servers.
+ Only do `pausing' hack if RB_KDB is set.
+ (run_for_real): Likewise.
+
+ * init.c (main): Wire text and data segment soon after starting.
+
+Wed Aug 17 19:20:51 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c (run_for_real): Call proc_setsid on new proc.
+
+Wed Aug 17 14:04:18 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (init_stdarrays): New function.
+ (launch_single_user): Call init_stdarrays.
+
+Tue Aug 16 00:44:20 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c (launch_single_user): Prompt whether to run term or dev.
+
+ * init.c (main): Set default_ports[INIT_PORT_BOOTSTRAP] to STARTUP
+ while running proc and auth, and then reset it to null.
+
+Mon Aug 15 23:16:24 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * init.c (launch_single_user): Use a volatile var to choose dev or
+ term, so you can set it in gdb.
+ (main): Set bootstrap port to MACH_PORT_NULL after fetching it.
+ Don't set default_ports[INIT_PORT_BOOTSTRAP]; it should be nil.
+
+Mon Aug 15 11:40:34 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (launch_core_servers): Renamed from launch_system.
+ Don't start dev, term, pipes, or shell here.
+ (S_startup_procinit): Call launch_core_servers instead of
+ launch_system.
+ (S_startup_authinit): Likewise.
+ (launch_single_user): New function.
+ (S_startup_essential_task): Call launch_single_user once
+ all the core servers have registered themselves here.
+
+Fri Aug 12 14:05:07 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (launch_system): Comment out use of dev for now.
+
+Thu Aug 11 12:25:32 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init.c (launch_system): Run dev instead of term.
+
+Thu Jul 21 17:45:45 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+ * init.c: Include "startup_reply_U.h instead of "startup_reply.h".
+ (demuxer): Remove S_ from references to startup_server.
+
+Tue Jul 19 20:36:30 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * init.c (run_for_real): Moved unused var BUF inside #if 0 where used.
+ (launch_system): Call proc_set_arg_locations, not proc_setprocargs.
+
+Tue Jul 19 12:44:56 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (init): Don't use variable $(link) anymore.
+
+Tue Jul 5 14:21:34 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * init.c (launch_system): After terminal driver is running,
+ reopen stdin so that we always read through it. Don't do
+ output, because that (for reliability) shouldn't depend
+ on the terminal driver.
+ (main): Open stdin separately from stdout/stderr.
+
+ * Makefile (SRCS): New variable.
+
+Fri Jul 1 11:19:46 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * init.c (run_for_real): Return the task we created. All callers
+ changed.
+
+Tue Jun 21 14:08:37 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * init.c (launch_system): Correct first arg to pipes.
+
+Mon Jun 20 15:06:19 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * init.c (launch_system): Look for pipes in /hurd/pipes, not
+ /bin/pipes.
+
+ * init.c (run_for_real): Comment out old code that prompts user;
+ abandon attempt if we can't run something.
+
+ * Makefile (install): Use $(INSTALL_BIN) instead of cp.
+
+Fri Jun 17 00:13:50 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * init.c (demuxer): Use S_startup_server instead of startup_server.
+
+Wed Jun 15 18:14:59 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * init.c (launch_system): Start pipes server after starting shell.
+
+ * init.c (run_for_real): New parms ARGS and ARGLEN. All callers
+ changed.
+
+Tue May 24 02:20:55 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * init.c (launch_system): Start the shell before doing proc_setmsgport.
+
+Tue May 24 00:05:43 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * init.c (launch_system): Call proc_setmsgport before fsys_init.
+
+Mon May 16 14:43:47 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * init.c (reboot_system): Restore bits commented out on May 12;
+ the proc bug responsible has been fixed.
+
+Fri May 13 14:59:12 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * init.c (launch_system): Make sure the auth server's proc state
+ is correct *before* calling startup_authinit_reply.
+
+Thu May 12 15:13:10 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * init.c (reboot_system): Comment out bits checking to see
+ if the procserver has died; they aren't quite right.
+
+ * init.c (S_startup_essential_task): Don't take over the exception
+ port of the task right now; this interferes with things too much.
+
+Thu May 12 02:22:08 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * init.c (launch_system): Don't call _hurd_proc_init; just call
+ proc_setprocargs ourselves.
+ (launch_system): Do proc_setmsgport last.
+ (run, run_for_real): Pass argv[0] with name of program.
+
+Mon May 9 14:30:11 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * init.c (init_version): New variable.
+ (launch_system): Call proc_register_version; don't call
+ proc_setprocargs (which is done by _hurd_proc_init). Give
+ correct argument to _hurd_proc_init.
+
+ * init.c (S_startup_register_version, S_startup_uname): Deleted.
+
+Fri May 6 13:01:04 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * init.c (S_startup_register_version, S_startup_uname):
+ New functions (temporary only).
+
+Thu May 5 19:15:39 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * init.c: Include <hurd/msg.h> for prototype of startup_dosync.
+ Change return types of MiG stubs to be kern_return_t.
+ (S_startup_essential_task): Expect new arg CREDENTIAL and
+ validate it.
+
+Thu May 5 07:44:21 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
diff --git a/libdirmgt/ChangeLog b/libdirmgt/ChangeLog
new file mode 100644
index 00000000..28d23867
--- /dev/null
+++ b/libdirmgt/ChangeLog
@@ -0,0 +1,5 @@
+Tue Apr 11 11:14:27 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: New file.
+
+
diff --git a/libdiskfs/ChangeLog b/libdiskfs/ChangeLog
new file mode 100644
index 00000000..b24ffc8f
--- /dev/null
+++ b/libdiskfs/ChangeLog
@@ -0,0 +1,2448 @@
+Mon Jul 15 21:37:12 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_checkdirmod): diskfs_isowner returns error or
+ zero, so invert sense of tests.
+
+ * lookup.c (diskfs_lookup): If we get an error from
+ diskfs_checkdirmod, diskfs_nput the node we picked up; the caller
+ won't want it.
+
+ * dir-renamed.c (diskfs_rename_dir): When unlocking FDP, only do
+ it if we FDP != TDP. Also, only do step two (changing .. in the
+ directory being moved) if FDP != TDP.
+
+Sat Jul 13 20:05:27 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Repeat
+ diskfs_start_protid and auth_server_authenticate for as we get
+ EINTR.
+
+Sun Jul 7 21:07:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_S_fsys_init): Don't use unsafe MOVE_SEND in
+ call to exec_init.
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Don't use
+ unsafe MOVE_SEND in auth_server_authenticate.
+
+Sun Jul 7 10:27:37 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts-version.c (_print_version): Include HURD_RELEASE in default.
+
+Sat Jul 6 16:27:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts-version.c: New file.
+ * Makefile (OTHERSRCS): Add opts-version.c.
+
+Sat Jul 6 13:32:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * node-drop.c (diskfs_drop_node): If this might be a special
+ symlink, then truncate it even though NP->allocsize might be
+ clear.
+
+Wed Jul 3 11:22:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-identity.c (diskfs_S_io_identity): Fetch identity using
+ fshelp_get_identity rather than creating it ourselves.
+ * diskfs.h (struct node): Remove member `identity'.
+ * node-drop.c (diskfs_drop_node): Don't deallocate NP->identity.
+ * node-make.c (diskfs_make_node): Don't initialize NP->identity.
+
+Thu Jun 27 10:07:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init-startup.c (diskfs_startup_diskfs): Don't call
+ diskfs_readonly_changed here anymore.
+
+ * disk-pager.c (disk_pager_setup): Check diskfs_readonly variable
+ instead of calling diskfs_check_readonly.
+
+ * Makefile (LCLHDRS): Add diskfs-pager.h.
+
+Tue Jun 25 21:55:24 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts-std-runtime.c (parse_opt): Add hair to share arg parsing
+ state between two parsers that use the same parse_opt function at
+ the same time.
+
+Mon Jun 24 14:55:50 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init-startup.c (diskfs_S_startup_dosync): Don't crash the
+ filesystem, just do a clean sync.
+ * node-drop.c (diskfs_drop_node): Call diskfs_check_readonly
+ before making mods.
+ * priv.h (_diskfs_diskdirty): New variable.
+ * diskfs.h (diskfs_check_readonly): New function.
+ * readonly.c (_diskfs_diskdirty): New var.
+ (diskfs_check_readonly): New function.
+ (diskfs_set_readonly): After clean sync, clear _diskfs_diskdirty.
+ * rdwr-internal.c (_diskfs_rdwr_internal): Use
+ diskfs_check_readonly instead of diskfs_readonly.
+ * node-create.c (diskfs_create_node): Likewise.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+ * file-set-trans.c (diskfs_S_file_set_translator): Likewise.
+ * disk-pager.c (disk_pager_setup): Likewise.
+ * dir-unlink.c (diskfs_S_dir_unlink): Likewise.
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise.
+ * dir-rename.c (diskfs_S_dir_rename): Likewise.
+ * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise.
+ * dir-mkdir.c (diskfs_S_dir_mkdir): Likewise.
+ * dir-lookup.c (diskfs_S_dir_lookup): Likewise.
+ * dir-link.c (diskfs_S_dir_link): Likewise.
+ * conch-fetch.c (iohelp_fetch_shared_data): Likewise.
+ * remount.c (diskfs_remount): Likewise.
+
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): If
+ auth_server_authenticate fails, then fill with empty IDs. We
+ can't permit interruption, because this is a simpleroutine.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Validate rdev
+ change before making it.
+ * file-chflags.c (diskfs_S_file_chflags): Validate flags change
+ before making it.
+ * lithp.h (dithkfth_validate_author_change): New macro.
+ * file-chauthor.c (dithkfth_TH_file_chauthor): Validate new author
+ before changing it.
+ * node-create.c (diskfs_create_node): Validate group change before
+ making it.
+ * file-chown.c (diskfs_S_file_chown): Likewise.
+ * node-create.c (diskfs_create_node): Validate mode change before
+ making it.
+ * file-set-trans.c (diskfs_S_file_set_translator): Likewise
+ * file-chmod.c (diskfs_S_file_chmod): Likewise.
+ * node-create.c (diskfs_creade_node): Validate owner change before
+ making it.
+ * file-chown.c (diskfs_S_file_chown): Likewise.
+ * Makefile (OTHERSRCS): Add validate-mode.c, validate-group.c,
+ validate-author.c, validate-flags.c, validate-rdev.c, and
+ validate-owner.c.
+ * validate-mode.c, validate-group.c, validate-author.c,
+ validate-flags.c, validate-rdev.c, validate-owner.c: New files.
+ * diskfs.h (diskfs_validate_mode_change,
+ diskfs_validate_owner_change, diskfs_validate_group_change,
+ diskfs_validate_author_change, diskfs_validate_flags_change,
+ diskfs_validate_rdev_change): New decls.
+
+Fri Jun 21 00:18:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsys-options.c (diskfs_S_fsys_get_options): Use
+ fshelp_return_malloced_buffer to setup the return data.
+ * file-get-fs-opts.c (diskfs_S_file_get_fs_options): Likewise.
+ * opts-set.c (diskfs_set_options): Supply INPUT arg to
+ fshelp_set_options.
+
+ * opts-append-std.c (diskfs_append_std_options): Use argz_add
+ instead of rolling our own. Deal with errors.
+ <argz.h>: New include.
+
+Wed Jun 19 21:57:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init-startup.c (diskfs_S_startup_dosync): Pass HANDLE to
+ ports_lookup_port. Declare ERR.
+
+ * opts-get.c (diskfs_get_options): Call diskfs_append_std_options to
+ do most of the work.
+ * opts-append-std.c: New file.
+ * opts-set.c: New file (old version renamed).
+ * opts-std-runtime.c: Renamed from opts-set.c.
+ (diskfs_set_options): Function removed.
+ (struct parse_hook): New type.
+ (set_opts, parse_opt): New functions.
+ (common_argp, parents, diskfs_std_runtime_argp): New variables.
+ * diskfs.h (diskfs_parse_runtime_options): Decl removed.
+ (diskfs_std_startup_argp): Renamed from diskfs_startup_argp, now a
+ structure decl, not a pointer decl.
+ (diskfs_std_device_startup_argp): Renamed from
+ diskfs_device_startup_argp, now a structure decl, not a pointer
+ decl.
+ (diskfs_set_options): Update decl (now takes argz & argz_len).
+ (diskfs_runtime_arg): New declaration.
+ (diskfs_std_runtime_argp, diskfs_append_std_options): New declarations.
+ * opts-runtime-parse.c, opts-runtime-unparse.c: Files removed.
+ * opts-std-startup.c (parse_dev_startup_opt): Use argp_error.
+ (diskfs_startup_arg, diskfs_device_startup_arg): Variables removed.
+ (diskfs_std_startup_argp): Renamed from startup_argp, exported.
+ (diskfs_std_device_startup_argp): Renamed from dev_startup_argp,
+ exported.
+ * fsys-options.c (diskfs_S_fsys_set_options): Don't split
+ arguments, just call diskfs_set_options with what we got.
+ * opts-runtime.c: New file.
+ * Makefile (OTHERSRCS): Add opts-std-runtime.c, opts-append-std.c,
+ opts-runtime.c. Remove opts-runtime-parse.c, opts-runtime-unparse.c
+
+Thu Jun 13 10:05:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (MIGSTUBS): Add startup_notifyServer.o.
+ * init-startup.c (diskfs_S_startup_dosync): Uncomment function.
+ * demuxer.c (diskfs_demuxer): Call diskfs_startup_notify_server.
+ * init-startup.c (_diskfs_init_completed): NOTIFY doesn't need
+ deallocation.
+
+ * boot-start.c (diskfs_S_fsys_init): Build version string
+ correctly.
+
+Tue May 14 11:14:12 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (OTHERSRCS): Remove init-completed.c.
+
+ * node-drop.c (diskfs_drop_node): Fix typo.
+
+Sat May 11 01:11:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts-std-startup.c (parse_dev_startup_opt, parse_startup_opt):
+ Use ARGP_ERR_UNKNOWN instead of EINVAL.
+ * opts-set.c (diskfs_set_options): Likewise.
+
+Fri May 10 17:15:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-identity.c: New file.
+ * Makefile (IOSRCS): Add io-identity.c.
+ * diskfs.h (diskfs_fsys_identity): New variable.
+ (struct node): New member `identity'.
+ * init-init.c (diskfs_fsys_identity): New variable.
+ (diskfs_init_diskfs): Initialize diskfs_fsys_identity.
+ * node-make.c (diskfs_make_node): Initialize NP->identity.
+ * node-drop.c (diskfs_drop_node): Free NP->identity if it's been
+ allocated.
+
+Thu May 9 11:52:52 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * protid-make.c (diskfs_make_protid): Delete function.
+ * diskfs.h (diskfs_make_protid): Delete declaration.
+
+ * init-startup.c (_diskfs_init_completed): Don't need to insert
+ right any more now that it's a poly arg.
+ Provide helpful name to init.
+
+ * fsys-options.c (diskfs_S_fsys_get_options): Accept and ignore
+ replyport parameters.
+
+ * file-sync.c (diskfs_S_file_sync): Accept and ignore new parm
+ OMITMETADATA.
+
+ * priv.h: ioserver.h -> iohelp.h.
+ * diskfs.h: Likewise.
+ * file-sync.c (diskfs_S_file_sync): s/ioserver/iohelp/g
+ * io-prenotify.c (diskfs_S_io_prenotify): Likewise.
+ * io-get-conch.c (diskfs_S_io_get_conch): Likewise.
+ * io-modes-off.c (diskfs_S_io_clear_some_openmodes): Likewise.
+ * io-modes-on.c (diskfs_S_io_set_some_openmodes): Likewise.
+ * io-modes-set.c (diskfs_S_io_set_all_openmodes): Likewise.
+ * io-read.c (diskfs_S_io_read): Likewise.
+ * io-readable.c (diskfs_S_io_readable): Likewise.
+ * io-rel-conch.c (diskfs_S_io_release_conch): Likewise.
+ * io-seek.c (diskfs_S_io_seek): Likewise.
+ * io-stat.c (diskfs_S_io_stat): Likewise.
+ * io-write.c (diskfs_S_io_write): Likewise.
+ * conch-fetch.c (iohelp_fetch_shared_data): Likewise.
+ * conch-set.c (iohelp_put_shared_data): Likewise.
+ * node-make.c (diskfs_make_node): Likewise.
+ * node-rdwr.c (diskfs_node_rdwr): Likewise.
+ * Makefile (libdiskfs.so): Likewise.
+
+ * dir-rename.c (diskfs_S_dir_rename): Understand new parm EXCL and
+ do the right thing with it.
+ * dir-link.c (diskfs_S_dir_link): Likewise.
+
+Thu May 9 12:12:41 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Don't pass CRED
+ port in auth_server_authenticate.
+
+ * io-select.c (diskfs_S_io_select): Removed TAG arg.
+
+Thu May 9 11:42:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * filedev.c (diskfs_get_file_device): Deallocate most things we
+ got back from file_get_storage_info even if we didn't get an error.
+
+ * filedev.c (diskfs_get_file_device): Fix type of DATA & _DATA.
+ BLOCKSIZE -> BLOCK_SIZE. Copy name from DATA, not DEV_NAME_BUF.
+
+Mon May 6 20:12:34 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * filedev.c (diskfs_get_file_device): Enable new version.
+
+Fri May 3 15:55:44 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * filedev.c [0] (diskfs_get_file_device): Rewrite to use new interface.
+
+Tue Apr 30 14:39:06 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init-startup.c: Include <string.h> and <hurd/startup.h>.
+ (diskfs_startup_diskfs): If not bootstrap filesystem, call
+ _diskfs_init_completed here.
+ (diskfs_S_startup_dosync): New function (commented out).
+ (_diskfs_init_completed): New function.
+ * init-completed.c: Delete file.
+ * init-init.c (diskfs_shutdown_notification_class): New variable.
+ (diskfs_init_diskfs): Initialize diskfs_shutdown_notification_class.
+ * diskfs.h (diskfs_shutdown_notification_class): New variable.
+ * boot-start.c (diskfs_S_fsys_init): diskfs_init_completed ->
+ _diskfs_init_completed.
+ * priv.h (_diskfs_init_completed): New declaration.
+ * diskfs.h (diskfs_init_completed): Delete function.
+
+Mon Apr 29 15:42:23 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * name-cache.c (struct lookup_cache): Add HDR, remove NEXT & PREV.
+ (lookup_cache): Change type to struct cacheq.
+ (mru_cache, lru_cache): Variables removed.
+ (make_mru, make_lru, init_lookup_cache): Functions removed.
+ (find_cache, diskfs_purge_lookup_cache,
+ diskfs_check_lookup_cache): Use cacheq functions.
+
+Sun Apr 28 15:22:30 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * protid-make.c: Add obsolescence link warning.
+
+Tue Apr 23 11:05:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * node-drop.c (diskfs_drop_node): Don't do anything special for
+ socket naming points.
+ * Makefile (OTHERSRCS): Add dead-name.c.
+ * dead-name.c: New file.
+ * ifsock.c (diskfs_S_ifsock_getsockaddr): Request notification for
+ new SOCKADDR; count that notification as a reference.
+
+Fri Apr 12 15:56:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * name-cache.c (diskfs_enter_lookup_cache): Never cache . or ..
+
+Thu Apr 11 17:59:18 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * console.c: Include <hurd.h>.
+
+ * Makefile (fsys-MIGSFLAGS, fs-MIGSFLAGS, io-MIGSFLAGS,
+ ifsock-MIGSFLAGS): Reference fsmutations.h in $(srcdir).
+
+ * boot-start.c (diskfs_start_bootstrap): Print helpful message
+ before doing anything else.
+
+Wed Apr 10 16:47:21 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * name-cache.c (struct lookup_cache): Add NEXT & PREV fields.
+ Rename LEN back to NAME_LEN.
+ (lru_cache, mru_cache): New variables.
+ (first_cache, last_cache): Variables removed.
+ (make_mru, make_lru, find_cache, init_lookup_cache): New functions.
+ (diskfs_enter_lookup_cache, diskfs_purge_lookup_cache,
+ diskfs_check_lookup_cache): Rewrite to use the linked list. Deal
+ with negative entries.
+
+Tue Apr 9 12:59:02 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * lookup.c (diskfs_lookup): Deal with DS or NP being 0.
+ * name-cache.c (diskfs_check_lookup_cache): Correctly handle the
+ case where the lookup returns DIR itself.
+
+ * diskfs.h (diskfs_enter_lookup_cache, diskfs_purge_lookup_cache,
+ diskfs_check_lookup_cache): Renamed from versions without `lookup_'.
+ * name-cache.c (diskfs_enter_lookup_cache, diskfs_purge_lookup_cache,
+ diskfs_check_lookup_cache): Likewise.
+ * direnter.c (diskfs_direnter): Similarly, rename use.
+ * dirrewrite.c (diskfs_dirrewrite): Likewise.
+ * dirremove.c (diskfs_dirremove): Likewise.
+ * lookup.c (diskfs_lookup): Likewise.
+
+Sun Apr 7 15:29:02 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * name-cache.c (diskfs_check_cache): Declare I.
+ (struct lookup_cache, diskfs_enter_cache): Change NAMELEN field to LEN.
+
+Wed Apr 3 16:02:45 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * node-drop.c (diskfs_drop_node): Don't call
+ _diskfs_purge_cache_deletion.
+ * name-cache.c (_diskfs_purge_cache_deletion): Delete function.
+
+ * diskfs.h (diskfs_cached_lookup): New declaration.
+ (struct node): New member `cache_id'.
+
+Tue Apr 2 12:50:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * name-cache.c (diskfs_enter_cache): Don't set LC->next->prev if
+ LC->next is null.
+ (diskfs_purge_cache): If freeing node at LOOKUP_CACHE_TAIL, bump
+ LOOKUP_CACHE_TAIL back itself too.
+ (_diskfs_purge_cache_deletion): Likewise.
+
+ * lookup.c (diskfs_lookup): When doing diskfs_checkdirmod check,
+ don't return success when we should return ENOENT, just because
+ checkdirmod won. Also enter successful lookups for CREATE or
+ LOOKUP in the name cache.
+
+Fri Mar 29 13:57:37 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * io-map-cntl.c: Initialize shared page magic number.
+
+Mon Mar 25 09:30:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * name-cache.c (statistics): New variable.
+ (diskfs_check_cache): Keep statistics on cache performance.
+
+Fri Mar 22 17:51:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts-runtime-parse.c (diskfs_parse_runtime_options): Supply new
+ argument to argp_parse.
+
+Fri Mar 22 15:44:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * lookup.c (diskfs_lookup): Dereference NP in call to
+ diskfs_checkdirmod.
+ * direnter.c (diskfs_direnter): Don't fall off end.
+ * diskfs.h (diskfs_enter_cache, diskfs_purge_cache,
+ diskfs_check_cache): Add declarations.
+ * dir-rename.c (diskfs_S_dir_rename): Use new args for
+ diskfs_dirrewrite and diskfs_dirremove.
+ * dir-renamed.c (diskfs_rename_dir): Likewise.
+ * dir-clear.c (diskfs_clear_directory): Use new diskfs_dirremove
+ args.
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise.
+ * dir-unlink.c (diskfs_S_dir_unlink): Likewise.
+
+ * Makefile (OTHERSRCS): Add direnter.c, dirrewrite.c, dirremove.c,
+ and lookup.c.
+
+Wed Mar 20 14:34:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_lookup_hard): Remove mention of ENOTDIR and
+ EACCES errors.
+ * diskfs.h (diskfs_null_dirstat): New function.
+ * dir-lookup.c (diskfs_S_dir_lookup): Don't check cache here.
+ * dir-unlink.c (diskfs_S_dir_unlink): Don't frob cache here.
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise.
+ * dir-clear.c (diskfs_clear_directory): Likewise.
+ * node-create.c (diskfs_create_node): Likewise.
+ * dir-renamed.c (diskfs_rename_dir): Likewise.
+ * dir-rename.c (diskfs_S_dir_rename): Likewise.
+ * dir-link.c (diskfs_S_dir_link): Likewise.
+ * direnter.c: New file.
+ * dirrewrite.c: Likewise.
+ * dirremove.c: Likewise.
+ * lookup.c: Likewise.
+ * diskfs.h (diskfs_lookup): Renamed to be diskfs_lookup_hard.
+ (diskfs_direnter): Renamed to be diskfs_direnter_hard.
+ (diskfs_dirrewrite): Renamed to be diskfs_dirrewrite_hard.
+ (diskfs_dirremove): Renamed to be diskfs_dirremove_hard.
+ (diskfs_lookup, diskfs_direnter, diskfs_dirrewrite, diskfs_dirremove):
+
+Tue Mar 19 14:55:46 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * name-cache.c: New file.
+ * Makefile (OTHERSRCS): Add name-cache.c.
+ * dir-lookup.c (diskfs_S_dir_lookup): Check cache before normal
+ diskfs_lookup call.
+ * node-drop.c (diskfs_drop_node): Call
+ _diskfs_purge_cache_deletion before releasing node structure with
+ diskfs_node_norefs.
+ * dir-clear.c (diskfs_clear_directory): Call
+ diskfs_purge_cache_node before diskfs_dirremove.
+ * dir-rename.c (diskfs_S_dir_rename): Likewise.
+ * dir-renamed.c (diskfs_rename_dir): Likewise.
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise.
+ * dir-unlink.c (diskfs_S_dir_unlink): Likewise.
+ * dir-init.c (diskfs_init_dir): Doc fix.
+ * dir-rename.c (diskfs_S_dir_rename): Call diskfs_purge_cache
+ before diskfs_dirrewrite for old node.
+ * dir-renamed.c (diskfs_rename_dir): Likewise.
+ * node-create.c (diskfs_create_node): Call diskfs_enter_cache if
+ diskfs_direnter is successful.
+ * dir-link.c (diskfs_S_dir_link): Likewise.
+ * dir-rename.c (diskfs_S_dir_rename): Call diskfs_enter_cache if
+ diskfs_direnter/diskfs_dirrewrite is successful.
+ * dir-renamed.c (diskfs_rename_dir): Likewise.
+
+Fri Mar 15 23:10:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Don't leak a send right to
+ the anonymous handle on DNP when calling fetch_root.
+
+Tue Mar 12 14:36:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Deallocate ref
+ on CONTROL when we are done with it.
+
+Thu Mar 7 16:45:02 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * readonly.c (diskfs_set_readonly): Don't sleep(1) after syncing.
+
+Thu Feb 29 14:29:20 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (OTHERSRCS): Change `opts-runtime-def.c' to
+ `opts-runtime-parse.c'. Add `opts-runtime-unparse.c'.
+
+Wed Feb 21 06:10:05 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Add EROFS check.
+
+Sun Feb 18 00:08:27 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init-init.c (diskfs_init_diskfs): Use maptime_map.
+ * node-times.c (diskfs_set_node_times): Use maptime_read.
+
+Fri Feb 16 13:48:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts-runtime-def.c (diskfs_parse_runtime_options): STANDARD_ARGP
+ is const.
+
+Thu Feb 15 16:59:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_nput): It's not valid to touch *NP (by
+ `mutex_unlock (&np->lock);') after we have called
+ diskfs_drop_node. So don't do it in that case.
+
+Wed Feb 7 22:42:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_nput): Before bumping NP->references (which
+ precedes diskfs_try_dropping_softrefs), *lock*
+ diskfs_node_refcnt_lock, not mutant unlock.
+ (diskfs_nrele): Likewise.
+
+Wed Feb 7 16:22:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_parse_runtime_options): Make STANDARD_ARGP const.
+ (diskfs_startup_argp, diskfs_device_startup_argp): Make const.
+ * opts-common.c (diskfs_common_options): Make const.
+ * opts-std-startup.c (startup_options, dev_startup_options,
+ dev_start_argp_parents, dev_startup_argp, startup_common_argp,
+ startup_argp_parents, startup_argp, diskfs_startup_argp): Make const.
+ * opts-set.c (std_runtime_options): Make const.
+ (diskfs_set_options): Make argp structures const.
+
+Wed Feb 7 13:39:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Revert last change.
+
+Tue Feb 6 15:56:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Make the new peropen we'll
+ pass as dotdot to the fetch_root with the same flags as DIRCRED->po.
+
+Wed Jan 31 00:27:10 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * node-rdwr.c (diskfs_node_rdwr): Handle null AMTREAD.
+
+Tue Jan 30 21:20:13 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * fsys-options.c (diskfs_S_fsys_set_options): Use
+ rwlock_writer_lock instead of rwlock_reader_lock in DO_CHILDREN case.
+
+Tue Jan 30 15:03:35 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * peropen-rele.c (diskfs_release_peropen): Free dotdotport when
+ deallocating peropen.
+
+Wed Jan 24 18:14:28 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Use diskfs_create_protid instead
+ of diskfs_make_protid, and deal with an error return.
+ * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise.
+ * file-exec.c (diskfs_S_file_exec): Likewise.
+ * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+ * io-duplicate.c (diskfs_S_io_duplicate): Likewise.
+ * io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise.
+ * trans-callback.c (_diskfs_translator_callback2_fn): Likewise.
+ * boot-start.c (diskfs_start_bootstrap, diskfs_S_exec_startup_get_info,
+ diskfs_execboot_fsys_startup, diskfs_S_fsys_init): Likewise.
+ * protid-make.c (diskfs_start_protid): Return an error now, and use
+ ports_create_port instead of ports_allocate_port.
+ (diskfs_create_protid): New function.
+ (diskfs_make_protid): Call diskfs_create_protid.
+ * diskfs.h (diskfs_start_protid): Update declaration.
+ (diskfs_create_protid): New declaration.
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Use new version of
+ diskfs_start_protid.
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Use ports_create_port
+ instead of ports_allocate_port.
+ * boot-start.c (start_execserver, diskfs_start_bootstrap): Likewise.
+ * init-startup.c (diskfs_startup_diskfs): Likewise.
+ * sync-interval.c (diskfs_set_sync_interval): Likewise.
+ (periodic_sync): Pass in the MSG_ID arg to ports_begin_rpc, and
+ deal with any error returned.
+
+ * readonly.c (diskfs_set_readonly): Deal with ports_inhibit_class_rpcs
+ returning an error.
+ * remount.c (diskfs_remount): Likewise.
+ * shutdown.c (diskfs_shutdown): Likewise.
+ * sync-interval.c (diskfs_set_sync_interval): Likewise.
+
+ * dir-readdir.c: Include <fcntl.h>.
+
+Tue Jan 23 16:28:47 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts-std-startup.c (startup_options): Put boot options in a
+ separate group with a header.
+
+Thu Jan 18 14:05:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir-readdir.c (diskfs_S_dir_readdir): Require read permission
+ before succeeding.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Deallocate ref to dotdot
+ after diskfs_make_peropen, because the latter does not eat a
+ reference.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): In symlink case, use
+ MOVE_SEND to return the dotdot port to the user.
+
+Thu Jan 11 22:09:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * diskfs-pager.h (struct disk_image_user): New type.
+ (diskfs_catch_exception, diskfs_end_catch_exception): Use it to
+ maintain a linked list of catchers instead of just one.
+
+Sat Jan 6 11:49:02 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (installhdrs): Add diskfs-pager.h.
+ (OTHERSRCS): Add disk-pager.c.
+
+Fri Jan 5 17:06:42 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * io-write.c: Return errors regardless of *AMT--writes are all or
+ nothing.
+ * io-read.c: Return errors regardless of *DATALEN--reads are all or
+ nothing.
+
+Thu Jan 4 16:11:35 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * disk-pager.c, diskfs-pager.h: New files.
+ * exc.c: File removed.
+ * Makefile (OTHERSRCS): Remove exc.c.
+ * diskfs.h (diskfs_catch_exception, diskfs_end_catch_exception):
+ Macros removed.
+ (diskfs_register_memory_fault_area,
+ diskfs_unregister_memory_fault_area): Decls removed.
+
+ * diskfs.h: Use size_t instead of int for amounts in
+ diskfs_node_rdwr prototype.
+ * node-rdwr.c (diskfs_node_rdwr): Pass AMTREAD read/write to
+ _diskfs_rdwr_internal, instead of assuming it wrote the whole amount.
+ Update the node if anything was transferred, regardless of ERR.
+ * rdwr-internal.c (_diskfs_rdwr_internal): Rewritten using
+ pager_memcpy.
+ Fix types of args: OFFSET to off_t, make AMT read/write size_t *.
+ * priv.h: Fix args in _diskfs_rdwr_internal prototype.
+ * io-write.c: Pass AMT read/write to _diskfs_rdwr_internal, and
+ return success if any bytes were written.
+ * io-read.c: Likewise.
+
+Mon Jan 1 15:45:33 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec): Use fshelp_exec_reauth().
+ (setid, scan_ids): Functions deleted.
+
+Thu Dec 28 14:21:42 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec): Always reauth the proc port,
+ as exec does not do it, even in the secure case. Set the proc's
+ owner too.
+
+ * file-exec.c (setid): Don't touch the return params unless we succeed.
+ Add SETID parameter, and just copy old into new unless it's set.
+ Handle the NOLDGENIDS == 0 case correctly.
+ (diskfs_S_file_exec): Use the new setid() properly. Make sure that
+ {GEN,AUX}{UIDS,GIDS} are always in a state where they can be freed.
+
+Thu Dec 28 00:24:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * priv.h (end_using_protid_port): Don't calls ports_port_deref if
+ CRED is null.
+
+Wed Dec 27 17:32:21 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * file-exec.c (setid): New function.
+ (scan_ids): Moved out of diskfs_S_file_exec.
+ (diskfs_S_file_exec): Move duplicated code into setid(). Make the
+ bogus auth port case work correctly. Deleted old ifdefed-out code.
+ Enable setuid code.
+
+ * exc.c (diskfs_register_memory_fault_area): Register both
+ preempter1 and preempter2 in REC instead of preempter1 twice.
+
+Sat Dec 23 14:49:22 1995 Michael I. Bushnell p/BSG <mib@gnu.ai.mit.edu>
+
+ * exc.c: Entire file rewritten to use libc signal preemption
+ facility.
+
+Wed Dec 20 14:49:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_S_fsys_init): Call proc_mark_exec on
+ EXECPROCESS.
+
+Tue Dec 19 13:19:19 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec): Better attempt at
+ setuid/setgid execution; still not entirely right, but mostly so.
+ Will move this code to libfshelp before turning it on.
+
+Thu Dec 14 15:51:19 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_checkdirmod): Correctly return error code for
+ failure, not 1.
+
+Mon Dec 4 17:07:20 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir-unlink.c (diskfs_S_dir_unlink): Don't call fsys_goaway until
+ we've released our lock.
+
+Mon Dec 4 16:57:28 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir-unlink.c (diskfs_S_dir_unlink): Delete vestigial fetch_control.
+
+Tue Nov 21 13:54:14 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * rdwr-internal.c (_diskfs_rdwr_internal): Declare PROT volatile.
+
+ * init-first.c (master_thread_function): Declare to be `static
+ any_t'.
+
+ * fsys-options.c: Include <string.h>.
+
+ * diskfs.h (diskfs_get_options): Bother providing declaration.
+
+ * file-get-fs-opts.c: Include <string.h>.
+ (diskfs_S_file_get_fs_options): Dereference DATA_LEN in call to
+ vm_allocate.
+
+Sat Nov 18 09:01:28 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_S_exec_startup_get_info): Renamed from
+ diskfs_S_exec_startup, slightly different protocol. Unused exec
+ server stubs removed.
+ * Makefile (MIGSTUBS): Replaced execServer.o with exec_startupServer.o.
+
+Mon Nov 13 17:13:40 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * demuxer.c (diskfs_demuxer):
+ diskfs_exec_server --> diskfs_exec_startup_server.
+
+Mon Nov 13 16:28:27 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * file-lock-stat.c (diskfs_S_file_lock_stat): Lock around reads to
+ make sure they are mutually consistent.
+
+ * io-readable.c (diskfs_S_io_readable): Set *AMOUNT to zero if
+ filepointer is past the end of the file.
+
+Thu Nov 9 12:33:53 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir-link.c (diskfs_S_dir_link): Now that args are swapped,
+ deallocate port ref on FILECRED instead of DIRCRED.
+
+Sun Nov 5 10:49:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (OTHERSRCS): Add opts-get.c.
+ (FSSRCS): Add file-get-fs-opts.c.
+ * file-get-fs-opts.c (diskfs_S_file_get_fs_options): New function.
+ * fsys-options.c (diskfs_S_fsys_get_options): New function.
+ * opts-get.c (diskfs_get_options): New function.
+
+ * sync-interval.c (diskfs_sync_interval): New variable.
+ (diskfs_set_sync_interval): Set DISKFS_SYNC_INTERVAL.
+
+Sat Nov 4 23:17:50 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * file-get-trans.c (diskfs_S_file_get_translator): Initialize ERROR.
+
+ * trans-callback.c (_diskfs_translator_callback2_fn):
+ UNDERLYING_TYPE should be a pointer. As should the UIDS & GIDS
+ args to diskfs_make_protid.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Pass both callback args
+ to fshelp_fetch_root.
+
+ * filedev.c (diskfs_get_file_device): Give FLAGS argument to
+ file_get_storage_info.
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Fix various typos.
+ (short_circuited_callback1): Dereference ARGZ & ARGZ_LEN.
+ Include <hurd/paths.h>
+
+Wed Nov 1 15:56:45 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Add new callback arg to
+ fshelp_fetch_root call. Change short_circuited_callback1 to
+ reflect the split into two callbacks (we use the global diskfs
+ callback for the other_).
+ * trans-callback.c (_diskfs_translator_callback1_fn,
+ _diskfs_translator_callback2_fn): New functions, replacing the
+ single original.
+ (_diskfs_translator_callback1, _diskfs_translator_callback2):
+ New variables, replacing the single original.
+ * priv.h (_diskfs_translator_callback1, _diskfs_translator_callback2):
+ Declare.
+
+ * boot-start.c (diskfs_execboot_fsys_startup): Add FLAGS arg; use.
+ * fsys-startup.c (diskfs_S_fsys_startup): Ditto.
+ * init-startup.c (diskfs_startup_diskfs): Ditto.
+ * diskfs.h (diskfs_startup_diskfs, diskfs_execboot_fsys_startup):
+ Add FLAGS arg.
+
+Mon Oct 30 13:20:12 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Move code for starting
+ short-circuited translators here, from _diskfs_translator_callback_fn.
+ Inline code from node_is_translated.
+ (node_is_translated): Function removed.
+ (major, minor): New macros -- temporarily here until libc exports them.
+
+Thu Oct 26 18:41:23 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * trans-callback.c (_diskfs_translator_callback_fn): Deal with
+ short-circuited translators.
+ * dir-lookup.c (node_is_translated): New function.
+ (diskfs_S_dir_lookup): Use node_is_translated() instead of
+ np->istranslated to see whether NP has a passive translator.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Add missing else.
+ Use makedev macro instead of doing it by hand.
+ (makedev): New macro -- temporarily here until libc exports one.
+
+Thu Oct 19 12:43:47 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsys-options.c (diskfs_S_fsys_set_options): Only hold
+ DISKFS_FSYS_LOCK for writing while setting our own options; we
+ hold it for reading while setting our children's.
+
+ * rdwr-internal.c (_diskfs_rdwr_internal): Get rid of CRED argument.
+ * priv.h (_diskfs_rdwr_internal): Ditto.
+ * node-rdwr.c (diskfs_node_rdwr): Ditto.
+ * io-write.c (diskfs_S_io_write): Ditto.
+ * io-read.c (diskfs_S_io_read): Ditto.
+
+Wed Oct 18 15:52:53 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_get_filemap): Add prot parameter.
+ (diskfs_max_user_pager_prot): New declaration.
+ * rdwr-internal.c (_diskfs_rdwr_internal): Add argument CRED, and
+ use it to decide how to setup the mapped i/o.
+ * io-write.c (diskfs_S_io_write): Pass CRED to _diskfs_rdwr_internal.
+ * io-read.c (diskfs_S_io_read): Ditto.
+ * node-rdwr.c (diskfs_node_rdwr): Ditto.
+ * io-map.c (diskfs_S_io_map): Pass the appropiate vm protection to
+ diskfs_get_filemap. If this node isn't O_RDWR, only return the
+ appropiate memobj.
+ Include <fcntl.h>.
+ * priv.h (_diskfs_rdwr_internal): Add cred parameter.
+
+ * boot-start.c (diskfs_execboot_fsys_startup): Open exec's
+ realnode read-only for now, since we know it doesn't matter and
+ having gratuitously writable nodes around prevents us from
+ starting up or going read-only.
+ (diskfs_S_fsys_init): Don't make the cwdir/crdir right with O_WRITE.
+ * trans-callback.c (_diskfs_translator_callback_fn): Ditto for
+ other translators. The fsys_startup interface should change very
+ soon and make this irrelevant.
+
+ * readonly.c (diskfs_set_readonly): Return EBUSY if necessary.
+ Add hack to try and work around pagers-can't-wait bug.
+
+ * opts-common.c (diskfs_common_options): New variable.
+ * priv.h (diskfs_common_options): New declaration.
+ * opts-std-startup.c (startup_options): Remove options common to
+ both runtime and startup.
+ (startup_common_argp, startup_argp_parents): New variables.
+ (startup_argp): Include parents.
+ * opts-set.c (std_runtime_options): Remove options common to
+ both runtime and startup.
+ (diskfs_set_options): Use the common options.
+ * Makefile (OTHERSRCS): Add opts-common.c.
+
+ * diskfs.h (diskfs_fsys_lock): Change to a struct rwlock.
+ Include <rwlock.h>
+ * shutdown.c (diskfs_fsys_lock): Now a rwlock.
+ (diskfs_shutdown): Lock DISKFS_FSYS_LOCK for writing.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Hold DISKFS_FSYS_LOCK
+ for reading.
+ * sync-interval.c (periodic_sync): Hold DISKFS_FSYS_LOCK for
+ reading while syncing.
+ * fsys-syncfs.c (diskfs_S_fsys_syncfs): Ditto.
+ * fsys-options.c (diskfs_S_fsys_set_options): Hold DISKS_FSYS_LOCK
+ for writing.
+ Dereference PT even when a child filesystem returns an error.
+ * opts-set.c (diskfs_set_options): Don't hold DISKS_FSYS_LOCK (our
+ caller should).
+
+ * machdev.c (diskfs_get_mach_device): SIZE is in blocks.
+
+Wed Oct 18 14:00:58 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec): Return EACCES for attempts to
+ execute a directory. Dike out totally bogus set[ug]id code.
+ Bother to lock NP around critical section.
+
+Tue Oct 17 14:32:41 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init-startup.c (diskfs_startup_diskfs): Call diskfs_readonly_changed
+ if we're starting up writable.
+ * diskfs.h (diskfs_readonly_changed, diskfs_reload_global_state,
+ diskfs_node_reload, diskfs_set_readonly, diskfs_remount): New
+ declarations.
+ (diskfs_main_request_loop): Declaration removed.
+ * Makefile (OTHERSRCS): Add readonly.c, remount.c.
+ * readonly.c (diskfs_set_readonly): New function.
+ * remount.c (diskfs_remount): New function.
+
+ * opts-set.c (diskfs_set_options): Rework readonly transition &
+ remounting. Hold diskfs_fsys_lock.
+
+ * diskfs.h (diskfs_fsys_lock): Renamed from diskfs_shutdown_lock.
+ * shutdown.c (diskfs_shutdown): diskfs_shutdown_lock -->
+ diskfs_fsys_lock.
+
+Fri Oct 13 14:51:42 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_start_bootstrap): Get rid of ARGV argument.
+ (diskfs_argv): New declaration.
+ * boot-start.c (saved_argv): Variable removed.
+ (diskfs_argv): New variable. Should get set by default arg parser.
+ (diskfs_start_bootstrap): Get rid of ARGV argument.
+ (diskfs_S_fsys_init): Use DISKFS_ARGV instead of SAVED_ARGV.
+ * opts-std-startup.c (parse_startup_opt): Set DISKFS_ARGV.
+ * init-startup.c (diskfs_startup_diskfs): Call diskfs_start_bootstrap
+ if we're the bootstrap file system.
+
+ * dev-globals.c (diskfs_device, diskfs_device_name,
+ diskfs_device_start, diskfs_device_size, diskfs_device_block_size,
+ diskfs_log2_device_block_size, diskfs_log2_device_blocks_per_page):
+ New variables.
+ * dev-io.c (diskfs_device_write_sync, diskfs_device_write_sync):
+ New functions.
+ * dev-open.c (diskfs_device_open): New function, new file.
+ * diskfs.h (diskfs_device, diskfs_device_name,
+ diskfs_device_start, diskfs_device_size, diskfs_device_block_size,
+ diskfs_log2_device_block_size, diskfs_log2_device_blocks_per_page,
+ diskfs_device_write_sync, diskfs_device_write_sync,
+ diskfs_device_open, diskfs_console_stdio): New declarations.
+ * console.c (diskfs_console_stdio): New function.
+ * Makefile (OTHERSRCS): Add dev-open.c, dev-io.c, dev-globals.c,
+ console.c.
+ * opts-std-startup.c (diskfs_use_mach_device, diskfs_device_arg,
+ dev_startup_options, dev_startup_argp_parents, dev_startup_argp,
+ diskfs_device_startup_argp): New variables.
+ (parse_dev_startup_opt): New function.
+
+Thu Oct 12 16:11:22 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_execboot_fsys_startup): Fix args to dir_lookup.
+ Declare PATHBUF and RETRY.
+
+ * boot-start.c (diskfs_S_fsys_init): Put the contents of
+ diskfs_init_completed in here, freeing that routine for user-use.
+
+ * init-completed.c (diskfs_init_completed): Now empty.
+
+ * opts-set.c (std_runtime_options): Renamed from long_options,
+ convert to argp format.
+ (SHORT_OPTIONS): Removed.
+ (diskfs_set_options): Converted to use argp.
+ * diskfs.h (diskfs_parse_runtime_options,
+ diskfs_standard_startup_argp): Use argp, not options.
+ Include <argp.h> instead of <options.h>.
+ * opts-runtime-def.c (diskfs_parse_runtime_options): Use argp
+ instead of options.
+ * opts-std-startup.c (std_startup_options): Renamed from
+ std_long_options; converted to argp format.
+ (std_startup_argp): Renamed from std_startp_argp, converted argp fmt.
+ (diskfs_standard_startup_argp): Renamed from
+ diskfs_standard_startup_options.
+
+Thu Oct 12 03:25:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_execboot_fsys_startup): Use dir_lookup
+ instead of hurd_file_name_lookup to open /servers/exec.
+
+Mon Oct 9 03:42:49 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_execboot_fsys_startup): Pass back a port to
+ /servers/exec in *REAL.
+
+Sat Oct 7 20:51:06 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * init-completed.c (diskfs_init_completed): New function.
+ * diskfs.h (diskfs_init_completed): must --> may.
+ Add necessary includes.
+
+ * Makefile (OTHERSRCS): Add init-completed.c.
+
+Sat Oct 7 05:07:42 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (libdiskfs.so): Depend on libpager, libioserver,
+ libfshelp, libthreads.
+
+Fri Oct 6 17:26:51 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_get_file_device, diskfs_get_mach_device): New funcs.
+ (diskfs_boot_flags): New variable.
+ (diskfs_bootflags, diskfs_bootflagarg): Variables deleted.
+
+ * boot-start.c (diskfs_S_fsys_getpriv): Add the port type parameters.
+
+ * Makefile (MIGSFLAGS): Variable deleted.
+ (fs-MIGSFLAGS, io-MIGSFLAGS, ifsock-MIGSFLAGS): New variables.
+ (fsys-MIGSFLAGS): Also import fsmutations.h.
+
+ * dir-link.c (diskfs_S_dir_link): Swap first two arguments.
+
+ * filedev.c (diskfs_get_file_device): Use new block_size return
+ value from file_get_storage_info.
+
+Thu Oct 5 15:10:34 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (OTHERSRCS): Remove boot-parse.c; add filedev.c & machdev.c.
+ * diskfs.h (diskfs_host_priv, diskfs_master_device): Variables deleted.
+ (diskfs_parse_bootargs): Function deleted.
+ (diskfs_init_diskfs): Now returns error_t.
+ * init-init.c (diskfs_init_diskfs): Always use get_privileged_ports.
+ Now return error_t.
+ * machdev.c (diskfs_get_mach_device): Use get_privileged_ports
+ instead of diskfs_master_device.
+ * boot-start.c (diskfs_S_fsys_getpriv): Use get_privileged_ports
+ to get the privileged ports.
+ (diskfs_start_bootstrap): Use diskfs_boot_flags instead of
+ diskfs_bootflagarg.
+ (diskfs_start_bootstrap, start_execserver): Look for flags
+ directly in diskfs_boot_flags, instead of using the old
+ diskfs_bootflags.
+ * boot-start.c (diskfs_S_exec_startup): Use get_console to get the
+ console device.
+ (get_console): New function.
+ * opts-std-startup.c (OPT_BOOTFLAGS, OPT_EXEC_SERVER_TASK,
+ OPT_HOST_PRIV_PORT, OPT_DEVICE_MASTER_PORT): New defines.
+ (std_long_opts, parse_std_startup_opt): Add the
+ --device-master-port, --host-priv-port, --exec-server-task, and
+ --bootflags options.
+
+Thu Oct 5 00:46:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * sync-interval.c (periodic_sync_lock): Variable removed.
+ (diskfs_set_sync_interval): Use ports_inhibit_port_rpcs on `pi'
+ instead of the spin lock.
+ (periodic_sync): Don't use the lock.
+ Put ports_begin_rpc before check of periodic_sync_thread.
+
+Wed Sep 27 20:11:09 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * filedev.c (diskfs_get_file_device): New file, new function.
+ * machdev.c (diskfs_get_mach_device): New file, new function.
+
+Mon Sep 18 14:21:29 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * io-pathconf.c (diskfs_S_io_pathconf): Renamed from
+ file_pathconf.c:diskfs_S_file_pathconf.
+ * Makefile (FSSRCS): Deleted file-pathconf.c.
+ (IOSRCS): Added io-pathconf.c.
+
+Sun Sep 17 18:04:10 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_S_exec_startup): Don't pass an argument
+ string. Set *FLAGS to EXEC_STACK_ARGS.
+
+ * file-set-size.c: Renamed from file-trunate.c.
+ (diskfs_S_file_set_size): Renamed from diskfs_s_file_truncate.
+ If SIZE exceeds the file size, extend the file.
+ * Makefile (FSSRCS): Rename file-truncate.c to file-set-size.c.
+
+Sat Sep 16 13:10:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ourfs_notify.defs: New file.
+ * Makefile (DIST_FILES): Added ourfs_notify.defs.
+ (ourfs_notify_U.h ourfs_notifyUser.c, ourfs_notify.defs): Targets
+ removed.
+
+Wed Sep 13 12:36:26 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_lookup): Doc fix.
+ * dir-clear.c (diskfs_clear_directory): Set the fourth arg in
+ REMOVE lookup calls in accord with change in rules for the lookup
+ call.
+
+Wed Sep 6 11:30:24 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * demuxer.c (diskfs_demuxer): Use ports_notify_server and
+ ports_interrupt_server instead of our own versions.
+ * Makefile (SRCS): Removed $(NOTIFYSRCS) and $(INTSRCS).
+ (NOTIFYSRCS, INTSRCS, notify-MIGSFLAGS): Removed.
+ (MIGSTUBS): Removed notifyServer.o and interruptServer.o.
+ * interrupt.c: File deleted.
+
+Tue Aug 29 14:22:58 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * io-select.c (diskfs_S_io_select): Don't check open modes or
+ return EBADF.
+
+Fri Aug 25 15:02:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (FSYSSRCS): Add fsys-forward.c.
+
+Fri Aug 25 09:44:43 1995 Michael I. Bushnell, p/BSG <mib@mole.gnu.ai.mit.edu>
+
+ * file-truncate.c (diskfs_S_file_truncate): Bother to check the
+ return value of diskfs_truncate.
+
+Wed Aug 23 14:39:07 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (REMHDRS): Removed.
+ Rules dealing with ../lib removed.
+
+Sat Jul 29 10:34:38 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ifsock.c (diskfs_S_ifsock_getsockaddr): Don't loop infinitely if
+ we fail to get a reasonable PF_LOCAL server.
+
+Fri Jul 28 14:59:45 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ifsock.c (diskfs_S_ifsock_getsockaddr): Try to restart the
+ PF_LOCAL server if it dies.
+
+ * node-drop.c (diskfs_drop_node): Don't actually drop the node if
+ it is a socket naming point, unless it also has no links.
+
+Sat Jul 22 13:54:48 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Fix typo.
+ * boot-start.c (start_execserver): Likewise.
+
+Fri Jul 21 12:37:36 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * trans-callback.c (_diskfs_translator_callback_fn): Use correct
+ sense of diskfs_readonly flag.
+
+ * boot-start.c (diskfs_start_bootstrap): Free initial reference
+ created by diskfs_make_protid.
+ (diskfs_S_exec_startup): Likewise.
+ (diskfs_S_fsys_init): Likewise.
+ * dir-lookup.c (diskfs_S_dir_lookup): Likewise. (Two places.)
+ * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise.
+ * file-exec.c (diskfs_S_file_exec): Likewise.
+ * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+ * io-duplicate.c (diskfs_S_io_duplicate): Likewise.
+ * io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise.
+ * trans-callback.c (_diskfs_translator_callback_fn): Likewise.
+
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Free initial
+ reference created by diskfs_start_protid.
+
+ * boot-start.c (diskfs_start_bootstrap): Free initial reference
+ created by ports_allocate_port.
+ (start_execserver): Likewise.
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise.
+ * init-startup.c (diskfs_startup_diskfs): Likewise.
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Examine the active
+ translator on NP, not on diskfs_root_node, to see if translator
+ usage is necessary.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Only validate
+ PASSIVELEN if PASSIVE is set.
+
+Tue Jul 18 16:12:20 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * init-first.c (thread_timeout, server_timeout): New vars.
+ (THREAD_TIMEOUT, SERVER_TIMEOUT): Delete macros.
+ (master_thread_function): Use vars instead of macros.
+
+ * file-get-trans.c (diskfs_S_file_get_translator): Conform to new
+ memory semantic of diskfs_get_translator.
+
+Wed Jul 12 16:39:24 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * shutdown.c (diskfs_shutdown): Call ports_resume_class_rpcs for
+ diskfs_protid_class before return EBUSY.
+
+Thu Jul 6 15:34:59 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (ourfs_notify_U.h ourfs_notifyUser.c): Use
+ ourfs_notify.defs instead of directly out of the include
+ directory.
+ (ourfs_notify.defs): New target.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Mon Jun 26 15:38:07 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fsys-goaway.c (diskfs_S_fsys_goaway): Include "fsys_S.h" and
+ "fsys_reply_U.h". New parms REPLY and REPLY_TYPE. Send
+ fsys_goaway reply message before exit.
+ * Makefile (fsys-MIGSFLAGS): New variable.
+ * fsys-startup.c (diskfs_S_fsys_startup): New parms REPLY and
+ REPLYTYPE.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+ * fsys-options.c (diskfs_S_fsys_set_options): Likewise.
+ * boot-start.c (diskfs_S_fsys_getpriv): Likewise.
+ * fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise.
+ * fsys-getfile.c (diskfs_S_fsys_getfile): Include "fsys_S.h". New
+ parms REPLY and REPLYTYPE.
+
+ * sync-interval.c (periodic_sync_thread, periodic_sync_lock):
+ Declare static.
+ (control): Delete var.
+ (pi): New var.
+ (diskfs_set_sync_interval): Set PI instead of CONTROL.
+ (periodic_sync): Do sync by hand; use ports routines around it
+ properly.
+
+ * shutdown.c (diskfs_shutdown): Fix parentheses on bitwise tests.
+
+ * fsys-goaway.c (diskfs_S_fsys_goaway): If diskfs_shutdown returns
+ zero, then exit here.
+ * shutdown.c (diskfs_shutdown): Don't actually exit; return zero
+ instead.
+ * init-first.c (master_thread_function): Exit when shutdown
+ returns zero.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Ignore harmless
+ errors from fsys_goaway.
+ * shutdown.c (diskfs_shutdown): Ignore harmless errors from
+ fsys_goaway.
+ * fsys-options.c (diskfs_S_fsys_set_options/helper): Ignore
+ harmless errors from fsys_set_options.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Fix parentheses
+ on first active EXCL check.
+
+Fri Jun 23 15:43:55 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fsys-options.c (diskfs_S_fsys_set_options) [helper]: Unlock NP
+ around fsys call.
+ * file-syncfs.c (diskfs_S_file_syncfs) [helper]: Likewise.
+ * fsys-syncfs.c (diskfs_S_fsys_syncfs) [helper]: Likewise.
+ * shutdown.c (diskfs_shutdown) [helper]: Likewise.
+
+Thu Jun 22 14:48:46 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * priv.h (_diskfs_translator_callback): Must be extern to force
+ inclusion of trans-callback.c.
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Correctly parethenize
+ O_NOTRANS flags test.
+
+Tue Jun 20 11:52:24 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * node-make.c (diskfs_make_node): Fix function name
+ fshelp_init_transbox -> fshelp_transbox_init.
+
+ * file-syncfs.c: Include <hurd/fsys.h>.
+ * fsys-syncfs.c: Likewise.
+
+ * file-syncfs.c (diskfs_S_file_syncfs) [helper]: First arg to
+ fshelp_fetch_control should be &NP->transbox, not NP.
+ * fsys-options.c (diskfs_S_fsys_set_options) [helper]: Likewise.
+ * fsys-syncfs.c (diskfs_S_fsys_syncfs) [helper]: Likewise.
+ * shutdown.c (diskfs_shutdown) [helper]: Likewise.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Remove
+ assignment from if test.
+ * node-rdwr.c (diskfs_node_rdwr): Likewise.
+
+Mon Jun 19 16:32:12 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_node_iterate): New (user-provided) function.
+ * fsys-syncfs.c (diskfs_S_fsys_syncfs): Use diskfs_node_iterate
+ instead of diskfs_sync_translators.
+ * file-syncfs.c (diskfs_S_file_syncfs): Likewise.
+ * shutdown.c (diskfs_shutdown): Likewise.
+ * fsys-options.c (diskfs_S_fsys_set_options): Likewise.
+
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Don't attempt anything for
+ translated directories here; just return EBUSY.
+ * dir-unlink.c (diskfs_S_dir_unlink): Don't do massively
+ complicated fsys_goaway. Instead, call it at the end (but only if
+ this was the last link) and ignore errors.
+
+ * fsys-startup.c (diskfs_S_fsys_startup): Strip out support for
+ translators; fshelp now does that itself.
+
+ * file-set-trans.c: Include <hurd/fsys.h>.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Use new
+ translator interface throughout.
+ * dir-lookup.c (diskfs_S_dir_lookup): Use new translator startup
+ interface.
+
+Fri Jun 16 17:42:44 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * file-get-transcntl.c (diskfs_S_file_get_translator_cntl): Use
+ fshelp_fetch_control instead of old interface.
+
+Wed Jun 14 15:52:30 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * node-drop.c (diskfs_drop_node): Call fshelp_drop_transbox
+ instead of fshelp_kill_translator; do it *after* the truncate.
+ * node-make.c (diskfs_make_node): Initialize TRANSBOX member using
+ new function. Drop initialization of TRANSLATOR member.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Use new translator
+ startup interface.
+ * Makefile (OTHERSRCS): Removed trans-start.c, trans-destroy.c,
+ and trans-sync.c. Added trans-callback.c.
+ * trans-start.c, trans-destroy,c, trans-sync.c: Deleted files.
+ * trans-callback.c: New file.
+ * priv.h (_diskfs_translator_callback): New declaration.
+ * diskfs.h (diskfs_start_translator, diskfs_destroy_translator,
+ diskfs_sync_translators):
+ Delete declarations.
+ (struct node): Replace TRANSLATOR member with new TRANSBOX member.
+ (diskfs_get_translator): Specify new calling interface.
+
+Fri Jun 9 15:48:30 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * rdwr-internal.c (_diskfs_rdwr_internal): Cast __VM_PAGE_SIZE in
+ comparisen.
+ * io-write.c (diskfs_S_io_write): Cast DATALEN to off_t in
+ comparisons.
+ * io-read.c (diskfs_S_io_read): Cast MAKREAD to off_t in
+ comparison.
+ * io-prenotify.c (diskfs_S_io_prenotify): Cast END to off_t in
+ comparison.
+ * file-get-trans.c (diskfs_S_file_get_translator): Declare
+ variable `buflen' and various variables `len' to be unsigned.
+ * file-exec.c (diskfs_S_file_exec): Declare both variables `i' to
+ be unsigned int.
+
+ * io-async-icky.c (diskfs_S_io_get_icky_async_id): Validate CRED.
+
+ * interrupt.c (diskfs_S_interrupt_operation): Bother to implement.
+
+ * init-init.c (diskfs_init_diskfs): Pass null second argument in
+ calls to ports_create_class.
+
+ * fsys-options.c (diskfs_S_fsys_set_options): Bother validating
+ FSYS and implementing DO_CHILDREN.
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Initialize GIDS, NUIDS, and
+ NGIDS to avoid warning.
+
+ * boot-start.c: Provide unused attributes where appropriate.
+ * file-chg.c (diskfs_S_file_notice_changes): Mark parameters as
+ unused.
+ * file-getfh.c (diskfs_S_file_getfh): Likewise.
+ * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise.
+ * fsys-getfile.c (diskfs_S_fsys_getfile): Likewise.
+ * init-init.c (_diskfs_control_clean): Likewise.
+ * io-async.c (diskfs_S_io_async): Likewise.
+ * notify-stubs.c: Likewise.
+ * file-pathconf.c (diskfs_S_file_pathconf): Declare NAME to be
+ unused.
+ * io-select.c (diskfs_S_io_select): Declare ATTRIBUTE unused.
+ * io-stubs.c (diskfs_S_io_postnotify): Declare parms START and END
+ unused.
+ * io-prenotify.c (diskfs_S_io_prenotify): Declare parm START
+ unused.
+
+ * diskfs.h (diskfs_transboot_class): Delete var.
+ * init-init.c (diskfs_transboot_class): Delete var.
+ (diskfs_init_diskfs): Don't initialize it.
+
+ * dir-rename.c (diskfs_S_dir_rename): After renaming directory,
+ synchronize relevant state if DISKFS_SYNCHRONOUS.
+
+Thu Jun 8 19:01:25 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_pager_users): New function.
+ * shutdown.c (diskfs_shutdown): Rewrote to use new ports interface
+ adequately.
+
+Tue Jun 6 13:50:13 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * init-first.c (diskfs_spawn_first_thread): Call our own
+ thread function instead of the ports one directly.
+ (master_thread_function): New function.
+
+ * notify-nosenders.c (diskfs_do_seqnos_mach_notify_no_senders):
+ Don't help support pagers here at all.
+ * demuxer.c (diskfs_demuxer): Don't call pager_demuxer.
+
+ * boot-start.c (diskfs_start_bootstrap): Use new args for
+ ports_allocate_port.
+ (start_execserver): Likewise.
+ * init-startup.c (diskfs_startup_diskfs): Likewise.
+ * protid-make.c (diskfs_start_protid): Likewise.
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise.
+ * sync-interval.c (diskfs_set_sync_interval): Likewise.
+
+ * boot-start.c (diskfs_S_exec_startup): Use ports_lookup_port and
+ ports_port_deref instead of ports_check_port_type and
+ ports_done_with_port.
+ (diskfs_execboot_fsys_startup): Likewise.
+ (diskfs_S_fsys_init): Likewise.
+ (diskfs_S_fsys_getpriv): Likewise.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+ * fsys-goaway.c (diskfs_S_fsys_goaway): Likewise
+ * fsys-startup.c (diskfs_S_fsys_startup): Likewise.
+ * fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise.
+ * notify-nosenders.c (diskfs_do_seqnos_mach_notify_no_senders):
+ Likewise.
+ * priv.h (begin_using_protid_port): Use ports_lookup_port.
+ (end_using_protid_port): Use ports_port_deref.
+
+ * trans-start.c (fshelp_transboot_port_type): Deleted var.
+ * priv.h (enum porttype): Delete.
+ * demuxer.c: Renamed from ports-demuxer.c.
+ (diskfs_demuxer): Renamed from ports_demuxer.
+ * init-init.c (diskfs_protid_class, diskfs_transboot_class,
+ diskfs_control_class, diskfs_initboot_class,
+ diskfs_execboot_class, diskfs_port_bucket): New vars.
+ (diskfs_init_diskfs): Don't call libports_initialize.
+ Initialize diskfs_protid_class, diskfs_transboot_class,
+ diskfs_control_class, diskfs_initboot_class,
+ diskfs_execboot_class, and diskfs_port_bucket.
+ * diskfs.h: (diskfs_shutdown_soft_ports): Deleted decl.
+ (ports_demuxer): Deleted decl.
+ (diskfs_demuxer): New decl.
+ (diskfs_protid_class, diskfs_transboot_class, diskfs_control_class,
+ diskfs_initboot_class,diskfs_execboot_class, diskfs_port_bucket):
+ New decls.
+ * ports-noports.c, ports-clean.c, ports-soft.c, ports-idle.c,
+ ports-consts.c, pager-consts.c, init-loop.c: Deleted files.
+ * Makefile (OTHERSRCS): Deleted ports-noports.c, ports-clean.c,
+ ports-soft.c, ports-consts, pager-consts.c, init-loop.c, and
+ ports-idle.c.
+ Replace ports-demuxer.c with demuxer.c.
+
+Mon May 22 13:52:16 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * opts-set.c (diskfs_set_options): Don't fall through to the error
+ case from the 's' one!
+ Use ARG instead of the global OPTARG.
+
+Sat May 20 01:11:05 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Unlock
+ _diskfs_control_lock lock instead of locking it again!
+
+Fri May 19 21:22:14 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * opts-set.c (diskfs_set_options): New function in new file.
+ * opts-runtime-def.c (diskfs_parse_runtime_options): Ditto.
+ * opts-std-startup.c (diskfs_standard_startup_options): New
+ exported variable in new file.
+ * fsys-options.c (diskfs_S_fsys_set_options): Extract the argument
+ vector and call diskfs_set_options.
+ * diskfs.h: (diskfs_standard_startup_options): Declare new variable.
+ (diskfs_set_options): Declare new function.
+ (diskfs_parse_runtime_options): Ditto.
+ Include <options.h> (currently in ../lib).
+ * Makefile (OTHERSRCS): Add opts-set.c, opts-std-startup.c, and
+ opts-runtime-def.c.
+ (OBJS): Add argz.o & options.o.
+ (REMHDRS): Add argz.h & options.h.
+
+Tue May 16 17:36:46 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * init-first.c (diskfs_spawn_first_thread): Don't start syncing here.
+ * init-startup.c (diskfs_startup_diskfs): Do it here instead.
+
+Mon May 15 15:18:25 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_set_options): Declare.
+ * fsys-options.c (diskfs_S_fsys_set_options): Extract argc & argv,
+ and call diskfs_set_options.
+ * def-set-options.c: New file (contains a default diskfs_set_options).
+
+ * Makefile (OBJS): Add argz.o (from ../lib). It shouldn't hurt to
+ have this in libdiskfs, since we need it...
+ (CPPFLAGS): Add -I../lib, to get argz.h, + $(CPPFLAGS-$(notdir $<))
+ Set the vpath for %.c to ../lib, so we get argz.c.
+ (OTHERSRCS): Add def-set-options.c.
+
+Sat May 13 03:08:35 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-parse.c (diskfs_execserver_task): New variable.
+ (diskfs_parse_bootargs): Take a third integer arg before the
+ device name, our name for the task port of the exec server, which
+ is loaded and ready to run but suspended.
+ * boot-start.c (start_execserver): Don't create and load a task;
+ the exec server file is no longer linked into the filesystem.
+ Just set the bootstrap port of diskfs_execserver_task and resume
+ it.
+
+Fri May 12 16:22:33 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * fsys-readonly.c (diskfs_S_fsys_set_options,
+ diskfs_S_fsys_mod_readonly): Change from mod_readonly to
+ set_options. This file is now actually called fsys-options.c.
+ * Makefile (FSYSSRCS): Rename fsys-readonly.c to fsys-options.c.
+
+ * sync-interval.c (diskfs_set_sync_interval): New function (in a
+ new file) that establishes a thread to periodically sync the
+ filesystem.
+ * Makefile (OTHERSRCS): Add sync-interval.c and sync-default.c.
+ * diskfs.h: Add declarations of diskfs_set_sync_interval and
+ diskfs_default_sync_interval.
+
+ * init-first.c (diskfs_spawn_first_thread): Start background syncing.
+ * sync-default.c (diskfs_default_sync_interval): A new variable
+ that defines a default initial sync interval.
+
+Fri May 12 15:45:43 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * io-read.c (diskfs_S_io_read): If the offset is past the end of
+ the file, then return EOF.
+
+Thu Apr 27 20:01:16 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * node-drop.c (diskfs_drop_node): Deal cleanly with errors in
+ diskfs_truncate.
+
+ * diskfs.h (diskfs_nrele, diskfs_nput): We need to hold a real
+ reference around the call to diskfs_try_dropping_softrefs, because
+ that's a user-supplied routine that might itself rely on the
+ reference counting system.
+
+Thu Apr 20 18:54:26 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * node-create.c (diskfs_create_node): Return EROFS if diskfs_readonly.
+
+Tue Apr 4 20:20:40 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * dir-unlink.c (diskfs_S_dir_unlink): Do fsys_goaway for
+ translated nodes being unlinked.
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise.
+
+Tue Apr 4 18:33:35 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec): However, replacing *MAKE_SEND*
+ with COPY_SEND just doesn't work...
+
+Tue Apr 4 14:31:51 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec): Using MOVE_SEND in call to
+ exec_exec loses, because it consumes a reference, which will be
+ consumed again by mach_msg_server if we return an error. So use
+ COPY_SEND instead, and deallocate the rights ourselves only when
+ we are to return success.
+
+Fri Mar 31 12:25:57 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Only destroy
+ existing active translator if ACTIVE_FLAGS will change it. If the
+ existing active translator is provided then don't do anything.
+
+Fri Mar 17 11:36:40 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * io-stat.c (diskfs_S_io_stat): Typo.
+
+ * diskfs.h: Back out changes to protid and associated permission
+ checking functions.
+ * file-chmod.c (diskfs_S_file_chmod): Likewise.
+ * file-chown.c (diskfs_S_file_chown): Likewise.
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise.
+
+ * dir-link.c (diskfs_S_dir_link): Fix typo.
+
+ * diskfs.h (_diskfs_idcheckdirmod): `diskfs_hasuid' ->
+ diskfs_idhasuid.
+ * priv.h (CHANGE_NODE_FIELD): Remove trailing space on backslashed
+ line.
+
+ * diskfs.h (_diskfs_idcheckdirmod): `cred' -> `id'.
+ (diskfs_idhasgid): Likewise.
+
+ * dir-clear.c (diskfs_clear_directory): Don't do
+ diskfs_synchronous here.
+ * dir-init.c (diskfs_init_dir): Likewise.
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Repair implementation of
+ diskfs_syncronous.
+ * dir-renamed.c (diskfs_rename_dir): If we are synchronous,
+ sync the one node our parent doesn't have access to.
+ * dir-mkdir.c (diskfs_S_dir_mkdir): Implement diskfs_synchronous.
+ * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise.
+ * dir-lookup.c (diskfs_S_dir_lookup): Likewise.
+ * io-read.c (diskfs_S_io_read): Likewise.
+ * fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise.
+ * node-drop.c (diskfs_drop_node): Likewise.
+ * node-rdwr.c (diskfs_node_rdwr): Likewise.
+
+Wed Mar 15 11:54:12 1995 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * conch-fetch.c (ioserver_fetch_shared_data): Implement
+ diskfs_synchronous.
+ * dir-clear.c (diskfs_clear_directory): Likewise.
+ * dir-init.c (diskfs_init_dir): Likewise.
+ * dir-renamed.c (diskfs_rename_dir): Likewise.
+
+Wed Mar 8 16:36:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_synchronous): New variable.
+ * priv.h (CHANGE_NODE_FIELD): If DISKFS_SYNCHRONOUS, then sync
+ node after possibly changing it.
+ * io-seek.c: Prevent diskfs_synchronous from having its usual
+ effect here.
+ * dir-link.c (diskfs_S_dir_link): Implement diskfs_synchronous.
+ * dir-rename.c (diskfs_S_dir_rename): Likewise.
+ * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise
+ * dir-unlink.c (diskfs_S_dir_unlink): Likewise.
+ * file-sync.c (diskfs_S_file_sync): Likewise.
+ * file-syncfs.c (diskfs_S_file_syncfs): Likewise.
+ * io-prenotify.c (diskfs_S_io_prenotify): Likewise.
+ * io-stat.c (diskfs_S_io_stat): Likewise.
+ * io-write.c (diskfs_S_io_write): Likewise.
+ * io-sigio.c (diskfs_S_io_sigio): Likewise.
+
+Tue Mar 7 15:21:09 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * diskfs.h (struct userid): New type.
+ (struct protid): Replace UIDS, GIDS, NUIDS, and NGIDS with ID.
+ (diskfs_isuid): Replace with new function diskfs_idhasuid.
+ (diskfs_groupmember): Replace with new function diskfs_idhasgid.
+ (_diskfs_idisowner, _diskfs_idaccess, _diskfs_idcheckdirmod):
+ New functions.
+ (diskfs_isowner): Check each ID in the chain with
+ _diskfs_idisowner.
+ (diskfs_access): Check each ID in the chain with _diskfs_idaccess.
+ (diskfs_checkdirmod): Check each ID in the chain with
+ _diskfs_idcheckdirmod.
+ * file-chmod.c (diskfs_S_file_chmod): Perform the permission
+ check for each ID in the chain.
+ * file-chown.c (diskfs_S_file_chown): Likewise.
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise.
+
+ * boot-parse.c (diskfs_parse_bootargs): Use assert_perror instead
+ of assert where appropriate.
+ * boot-start.c (diskfs_start_bootstrap): Likewise.
+ (diskfs_S_fsys_init): Likewise.
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Likewise.
+ * rdwr-internal.c (_diskfs_rdwr_internal): Likewise.
+
+Thu Jan 19 02:04:34 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (ourfs_notify_U.h ourfs_notifyUser.c): Make this
+ instead of ourmsg_U.h. All references changed.
+ * dir-chg.c: Undo renaming. Includ ourfs_notify_U.h instead of
+ ourmsg_U.h.
+
+ * io-select.c: Updated to new io_select protocol.
+
+ * dir-chg.c (diskfs_S_dir_notice_changes): Call
+ nowait_msg_dir_changed instead of nowait_dir_changed.
+
+Sat Dec 10 20:03:07 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-start.c (start_execserver): When aligning bss size for
+ vm_allocate, don't include bss start alignment fixup offset.
+
+Fri Dec 9 02:06:35 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * io-read.c (diskfs_S_io_read): Don't check for MAXREAD<0.
+
+ * io-write.c: Use mach_msg_type_number_t in place of unsigned int
+ and int.
+ * io-readable.c: Likewise.
+ * io-read.c: Likewise.
+
+Wed Nov 23 00:26:48 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ports-demuxer.c (ports_demuxer): Call
+ diskfs_seqnos_notify_server, not seqnos_notify_server.
+
+Fri Nov 11 13:11:35 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * io-read.c (diskfs_S_io_read): If OFF is past the end of the
+ file, don't set MAXREAD to a negative number; that will crash
+ rdwr_internal.
+
+Wed Nov 9 01:46:18 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * file-exec.c: Include <hurd/paths.h>.
+ (diskfs_S_file_exec): If diskfs_exec isn't already
+ set, try to open it here. (Later, we should also deal if
+ exec_exec returns that the previous server died.)
+
+Tue Nov 8 00:06:56 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * file-get-trans.c: Include <stdio.h> for asprintf decl.
+
+Wed Nov 2 16:16:57 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * priv.h (CHANGE_NODE_FIELD): Don't call diskfs_node_update here.
+
+Fri Oct 28 18:26:15 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-parse.c (diskfs_parse_bootargs): Make stdout line buffered.
+ (diskfs_parse_bootargs): Use getline instead of scanf.
+ * boot-start.c (diskfs_start_bootstrap): Likewise.
+ (diskfs_S_fsys_init): Create a root port with two send right refs
+ and install it as crdir and cwdir.
+
+Tue Oct 25 14:16:50 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_start_bootstrap): Renamed variable ARGV
+ to be EXEC_ARGV and ARGVLEN to be EXEC_ARGVLEN.
+
+Fri Oct 7 01:30:12 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-parse.c (diskfs_parse_bootargs): Open console for reading too.
+
+ * boot-start.c (saved_argv): New static variable.
+ (diskfs_start_bootstrap): Take arg ARGV; store it in saved_argv.
+ (diskfs_S_fsys_init): Construct a portarray and call _hurd_init.
+ Or, if _hurd_ports is already allocated, call _hurd_proc_init.
+ * diskfs.h (diskfs_start_bootstrap): Update prototype.
+
+Thu Oct 6 17:47:42 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * boot-start.c (diskfs_S_fsys_init): Allocate a reference on
+ authhandle before allowing the library to consume one.
+
+Wed Oct 5 13:00:46 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * node-drop.c (diskfs_drop_node): Clear passive translator
+ if we are releasing the inode.
+
+Thu Sep 29 18:12:31 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-parse.c (diskfs_parse_bootargs): If we have a bootstrap
+ port, talk to the CMU default pager on it, then clear it.
+
+Fri Sep 23 00:15:52 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * diskfs.h (diskfs_lost_hardrefs): Doc fix.
+ (diskfs_try_dropping_softrefs): New declaration.
+ (diskfs_nput): Always call diskfs_lost_hardrefs if the last
+ hardref goes away; call diskfs_try_dropping_softrefs if the
+ link count has vanished too.
+ (diskfs_nrele): Likewise.
+ (diskfs_nref): Lock node during call to diskfs_new_hardrefs.
+
+Thu Sep 22 21:20:40 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * diskfs.h (struct node): New member `istranslated'.
+ (diskfs_node_translated): Deleted function.
+ * dir-lookup.c (diskfs_S_dir_lookup): Use istranslated field
+ instead of diskfs_node_translated.
+ * file-get-trans.c (diskfs_S_file_get_translator): Likewise.
+ * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise.
+ * file-set-trans.c (diskfs_S_file_set_translator): Likewise.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+
+Fri Sep 16 11:53:04 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Use new
+ lock on translator fields; don't hold it and the NP lock
+ simultaneously.
+ * trans-destroy.c (diskfs_destroy_translator): Doc fix.
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Turn off *all* flags
+ in call to getroot if we aren't the last component.
+
+Thu Sep 15 13:01:21 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * init-init.c (diskfs_init_diskfs): Restore commented-out
+ initialization of diskfs_auth_server_port.
+
+Mon Sep 12 14:38:54 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Clear translator
+ port if we get MIG_SERVER_DIED, as with MACH_SEND_INVALID_DEST.
+
+Sun Sep 11 23:30:13 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Copy PATHBUF into RETRYNAME
+ properly when symlink target begins with a slash.
+
+Sat Sep 10 08:36:08 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OTHERSRCS): Add init-startup.c.
+ * init-init.c (_diskfs_dotdot_file): Variable removed.
+ (diskfs_init_diskfs): Take no args; return void.
+ Don't do fsys_startup here.
+ * init-startup.c (diskfs_startup_diskfs): New file, new function.
+ Do fsys_startup here instead.
+ * diskfs.h (diskfs_init_diskfs): Update prototype.
+ (diskfs_startup_diskfs): Declare it.
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Use error_t for ERROR.
+ Retry when fsys_getroot returns MIG_SERVER_DIED, as with
+ MACH_SEND_INVALID_DEST.
+
+Fri Sep 9 13:04:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup) [EAGAIN]: Only copy
+ into RETRYNAME if this isn't the last component.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Set *RETRY
+ and *RETRYNAME properly on normal return.
+
+ * init-init.c (diskfs_init_diskfs): Don't attempt to continue
+ if fsys_startup fails. Deallocate BOOTSTRAP after using it.
+
+Wed Sep 7 09:52:52 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * trans-start.c (diskfs_start_translator): Don't give write
+ access to underlying node if it's not IFREG.
+
+ * dir-lookup.c (diskfs_S_dir_lookup): When returning a port
+ passed back from fsys_getroot, use MACH_MSG_TYPE_MOVE_SEND,
+ not the local default of MAKE_SEND.
+
+ * trans-start.c (diskfs_start_translator): Removed assert.
+
+Tue Sep 6 15:30:59 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * dir-lookup.c (diskfs_S_dir_lookup): Translator startup code
+ rewritted to be more robust and use new locking protocol
+ on translink structures.
+ * trans-start.c (diskfs_start_translator): Don't pass LOCK arg
+ to diskfs_start_translator. Unlock NP around call to
+ diskfs_start_translator. Don't expect DIR to be deallocated.
+
+Thu Sep 1 12:28:03 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * trans-start.c (diskfs_start_translator): Expect right
+ on DIR and NPPORT to be consumed by fshelp_start_translator.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Allocate additional
+ send-right for DOTDOT to be consumed by diskfs_start_translator.
+ Be careful to deallocate DOTDOT when appropriate.
+ * dir-lookup.c (diskfs_S_dir_lookup): Create DIRFILE from
+ DNP, not NP. Create local reference for dirfile to use
+ in call to fsys_getroot.
+
+ * boot-start.c (diskfs_start_bootstrap): Give the
+ library values for current working and root directories.
+
+ * trans-start.c (diskfs_start_translator): Fix and enable.
+ * diskfs.h (diskfs_start_translator): Add new third arg to
+ prototype.
+ * dir-lookup.c (diskfs_S_dir_lookup): Provide third arg to
+ diskfs_start_translator.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+
+Wed Aug 31 12:04:51 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec) [reauth]: Destroy REF after
+ using it.
+
+ * file-get-trans.c (diskfs_S_file_get_translator)
+ [S_ISCHR || S_ISBLK]: Correct cast of second arg to vm_allocate.
+
+ * Makefile (FSYSSRCS): Added fsys-readonly.c and fsys-syncfs.c.
+ * fsys-readonly.c, fsys-syncfs.c: New files.
+
+Wed Aug 31 01:50:07 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * boot-parse.c (diskfs_parse_bootargs): Fix scanf format for
+ bootstrap filesystem device name.
+
+ * file-exec.c (diskfs_S_file_exec): For S_ISUID|S_ISGID, create
+ new auth handle and reauthenticate passed ports properly.
+
+Tue Aug 30 13:44:29 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * file-exec.c (diskfs_S_file_exec): Don't bother setting
+ EXEC_NEWTASK for non-readable execs; it doesn't really work
+ anyhow.
+
+ * init-init.c: Call ports_get_right with the result of
+ ports_allocate_port in call to fsys_startup.
+
+ * trans-sync.c (diskfs_sync_translators): Use fsys_syncfs
+ instead of old ugly method.
+
+ * init-init.c: Include <hurd/fsys.h>.
+
+ * boot-start.c (diskfs_start_bootstrap): Check to make sure return
+ from fsys_getroot and dir_lookup is FS_RETRY_NORMAL with empty
+ retry_name instead of old FS_RETRY_NONE.
+ * dir-lookup.c (diskfs_S_dir_lookup): Initialize return values with
+ FS_RETRY_NORMAL and empty retryname instead of old FS_RETRY_NONE.
+
+ * Makefile (FSSRCS): Remove dir-pathtrans.c; add dir-lookup.c.
+ * dir-lookup.c: Renamed from dir-pathtrans.c.
+ * dir-pathtrans.c (diskfs_S_dir_lookup): Renamed from
+ diskfs_S_dir_pathtrans.
+ * boot-start.c (diskfs_start_bootstrap): Call dir_lookup instead
+ of dir_pathtrans.
+ * ifsock.c (diskfs_S_ifsock_getsockaddr): Call file_name_lookup
+ instead of path_lookup.
+
+Mon Aug 29 12:51:42 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Use new
+ protocol for auth_server_authenticate.
+
+Fri Aug 26 12:49:09 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Rename args;
+ split flags arg into two. Interpret flags according to new
+ scheme.
+
+Thu Aug 18 12:58:44 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * boot-parse.c (diskfs_parse_bootargs): Print informative
+ bootstrap message.
+ * boot-start.c (diskfs_start_bootstrap): Likewise.
+ (start_execserver): Likewise.
+
+ * boot-start.c (diskfs_start_bootstrap): Only do `pausing'
+ hack if RB_KDB was in bootstrap args.
+ (start_execserver): Likewise.
+
+ * io-select.c (diskfs_S_io_select): Add new `porttype' arg.
+
+Thu Aug 11 13:05:40 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Set retry stuff
+ correctly if there are more components after translator
+ fsys_getroot.
+
+Sat Jul 23 02:25:54 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (notify-MIGSFLAGS): New variable: -DSEQNOS.
+
+ * ports-demuxer.c (ports_demuxer): Prepend diskfs_ to Hurd
+ interface server functions.
+
+Fri Jul 22 10:54:23 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Changed to use new scheme.
+ * boot-start.c: Include "fsys_reply_U.h" instead of "fsys_reply.h".
+ * dir-chg.c: Include "ourmsg_U.h" instead of "msg.h".
+ * fsmutations.h SERVERPREFIX): Delete macro.
+
+ * diskfs.h (struct thread_stuff, diskfs_catch_exception,
+ diskfs_end_catch_exception): Moved here from diskfs_machdep.
+ Delete inclusion of diskfs_machdep.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Skip leading
+ slashes instead of returning an error.
+
+Tue Jul 19 22:12:29 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Fix fsys_getroot call:
+ MACH_MSG_TYPE_MOVE_SEND instead of MACH_PORT_RIGHT_MOVE_SEND.
+
+Tue Jul 19 18:37:52 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * boot-start.c (diskfs_start_bootstrap): Create root port
+ before calling fsys_getroot on exec server. Pass root port
+ as exec server's dotdot node.
+ (diskfs_execboot_fsys_startup): Deleted dotdot args.
+ * diskfs.h (diskfs_execboot_fsys_startup): Deleted dotdot args.
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans) [translator startup]:
+ Set dirfile always, not just when invoking the passive translator.
+ Pass dirfile to fsys_getroot. Clean up deallocate of dirfile.
+ * file-inv-trans.c (diskfs_S_file_invoke_translator): Comment
+ out code; this function should vanish.
+ * priv.h (_diskfs_dotdot_file): Deleted variable.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Use new arg `dotdot'
+ in place of _diskfs_dotdot_file. Pass dotdot in call to
+ fsys_getroot.
+ * trans-sync.c (diskfs_sync_translators): Pass grunge as dotdot
+ arg in call to fsys_getroot.
+ * fsys-startup.c (diskfs_S_fsys_startup): Deleted dotdot args;
+ don't pass them in calls to helper functions.
+ * init-init.c (diskfs_init_diskfs): Don't expect dotdot arg
+ from fsys_getroot; don't set _diskfs_dotdot_file.
+
+Mon Jul 18 15:24:30 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * file-inv-trans.c: New file.
+ * Makefile (FSSRCS): Added file-inv-trans.c.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Dereference
+ returned_port in check for null.
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Likewise.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): After
+ diskfs_start_translator, set var `control'.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): After getting
+ MACH_SEND_INVALID_DEST from the translator, set error to zero
+ so that the user's open completes normally. Do other fixes
+ from Jul 7 that were made in dir-pathtrans.c for translator
+ startup.
+
+ * ports-idle.c (ports_notice_idle): New file.
+ * Makefile (OTHERSRCS): Added ports-idle.c.
+
+ * node-times.c (diskfs_set_node_times): Set old stat structure
+ times until the header file gets changed.
+
+ * ifsock.c (diskfs_S_ifsock_getsockaddr): Provide type argument
+ in call to socket_fabricate_address.
+
+Fri Jul 15 12:00:38 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Use
+ DIRCRED->po->dotdotport instead of diskfs_dotdot_file.
+
+ * diskfs.h (diskfs_read_symlink_hook): New variable.
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Don't permit symlinks
+ to be opened for reading or writing (just like other special file
+ types). Try using diskfs_read_symlink_hook before reading
+ from file data.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Try using
+ diskfs_read_symlink_hook before reading from file data.
+ * file-get-trans.c (diskfs_S_file_get_translator): Likewise.
+
+Thu Jul 14 14:39:08 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * diskfs.h (diskfs_create_symlink_hook): New variable.
+ (diskfs_truncate): Doc fix.
+ * file-set-trans.c (diskfs_S_file_set_translator): Try
+ diskfs_create_symlink_hook first, before writing ourselves.
+ Return errors to user properly.
+
+ * node-times.c (diskfs_set_node_times): Use new stat structures
+ with struct timespec instead of old definitions.
+
+Wed Jul 13 14:26:37 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * shutdown.c (diskfs_shutdown): Check UNLINK bit first to avoid
+ dumping translators if we end up returning an error.
+
+ * ports-noports.c: New file.
+ * ports-soft.c: New file.
+ * diskfs.h (diskfs_shutdown_soft_ports): New declaration.
+ * Makefile (OTHERSRCS): Added ports-noports.c and ports-soft.c.
+
+ * diskfs.h (diskfs_init_diskfs): New arg `bootstrap'; add return
+ value. Call fsys_getroot if bootstrap is set.
+
+ * diskfs.h (diskfs_dotdot_file): Deleted variable.
+ (struct peropen): New member `dotdotnode'.
+ (diskfs_make_peropen): New arg DOTDOTPORT.
+ * peropen-make.c (diskfs_make_peropen): Set PO->dotdotport;
+ allocate reference if necessary.
+ * priv.h (_diskfs_dotdot_file): New variable.
+ * init-init.c (_diskfs_dotdot_file): New definition.
+ * boot-start.c (diskfs_start_bootstrap): dotdot for created
+ peropen to root should be null (we are *the* root directory in this
+ case).
+ (diskfs_S_exec_startup): Likewise.
+ * dir-mkfile.c (diskfs_S_dir_mkfile): Inherit dotdot for
+ new peropen from CRED->po.
+ * file-exec.c (diskfs_S_file_exec): Likewise.
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Inherit dotdot for
+ new peropens from DIRCRED->po.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Set dotdot
+ from _diskfs_dotdot_file.
+
+ * diskfs.h (diskfs_control_port): Deleted variable.
+ * priv.h (_diskfs_control_lock, _diskfs_ncontrol_ports): New vars.
+ (_diskfs_control_clean): New declaration.
+ * ports-clean.c (ports_cleanroutines[PT_CTL]): Use
+ _diskfs_control_clean.
+ * init-init.c (diskfs_init_diskfs): Don't create control port here.
+ (_diskfs_control_lock, _diskfs_ncontrol_ports): New declarations.
+ * file-getcontrol.c (diskfs_S_file_getcontrol): Always create
+ a new control port structure.
+
+ * io-write.c (diskfs_S_io_write): Honor O_FSYNC bit.
+ * conch-set.c (ioserver_put_shared_data): Set do_sigio if
+ user set O_FSYNC.
+ * io-stubs.c (diskfs_S_io_sigio): Removed function.
+ * io-sigio.c: New file.
+ * Makefile (IOSRCS): Added io-sigio.c
+
+ * io-write.c (diskfs_S_io_write): Eliminate pointless test for
+ !err before _diskfs_rdwr_internal; only increment filepointer if
+ there was no error.
+
+ * priv.h (_diskfs_rdwr_internal): New arg NOTIME.
+ * rdwr-internal.c (_diskfs_rdwr_internal): New arg NOTIME.
+ * io-read.c (diskfs_S_io_read): Don't set atime if O_NOATIME is on.
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Don't allow non-owner
+ to set O_NOATIME.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+
+ * priv.h (HONORED_STATE_MODES): Add O_NOATIME.
+ (OPENONLY_STATE_MODES): New macro.
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Use
+ OPENONLY_STATE_MODES to turn off appropriate bits.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): At start, turn
+ off all the bits not in O_HURD; we ignore all those and don't
+ keep track of them in any way.
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+
+ * file-get-trans.c (diskfs_S_file_get_translator): Return
+ shortcircuited translators for IFCHR, IFBLK, IFIFO, and IFSOCK.
+
+ * file-set-trans.c (diskfs_S_file_set_translator): In computing
+ rdev, 377 should be *octal*, not hex.
+
+ * dir-rename.c (diskfs_S_dir_rename): Deallocate received
+ send-right for TOCRED any time we return success.
+
+ * dir-link.c (diskfs_S_dir_link): Don't assume that NP is a
+ non-directory before checking it.
+
+ * boot-start.c (diskfs_start_bootstrap): New variable
+ `initnamebuf' which is allocated and then not changed; free
+ it rather than freeing `initname'.
+
+Mon Jul 11 18:16:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Symlinks to pathnames
+ beginning with `/' sholud return FS_RERTY_MAGICAL (but the
+ retry name is stils the same).
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+
+Fri Jul 8 13:34:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): After getting
+ MACH_SEND_INVALID_DEST from the translator, set error to zero
+ so that the user's open completes normally.
+ (diskfs_S_dir_pathtrans): Call mach_port_mod_refs correctly.
+ (diskfs_S_dir_pathtrans): In call to fsys_getroot, turn off
+ O_NOLINK for !lastcomp, not for lastcomp.
+
+Thu Jul 7 14:46:46 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Deal correctly
+ with the sendright on the translator control port avoiding
+ races while the node is unlocked.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): At translator
+ lookup time, if there is an active translator, release the
+ lock on DNP just like we do in the start-passive case. Also
+ after fsys_getroot, release reference and clear DNP so that
+ code at out: doesn't get it wrong.
+ (diskfs_S_dir_pathtrans): Call fshelp_translator_drop instead
+ of setting it to null ourselves.
+ * trans-destroy.c (diskfs_destroy_translator): Likewise.
+
+Wed Jul 6 14:43:55 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * ports-demuxer.c (ports_demuxer): Only call ifsock_server
+ if diskfs_shortcut_ifsock is set.
+
+Tue Jul 5 14:15:32 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (TAGSHDRS): New variable.
+
+Thu Jun 30 11:35:43 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * fsmutations.h (IFSOCK_IMPORTS): New macro.
+
+ * ports-demuxer.c (ports_demuxer): Call ifsock_server.
+
+Wed Jun 29 17:07:17 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * diskfs.h (struct node): New member `sockaddr'.
+ * node-make.c (diskfs_make_node): Initialize NP->sockaddr.
+ * node-drop.c (diskfs_drop_node): Deallocate NP->sockaddr
+ if it's been set.
+ * ifsock.c: New file.
+ * Makefile (IFSOCKSRCS): New variable.
+ (SRCS): Added $(IFSOCKSRCS).
+ (MIGSTUBS): Added ifsockServer.o.
+ (ifsock_S.h ifsockServer.c): New rule.
+ (ifsock_S.h): Depended on by IFSOCKSRCS generated objects.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Detect the case
+ where the server has died by looking for MACH_SEND_INVALID_DEST
+ as a return from fsys_getroot. Rearrange lock/unlock and
+ reference counting of NP and DNP because we may need them back
+ if we have to repeat the call.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise.
+
+Fri Jun 24 15:52:52 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-link.c (diskfs_S_dir_link): The port_info struct member
+ is `port_right', not `port'.
+
+Tue Jun 21 13:25:15 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-link.c (diskfs_S_dir_link): Deallocate received send
+ right for DIRCRED anytime we return success.
+
+ * dir-chg.c (diskfs_S_dir_notice_changes): New var `np'. Return
+ ENOTDIR if call is made on a non-directory.
+
+Mon Jun 20 16:40:37 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * node-drop.c (diskfs_drop_node): Free structures holding
+ dirmod requests.
+ * node-make.c (diskfs_make_node): Initialize NP->dirmod_reqs
+ to zero.
+
+Fri Jun 17 13:16:18 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Initialize ERROR.
+
+Fri Jun 17 11:21:25 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * trans-sync.c: Include <fcntl.h>.
+
+ * Makefile (boot-start.o): Depend on fsys_reply.h.
+
+Thu Jun 16 11:31:46 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makefile (msg.h, msgUser.c): New rules.
+ (MIGSTUBS): Added msgUser.o.
+ (dir-chg.o): Depends on msg.h.
+ * dir-chg.c: Include "msg.h".
+
+ * diskfs.h (diskfs_start_translator): Second arg DIR is now
+ file_t. Changed locking rules.
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Call
+ diskfs_start_translator the new way; clean up lock releases.
+
+ * fshelp-dropnode.c: Deleted file.
+ * fshelp-getnode.c: Deleted file.
+ * Makefile (OTHERSRCS): Removed fshelp-dropnode.c and fshelp-getnode.c.
+
+ * boot-start.c (diskfs_start_bootstrap): Use new fsys_getroot
+ interface.
+
+ * fsys-getroot.c: Include <fcntl.h> for O_ bits. Include
+ <hurd/fsys.h> for fsys_startup prototype.
+
+ * boot-start.c (diskfs_start_bootstrap, diskfs_S_exec_startup):
+ Delete obsolete assignments to INIT_PORT_LOGINCOLL.
+
+ * diskfs.h (struct node) [dirmod_reqs]: New member.
+ (struct dirmod): New type.
+ (diskfs_dirrewrite, diskfs_dirremove, diskfs_direnter): Doc fix.
+ (diskfs_notice_dirchange): New prototype.
+ * dir-chg.c (diskfs_S_dir_notice_changes): Implement call.
+ (diskfs_notice_dirchange): New function.
+
+ * diskfs.h (diskfs_get_directs): Doc fix.
+
+ * file-access.c (diskfs_S_file_check_access): Renamed from
+ diskfs_S_file_access. Return allowable operations in *TYPE
+ rather than checking those explicitly asked for. Use O_ bits
+ instead of _OK bits. Include <fcntl.h>.
+
+Wed Jun 15 21:26:14 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Require lookup of
+ empty pathname to fail if not made on a directory.
+
+ * fsys-getroot.c (diskfs_S_fsys_getroot): Rewritten to implement
+ the new fsys_getroot interface.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Don't implement
+ O_TRUNC here anymore.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Use the new
+ fsys_getroot interface for translator startup.
+
+ * io-modes-set.c (diskfs_S_io_set_all_openmodes): Only let
+ the user set the user-setable bits.
+
+ * file-get-transcntl.c (diskfs_S_file_get_translator_cntl): New
+ arg CTLTYPE; set appropriately.
+
+Wed Jun 15 12:18:16 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * file-chg.c (diskfs_S_file_notice_changes): Declare return type.
+
+ * file-access.c: New file.
+ * Makefile (FSSRCS): Added file-access.c.
+
+Tue Jun 14 14:06:36 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * diskfs.h (diskfs_get_dirents): New declaration.
+ * dir-readdir.c (diskfs_S_dir_readdir): Implement new
+ interface using diskfs_get_directs.
+
+ * dir-chg.c, file-chg.c: New files.
+ * Makefile (FSSRCS): Added dir-chg.c and file-chg.c.
+
+Thu Jun 9 13:39:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Release lock on NP
+ during call to fsys_getroot; stash control port and uid info in
+ new local variables. Reacquire lock before return (because
+ common code at label OUT expects NP to be locked).
+
+Mon Jun 6 18:54:50 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): In translator
+ startup check, test O_NOTRANS in flags correctly.
+
+ * dir-renamed.c (diskfs_rename_dir): Don't call diskfs_nrele on
+ TMPNP after SPEC_DOTDOT calls; the spec says that SPEC_DOTDOT
+ with RENAME does not allocate a new reference.
+
+Sun Jun 5 05:51:11 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Fix
+ initialization of {GEN,AUX}_{UIDS,GIDS}.
+
+Fri Jun 3 18:19:22 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * file-set-trans.c (diskfs_S_file_set_translator): Use
+ fshelp_set_control instead of doing it ourselves.
+
+Thu Jun 2 12:00:51 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * diskfs.h (struct node): New member `light_references'.
+ (diskfs_nref, diskfs_nput, diskfs_nrele, diskfs_make_node): Doc fix.
+ (diskfs_nref_light, diskfs_nput_light, diskfs_nrele_light):
+ New functions.
+ (diskfs_nrele, diskfs_nput): Only call diskfs_drop_node if both
+ NP->references *and* NP->light_references are zero.
+ (diskfs_new_hardrefs, diskfs_lost_hardrefs): New declarations.
+ (diskfs_nref): Call diskfs_new_hardrefs when appropriate.
+ (diskfs_nput, diskfs_nrele): Call diskfs_lost_hardrefs when
+ appropriate.
+
+ * node-make.c (diskfs_make_node): Initialize NP->light_references.
+ Doc fix.
+
+Wed Jun 1 18:24:11 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Skip over multiple
+ slashes in pathnames by incrementing NEXTNAME after setting it.
+ Also, if after we do this we discover that there is no last
+ component, then set LASTCOMP and clear NEXTNAME and CREATE
+ entirely, and set (new variable) MUSTBEDIR. Then check for
+ MUSTBEDIR after the node has been fetched. Make var TYPE
+ function-global and set it always, not just when NEWNODE is unset.
+
+Fri May 27 08:47:46 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * boot-start.c (diskfs_S_exec_exec, diskfs_S_exec_setexecdata):
+ Add missing args.
+ (diskfs_S_exec_startup): Don't point *ARGVP to EXEC_DATA local
+ storage. Instead, copy EXEC_DATA to *ARGVP if *ARGVLEN allows;
+ otherwise vm_allocate new space and copy into there.
+
+Thu May 26 15:33:57 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * diskfs.h (diskfs_nrele): Acquire lock if we are releasing
+ the last reference.
+
+ * node-drop.c (diskfs_drop_node): If we are truncating, then
+ go back to normal user state and do the truncate; the next
+ time through we will do the dealloc for real.
+ Semantics change: now this routine is responsible for
+ unlocking diskfs_node_refcnt_lock. All callers changed.
+
+Wed May 25 20:34:17 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * io-write.c (diskfs_S_io_write): Don't check for *AMT < 0; AMT is
+ an out-only parameter.
+
+Wed May 25 12:23:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * ports-consts.c (ports_use_multiple_threads): Deleted definition.
+ * init-first.c (diskfs_spawn_first_thread): Fork
+ ports_manage_port_operations_multithread instead of
+ ports_maange_port_operations.
+ * init-loop.c (diskfs_main_request_loop): Likewise.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Reference node in
+ lookup of empty path case so that common code at the out: label
+ doesn't free an extra one.
+
+Mon May 23 23:13:51 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * boot-start.c (diskfs_S_fsys_init): Start exec_init after
+ proc_child.
+
+Thu May 19 12:48:53 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * io-reauthenticate.c (diskfs_S_io_reauthenticate): Unlock
+ node after calling diskfs_finish_protid.
+
+Thu May 12 14:23:29 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makefile (clean): Add fsys_reply.h and *User.c.
+
+Thu May 12 03:45:38 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile (fsys_reply.h fsys_replyUser.c): New rule.
+ (MIGSTUBS): Add fsys_replyUser.o.
+ * boot-start.c: Include fsys_reply.h.
+ (diskfs_S_fsys_init): Take new reply port args.
+ Send reply msg as soon as verified, before doing anything.
+
+Mon May 9 16:58:24 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * diskfs.h (diskfs_init_completed): New function declaration.
+ * boot-start.c (diskfs_S_fsys_init): Don't call _hurd_proc_init.
+ Do call diskfs_init_completed.
+
+Thu May 5 13:04:43 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Behave properly
+ if nextname is null. Copy nextname to the end of the symlink
+ target rather than vice versa. Don't punt to the caller before
+ doing the append.
+ (diskfs_S_dir_pathtrans): O_NOTRANS should prevent symlink
+ interpretation.
+ (diskfs_S_dir_pathtrans): If a symlink traversal was the last
+ component, then clear CREATE (symlinks to nothing don't honor
+ O_CREAT) and clear LASTCOMP (because it isn't true any longer).
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Fix mangled check
+ for O_NOLINK.
+ (diskfs_S_dir_pathtrans): Repair furtherly mangled check for
+ O_NOLINK.
+
+ * conch-set.c (ioserver_put_shared_data): Set
+ optimal_transfer_size from the same thing we return in stat.
+
+ * io-async.c (diskfs_S_io_async): Just return EOPNOTSUPP without
+ doing anything more at all.
+
+Thu May 5 06:32:10 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * io-prenotify.c (diskfs_S_io_prenotify): Make START and END args
+ type vm_offset_t.
+
+ * io-map-cntl.c (diskfs_S_io_map_cntl): Take 3rd result arg
+ for msg type of *CTLOBJ; set it to copy-send.
+
+ * io-async.c (diskfs_S_io_async): Take 3rd result arg for msg type
+ of *IDPORT; set it to copy-send. Return 0 instead of EOPNOTSUPP;
+ should not be deallocating NOTIFY if returning an error.
+
+ * io-async-icky.c (diskfs_S_io_get_icky_async_id): Take 3rd result arg
+ for msg type of *IDPORT; set it to copy-send.
+
+ * conch-set.c (ioserver_put_shared_data): Temporarily #if 0
+ setting of optimal_transfer_size from bogus undeclared variable.
+
+ * protid-make.c: Include <string.h> to get bcopy declared.
+
+ * {file,dir,io,fsys}-*.c: Changed return type of all RPC server
+ functions to kern_return_t. error_t is not compatible with the
+ declarations in the mig-generated header files.
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
+ * file-exec.c (diskfs_S_file_exec): Fix msg type arg in exec_exec call.
+
+ * dir-pathtrans.c (diskfs_S_dir_pathtrans): Add missing close paren.
+
+ * boot-start.c (diskfs_start_bootstrap): Pass msg type arg for
+ FILE arg to exec_exec.
+ (diskfs_S_fsys_getpriv): Change return type to kern_return_t.
+ error_t is not compatible with the declarations in the
+ mig-generated header files.
+ (diskfs_S_fsys_init): Likewise.
+ (exec_stack_base, exec_stack_size): New variables.
+ (diskfs_S_exec_startup): Use those for stack values in reply.
+ (start_execserver): Pass them to mach_setup_thread to be initialized.
+
+Mon May 2 16:32:22 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * dir-pathtrans.c: Test for O_NOLINK flag was mangled.
+
+Fri Apr 29 16:44:08 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * io-stubs.c (diskfs_S_io_readnotify): New function.
+
+ * conch-set.c (ioserver_put_shared_data): Set new fields
+ optimal_transfer_size (to sblock->fs_bsize) and
+ use_readnotify_size (to zero).
+
+ * file-exec.c (diskfs_S_file_exec): Change call to exec_exec in
+ accord with interface change in exec.defs.
+
+Mon Feb 14 11:26:26 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * boot-start.c: #include <hurd.h>.
+ (start_execserver): Call _hurd_setup_thread in place of start_thread.
diff --git a/libfshelp/ChangeLog b/libfshelp/ChangeLog
new file mode 100644
index 00000000..fb6241bb
--- /dev/null
+++ b/libfshelp/ChangeLog
@@ -0,0 +1,430 @@
+Tue Jul 16 11:30:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * lock-acquire.c (EWOULDBLOCK): Define, to work around new libc
+ bug.
+
+Sun Jul 7 21:26:02 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * start-translator.c (fshelp_start_translator): Don't use unsafe
+ MOVE_SEND in call to fshelp_start_translator_long.
+ * fetch-root.c (fshelp_fetch_root): Don't use unsafe MOVE_SEND in
+ call to fshelp_start_translator_long.
+
+Thu Jul 4 15:38:36 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * get-identity.c (fshelp_get_identity): Bother to initialize
+ I->fileno.
+
+Wed Jul 3 11:29:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * get-identity.c: New file.
+ * fshelp.h (struct port_bucket): Mention name in global scope.
+ (fshelp_get_identity): New declaration.
+ * Makefile (SRCS): Add get-identity.c.
+
+Thu Jun 27 17:56:44 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Add trans.h.
+
+Mon Jun 24 16:00:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root): Deal properly with errors from
+ auth_makeauth.
+
+Fri Jun 21 00:07:26 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * set-options.c (fshelp_set_options): Add & use INPUT arg.
+ * fshelp.h (fshelp_set_options): Add INPUT argument.
+ (fshelp_return_malloced_buffer): New declaration.
+ * return-buffer.c: New file.
+ * Makefile (SRCS): Add return-buffer.c.
+
+Wed Jun 19 18:50:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * set-options.c: New file.
+ * fshelp.h: Add fshelp_set_options.
+ * Makefile (SRCS): Add set-options.c.
+
+Fri May 10 16:12:50 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * delegate.c (fshelp_delegate_translation): Don't cast ARGV when
+ calling arg_create.
+
+Thu May 9 11:17:08 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * exec-reauth.c (fshelp_exec_reauth): Provide new third arg to
+ proc_setowner.
+
+ * delegate.c (fshelp_delegate_translation): Cast first arg to
+ argz_create appropriately.
+
+ * fetch-root.c (fshelp_fetch_root) [reauth]: Use new args for
+ auth_user_authenticate.
+
+Fri Apr 26 18:51:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * start-translator-long.c (service_fsys_startup): Make mach_msg
+ calls interruptible.
+
+Wed Feb 21 17:09:12 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * set-active.c (fshelp_set_active): When EXCL, make sure the
+ active translator is really active.
+
+ * fetch-root.c (fshelp_fetch_root): Make sure the returned fsys control
+ port is valid.
+
+Wed Feb 14 16:42:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * start-translator-long.c (fshelp_start_translator_long):
+ Terminate TASK if the exec fails.
+
+Mon Jan 29 15:32:54 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root): Use hurd_condition_wait
+ instead of condition_wait.
+
+ * set-active.c (fshelp_set_active): Deal correctly with the case
+ where a passive translator is being started.
+
+Fri Jan 26 17:56:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root): If io_reauthenticate returns
+ an error, just return MACH_PORT_NULL instead of aborting (the
+ server probably died; not a good sign for the health of the
+ translator, but it's better than dying ourselves...).
+
+Tue Jan 2 15:36:28 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * exec-reauth.c (fshelp_exec_reauth): Don't setgid the uids.
+
+Mon Jan 1 17:13:25 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * exec-reauth.c (fshelp_exec_reauth): New function.
+ * fshelp.h (fshelp_exec_reauth): New declaration.
+ * Makefile (SRCS): Added exec-reauth.c
+
+Mon Nov 6 13:37:52 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * start-translator-long.c (service_fsys_startup): Don't pass the
+ address of reply.realnodeType.msgt_name -- it's not really an int,
+ although the compiler pretends it is.
+
+ * fetch-root.c (fshelp_fetch_root): When PORT_TYPE is
+ MACH_MSG_TYPE_MAKE_SEND, make the right *before* using it.
+ (fshelp_fetch_root): Don't bother reauthenticating the underlying
+ node returned by CALLBACK2 -- it already has the right ids. This
+ also gets rid of a problem with giving away our auth port prematurely.
+
+Wed Nov 1 16:14:08 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root): Uses two callbacks now. Pass
+ an appropiate function to fshelp_start_translator_long instead of
+ the actual underlying node.
+ * fshelp.h (fshelp_fetch_root_callback1_t,
+ fshelp_fetch_root_callback2_t): New types replacing fshelp_callback_t.
+ (fshelp_fetch_root): Takes two callback args now.
+
+ * start-translator.c (fshelp_start_translator): Change to use a
+ callback function instead of passing the actual node.
+ * start-translator-long.c (fshelp_start_translator_long,
+ service_fsys_startup): Ditto.
+ (service_fsys_startup): Support the open flags coming from the
+ translator.
+ (struct fsys_startup_request): Add the flags field.
+ (flagsCheck): New variable.
+ * fshelp.h (fshelp_open_fn_t): New type.
+ (fshelp_start_translator, fshelp_start_translator_long): Now take
+ a function that opens the underlying node instead of the node itself.
+
+Fri Oct 13 16:52:43 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * start-translator-long.c (fshelp_start_translator_long): Undo
+ last change to file_exec args.
+
+Sat Oct 7 20:20:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * start-translator-long.c (fshelp_start_translator_long): Add
+ values for the dealloc parameters to file_exec (all false).
+ Give away our send right to TASK when we do file_exec.
+ Initialize BOOTSTRAP & TASK so the cleanup code doesn't get confused.
+
+Fri Sep 29 17:44:00 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * transbox-init.c (fshelp_transbox_init): Initialize the flags field.
+
+Tue Sep 5 18:25:24 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * fshelp.h (fshelp_delegate_translation): New declaration.
+ * delegate.c (fshelp_delegate_translation): New file, new function.
+
+Fri Sep 1 12:01:06 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Add delegate.c.
+ (REMHDRS): Removed.
+
+Tue Jul 11 14:11:24 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * start-translator-long.c (fshelp_start_translator_long): If
+ PORTS_TYPE is MACH_MSG_TYPE_COPY_SEND, then drop our right on
+ bootstrap after the call, because we are pretending we haven't
+ changed the calling user's state. For the same reason, save the
+ old BOOTSTRAP port value, and restore it after the call.
+
+Thu Jul 6 15:35:23 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Mon Jun 26 15:36:21 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root): Wakeup other blocked calls
+ *before* returning errors provided by fshelp_start_translator_long
+ or CALLBACK.
+
+Fri Jun 23 14:25:52 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root): Parenthesize assert test
+ correctly.
+ * start-translator-long.c (service_fsys_startup): Parenthesize
+ construction of flags arg correctly.
+
+Thu Jun 22 17:06:51 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root) [reauth]: If PORT is null, then
+ just return it.
+
+ * fetch-root.c (fshelp_fetch_root): Pass type and length
+ parameters in the right order in calls to auth_makeauth and
+ fshelp_start_translator_long.
+
+Wed Jun 21 13:19:44 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fetch-root.c (fshelp_fetch_root): Pass new third arg to
+ fshelp_set_active.
+
+Mon Jun 19 16:41:51 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fetch-control.c (fshelp_fetch_control): Only frob refs if
+ control is non-null.
+
+ * fshelp.h (fshelp_set_active): New parm EXCL.
+ * set-active.c (fshelp_set_active): Implement new interface.
+
+ * fetch-control.c (fshelp_fetch_control): Don't frob obsolete
+ innerlock.
+ * transbox-init.c (fshelp_transbox_init): Don't init obsolete
+ innerlock. Do init TRANSBOX->wakeup.
+ * set-active.c (fshelp_set_active): Don't frob obsolete innerlock.
+ * fetch-root.c (fshelp_fetch_root): Reduce levels of loops. Only
+ change ACTIVE when we are holding the lock. Use condition
+ mechanism to serialize attempts to start the passive translator.
+ * fshelp.h (struct transbox): Delete member `innerlock'. Add
+ members `flags' and `wakeup'; and define values for flags.
+
+Wed Jun 14 13:06:17 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fshelp.h (fshelp_fetch_root): New arg COOKIE.
+ (fshelp_callback_t): COOKIE->COOKIE1. New arg COOKIE2.
+ * fetch-root.c (fshelp_fetch_root): Take new arg COOKIE and pass
+ it to CALLBACK. Free ARGZ after we're done with them. Never
+ consume the right on DOTDOT.
+ * Makefile (LCLHDRS): Removed trans.h.
+ * handle-startup.c, init-trans.c, start-trans.c,
+ transboot-clean.c, kill-trans.c, trans-iter.c, trans-cntl.c,
+ trans-drop.c, trans.h: Deleted files.
+
+ * Makefile (SRCS): Remove translated.c.
+ * fshelp.h (fshelp_fetch_root): Don't actually need ROOT_TYPE.
+ UIDS and GIDS should be arrays.
+ (fshelp_callback_t): Should be error_t.
+
+Tue Jun 13 15:59:08 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ Brand new translator support routines
+ * fshelp.h: Deleted `struct translink', fshelp_transboot_port_type,
+ fshelp_init_trans_link, fshelp_set_control,
+ fshelp_start_translator, fshelp_handle_fsys_startup,
+ fshelp_transboot_clean, fshelp_translator_iterate,
+ fshelp_translator_drop, fshelp_kill_translator.
+ * fshelp.h: Added fshelp_start_translator_long,
+ fshelp_start_translator, `struct transbox', fshelp_fetch_root,
+ fshelp_transbox_init, fshelp_callback_t, fshelp_translated,
+ fshelp_set_active, fshelp_fetch_control, fshelp_drop_transbox.
+ * Makefile (SRCS): Removed handle-startup.c, init-trans.c,
+ start-trans.c, transboot-clean.c, kill-trans.c, trans-iter.c,
+ trans-cntl.c, trans-drop.c. Added start-translator-long.c,
+ start-translator.c, fetch-root.c, transbox-init.c, translated.c,
+ set-active.c, fetch-control.c, and drop-transbox.c.
+ (OBJS): Replaced with computation from $(SRCS).
+ * start-translator.c, fetch-root.c, transbox-init.c, set-active.c,
+ fetch-control.c, drop-transbox.c: New files.
+ * start-translator-long.c: Adapted from ../lib/start-trans.c.
+ Include "fshelp.h" and <assert.h>.
+ (service_fsys_startup): Declare static. Only pass
+ MACH_RCV_TIMEOUT if TIMEOUT is nonzero. New parm `node_type'.
+ (fshelp_start_translator_long): Renamed from start_translator.
+ Lookup up executable at NAME instead of ARGZ. Delete vars
+ INIT_PORTS, FD_PORTS, INIT_INTS, I, and CHILD_PROC. Don't set any
+ of the ports, fds, or ints, with the exception of the bootstrap
+ port. Don't bother getting the child's proc server port.
+ Don't use __USEPORT. If we fail before calling file_exec,
+ then deallocate the ports ourselves, if they were MOVE_SEND.
+
+Fri Oct 28 18:37:56 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * start-trans.c: Change `assert (!err)' to `assert_perror (err)'
+ throughout.
+ (fshelp_start_translator): Add assert_perror for io_reauthenticate
+ return.
+
+Mon Sep 19 20:58:35 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * trans-iter.c (fshelp_translator_iterate): Bother to attach
+ ITEM onto LIST as it's constructed.
+
+Sat Sep 10 08:42:00 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * transboot-clean.c (fshelp_transboot_clean): Use EDIED, not EINVAL.
+
+Wed Sep 7 10:34:13 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * start-trans.c (fshelp_start_translator): RETRY label belongs
+ *after* initial lock of LINK. Unlock LINK before returning.
+
+Tue Sep 6 14:52:49 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * fshelp.h (struct trans_link): New member `lock'.
+ (fshelp_start_translator): Omit `lock' arg.
+ * trans.h (struct transboot): Omit member `lock'.
+ * init-trans.c (fshelp_init_trans_link): Initialize LINK->lock.
+ * start-trans.c (fshelp_start_translator): Don't set TB->lock.
+ Omit `lock' arg; use LINK->lock instead.
+ (fshelp_start_translator): Don't deallocate DIR.
+ * handle-startup.c (fshelp_handle_fsys_startup): Lock
+ TB->link->lock instead of TB->lock.
+ * transboot-clean.c (fshelp_transboot_clean): Likewise.
+
+Thu Sep 1 16:46:53 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * fshelp.h (fshelp_start_translator): Doc fix.
+ * start-trans.c (fshelp_start_translator): Don't reauthenticate
+ NODE argument; expect fully authenticated node.
+
+Wed Aug 31 14:28:25 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * start-trans.c (fshelp_start_translator): Before call to
+ proc_reauthenticate, CALL mach_reply_port, not just refer to
+ confusing CPP macro.
+
+ * start-trans.c (fshelp_start_translator): Call proc_setowner
+ for new process.
+
+Tue Aug 30 16:19:45 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * start-trans.c: Include <string.h>.
+
+ * start-trans.c (fshelp_start_translator): Use new
+ reauthentication protocol throughout.
+
+ * start-trans.c (fshelp_start_translator): Use
+ hurd_file_name_lookup instead of hurd_path_lookup.
+
+Wed Aug 17 16:03:49 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * start-trans.c (fshelp_start_translator): Designate the new
+ process as our child; then make sure it's under its own
+ authentication. As long as we've gotten the proc port for
+ this operation, might as well pass it too.
+ (fshelp_start_translator): Zero init ints and init ports.
+
+ * transboot-clean.c (fshelp_transboot_clean): Only set an error
+ if we haven't gotten fsys_startup yet.
+
+Mon Aug 15 12:24:47 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * start-trans.c (fshelp_start_translator): Set LINK->starting
+ before blocking.
+ * handle-startup.c (fshelp_handle_fsys_startup): Clear
+ LINK->starting before waking up blocks.
+
+ * fshelp.h (struct trans_link): New member `error'.
+ * transboot-clean.c (fshelp_transboot_clean): Wakeup blocked
+ users with error.
+ * trans-cntl.c (fshelp_set_control): Clear LINK->error.
+ * init-trans.c (fshelp_init_trans_link): Likewise.
+
+ * start-trans.c (fshelp_start_translator): Fix
+ auth_user_authenticate to use the correct rendezvous port in
+ producing realnode from node..
+
+Fri Jul 22 12:03:14 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+
+Wed Jul 20 13:31:39 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * start-trans.c (fshelp_start_translator): Missing first arg
+ to mach_port_deallocate of `dir'.
+
+Tue Jul 19 18:44:53 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * fshelp.h (fshelp_start_translator): Doc fix.
+ (fshelp_handle_fsys_startup): Deleted dotdot args.
+ * trans.h (struct transboot): Removed member `dir'.
+ * start-trans.c (fshelp_start_translator): Don't initialize
+ TB->dir.
+ (fshelp_start_translator): Deallocate DIR arg when we're
+ done with it.
+ * handle-startup.c (fshelp_handle_fsys_startup): Deleted
+ dotdot args.
+ * transboot-clean.c (fshelp_transboot_clean): Don't free
+ no-longer-existent TB->dir.
+
+Fri Jul 8 12:58:54 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * trans-cntl.c: Include <assert.h>.
+
+Thu Jul 7 18:08:49 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * trans-drop.c: New file.
+ * fshelp.h (fshelp_translator_drop): New declaration.
+ * Makefile (OBJS): Added trans-drop.o.
+ (SRCS): ADded trans-drop.c.
+
+Tue Jul 5 14:14:53 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (DIST_FILES): New variable.
+
+Thu Jun 16 16:27:39 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * fshelp.h (fshelp_get_node_port, fshelp_done_with_node): Deleted
+ prototypes.
+ (fshelp_start_translator): Changed types of DIR and NODE to be
+ file_t.
+ * trans.h (struct transboot): Deleted members UID and GID.
+ Changed types of DIR and NODE to be file_t.
+ * transboot-clean.c (fshelp_transboot_clean): Deallocate ports
+ TB->node and TB->dir instead of calling fshelp_done_with_node.
+ * start-trans.c (fshelp_start_translator): Changed types of
+ DIR and MODE to be file_t. Rewritten to behave correctly in
+ numerous ways.
+ * handle-startup.c (fshelp_handle_fsys_startup): Return REAL
+ and DIR from ports in TB instead of calling fshelp_get_node_port.
+
+Fri Jun 3 18:13:04 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * fshelp.h (fshelp_set_control): New declaration.
+ * trans-cntl.c: New file.
+ * Makefile (SRCS): Added trans-cntl.c.
+ (OBJS): Added trans-cntl.o.
+ trans-cntl.o: Depend on trans.h.
+
+Thu May 5 07:46:00 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
+Mon Feb 14 11:32:59 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile (install): New target.
+
diff --git a/libihash/ChangeLog b/libihash/ChangeLog
new file mode 100644
index 00000000..4fa8198d
--- /dev/null
+++ b/libihash/ChangeLog
@@ -0,0 +1,21 @@
+Thu Apr 11 15:26:18 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ihash.c: Include "priv.h".
+ * primes.c: Likewise.
+ * priv.h: New file.
+ * Makefile (LCLHDRS): Add priv.h.
+ * primes.c (_ihash_nextprime): Renamed from nextprime.c. All
+ callers changed.
+
+Thu Mar 7 15:01:46 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * primes.c: Include <spin_lock.h>.
+ (table_lock): New variable.
+ (nextprime): Lock table_lock around operation of routine.
+
+Sun Aug 6 15:23:13 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ihash.c (ihash_locp_remove): Get rid of the optimization to use
+ HASH_EMPTY instead of HASH_DEL when the next position on the chain
+ is empty -- different hash chains may share this cell, and have
+ different next positions.
diff --git a/libiohelp/ChangeLog b/libiohelp/ChangeLog
new file mode 100644
index 00000000..b890e9a8
--- /dev/null
+++ b/libiohelp/ChangeLog
@@ -0,0 +1,37 @@
+Thu May 9 12:42:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile: All occurrences of `ioserver' replaced with `iohelp'.
+
+Mon May 6 16:27:20 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * iohelp.h: Renamed from `ioserver.h'. All local includes
+ updated.
+ * get_conch.c: All occurrences of `ioserver' replaced with
+ `iohelp'.
+ * handle_io_get_conch.c: Likewise.
+ * handle_io_release_conch.c: Likewise.
+ * initialize_conch.c: Likewise.
+ * verify_user_conch.c: Likewise.
+ * iohelp.h: Likewise.
+
+Mon Oct 9 14:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Specify shared library dependencies.
+
+Thu Jul 6 15:35:56 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Fri Jul 22 11:43:56 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Converted to new scheme.
+
+Tue Jul 5 14:13:09 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (TAGSHDRS): New variable.
+
+Thu May 5 07:48:45 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
diff --git a/libmom/ChangeLog b/libmom/ChangeLog
new file mode 100644
index 00000000..f04006c5
--- /dev/null
+++ b/libmom/ChangeLog
@@ -0,0 +1,31 @@
+Sat May 25 17:25:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * refs-identical.c (mom_ports_identical): Omit uses of deleted
+ members of struct mom_port_ref.c.
+
+ * ref-destroy.c (mom_ref_destroy): Omit uses of deleted members of
+ struct mom_port_ref.c.
+
+ * mach-port-set.c (mom_mach_port_set): Omit uses of deleted
+ members of struct mom_port_ref.c.
+
+ * fetch-mach-port.c (mom_fetch_mach_port): Omit uses of deleted
+ members of struct mom_port_ref.c.
+
+ * copy-ref.c (mom_copy_ref): Likewise.
+
+ * mom-kerndep.h (struct mom_port_ref): Delete members `lock' and
+ `refcnt'.
+ * Makefile (SRCS): Delete add-ref.c and drop-ref.c.
+ * mom.h (mom_add_ref, mom_drop_ref): Delete functions.
+ * add-ref.c, drop-ref.c: Delete files.
+
+Fri May 24 16:14:54 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mom.h: Include <mom-errors.h>.
+ * error-trans.c: New file.
+ * mom-kerndep.h (mom_error_translate_mach): New function.
+ * Makefile (LCLHDRS, installhdrs): Add mom-errors.h.
+ (SRCS): Add error-trans.c.
+ * mom-errors.h: New file.
+
diff --git a/libnetfs/ChangeLog b/libnetfs/ChangeLog
new file mode 100644
index 00000000..ccb98e49
--- /dev/null
+++ b/libnetfs/ChangeLog
@@ -0,0 +1,234 @@
+Sat Jul 13 20:10:02 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-reauthenticate.c (netfs_S_io_reauthenticate): Repeat
+ auth_server_authenticate for as long as we get EINTR. Tolerate
+ other errors without crashing as well.
+
+Sun Jul 7 21:28:54 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-reauthenticate.c (netfs_S_io_reauthenticate): Don't use
+ unsafe MOVE_SEND in call to auth_server_authenticate.
+
+Thu Jul 4 16:56:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-write.c (netfs_S_io_write): Bother implementing O_APPEND.
+
+ * io-identity.c (netfs_S_io_identity): Don't take address of ID in
+ call to fshelp_get_identity.
+
+Wed Jul 3 11:54:46 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir-mkfile.c (netfs_S_dir_mkfile): Return right with MAKE_SEND,
+ not COPY_SEND.
+
+ * io-identity.c (netfs_S_io_identity): Use fshelp_get_identity
+ instead of creating port ourselves.
+ * netfs.h (struct node): Delete member identity.
+ * make-node.c (netfs_make_node): Don't initialize NP->identity.
+ * drop-node.c (netfs_drop_node): Don't deallocate NP->identity.
+
+Thu Jun 27 17:57:30 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Add execserver.h.
+
+Thu Jun 27 00:24:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * append-std-options.c: New file.
+ * Makefile (OTHERSRCS): Add append-std-options.c.
+
+Wed Jun 26 15:57:13 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * netfs.h: Change options parsing interface to match libdiskfs's:
+ (netfs_set_options, netfs_get_options): Updated to inew interface.
+ (netfs_runtime_argp, netfs_std_runtime_argp, netfs_std_startup_arg):
+ New variables.
+ (netfs_append_std_options): New declaration.
+ (netfs_parse_runtime_options, netfs_unparse_runtime_options):
+ Functions removed.
+ * set-options.c (std_runtime_options): Variable removed.
+ (parse_runtime_opt): Function removed.
+ (netfs_set_options): Change to use fshelp_set_options.
+ * fsys-set-options.c (netfs_S_fsys_set_options): Don't convert
+ options string into argv vector.
+ * fsys-get-options.c (netfs_S_fsys_get_options): Use
+ fshelp_return_malloced_buffer to prepare return value.
+ * file-get-fs-options.c (netfs_S_file_get_fs_options): Likewise.
+ * get-options.c (netfs_get_options): Call netfs_append_std_options.
+ * std-startup-argp.c, std-runtime-argp.c, runtime-argp.c: New files.
+ * parse-runtime-options.c, unparse-runtime-options.c: Files removed.
+ * Makefile (OTHERSRCS): Add runtime-argp.c, std-runtime-argp.c,
+ & std-startup-argp.c. Remove parse-runtime-options.c &
+ unparse-runtime-options.c.
+
+Tue May 14 14:05:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * init-init.c (netfs_fsys_identity): New variable.
+ (netfs_init): Initialize netfs_fsys_identity.
+ * drop-node.c (netfs_drop_node): Destroy NP->identity if it's set.
+ * make-node.c (netfs_make_node): Initialize NP->identity.
+ * netfs.h (struct node): New member `identity'.
+ (netfs_fsys_identity): New variable.
+ * Makefile (IOSRCS): Add io-identity.c.
+ * io-identity.c: New file.
+
+Sat May 11 01:24:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * startup-argp.c (parse_startup_opt): Use ARGP_ERR_UNKNOWN instead
+ of EINVAL.
+
+Thu May 9 18:54:11 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * file-get-storage-info.c (netfs_S_file_get_storage_info): fixup
+
+Thu May 9 18:15:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * file-get-storage-info.c (netfs_S_file_get_storage_info): Change
+ to new interface.
+
+Thu May 9 11:53:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * make-protid.c (netfs_make_protid): Use new ports interface; if
+ it fails return zero.
+
+ * io-select.c (netfs_S_io_select): No longer has TAG arg.
+
+ * io-reauthenticate.c (netfs_S_io_reauthenticate): Don't pass
+ right for USER to auth_server_authenticate.
+
+ * file-sync.c (netfs_S_file_sync): Accept and ignore new omitmeta
+ arg.
+
+ * dir-rename.c (netfs_S_dir_rename): Accept and pass through excl
+ flag.
+ * dir-link.c (netfs_S_dir_link): Likewise.
+ * netfs.h (netfs_attempt_link): Add excl parm.
+ (netfs_attempt_rename): Likewise.
+
+ * netfs.h (netfs_attempt_statfs): Use struct statfs, not old
+ deprecated structure.
+ * file-statfs.c (netfs_S_file_statfs): Use new struct statfs.
+
+ * netfs.h: ioserver.h -> iohelp.h.
+
+Mon Apr 29 16:27:37 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * file-getcontrol.c (netfs_S_file_getcontrol): Use correct args to
+ ports_create_port.
+
+Sat Apr 27 06:02:03 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * file-getcontrol.c: Use ports_create_port instead of
+ ports_allocate_port, and notice the error.
+
+Wed Apr 24 16:02:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-seek.c (netfs_S_io_seek): Bother to set *NEWOFFSET.
+
+Fri Apr 12 16:21:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * file-exec.c (netfs_S_file_exec): Copy credential using
+ netfs_copy_credential before handing it off to netfs_make_protid.
+
+ * dir-lookup.c (netfs_S_dir_lookup): netfs_make_protid's second
+ arg must be a real credential; the unauthenticated port creation
+ frob now makes a genuine (but empty) credential.
+
+Thu Apr 11 18:10:29 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (fsys-MIGSFLAGS, fs-MIGSFLAGS, io-MIGSFLAGS,
+ ifsock-MIGSFLAGS): Find mutations.h in $(srcdir).
+
+Wed Apr 3 14:47:37 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-reauthenticate.c (netfs_S_io_reauthenticate): In check for
+ deallocation of aux_gids; check against AGBUF, not AUBUF.
+
+Tue Apr 2 09:14:30 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-write.c: Include <fcntl.h>.
+ (netfs_S_io_write): Verify that the user has the file open for
+ writing.
+ * io-read.c: Include <fcntl.h>.
+ (netfs_S_io_read): Verify that the user has the file open for
+ reading.
+
+Mon Apr 1 16:02:29 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * fsstubs.c (netfs_S_file_exec): Remove stub.
+ * Makefile (FSSRCS): Add file-exec.c.
+ * execserver.h: New file.
+ * file-exec.c: New file.
+
+Mon Apr 1 14:21:12 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * parse-runtime-options.c (netfs_parse_runtime_options): Pass new
+ arg to arg_parse.
+
+Tue Mar 19 14:12:32 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Add callbacks.h misc.h modes.h mutations.h
+ priv.h.
+
+Mon Mar 18 11:09:05 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * netfs.h (netfs_startup): Add declaration.
+
+ * netfs.h (netfs_protid_class, netfs_control_class,
+ netfs_port_bucket, netfs_root_node, netfs_auth_server_port): Make
+ this extern.
+
+ * fsys-getroot.c: Include "callbacks.h".
+
+ * file-set-translator.c (makedev): New macro.
+
+Thu Mar 14 16:47:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * netfs.h (netfs_attempt_mkdev): Don't pass dev_t in pieces.
+ * file-set-translator.c (netfs_S_file_set_translator): In call to
+ netfs_attempt_mkdev don't pass MAJOR and MINOR in pieces.
+
+Tue Mar 12 14:57:26 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * fsys-getroot.c (netfs_S_fsys_getroot): Add translator linkage
+ code.
+ * dir-lookup.c (netfs_S_dir_lookup): Fix up and enable translator
+ linkage code.
+
+ * netfs.h (netfs_attempt_chmod): Doc fix.
+ (netfs_attempt_mksymlink, netfs_attempt_mkdev,
+ netfs_set_translator): New declarations.
+ * file-set-translator.c: New file.
+ * fsstubs.c (netfs_S_file_set_translator): Delete function.
+ * Makefile (FSSRCS): Add file-set-translator.c.
+
+Mon Mar 11 16:44:08 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * fsstubs.c (netfs_S_file_get_translator): Remove function.
+ * file-get-translator.c: New file.
+ * Makefile (FSSRCS): Add file-get-translator.c.
+
+Mon Mar 4 13:36:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsys-set-options.c, fsys-get-options.c, file-get-fs-options.c:
+ New files.
+ * netfs.h (netfs_startup_argp, netfs_get_options,
+ netfs_set_options, netfs_parse_runtime_options,
+ netfs_unparse_runtime_options): New declarations.
+ * Makefile (OTHERSRCS): Add startup-argp.c, set-options.c,
+ get-options.c, parse-runtime-options.c, & unparse-runtime-options.c.
+ (FSYSSRCS): Add fsys-set-options.c & fsys-get-options.c.
+ (FSSRCS): Add file-get-fs-options.c.
+ * unparse-runtime-options.c (netfs_unparse_runtime_options): Add
+ comment, and remove bogus semi.
+ * fsysstubs.c (netfs_S_fsys_set_options, netfs_S_fsys_get_options):
+ Functions removed.
+ * fsstubs.c (netfs_S_file_get_fs_options): Function removed.
+ * parse-runtime-options.c: Include "netfs.h", not "priv.h".
+ * set-options.c: Likewise.
+ (parse_runtime_opt): New function.
+ * priv.h: Include <hurd/hurd_types.h>
+
+Tue Apr 11 11:15:30 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: New file.
+
diff --git a/libpager/ChangeLog b/libpager/ChangeLog
new file mode 100644
index 00000000..ed8e3cca
--- /dev/null
+++ b/libpager/ChangeLog
@@ -0,0 +1,374 @@
+Thu May 9 11:10:11 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pager-create.c: Get rid of link warning.
+
+ * pager-create.c (pager_create): ports_allocate_port ->
+ ports_create_port; if we get an error return a null structure.
+
+Thu May 2 11:17:17 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * offer-page.c (pager_offer_page): Make sure we hold lock across
+ operation. Also set incore bit when operation is complete.
+
+Tue Apr 30 12:40:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * lock-object.c (_pager_lock_object): Eliminate spurious extra
+ lock acquisition around pagemap frobbing.
+
+Sun Apr 28 15:46:12 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * pager-create.c (pager_create): Add link warning.
+
+Thu Apr 18 13:03:55 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * data-return.c (_pager_do_write_request): If kernel didn't keep a
+ copy, turn off INCORE bit. Don't track INIT bit for now.
+ * lock-object.c (_pager_lock_object): If SYNC and SHOULD_FLUSH,
+ then turn off PM_INCORE bits when flush is complete.
+ * data-request.c (_pager_seqnos_memory_object_data_request): Set
+ PM_INCORE.
+ * priv.h (PM_INIT): Comment out.
+ (PM_INCORE): New bit.
+ * offer-page.c: New file.
+ * Makefile (SRCS): Add offer-page.c.
+ * pager.h (pager_offer_page): New function.
+
+Thu Apr 11 17:50:57 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pager-memcpy.c (pager_memcpy [copy]): Return error_t so that
+ this function has the proper type as an arg for
+ hurd_catch_signal.
+ (pager_memcpy): Cast FAULT to proper type in call to
+ hurd_catch_signal.
+
+Tue Mar 26 15:38:06 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * lock-completed.c: Include <stdio.h>.
+
+ * data-return.c (_pager_do_write_request): Delete unused label
+ `out'.
+
+ * pager-sync.c (pager_sync, pager_sync_some): Ask for RETURN_ALL
+ and not just RETURN_DIRTY, because we treat precious pages as
+ dirty in this library.
+ * pager-return.c (pager_return, pager_return_some): Likewise.
+
+Mon Mar 18 13:10:32 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pager.h (pager_return, pager_return_some): New declarations.
+ * Makefile (SRCS): Add pager-return.c.
+ * pager-return.c: New file.
+
+ * pager-flush.c (pager_flush): Lock request should be
+ VM_PROT_NO_CHANGE, not VM_PROT_NONE.
+ (pager_flush_some): Likewise.
+
+Wed Mar 6 17:53:20 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * lock-object.c (_pager_lock_object): Correctly remove LR from
+ P's linked list of lock requests.
+ * pager-attr.c (pager_change_attributes): Likewise for attributes.
+
+ * lock-object.c (_pager_lock_object): Don't barf anymore.
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed): Ditto.
+ * Makefile (SRCS): Remove barf.c.
+
+Wed Feb 21 14:15:26 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed):
+ Get rid of bletcherous semi.
+ Make barf more voluminous.
+
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed):
+ Be picky about always releasing SEQNO.
+ * object-init.c (_pager_seqnos_memory_object_init): Likewise.
+
+Tue Feb 20 17:44:59 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * lock-object.c (_pager_lock_object): Use barf instead of printf.
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed): Ditto.
+ * Makefile (SRCS): Add barf.c.
+
+ * data-return.c (_pager_do_write_request): Always wait for and
+ release SEQNO if OBJECT is a valid pager.
+ * data-request.c (_pager_seqnos_memory_object_data_request): Likewise.
+ * object-terminate.c (_pager_seqnos_memory_object_terminate): Likewise.
+
+Tue Feb 20 16:05:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * lock-object.c (_pager_lock_object): Print debugging message when
+ SYNC.
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed):
+ Print a notice when an incoming lock completion corresponds to no
+ outstanding lock request.
+
+Tue Feb 20 15:10:29 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * lock-object.c (_pager_lock_object): Remove `sync = 0'.
+
+Fri Jan 5 17:09:43 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * pager-memcpy.c: New file.
+ * Makefile (SRCS): Add pager-memcpy.c.
+
+Thu Jan 4 15:37:21 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * pager.h: Declare pager_memcpy.
+
+Mon Oct 9 14:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * priv.h: Declare _pager_page_errors extern, not common.
+
+ * Makefile: Specify shared library dependencies.
+
+Wed Sep 13 14:49:53 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed):
+ Don't push the locks_pending field negative in the case where the
+ pager was terminated before we get called.
+
+Tue Sep 5 15:50:12 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * chg-compl.c (_pager_seqnos_memory_object_change_completed):
+ Don't push the attrs_pending field negative in the case where the
+ pager was terminated before we get called.
+
+Wed Aug 23 15:00:46 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Make this the main list of files, from which
+ the others are derived.
+ (COBJS, REMHDRS): Removed.
+ (OBJS): Derived mostly from $(SRCS).
+
+Fri Jul 21 16:43:19 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * object-create.c (_pager_seqnos_memory_object_create): Drop
+ initial reference created by ports_intern_external_reference when
+ we're done with P.
+
+Thu Jul 6 15:36:36 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Mon Jun 26 20:15:03 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * get-upi.c: New file.
+ * pager.h (pager_get_upi): New function.
+ * Makefile (COBJS): Add get-upi.o.
+
+Thu Jun 22 11:43:15 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * object-init.c (_pager_seqnos_memory_object_init): Rather than an
+ empty `if' body and an unconditional return, how about a real
+ test?
+
+ * notify-stubs.c: New file.
+ * Makefile (COBJS): Add notify-stubs.o.
+
+Tue Jun 20 12:44:22 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * chg-compl.c (_pager_seqnos_memory_object_change_completed): Use
+ new ports routines.
+ * pager-shutdown.c (pager_shutdown): Likewise.
+ * object-terminate.c (_pager_free_structure): Likewise.
+ * object-init.c (_pager_seqnos_memory_object_init): Likewise.
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed):
+ Likewise.
+ * data-unlock.c (_pager_seqnos_memory_object_data_unlock): Likewise.
+ * data-return.c (_pager_do_write_request): Likewise.
+ * data-request.c (_pager_seqnos_memory_object_data_request):
+ Likewise.
+ * pager-create.c (pager_create): New parm BUCKET. Allocate port
+ using new ports interface. Arrange to have _pager_class
+ initialized at startup.
+ * clean.c, dropweak.c: New files.
+ * no-senders.c: Rename pager_no_senders to
+ _pager_do_seqnos_mach_notify_no_senders. Lookup up port right
+ ourselves. Remove function pager_clean (now in clean.c).
+ * priv.h (_pager_class): New var.
+ (_pager_clean, _pager_real_dropweak): New decls.
+ * Makefile (COBJS): Delete reference.o. Add clean.o and dropweak.o
+ (OBJS): Add notifyServer.o.
+ (demuxer.o): Depend on notify_S.h.
+ * demuxer.c: Include "notify_S.h".
+ (pager_demuxer): Declare and use _pager_seqnos_notify_server.
+ * pager.h: Include <hurd/ports.h>.
+ (pager_no_senders, pager_reference, pager_unreference,
+ pager_port_type, pager_clean): Remove declarations.
+ (pager_create): New parm BUCKET.
+ (pager_clean): Doc fix.
+ (pager_dropweak): New decl.
+ * reference.c: Deleted file.
+
+Thu May 11 11:19:44 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * priv.h (PM_NEXTERROR, SET_PM_NEXTERROR): Mask 2-bit error code
+ with 0x3, not 0x2!
+
+ * mark-error.c (_pager_mark_next_request_error,
+ _pager_mark_object_error): Put the error code in the correct place
+ in the pagemap rather than always at the beginning.
+ (pager_get_error): Get the error code from the pagemap rather than
+ just using the pagemap offset!
+
+Wed Nov 23 00:28:19 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * demuxer.c (pager_demuxer): Call
+ _pager_seqnos_memory_object_server, not
+ seqnos_memory_object_server.
+
+Tue Nov 8 14:15:01 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * lock-object.c (_pager_lock_object): Hammer SYNC to zero for now;
+ there's some deadlock bug in noticing when the sync finishes.
+
+Tue Aug 30 17:55:34 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * data-return.c: Include <assert.h>.
+ (_pager_seqnos_memory_object_data_return): Use return correctly.
+
+Mon Aug 29 17:30:52 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * priv.h (PM_INIT): New pagemap bit.
+ * data-return.c (_pager_do_write-request): Set PM_INIT for
+ affected pages. New var `omitdata' hold a bitmap of the
+ pages that we are not actually writing. Set accordingly
+ while looking through pagemap before starting I/O. Don't
+ actually call I/O on these pages or frob the page map with them
+ later.
+
+ * data-return.c (_pager_seqnos_memory_object_data_return): Split
+ into two functions; _pager_do_write_request does the real work
+ now.
+
+ * object-create.c: New file.
+ * data-init.c: New file.
+
+Fri Jul 22 11:54:05 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten to use new scheme.
+ * data-request.c: Include "memory_object_S.h" instead of
+ "memory_object.h".
+ * data-return.c: Likewise.
+ * data-unlock.c: Likewise.
+ * lock-completed: Likewise.
+ * stubs.c: Likewise.
+ * object-init.c: Likewise.
+ * demuxer.c: Likewise.
+ * object-terminate.c: Likewise.
+
+Tue Jul 5 14:14:17 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (TAGSHDRS): New variable.
+
+Wed Jun 1 11:41:24 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * pager-attr.c (pager_change_attributes): Return immediately
+ if we are already in the requested state.
+
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed):
+ Call ports_done_with_port before returning to free reference
+ created by ports_check_port_type.
+ * chg-compl.c (_pager_seqnos_memory_object_change_completed):
+ Likewise.
+
+ * seqnos.c (_pager_release_seqno): New second arg SEQNO.
+ Set p->seqno here. All callers changed.
+ (_pager_wait_for_seqno): Don't set p->seqno here; then it
+ might get released before we actually call _pager_release_seqno.
+ * priv.h (_pager_release_seqno): Declare new second arg.
+
+ * priv.h (KERNEL_INIT_RACE): New compilation option. All the
+ changes in this block are conditionalized by this macro.
+ * priv.h (struct pager): New members init_head and init_tail.
+ (struct pending_init): New type.
+ * object-init.c (_pager_seqnos_memory_object_init): If the object
+ is not ready for init, then queue the init for later processing.
+ * object-terminate.c (_pager_seqnos_memory_object_terminate): If
+ there is a pending init, return it here.
+ * no-senders.c (pager_clean): Destroy all pending inits here.
+
+ * object-terminate.c (_pager_free_structure): Don't unlock
+ interlock or free the seqno here.
+ (_pager_seqnos_memory_object_terminate): Unlock interlock and
+ free seqno after calling _pager_free_structure.
+ * no-senders.c (pager_clean): Unlock interlock after calling
+ _pager_free_structure. Don't free seqno here at all.
+
+Tue May 24 15:25:54 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * data-return.c (_pager_seqnos_memory_object_data_return): New
+ vars NPAGES, I, and PAGERRS. Rename var PM_ENTRY to be
+ PM_ENTRIES. Deal with multiple-page data_return calls by dealing
+ with multiple pagemap slots and calling pager_write_page multiple
+ times.
+
+ * data-return.c (_pager_seqnos_memory_object_data_return): Fix
+ printf messages; include length in bogus length messages.
+
+ *data-unlock (_pager_seqnos_memory_object_data_unlock): Likewise.
+
+Mon May 23 13:06:31 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * data-request.c (_pager_seqnos_memory_object_data_request):
+ Report length in bogus arg messages; terminate messages with
+ newlines.
+
+ * chg-compl.c: Include <stdio.h>.
+
+ * priv.h (struct pager [may_cache, copy_strategy]): New members.
+ * pager.h (pager_create_pager): Added new args MAY_CACHE and
+ COPY_STRATEGY.
+ (pager_report_attributes): Deleted declaration.
+ * object-init.c (_pager_seqnos_memory_object_init): Set attributes
+ from values in P rather than by calling pager_report_attributes.
+ * pager-attr.c (pager_change_attributes): Don't panic if the
+ pager isn't yet initialized by the kernel; record the provided
+ values in may_cache and copy_strategy.
+
+ * pager-attr.c: Spelling fix.
+ Include <assert.h>.
+ * Makefile (COBJS): Added pager-attr.o.
+
+Fri May 20 15:41:12 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * lock-completed.c (_pager_seqnos_memory_object_lock_completed):
+ Delete unneeded variable wakeup. Break out of loop as soon
+ as we find the right record. Call condition_broadcast only
+ if we need bother.
+
+ * pager.h (pager_change_attributes, pager_report_attributes):
+ New declarations.
+ * priv.h (struct attribute_request): New structure.
+ (struct pager [attribute_requests]): New member.
+ * pager-create.c (pager_create): Initialize new member.
+ * object-init.c (_pager_seqnos_memory_object_init): Call
+ pager_report_attributes for correct args to memory_object_ready.
+ * pager-attr.c: New file.
+ * object-terminate.c (_pager_free_structure): Wakeup pending
+ pager_change_attribute requests.
+ * stubs.c (_pager_seqnos_memory_object_change_completed): Deleted
+ function.
+ * chg-compl.c: New file.
+ * Makefile (COBJS): Added chg-compl.o.
+
+Thu May 5 07:49:21 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * stubs.c (_pager_seqnos_memory_object_supply_completed): Change
+ RESULT arg to type kern_return_t; error_t is not compatible.
+
+ * demuxer.c (pager_demuxer): Declare seqnos_memory_object_server.
+
+ * stubs.c, lock-completed.c: Changed return type of all RPC server
+ functions to kern_return_t. error_t is not compatible with the
+ declarations in the mig-generated header files.
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+
+Tue Apr 26 15:08:57 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * object-init.c (_pager_seqnos_memory_object_init): Only check
+ for inits of active objects AFTER waiting for seqno; otherwise we
+ could race against a prior terminate.
+
diff --git a/libpipe/ChangeLog b/libpipe/ChangeLog
new file mode 100644
index 00000000..cbc850c4
--- /dev/null
+++ b/libpipe/ChangeLog
@@ -0,0 +1,137 @@
+Tue Jul 16 11:33:34 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pipe.h (EWOULDBLOCK): Define to work around new libc bug.
+
+Mon Jul 1 17:29:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pq.c (pq_queue): Initialize PACKET->buf_vm_alloced.
+
+Tue Jan 23 12:44:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pq.h (packet_ensure, packet_ensure_efficiently): Use packet_fit().
+ (packet_fit): New function.
+ * pq.c (packet_read): If there's lots of empty space at the
+ beginning of a vm_alloced buffer, deallocate it.
+
+Mon Jan 22 17:12:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pq.c (packet_realloc): Reflect in the new values of BUF_START &
+ BUF_END that we've removed any empty space at the beginning of BUF.
+
+Sat Jan 13 13:56:13 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pq.h (packet_ensure, packet_ensure_efficiently): Use
+ packet_new_size() instead of packet_size_adjust().
+ (packet_size_adjust): Declaration removed.
+ (packet_new_size): New declaration.
+ * pq.c (packet_size_adjust): Function removed.
+ (packet_new_size): New function.
+
+ * pq.c (packet_read): Re-arrange to be slightly less confusing.
+ Reverse start-past-buf-beginning test that may have leaked memory.
+
+ * pipe.c (pipe_send): For non-blocking writes, avoid writing more
+ than the user requested.
+
+Fri Jan 12 12:15:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pq.c (pq_queue): Initialize the ports_alloced field.
+ (packet_read): When a page-aligned read consumes the whole buffer,
+ but there's a non-page-multiple amount available, don't let
+ buf_len become negative.
+
+Mon Oct 9 14:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Specify shared library dependencies.
+
+Thu Sep 7 09:08:30 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pq.c (packet_read): Don't leave PACKET in a fucked up state when
+ it's vm_allocate'd but doesn't a page-multiple amount of data and
+ we're reading everything.
+
+ * pipe.c (_pipe_no_readers): REALLY wake up writers when the pipe
+ breaks.
+
+Fri Sep 1 10:42:03 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pipe.c (_pipe_no_readers): Wake up write selects too when the
+ pipe breaks.
+
+Thu Aug 31 14:39:21 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pipe.c (pipe_send): Make writes blockable.
+ (pipe_recv): Wakeup blocked writers.
+ (pipe_kick): Function deleted.
+ (pipe_create): Make connection-oriented pipes start out broken.
+ (_pipe_first_reader): New function.
+ (_pipe_first_writer): Don't check whether PIPE is connection-
+ oriented before clearing PIPE_BROKEN, as otherwise it will never
+ be set.
+ (pipe_pair_select): New function.
+ (pipe_multiple_lock): New variable.
+ * pipe.h (pipe_wait): Renamed to `pipe_wait_readable'.
+ (pipe_select): Renamed to `pipe_select_readable'.
+ (pipe_writable, pipe_wait_writable, pipe_select_writable): New funcs.
+ (pipe_acquire_reader): Call _pipe_first_reader if necessary.
+ (_pipe_first_reader): New declaration.
+ (struct pipe): New fields: `write_limit', `write_atomic',
+ `pending_writes', `pending_write_selects'.
+ (struct pipe): `pending_selects' changed to `pending_read_selects'.
+ (pipe_pair_select): New declaration.
+
+Tue Aug 29 14:37:49 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * pipe.c (pipe_send): Use condition_broadcast, not condition_signal.
+ * pipe.h (pipe_select): New function.
+
+ * pipe.h (struct pipe): Remove interrupt_seq_num field.
+ (pipe_wait): Use hurd_condition_wait to detect interrupts instead
+ of previous ad-hoc mechanism.
+
+ * pipe.c (pipe_create): Don't initialize interrupt_seq_num field.
+
+ * pipe.h (pipe_acquire_reader, pipe_acquire_writer,
+ pipe_add_reader, pipe_add_writer): `aquire' -> `acquire'.
+
+Fri Aug 11 18:35:32 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pipe.c (pipe_create): Initialize READERS & WRITERS, not REFS.
+ (_pipe_first_writer): New function.
+ (_pipe_no_writers, _pipe_no_writers): New function.
+ (pipe_break): Function deleted.
+
+Wed Aug 9 12:53:05 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * pipe.h (struct pipe): Keep separate ref counts for readers and
+ writers.
+ (pipe_aquire_reader, pipe_aquire_writer): New functions.
+ (pipe_release_reader, pipe_release_writer): New functions.
+ (pipe_add_reader, pipe_add_writer): New functions.
+ (pipe_remove_reader, pipe_remove_writer): New functions.
+ (_pipe_first_writer): New function decl.
+ (_pipe_no_writers, _pipe_no_writers): New function decl.
+ (pipe_aquire, pipe_release): Function deleted.
+ (pipe_break): Function decl deleted.
+
+Tue Aug 1 12:37:27 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pipe.c (pipe_recv): Get rid of code to deal with getting the
+ source address from the control packet if there is no data packet,
+ since pipe_write always writes a data packet.
+
+Mon Jul 31 14:50:00 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pipe.c (pipe_recv): Assert that a control packet should only
+ have a source address if there is no corresponding data packet.
+ (pipe_send): Change the test to determine whether we should write
+ a control packet, so that we only do so if we need to. Also,
+ don't record the source address in control packets, as it's
+ recorded in the following data packet anyway, and this prevents it
+ from being dealloc'd twice.
+
+Fri Jul 28 23:03:27 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pipe.h (stream_pipe_class, dgram_pipe_class, seqpack_pipe_class):
+ Make these declarations extern so they don't fuck up initialization.
+ (seqpacket_pipe_class): Renamed to `seqpack_pipe_class'.
diff --git a/libports/ChangeLog b/libports/ChangeLog
new file mode 100644
index 00000000..4df58e87
--- /dev/null
+++ b/libports/ChangeLog
@@ -0,0 +1,430 @@
+Wed Jul 3 14:13:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * get-right.c (ports_get_right): Supply correct sync value in
+ notification request.
+
+Mon May 6 16:33:55 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ports.h (ports_allocate_port, ports_intern_external_port):
+ Delete obsolete declarations.
+ * allocate-port.c, intern-external-port.c: Delete files.
+ * Makefile (SRCS): Delete `intern-external-port.c' and
+ `allocate-port.c'.
+
+Sun Apr 28 15:22:58 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * allocate-port.c: Add obsolescence link warning.
+ * intern-external-port.c: Add obsolescence link warning.
+
+Fri Mar 29 15:21:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * end-rpc.c (ports_end_rpc): Acquire _PORTS_LOCK before calling
+ _ports_remove_notified_rpc.
+
+Fri Mar 29 09:04:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * reallocate-from-external.c (ports_reallocate_from_external):
+ Require port to have a current port right.
+ * reallocate-port.c (ports_reallocate_port): Likewise.
+
+ * complete-deallocate.c (_ports_complete_deallocate): Only drop
+ port right if it isn't already null.
+
+ * transfer-right.c: New file.
+ * Makefile (SRCS): Add transfer-right.c.
+ * ports.h (ports_claim_right): Doc fix.
+ (ports_transfer_right): New function.
+
+Thu Mar 28 10:47:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * claim-right.c (ports_claim_right): Take right out of port
+ bucket.
+
+ * manage-multithread.c (ports_manage_port_operations_multithread):
+ Fill in meaningful statuses and errors rather than just zero.
+ * manage-one-thread.c (ports_manage_port_operations_one_thread):
+ Likewise.
+
+ * begin-rpc.c (ports_begin_rpc): Return EOPNOTSUPP, not EDIED, if
+ receive right is gone.
+
+ * manage-one-thread.c (ports_manage_port_operations_one_thread):
+ Fill in default reply before doing work; we might return 0 and
+ mach_msg_server expects us to fill in a reply decently no matter
+ what.
+ (ports_manage_port_operations_multithread): Likewise.
+
+ * claim-right.c (ports_claim_right): Hold lock until sendright
+ frobbing is finished.
+
+Wed Mar 20 13:32:13 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * destroy-right.c (ports_destroy_right): Don't do anything if port
+ has already been destroyed.
+
+ * ports.h (ports_claim_right): New declaration.
+ * claim-right.c: New file.
+ * Makefile (SRCS): Add `claim-right.c'.
+
+Tue Mar 5 17:28:54 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * get-right.c (ports_get_right): Check mach_port_request_notification
+ for error returns, against all odds.
+
+Mon Feb 26 17:10:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * interrupt-on-notify.c (ports_interrupt_rpc_on_notification):
+ Only set _PORTS_NOTIFICATIONS->prevp if _PORTS_NOTIFICATIONS != 0.
+ Likewise for PN->prev_req_p.
+
+Fri Jan 26 00:45:58 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Whoops, we
+ still have the lock when hurd_condition_wait gets cancelled.
+ * import-port.c (ports_import_port): Likewise.
+ * create-port.c (ports_create_port): Likewise.
+ * inhibit-bucket-rpcs.c (ports_inhibit_bucket_rpcs): Likewise.
+ * inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Likewise.
+ * inhibit-port-rpcs.c (ports_inhibit_port_rpcs): Likewise.
+
+ * import-port.c (ports_import_port): Don't lose a send right on
+ PORT when we return an error.
+ * create-port.c (ports_create_port): Delete the receive right, not
+ the send right when we return an error.
+
+Thu Jan 25 12:10:48 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * manage-multithread.c (ports_manage_port_operations_multithread):
+ Pass INP->msgh_id, not INP to ports_begin_rpc.
+ * manage-one-thread.c (ports_manage_port_operations_one_thread): Ditto.
+
+Wed Jan 24 14:02:30 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Be interruptable;
+ return EINTR if interrupted, or EBUSY if already inhibited.
+ * inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Likewise.
+ * inhibit-port-rpcs.c (ports_inhibit_port_rpcs): Likewise.
+ * inhibit-bucket-rpcs.c (ports_inhibit_bucket_rpcs): Likewise.
+ * begin-rpc.c (ports_begin_rpc): Be interruptable.
+ * create-port.c (ports_create_port): New function.
+ * import-port.c (ports_import_port): New function.
+ * allocate-port.c (ports_allocate_port): Call ports_create_port.
+ * intern-external-port.c (ports_intern_external_port): Call
+ ports_import_port.
+ * ports.h (ports_create_port, ports_import_ports): New declarations.
+ (PORTS_INHIBITED, PORTS_BLOCKED, PORTS_INHIBIT_WAIT, PORTS_NO_ALLOC,
+ PORTS_ALLOC_WAIT): New macros (global values for common flags).
+ (PORT_BLOCKED, PORT_INHIBITED, PORT_INHIBIT_WAIT,
+ PORT_BUCKET_INHIBITED, PORT_BUCKET_BLOCKED, PORT_BUCKET_INHIBIT_WAIT,
+ PORT_BUCKET_NO_ALLOC, PORT_BUCKET_ALLOC_WAIT, PORT_CLASS_INHIBITED,
+ PORT_CLASS_BLOCKED, PORT_CLASS_INHIBIT_WAIT, PORT_CLASS_NO_ALLOC,
+ PORT_CLASS_ALLOC_WAIT, _PORTS_INHIBITED, _PORTS_BLOCKED,
+ _PORTS_INHIBIT_WAIT): Redefine using global flag values.
+ (ports_inhibit_port_rpcs, ports_inhibit_all_rpcs,
+ ports_inhibit_class_rpcs, ports_inhibit_bucket_rpcs): Return error_t.
+ (ports_interupt_rpcs): Renamed from port_interrupt_rpc.
+
+ * begin-rpc.c (ports_begin_rpc): Take new MSG_ID arg, and use it to
+ see if the particular rpc shouldn't be inhibitable.
+ * manage-multithread.c (ports_manage_port_operations_multithread):
+ Pass INP to ports_begin_rpc, and only call DEMUXER if it returns 0.
+ * manage-one-thread.c (ports_manage_port_operations_one_thread): Ditto.
+ * ports.h (ports_begin_rpc): Add MSG_ID arg.
+ (struct port_class): Add uninhibitable_rpcs field.
+ (struct ports_msg_id_range): New structure.
+ (ports_default_uninhibitable_rpcs): New declaration.
+ * create-class.c (ports_create_class): Initialize the
+ uninhibitable_rpcs field.
+ * default-uninhibitable-rpcs.c (interrupt_operation_ids,
+ ports_default_uninhibitable_rpcs): New variables.
+ * Makefile (SRCS): Add default-uninhibitable-rpcs.c.
+
+ * interrupt-rpcs.c (ports_interrupt_rpcs): Renamed from
+ ports_interrupt_rpc.
+ * Makefile (SRCS): Rename interrupt-rpc.c to interrupt-rpcs.c.
+ * interrupt-operation.c (ports_S_interrupt_operation): Use
+ ports_interrupt_rpcs instead of ports_interrupt_rpc.
+ * no-senders.c (ports_no_senders): Likewise.
+
+ * manage-multithread.c (ports_manage_port_operations_multithread):
+ Fix spelling of cancel_threshold (was cancel_threshhold).
+ * interrupt-operation.c (ports_S_interrupt_operation): Likewise.
+ * ports.h (struct port_info): Likewise.
+ * reallocate-from-external.c (ports_reallocate_from_external): Ditto.
+ * reallocate-port.c (ports_reallocate_port): Likewise.
+
+Wed Jan 17 13:08:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * no-senders.c (ports_no_senders): Interrupt RPCs on PI too. Only
+ do the ports_interrupt_notified_rpcs() if we're actually losing a ref.
+
+Fri Jan 5 16:40:34 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * interrupt-on-notify.c (ports_interrupt_rpc_on_notification):
+ If PORT is dead or bogus, interrupt RPC immediately, and don't add
+ a new request.
+
+Thu Dec 28 14:27:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * interrupt-on-notify.c (ports_interrupt_rpc_on_notification): If
+ NEW_REQ is not needed, put it on the free list, don't call free on it.
+
+Thu Dec 28 11:04:06 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ports.h (ports_interrupt_self_on_port_death): New macro.
+
+ * interrupt-notified-rpcs.c (ports_interrupt_notified_rpcs): Only
+ bother to lock _PORTS_LOCK if there are notifications.
+
+Wed Dec 27 16:27:47 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ports.h (struct rpc_info): Get rid of next_notified/prev_notified_p.
+ (struct rpc_notify): Get rid of port, what, next fields, and add
+ rpc, notify, next, pending, next_req, and prev_req_p fields.
+ (struct ports_notify): New structure.
+ (_ports_notified_rpcs): Declaration removed.
+ (_ports_notifications): New declaration.
+ (_ports_free_ports_notifies): New declaration.
+ Include <mach/notify.h>.
+ * interrupt-on-notify.c (ports_interrupt_rpc_on_notification):
+ Mostly rewrite to use new scheme.
+ * interrupt-notified-rpcs (_ports_notified_rpcs): Variable removed.
+ (_ports_notifications, _ports_free_ports_notifications): New variables.
+ (ports_interrupt_notified_rpcs): Rewrite to use new scheme.
+ (_ports_remove_notified_rpc): Ditto.
+ (cancel_notification): Function removed.
+ (remove_req): New function.
+
+Tue Dec 26 14:39:51 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * interrupt-notified-rpcs.c (_ports_notified_rpcs,
+ _ports_free_rpc_notifies): New variables.
+ (ports_interrupt_notified_rpcs, cancel_notification,
+ _ports_remove_notified_rpc): New functions.
+ * interrupt-on-notify.c (ports_interrupt_rpc_on_notification,
+ ports_interrupt_self_on_notification): New functions, new file.
+ * ports.h (struct rpc_notify): New structure.
+ (struct rpc_info): Add rpc_notifies, rpc_next_notified, and
+ prev_notified_p fields.
+ (_ports_notified_rpcs, _ports_free_rpc_notifies,
+ _ports_remove_notified_rpc, ports_interrupt_rpc_on_notification,
+ ports_interrupt_notified_rpcs, ports_interrupt_self_on_notification):
+ New declarations.
+ * begin-rpc.c (ports_begin_rpc): Initialize the notifies field.
+ * end-rpc.c (ports_end_rpc): Get rid of any rpc notifications.
+ * no-senders.c (ports_no_senders): Interrupt any rpcs requesting such.
+ * dead-name.c (ports_dead_name): New function.
+ * notify-dead-name.c (ports_do_mach_notify_dead_name): Call
+ ports_dead_name().
+ * Makefile (SRCS): Add interrupt-on-notify.c,
+ interrupt-notified-rpcs.c, and dead-name.c.
+
+Tue Nov 21 22:04:28 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * manage-multithread.c: Don't wire timeouts to zero.
+
+Tue Nov 21 09:42:00 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ports.h (ports_do_mach_notify_dead_name): Declare `extern
+ kern_return_t'.
+ (ports_do_mach_notify_msg_accepted): Likewise.
+ (ports_do_mach_notify_no_senders): Likewise.
+ (ports_do_mach_notify_port_deleted): Likewise.
+ (ports_do_mach_notify_port_destroyed): Likewise.
+ (ports_do_mach_notify_send_once): Likewise.
+ * notify-send-once.c: Include "notify_S.h".
+ * notify-port-deleted.c: Likewise.
+ * notify-msg-accepted.c: Likewise.
+ * notify-port-destroyed.c: Likewise.
+ * notify-no-senders.c: Likewise.
+ * notify-dead-name.c: Likewise.
+
+ * ports.h (struct port_info): New member `cancel_threshhold'.
+ (ports_S_interrupt_operation): Include seqno arg; declare extern
+ kern_return_t.
+ * interrupt-operation.c: Include "interrupt_S.h".
+ (ports_S_interrupt_operation): Set PI->cancel_threshhold if the
+ incoming seqno is greater than the current threshhold.
+ * manage-multithread.c
+ (ports_manage_port_operations_multithread/internal_demuxer): If
+ the incoming RPC has already been cancelled, then call
+ hurd_thread_cancel before the user's demuxer.
+ * manage-one-thread.c (ports_manage_port_operations_one_thread):
+ Doc fix.
+ * intern-external-port.c (ports_intern_external_port): Initialize
+ PI->cancel_threshhold.
+ * allocate-port.c (ports_allocate_port): Likewise.
+ * reallocate-from-external.c (ports_reallocate_from_external):
+ Clear PI->cancel_threshhold.
+ * reallocate-port.c (ports_reallocate_port): Likewise.
+
+Sat Nov 18 08:50:13 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * inhibit-all-rpcs.c: If calling thread is serving an RPC, don't
+ block waiting for that RPC to finish.
+ * inhibit-class-rpcs.c: Likewise.
+ * inhibit-bucket-rpcs.c: Likewise.
+ * inhibit-port-rpcs.c: Likewise.
+
+ * inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Renamed from
+ inhibit_all_rpcs.
+
+Tue Oct 24 13:32:39 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * manage-multithread.c
+ (ports_manage_port_operations_multithread/internal_demuxer): Don't
+ attempt RPC if we can't get a valid port struct.
+ * manage-one-thread.c
+ (ports_manage_port_operations_one_thread/internal_demuxer): Likewise.
+
+Mon Oct 9 14:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Specify shared library dependencies.
+
+Fri Sep 22 10:19:17 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ports.h: Include hurd.h.
+
+Fri Sep 8 14:44:03 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * end-rpc.c (ports_end_rpc): Call hurd_check_cancel.
+
+Wed Sep 6 11:20:20 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ports.h (ports_interrupt_server, ports_S_interrupt_operation):
+ New declarations.
+ * Makefile (OBJS): Add interruptServer.o.
+ (SRCS): Add interrupt-operation.c.
+ * interrupt-operation.c: New file.
+
+ * ports.h (ports_notify_server, ports_do_mach_notify_*): New decls.
+ * Makefile (MIGCOMSFLAGS): New variable.
+ (OBJS): Added notifyServer.o.
+ (SRCS): Added notify-dead-name.c, notify-no-senders.c,
+ notify-port-destroyed.c, notify-msg-accepted.c,
+ notify-port-deleted.c, and notify-send-once.c.
+ * notify-dead-name.c: New file.
+ * notify-no-senders.c: New file.
+ * notify-port-destroyed.c: New file.
+ * notify-msg-accepted.c: New file.
+ * notify-port-deleted.c: New file.
+ * notify-send-once.c: New file.
+
+Wed Aug 30 16:00:36 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * inhibit-port-rpcs.c (inhibit_port_rpcs): Renamed to
+ `ports_inhibit_port_rpcs'.
+
+Tue Aug 29 15:59:49 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * manage-multithread.c (ports_manage_port_operations_multithread):
+ Hammer WIRE_CTHREADS on for now.
+
+Thu Aug 24 10:25:52 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * inhibit-port-rpcs.c (inhibit_port_rpcs): thread_cancel ->
+ hurd_thread_cancel. Include <hurd.h>.
+ * inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Ditto.
+ * inhibit-bucket-rpcs.c (ports_inhibit_bucket_rpcs): Ditto.
+ * interrupt-rpc.c (ports_interrupt_rpc): Ditto.
+ * inhibit-all-rpcs.c (inhibit_all_rpcs): Ditto.
+
+ * Makefile (OBJS): Use :.c=.o notation.
+
+Wed Aug 23 15:03:11 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (REMHDRS): Removed.
+ Order changed a bit.
+
+Fri Jul 21 11:45:22 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * get-right.c (ports_get_right): If the right is null (because we
+ are closing down), then just return null. (This helps in a race
+ in ufs/ex2fs).
+
+ * complete-deallocate.c (_ports_complete_deallocate): Clear
+ PI->port_right; and do it before releasing _ports_lock.
+
+ * manage-multithread.c (ports_manage_port_operations_multithread):
+ For now, wire GLOBAL_TIMEOUT and THREAD_TIMEOUT to zero.
+
+Tue Jul 18 14:29:49 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * manage-multithread.c (ports_manage_port_operations_multithread)
+ [thread_function]: Return int. Don't cthread_exit child threads;
+ just let them return normally.
+
+Wed Jul 12 13:32:22 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * resume-class-rpcs.c (ports_resume_class_rpcs): Clear blocked
+ flag using correct name.
+
+ * manage-multithread.c (ports_manage_port_operations_multithread)
+ [internal_demuxer]: Increment NREQTHREADS and TOTALTHREADS
+ *before* forking newthread.
+ [thread_function]: Don't increment NREQTHREADS and TOTALTHREADS here.
+ Initialize NREQTHREADS and TOTALTHREADS in main body of function.
+
+Sat Jul 8 15:10:50 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * allocate-port.c (ports_allocate_port): Properly add PI to
+ CLASS's port list when the list is empty (why did this work before?).
+ * intern-external-port.c (ports_intern_external_port): Ditto.
+ * begin-rpc.c (ports_begin_rpc): Ditto adding INFO to PI's
+ current_rpcs list.
+ * create-class.c (ports_create_class): Initialize the PORTS and
+ COUNT fields.
+
+Thu Jul 6 15:36:57 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Tue Jun 27 15:28:54 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Add it *back*.
+ * stubs.c: New file.
+
+Mon Jun 26 16:51:42 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * ports.h: Fix spelling error.
+
+ * manage-multithread.c (ports_manage_port_operations_multithread):
+ Declare NREQTHREADS asd TOTALTHREADS volatile.
+
+ * manage-multithread.c
+ (ports_manage_port_operations_multithread/thread_function): Don't
+ hold lock while setting TIMEOUT.
+ When master goes back to wait for messages, it should unlock LOCK.
+ Declare ERR inside THREAD_FUNCTION so it doesn't get shared by
+ multiple threads.
+
+Thu Jun 22 11:28:56 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * get-right.c (ports_get_right): Parenthesize flag test correctly.
+ * reallocate-from-external.c (ports_reallocate_from_external):
+ Likewise.
+
+ * enable-bucket.c (ports_enable_bucket): Clean flag correctly.
+
+ * lookup-port.c (ports_lookup_port): UNlock port lock at exit of
+ function.
+
+ * bucket-iterate.c: Include <hurd/ihash.h> and <cthreads.h>.
+ (ports_bucket_iterate): Fix decl of NXT.
+
+Wed Jun 21 14:25:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Added bucket-iterate.c.
+ * bucket-iterate.c: New file.
+ * ports.h (port_bucket_iterate): New decl.
+
+Tue Jun 20 12:35:44 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * enable-bucket.c: Include <cthreads.h>.
+ * enable-class.c: Likewise.
+ * count-bucket.c: Likewise.
+
+ * libports/lookup-port.c (ports_lookup_port): Remove assignment
+ from if test.
+
diff --git a/libps/ChangeLog b/libps/ChangeLog
new file mode 100644
index 00000000..0f07b03e
--- /dev/null
+++ b/libps/ChangeLog
@@ -0,0 +1,747 @@
+Wed Jul 10 22:49:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (set_procinfo_flags): Don't use fake "*" wait value
+ if there's no msgport.
+
+Mon Jul 8 21:39:58 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (_ps_stream_write_field): If a field is truncatable
+ (MAX_WIDTH >= 0), take some of our spacing deficit out of it.
+
+Tue Jul 2 14:43:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): Pass PS->task_events_info to
+ task_info, not its address.
+
+Thu Jun 27 18:32:27 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Add common.h.
+
+Thu Jun 27 12:33:41 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (struct ps_fmt): Add SRC_LEN field.
+ (proc_stat_list_clone, ps_fmt_clone): New declarations.
+ * fmt.c (_fmt_create): Set NEW_FMT->src_len. Use strdup.
+ (ps_fmt_clone): New function.
+ * proclist.c (proc_stat_list_clone): New function.
+
+Mon Jun 3 10:17:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_wait): Never truncate what we write.
+
+ * user.c (ps_user_passwd): Check return value of install_passwd
+ correctly (it's an error_t).
+
+ * ps.h (struct proc_stat): Add PROC_INFO_VM_ALLOCED,
+ THREAD_WAITS_VM_ALLOCED, and ARGS_VM_ALLOCED fields,
+ * procstat.c (merge_procinfo) Take a struct proc_stat as an arg,
+ not all the individual fields. Correctly set OLD_PI_HDR.
+ Correctly calculate REALLY_NEED.
+ (set_procinfo_flags): Use new calling merge_procinfo calling convention.
+ (_proc_stat_free): Use explicit VM_ALLOCED flag for MFREEMEM.
+ (proc_stat_set_flags): Try mallocing a buffer for PS->args.
+ Move second call to set_procinfo_flags after msgport suppress test.
+ Add TEST_MSGPORT_FLAGS variable, & use it.
+ Be more picky about when we call set_procinfo_flags.
+
+Sat Jun 1 11:18:58 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (set_procinfo_flags): New function.
+ (proc_stat_set_flags): Use it, to get msgport validity testing right.
+ (merge_procinfo): Take and return HAVE instead of using a
+ reference parameter. Clean up malloced storage if we get an error.
+
+ * spec.c (struct ps_fmt_spec_block): New type.
+ (specs_add_alias): Use a linked list of ps_fmt_spec_blocks instead of
+ reallocing a vector of specs.
+ (ps_fmt_specs_find): Change searching accordingly.
+ * ps.h (struct ps_fmt_specs): The EXPANSIONS field now points to a
+ struct ps_fmt_spec_block. Delete EXPANSIONS_ALLOCED field.
+
+ * procstat.c (merge_procinfo): Correctly test for malloc failure.
+
+Fri May 31 18:36:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (MFREEMEM): New macro combining MFREEM & MFREEVM.
+ (MFREEM, MFREEVM): Macros deleted.
+ (merge_procinfo): Do mem allocation more efficiently and correctly.
+ (fetch_procinfo): Do conversion for PI_SIZE from/to units of
+ sizeof (int), so no one else has to deal with it.
+ (PROCINFO_MALLOC_SIZE, WAITS_MALLOC_SIZE): New macros.
+
+ * procstat.c (proc_stat_set_flags): After fetching number of
+ threads to guess whether we need wait info, put it in PS->num_threads.
+ (merge_procinfo): Avoid vm_allocing a procinfo buffer each time if
+ we can help it.
+ Correctly reflect newly fetched info.
+ (PSTAT_PROCINFO_MERGE, PSTAT_PROCINFO_REFETCH): New macros.
+
+Wed May 29 11:31:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (MP_MGET): Only disable msgport on timeout.
+ (get_thread_wait): Decrement N in loop.
+
+ * ps.h: Renumber PSTAT_ values to remove dup.
+
+ * procstat.c (merge_procinfo): Don't die if WAITS == 0.
+ (summarize_thread_waits): Correctly advance NEXT_WAIT.
+ Skip threads marked `itimer'.
+ (proc_stat_set_flags): Consider processes with less than 4 threads
+ to be candidates for a meaningful process wait status.
+ (get_thread_wait): Use strnlen instead of memchr.
+ (PSTAT_PROCINFO): Typo: PSTAT_THREAD_WAIT --> PSTAT_THREAD_WAITS.
+ (PSTAT_USES_MSGPORT): Add PSTAT_THREAD_WAIT.
+
+Tue May 28 16:36:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (_fmt_create): Make NAME termination work for posix-mode.
+
+ * fmt.c (ps_fmt_write_proc_stat): Call the output function correctly.
+ (_fmt_create): Get FIELD's precision, not width, from its spec.
+
+Fri May 24 13:33:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * procstat.c (fetch_procinfo): Always turn on PSTAT_PROC_INFO if
+ proc_getprocinfo returns successfully.
+ (merge_procinfo): Update *HAVE with PSTAT_PROC_INFO from
+ REALLY_HAVE here.
+
+Wed May 22 19:55:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (_fmt_create): Increment SRC when reading modifiers.
+ Recognize '^' modifier.
+
+Sun May 12 13:33:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (PSTAT_PROCINFO, PSTAT_PROCINFO_THREAD): Add
+ PSTAT_THREAD_WAITS.
+ (proc_stat_set_flags): Be more careful about when we fetch
+ thread_wait information, and synthesize a process-summary thread_wait
+ value for lots of threads.
+ (summarize_thread_waits): Only give a real summary if there's but
+ a single user thread.
+ (fetch_procinfo): Use PSTAT_THREAD_WAITS instead of PSTAT_THREAD_WAIT.
+ * ps.h (PSTAT_THREAD_WAITS): New macro.
+
+ * procstat.c (merge_procinfo, fetch_procinfo): Change HAVE to be an
+ input/output parameter.
+ (proc_stat_set_flags): Change accordingly.
+
+ * procstat.c (get_thread_wait): Correctly advance WAIT.
+
+ * spec.c (specs): Give runtime specs 2 fraction digits by default.
+
+Thu May 9 17:03:37 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * procstat.c (fetch_procinfo): Pass a reference to PI_FLAGS in
+ call to fetch_procinfo.
+
+Mon May 6 16:28:54 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_spec_nominal): Take a spec again.
+ * ps.h (proc_stat_list_spec_nominal): Change FIELD arg to SPEC.
+
+ * user.c (install_passwd): New function.
+ (ps_user_passwd): Use it.
+ (ps_user_uname_create, ps_user_passwd_create): New functions.
+ * ps.h (ps_user_uname_create, ps_user_passwd_create): New declarations.
+ (ps_fmt_set_output_width): New declaration.
+
+ * spec.c (ps_emit_user_name): New function.
+
+ * ps.h (struct ps_fmt_spec): Remove keep field, add flags field.
+ (struct ps_fmt_field): Remove at_mod, colon_mod, & keep fields,
+ add flags field.
+ (PS_FMT_FIELD_AT_MOD, PS_FMT_FIELD_COLON_MOD, PS_FMT_FIELD_KEEP,
+ PS_FMT_FIELD_UPCASE_TITLE): New macros.
+ * spec.c (specs): Initialize flags field, not keep field.
+ (specs_add_alias): Pass on flags field.
+ * fmt.c (_fmt_create): Use flags fields, and implement global
+ flags, and add upcase flag (^).
+ (ps_fmt_write_titles): Implement PS_FMT_FIELD_UPCASE_TITLE.
+ * proclist.c (proc_stat_list_spec_nominal): Use flags field, not
+ keep field.
+
+ * ps.h (struct proc_stat): Remove exec_flags field.
+ (PSTAT_EXEC_FLAGS): Macro removed.
+ * procstat.c (add_preconditions, proc_stat_set_flags): Remove
+ references to exec_flags.
+
+Sun May 5 00:22:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_spec_nominal): Take a field, not a spec.
+ If the field has the keep flag set, don't nominalize it.
+ * fmt.c (_fmt_create): Change syntax of fields. Add support for
+ precision and `@', `:', `?', & `!' modifiers.
+ Add POSIX argument, and support for posix-style format strings.
+ When using the field name as the title, use the defn, not the user's.
+ (ps_fmt_squash): Call FN with the field, not the field's spec.
+ (ps_fmt_squash_flags): Appropiately modify the function we use.
+ (ps_fmt_create, ps_fmt_creation_error): Add POSIX argument.
+ * ps.h (struct ps_fmt_spec): Add precision & keep fields.
+ Change args to OUTPUT_FN.
+ (struct ps_fmt_field): Add precision, keep, at_mod, & colon_mod fields.
+ (proc_stat_list_spec_nominal): Change SPEC arg to FIELD.
+ (ps_fmt_squash): Call FN on the field, not the spec.
+ (ps_fmt_create, ps_fmt_creation_error): Add POSIX arg.
+ * spec.c (specs): Add precision & keep fields.
+ (FG): New macro.
+ (ps_emit_*): Take FIELD argument instead of WIDTH.
+
+Thu May 2 00:12:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (ps_fmt_creation_error): New declaration.
+
+Tue Apr 30 18:54:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (_fmt_create): New function (was ps_fmt_create).
+ (ps_fmt_create): Call _fmt_create.
+ (ps_fmt_creation_error): New function.
+
+ * spec.c (ps_emit_past_time): Implement.
+
+Mon Apr 29 12:59:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_seconds): Use new args to fmt_seconds.
+ (ps_emit_minutes): Use new args to fmt_minutes.
+
+Tue Apr 23 13:38:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (PSTAT_STATE_P_ATTRS): Fix names of individual flags.
+
+ * spec.c (state_shadows): If a process has no parent don't show
+ various process attributes (that are likely to be noise).
+
+Thu Apr 11 18:05:16 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (MIGCOMUFLAGS): Delete variable.
+
+ * spec.c (ps_emit_past_time): Return zero.
+
+Wed Mar 27 15:19:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (msg-MIGUFLAGS, term-MIGUFLAGS): Add a user prefix of `ps_'.
+ * procstat.c (proc_stat_set_flags): Use new prefix.
+ Include "ps_msg.h".
+ * tty.c (ps_tty_name): Use new prefix.
+ Include "ps_term.h".
+
+Mon Mar 25 11:35:48 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ...just about everything...: Get rid of mega typedefs, and just
+ use structure pointers like other hurd libraries. Other misc cleanups.
+
+ * ps.h (struct ps_fmt_specs): Add EXPANSIONS & EXPANSIONS_ALLOCED.
+ * spec.c (ps_fmt_specs_find): Use new alias expansion method.
+ (specv_find, specs_add_alias): New functions.
+
+Mon Mar 11 16:27:14 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (noise_write): Keep track of amount printed correctly.
+
+Sat Mar 9 15:52:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (iscntl): New macro.
+ (noise_write, noise_len): Correctly handle MAX < 0 case.
+ (noise_write): Use new arguments for flush.
+ (flush): Moved to file scope. Remove END argument and use NEW - 1.
+ (noise_write): Make T of type unsigned char * so that chars with
+ the high bit set print correctly.
+
+Thu Mar 7 19:08:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (iscntl): New macro.
+ (noise_write, noise_len, flush): New functions.
+ (ps_stream_write, _ps_stream_write_field): Use noise functions.
+
+Thu Feb 15 00:02:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (specs): Right-align the TTY column.
+
+Wed Feb 14 17:49:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (ps_stream_write): Don't screw up on negative spaces.
+
+ * proclist.c (proc_stat_list_add_pids): Add and support new return
+ parameter PROC_STATS.
+ (proc_stat_list_add_pid): Add and support new return parameter PS.
+ (proc_stat_list_add_fn_pids, proc_stat_list_add_id_fn_pids,
+ proc_stat_list_add_all, proc_stat_list_add_login_coll,
+ proc_stat_list_add_session, proc_stat_list_add_pgrp):
+ Add and support new return parameters PROC_STATS & NUM_PROCS.
+ * ps.h (proc_stat_list_add_pids, proc_stat_list_add_pid,
+ proc_stat_list_add_all, proc_stat_list_add_login_coll,
+ proc_stat_list_add_session, proc_stat_list_add_pgrp):
+ Update declarations.
+
+ * filters.c (ps_alive_filter): New variable.
+ (ps_alive_p): New function.
+ * ps.h (ps_alive_filter): New declaration.
+
+Mon Feb 12 14:34:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_wait): For rpcs, put the port first.
+
+Fri Feb 9 15:55:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (struct proc_stat): Add thread_wait, thread_waits, &
+ thread_waits_len fields.
+ (PSTAT_THREAD_WAIT): Renamed from PSTAT_THREAD_RPC.
+ (proc_stat_thread_wait): New macro.
+ (ps_stream_write_trunc_field): New declaration.
+ * procstat.c (fetch_procinfo, merge_procinfo): Return wait strings.
+ (summarize_thread_waits): Return both wait and rpc info.
+ (get_thread_wait): New function.
+ (proc_stat_set_flags): Support finding wait info.
+ Change occurances of PSTAT_THREAD_RPC to PSTAT_THREAD_WAIT.
+ * spec.c (specs): Change `Rpc' entry to `Wait'.
+ (ps_emit_wait): New function.
+ (ps_emit_string, ps_emit_string0): Use ps_stream_write_trunc_field.
+ (ps_get_wait): Renamed from ps_get_rpc; calling convention changed.
+ (ps_wait_getter): Renamed from ps_rpc_getter & contents changed accord.
+ (get_syscall_name, get_rpc_name): New stub functions.
+ * write.c (ps_stream_write_field): Call _ps_stream_write_field.
+ (ps_stream_write_trunc_field): New function.
+ (_ps_stream_write_field): New function, from ps_stream_write_field.
+
+Sat Feb 3 22:22:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (specs, state_shadows, ps_pid_getter,
+ ps_thread_index_getter, ps_owner_getter, ps_owner_uid_getter,
+ ps_ppid_getter, ps_pgrp_getter, ps_session_getter,
+ ps_login_col_getter, ps_num_threads_getter, ps_args_getter,
+ ps_state_getter, ps_rpc_getter, ps_vsize_getter, ps_rsize_getter,
+ ps_cur_priority_getter, ps_base_priority_getter,
+ ps_max_priority_getter, ps_usr_time_getter, ps_sys_time_getter,
+ ps_tot_time_getter, ps_rmem_frac_getter, ps_cpu_frac_getter,
+ ps_sleep_getter, ps_susp_count_getter, ps_proc_susp_count_getter,
+ ps_thread_susp_count_getter, ps_tty_getter, ps_page_faults_getter,
+ ps_cow_faults_getter, ps_pageins_getter, ps_msgs_sent_getter,
+ ps_msgs_rcvd_getter, ps_zero_fills_getter): Make const.
+ * ps.h (ps_getter_t, ps_filter_t, struct ps_filter,
+ ps_not_leader_filter, ps_ctty_filter, ps_unorphaned_filter,
+ ps_parent_filter, ps_std_fmt_specs): Make const.
+
+Mon Jan 15 16:32:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (summarize_thread_basic_info): If there are any
+ running threads, then only average priority from them.
+
+Sun Jan 14 00:24:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (state_shadows): Don't reflect a suspended thread in the
+ process state display if any thread isn't suspended.
+
+Sun Dec 24 14:24:52 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (installhdrsubdir): New macro (put ps.h in <>, not <hurd/>).
+
+Sat Dec 23 21:50:58 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fmt.c (ps_fmt_set_output_width): New function.
+
+Fri Dec 22 12:21:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (struct ps_user_hooks): New structure.
+ (PSTAT_HOOK, PSTAT_USER_BASE, PSTAT_USER_MASK): New macros.
+ (struct ps_context): Add USER_HOOKS field.
+ * procstat.c (_proc_stat_free): Call user cleanup hook.
+ (proc_stat_set_flags, add_preconditions): Deal with user bits.
+ * context.c (ps_context_create): Initialize USER_HOOKS field.
+
+Thu Dec 21 12:04:24 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_get_usr_time, ps_get_sys_time, ps_get_tot_time):
+ Return a struct timeval instead of mach time_value_t.
+ (ps_cmp_times): New function.
+ (ps_emit_seconds, ps_emit_minutes): Use timefmt functions.
+ (append_fraction, sprint_long_time, ps_emit_nice_seconds): Deleted.
+ Include <timefmt.h>.
+
+ * ps.h (struct ps_fmt_spec): Add TITLE field. Renamed
+ DEFAULT_WIDTH field to WIDTH, and move to after TITLE.
+ (ps_fmt_spec_width): Renamed from ps_fmt_spec_default_width()..
+ (ps_fmt_spec_title): New macro.
+ (struct ps_fmt): Add INVAL field.
+ (ps_fmt_inval): New macro.
+ * spec.c (specs): Rearrange to use new field layout.
+
+ * fmt.c (ps_fmt_create): Use the new spec fields.
+ (ps_fmt_write_proc_stat): Support new inval field in FMT.
+
+ * spec.c (ps_fmt_specs_find): Renamed from find_ps_fmt_spec; now
+ uses a struct ps_fmt_specs instead of an array of specs.
+ (specs): Renamed from ps_std_fmt_specs;
+ (ps_std_fmt_specs): Now of type struct ps_fmt_specs, pointing to specs.
+ * ps.h (ps_fmt_specs_t): New typedef.
+ (struct ps_fmt_specs): New structure.
+ (ps_std_fmt_specs): Now of type struct ps_fmt_specs.
+ (ps_fmt_specs_find): Renamed from find_ps_fmt_spec; now uses a
+ struct ps_fmt_specs instead of an array of specs.
+ (ps_fmt_create): Now takes a ps_fmt_specs_t structure instead of
+ an array of specs.
+
+ * fmt.c (ps_fmt_create): Now takes a ps_fmt_specs_t instead of an
+ array of specs. Also fixup call to ps_fmt_specs_find().
+
+ * ps.h (struct proc_stat): Add failed and hook fields.
+ * procstat.c (proc_stat_set_flags): Support the failed field.
+ (_proc_stat_create): Initialize the failed and hook fields.
+
+Wed Dec 20 12:49:24 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_emit_nz_int): Write `-' when the value is 0, rather
+ than mangling the output.
+
+Sun Dec 17 03:09:31 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): If there's no owner, set the
+ uid to -1 (and the owner to null), instead of failing.
+ * spec.c (ps_emit_uid): Use an int uid, and emit "-" for none.
+ (ps_emit_uname, ps_cmp_uids, ps_cmp_unames, ps_nominal_user):
+ Handle NULL users.
+
+ * filters.c (ps_not_leader_p): Renamed from ps_not_sess_leader_p.
+ (ps_not_leader_filter): Renamed from ps_not_sess_leader_filter.
+ (ps_unorphaned_p): Include login leaders as well as session leaders.
+ * ps.h (ps_not_leader_filter): Renamed from ps_not_sess_leader_filter.
+
+Sat Dec 16 23:42:27 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (proc_stat_owner_uid): New macro.
+ (PSTAT_OWNER_UID): New macro.
+ (struct proc_stat): Add owner_uid field.
+ * procstat.c (proc_stat_set_flags): Add support for PROC_OWNER_UID.
+ (add_preconditions): Add preconditions for owner_uid (& owner).
+ * spec.c (ps_owner_uid_getter): New variable.
+ (ps_get_owner_uid, ps_nominal_uid): New functions.
+ (ps_std_fmt_specs): Make "UID" use owner_uid rather than owner.
+ (own_uid): New variable (was function local).
+ * filters.c (ps_own_filter): Depend on PSTAT_OWNER_UID.
+ (ps_own_p): Account for there being no uid.
+
+Thu Nov 16 12:51:34 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * write.c (ps_stream_write_field): Trim spaces from BUF.
+
+Wed Nov 15 18:55:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.h (ps_fmt_write_titles, ps_fmt_write_proc_stat,
+ proc_stat_list_fmt, ps_emit_int, ps_emit_nz_int, ps_emit_priority,
+ ps_emit_percent, ps_emit_num_blocks, ps_emit_nice_int,
+ ps_emit_nice_seconds, ps_emit_seconds, ps_emit_uid, ps_emit_uname,
+ ps_emit_string0, ps_emit_string, ps_emit_tty_name, ps_emit_state,
+ ps_stream_write, ps_stream_space, ps_stream_pad,
+ ps_stream_newline, ps_stream_write_field, ps_stream_write_int_field):
+ Use new STREAM parameter instead of old one and count.
+ (ps_stream_write): Renamed from ps_write_string.
+ (ps_stream_space): Renamed from ps_write_spaces.
+ (ps_stream_pad): Renamed from ps_write_padding.
+ (ps_stream_write_field): Renamed from ps_write_field.
+ (ps_stream_write_int_field): Renamed from ps_write_int_field.
+ (ps_stream_newline): New declaration.
+
+ * fmt.c (ps_fmt_write_titles, ps_fmt_write_proc_stat): Use new
+ write function names. Use new STREAM parameter instead of old one
+ and count.
+ * proclist.c (proc_stat_list_fmt): Ditto.
+ * spec.c (ps_emit_int, ps_emit_nz_int, ps_emit_priority,
+ ps_emit_percent, ps_emit_num_blocks, ps_emit_nice_int,
+ ps_emit_nice_seconds, ps_emit_seconds, ps_emit_uid, ps_emit_uname,
+ ps_emit_string0, ps_emit_string, ps_emit_tty_name, ps_emit_state):
+ Ditto.
+ (ps_emit_seconds): Remove leading spaces from what we print.
+
+ * write.c (ps_stream_write): Renamed from ps_write_string.
+ (ps_stream_space): Renamed from ps_write_spaces.
+ (ps_stream_pad): Renamed from ps_write_padding.
+ (ps_stream_write_field): Renamed from ps_write_field.
+ (ps_stream_write_int_field): Renamed from ps_write_int_field.
+ (ps_stream_write, ps_stream_space, ps_stream_pad,
+ ps_stream_newline, ps_stream_write_field, ps_stream_write_int_field):
+ Use new STREAM parameter instead of old one and count.
+ Use new function names.
+ (ps_stream_write, ps_stream_space): Support negative spaces.
+ (ps_stream_newline): New function.
+ (ps_stream_pad, ps_stream_write_field): Use negative spaces.
+
+Tue Nov 7 17:43:48 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_base_priority_getter, ps_cur_priority_getter,
+ ps_get_base_priority, ps_get_cur_priority): Get this info using
+ PSTAT_THREAD_BASIC instead of PSTAT_THREAD_SCHED.
+ * procstat.c (summarize_thread_basic_info): Summarize available
+ priority info too.
+ (summarize_thread_sched_info): Do max_ & depress_priority too.
+
+ * procstat.c (proc_stat_set_flags): Initialize the proc_info and
+ proc_info_size fields if they've never been set before.
+ Always update proc_getprocinfo fields, even if we already had them.
+ (add_preconditions): Correct preconditions for PSTAT_STATE.
+ (PSTAT_TEST_MSGPORT): Renamed from SHOULD_SUPPRESS_MSGPORT_FLAGS.
+ (PSTAT_USES_MSGPORT): New macro.
+ (SUPPRESS_MSGPORT_FLAGS): Use PSTAT_USES_MSGPORT, not PSTAT_MSGPORT.
+ (proc_stat_set_flags): Use PSTAT_TEST_MSGPORT.
+ (merge_procinfo): Only copy old task info if we actually had it.
+ (proc_stat_set_flags): Don't unnecessarily grab procinfo stuff.
+
+Tue Oct 31 14:03:53 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * spec.c (ps_rpc_getter): New variable.
+ (ps_get_rpc): New function.
+ (ps_std_fmt_specs): Add "RPC" entry.
+ (ps_emit_nz_int): New function.
+
+ * ps.h (PSTAT_STATE_P_LOGINLDR, PSTAT_STATE_P_WAIT,
+ PSTAT_STATE_P_GETMSG): New flags.
+ * procstat.c (add_preconditions): Don't require PSTAT_EXEC_FLAGS for
+ getting the state anymore (but do require PSTAT_{TASK,THREAD}_BASIC).
+ (proc_stat_state_tags): Update to reflect new flags.
+ (proc_stat_set_flags): Set new flags.
+
+ * procstat.c (PSTAT_PROCINFO, PSTAT_PROCINFO_THREAD): New macros.
+ (fetch_procinfo, merge_procinfo): New functions.
+ (SHOULD_SUPPRESS_MSGPORT_FLAGS): Change to use more accurate flags.
+ (should_suppress_msgport): Use new fields.
+ (summarize_thread_basic_info, summarize_thread_sched_info,
+ summarize_thread_states, summarize_thread_rpcs, count_threads):
+ New functions.
+ (proc_stat_set_flags): Support the new division of PSTAT_INFO into
+ individual flags, and support getting thread information by
+ using the thread's origin proc_stat.
+ (_proc_stat_free): Free the thread_basic_info and
+ thread_sched_info fields if necessary.
+ (proc_stat_thread_create): Don't require that the source process
+ have thread information around; it will be fetched later if necessary.
+
+ * spec.c (ps_ppid_getter, ps_pgrp_getter, ps_session_getter,
+ ps_login_col_getter): Use PSTAT_PROC_INFO, not PSTAT_INFO.
+ (ps_get_ppid, ps_get_pgrp, ps_get_session, ps_get_login_col): Use
+ proc_stat_proc_info, not proc_stat_info.
+ (ps_vsize_getter, ps_rsize_getter, ps_rmem_frac_getter,
+ ps_proc_susp_count_getter): Use PSTAT_TASK_BASIC, not PSTAT_INFO.
+ (ps_get_vsize, ps_get_rsize, ps_get_rmem_frac, ps_get_proc_susp_count):
+ Use proc_stat_task_basic_info, not proc_stat_info.
+ (ps_cur_priority_getter, ps_base_priority_getter,
+ ps_max_priority_getter): Use PSTAT_THREAD_SCHED, not PSTAT_THREAD_INFO.
+ (ps_usr_time_getter, ps_sys_time_getter, ps_tot_time_getter,
+ ps_cpu_frac_getter, ps_sleep_getter):
+ Use PSTAT_THREAD_BASIC, not PSTAT_THREAD_INFO.
+
+ * filters.c (ps_own_filter): Use PSTAT_PROC_INFO, not PSTAT_INFO.
+ (ps_own_p): Use proc_stat_proc_info, not proc_stat_info.
+
+ * ps.h (proc_stat_num_threads): Use the num_threads field.
+ (proc_stat_thread_sched_info, proc_stat_thread_basic_info): Don't
+ take the address, now that the fields used are pointers themselves.
+ (proc_stat_thread_rpc, proc_stat_task_basic_info): New macros.
+ (proc_stat_proc_info): Renamed from proc_stat_info.
+ (PSTAT_PROC_INFO): Renamed from PSTAT_INFO.
+ (PSTAT_TASK_BASIC, PSTAT_THREAD_BASIC, PSTAT_THREAD_SCHED,
+ PSTAT_THREAD_RPC): New macros.
+ (struct proc_stat): info & info_len --> proc_info & proc_info_len.
+ Add the num_threads, task_basic_info, and thread_rpc fields.
+ thread_basic_info & thread_sched_info are now pointers.
+
+Mon Oct 9 14:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Specify shared library dependencies.
+
+Fri Aug 25 18:55:51 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.h (ps_std_fmt_specs): Declare extern.
+
+Wed Aug 23 15:04:51 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Just put the migs stubs directly in here.
+ (REMHDRS, MIGSTUBS): Removed.
+
+Sat Aug 19 11:49:06 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): Actually set the P_STOP bit.
+
+Fri Aug 18 16:43:41 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.h (PSTAT_STATE_*): All proc state flags reorganized and
+ renamed to PSTAT_STATE_P_* for process-global bits, and
+ PSTAT_STATE_T_* for per-thread bits.
+ * procstat.c (proc_stat_state_tags): Reordered to reflect the new
+ ordering of the state bits.
+ (thread_state, proc_stat_set_flags): Use the new state bits.
+ * spec.c (ps_emit_state): Rearrange things to reflect the new
+ state bits.
+ (state_shadows): New variable.
+ (ps_emit_state): Use the state_shadows list to turn off some states.
+ * filters.c (ps_not_sess_leader_p, ps_unorphaned_p, ps_parent_p):
+ Use the new state bits.
+
+Sat Jul 8 13:34:20 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * tty.c (ps_tty_short_name): That assignment around which extra
+ parents were put was actually supposed to be a test! Make it so...
+
+Thu Jul 6 22:25:20 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * tty.c (ps_tty_short_name): Put extra parens around assignment
+ inside if test.
+
+Thu Jul 6 15:36:04 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * Makefile: Remove include dependencies.
+
+Thu Jun 29 15:29:05 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * Makefile (REMHDRS): New variable.
+ ($(OBJS)): depend on ../libihash/ihash.h.
+ * ps.h: Include hurd/ihash.h instead of ihash.h.
+
+Wed May 31 13:09:04 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * fmt.c (ps_fmt_create): Don't mutate the format spec name in the
+ fmt_spec list we're passed just to get correctly capitalized
+ titles. Instead, do things correctly by making enough room to
+ store our own version of the title string, which we can do with
+ what we please.
+
+ * ps.h (ps_own_filter, ps_not_sess_leader_filter, ps_ctty_filter,
+ ps_unorphaned_filter, ps_parent_filter): Declare these as extern
+ so that the linker will bring in the initialized version (it's not
+ doing so otherwise may be a bug).
+
+Thu May 4 20:01:32 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): If a msg port call times out,
+ disable use of that msg port.
+ * Makefile (MIGSTUBS, term-MIGUFLAGS, msg-MIGUFLAGS): Compile our
+ own msg & term user stubs to add msg timeouts.
+
+Wed May 3 11:32:52 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_for_each): New function for iterating
+ over proc_stat_lists.
+ (proc_stat_list_spec_nominal): New function for deciding if a
+ particular spec is always nominal.
+ * ps.h: Add entries for proc_stat_list_for_each and
+ proc_stat_list_spec_nominal.
+
+ * fmt.c (ps_fmt_squash, ps_fmt_squash_flags): Recalculate the set
+ of ps flags needed by the fmt in ps_fmt_squash.
+
+Tue May 2 12:25:57 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * ps.h (ps_fmt_squash): Rename to ps_fmt_squash_flags.
+ * fmt.c (ps_fmt_squash, ps_fmt_squash_flags): Rename ps_fmt_squash to
+ ps_fmt_squash_flags, moving most of the guts into a new more
+ general ps_fmt_squash, which is usable for other things than flags.
+
+ * ps.h (struct ps_fmt_spec): Add the nominal_fn field, which will
+ be used to decide whether values are `unexciting'.
+ * spec.c (ps_std_fmt_specs): Add values for the nominal_fn field.
+ (ps_nominal_zint, ps_nominal_user, ps_nominal_pri, ps_nominal_nth):
+ Possible nominal funs.
+
+ * ps.h (struct proc_stat): Add the suspend_count field, along with
+ PSTAT_SUSPEND_COUNT, and proc_stat_suspend_count(ps).
+ * procstat.c (proc_stat_set_flags, add_preconditions): Add support for
+ the suspend_count field.
+ * spec.c (ps_std_fmt_specs): Add the Susp (task/thread suspend count),
+ PSusp (task suspend count), and TSusp (thread suspend count) output
+ specs.
+
+ * procstat.c (add_preconditions): A new function that calculates inter-
+ flag dependencies; code moved here from from proc_stat_set_flags.
+ (should_suppress_msgport): A new function that returns true when
+ there's some condition indicating that we shouldn't use a process's msg
+ port.
+ (proc_stat_set_flags): Avoid using a process's msg port when it may be
+ unusable.
+
+ * ps.h (PSTAT_STATE_FORKED): A new flag to replace PSTAT_STATE_EXECED;
+ we want to the flags to mark exceptional conditions, and this is rarer.
+ * procstat.c (proc_stat_set_flags): Set PSTAT_STATE_FORKED instead of
+ PSTAT_STATE_EXECED.
+ (proc_stat_state_tags): Change the user state letter to "f" from "e".
+
+Sun Apr 23 15:38:39 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * Makefile: Set libname.
+
+Fri Apr 7 11:12:15 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * proclist.c (proc_stat_list_sort1): Always keep threads after their
+ process when sorting!
+
+ * spec.c (ps_emit_state): If a process is marked as stopped, then
+ don't mention sleeping or idle threads' status (as that's presumably
+ the signal thread).
+
+ * ps.h: Add decls for proc_stat_list_add_pgrp & ps_tty_short_name.
+
+ * proclist.c (proc_stat_list_add_all, proc_stat_list_add_login_coll,
+ proc_stat_list_add_session): Move most of the functionality into
+ proc_stat_list_add_[id_]fn_pids.
+ (proc_stat_list_add_pgrp): New function, adds pids for a pgrp.
+
+ * tty.c (ps_tty_short_name): New function; functionality used to be in
+ spec.c
+ (ps_tty_create, ps_tty_free): Add short_name fields.
+ * spec.c (ps_emit_tty_name): Move guts into into ps_tty_short_name.
+
+ * Just about everything: tighten up types used (i.e., don't use int
+ for everything).
+
+Wed Apr 5 22:42:24 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * spec.c (ps_std_fmt_specs): Add the `Arg0' spec, which is the
+ same as `Args', but only prints the first one. Change MsgsIn
+ and MsgsOut to MsgIn and MsgOut.
+
+Tue Apr 4 20:13:55 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.h: Add the PSTAT_NO_MSGPORT flag, which when set disables any
+ use of the process's message port.
+ * procstat.c (proc_stat_set_flags): If PSTAT_NO_MSGPORT is set,
+ don't use the msg port.
+
+Wed Mar 29 15:36:43 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * procstat.c (proc_stat_set_flags): Don't barf if a process has
+ zero threads.
+
+Tue Mar 28 10:33:08 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * ps.h: Add the exec_flags field to the proc_stat structure, and
+ add PSTAT_STATE_TRACED.
+ * procstat.c (proc_stat_set_flags): Add support for the exec_flags
+ field, and make the state bits calculation use that to support the
+ PSTAT_STATE_TRACED bit.
+
+Mon Mar 20 20:51:51 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * user.c (ps_user_passwd) [COUNT, COPY]: Use `if' statement.
+ * spec.c (ps_emit_num_blocks): Use int format for int arg.
+ (sprint_frac_value): Likewise.
+ * write.c (ps_write_int_field): Likewise.
+ * host.c (ps_host_basic_info): Cast third arg to host_info.
+ (ps_host_sched_info): Likewise.
+ (ps_host_load_info): Likewise.
+
+ * filters.c: Include <unistd.h>.
+ * context.c: Include <hurd/term.h>.
+ * tty.c: Likewise.
+ * spec.c: Include <string.h>.
+ * procstat.c: Likewise.
+
+ * host.c: Don't include "pshost.h".
+ * spec.c: Likewise.
+
+ * ps.h: Include <errno.h>.
+ (ps_get_host, ps_host_basic_info, ps_host_sched_info,
+ ps_host_load_info): Copied here from pshost.h.
+ (ps_write_string, ps_write_spaces, ps_write_padding,
+ ps_write_field, ps_write_int_field): Copied here from pswrite.h
+ * pshost.h, pswrite.h: Delete files.
+
+ * New ChangeLog, moved into canonical directory structure.
+ Old ChangeLog is in .../hurd/utils/ps.ChangeLog.
+
diff --git a/libshouldbeinlibc/ChangeLog b/libshouldbeinlibc/ChangeLog
new file mode 100644
index 00000000..3504b5a5
--- /dev/null
+++ b/libshouldbeinlibc/ChangeLog
@@ -0,0 +1,589 @@
+Tue Jul 16 00:24:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-help.c (argp_help): Set the lmargin after printing the
+ start of the usage message, so that it won't get indented.
+
+Wed Jul 10 12:16:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_version_options, argp_version_parser): Use an
+ uppercase 'V' for short version option.
+
+ * argp-help.c (argp_help): "OPTIONS..." -> "OPTION...".
+
+Sat Jul 6 16:17:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_version_parser): Output ARGP_PROGRAM_VERSION
+ to STATE->out_stream, not stdout. Supply that stream and STATE to
+ ARGP_PROGRAM_VERSION_HOOK.
+ * argp.h (argp_program_version_hook): Add argument types.
+ * argp-pv.c (argp_program_version): Doc updated.
+ * argp-pvh.c (argp_program_version_hook): Type & doc updated.
+ "argp.h": New include.
+
+Fri Jul 5 17:13:12 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * timefmt.c (fmt_past_time): Get rid of extraneous `f' in fmt string.
+
+Thu Jun 27 17:09:30 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): Zero the CHILD_INPUTS vector.
+
+Fri Jun 21 17:15:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): Use group_parse instead of calling
+ group parser directly for long options.
+
+Wed Jun 19 13:11:15 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsysops.c: New file.
+ * Makefile (SRCS): Add fsysops.c.
+
+Tue Jun 18 21:09:52 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-help.c (argp_failure): If FMT is 0, don't print `: MSG'.
+
+Sun Jun 16 19:25:10 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Remove line.c.
+ (LCLHDRS): Remove line.h.
+
+ * argp-help.c (argp_help, argp_state_help, argp_error, argp_failure):
+ Handle null streams.
+
+ * argp.h (struct argp_state): Add NAME, ERR_STREAM, & OUT_STREAM
+ fields.
+ (argp_failure): New declaration.
+ (ARGP_NO_HELP, ARGP_NO_EXIT): Fix values (were hex, but with
+ decimal value!).
+ (argp_help): Add NAME argument.
+ * argp-parse.c (argp_default_parser): Output to STATE->out_stream.
+ (argp_parse): Initialize new fields in STATE.
+ Output errors to STATE.err_stream. Handle null streams.
+
+ * argp-help.c (argp_help): Add and use NAME argument.
+ (argp_error): Use STATE->err_stream instead of STDERR.
+ (argp_state_help): Supply NAME argument to argp_help.
+ (argp_failure): New function.
+
+Thu May 30 18:10:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-help.c (indent_to): Terminate.
+
+Tue May 28 18:05:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * timefmt.c (fmt_seconds): Don't print two decimal points.
+
+Wed May 22 00:11:24 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_default_parser): Break after --HANG.
+
+ * argp-help.c (hol_usage): Prefix each option desc with a space.
+ Do manual wrapping of descs with an embedded space.
+ Don't set wrap margin (done elsewhere now).
+ (argp_args_usage): Do manual line wrapping because of embedded spaces.
+ (argp_help): Set wrap & left margins when printing usage.
+
+ * argp-parse.c (argp_parse): Only print a `Try...' message if the
+ error was a parsing error.
+
+Tue May 14 21:59:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * timefmt.c (add_field): Correctly decrement *SECS by amount printed.
+
+ * timefmt.c (fmt_named_interval): Use fraction digit in more cases.
+ Always pick the last suffix if we can't find any that fits.
+ Use new tv_ functions.
+ (tv_is_zero, tv_is_ge): New functions.
+
+Fri May 10 23:17:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (ARGP_ERR_UNKNOWN): New define.
+ * argp-parse.c (EBADKEY): New define.
+ (argp_default_parser, argp_version_parser, argp_parse): Use
+ EBADKEY instead of EINVAL. Turn any EBADKEY that makes it to the
+ end back into EINVAL.
+
+Thu May 9 11:30:47 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * maptime.c (maptime_map): Use new file_get_storage_info interface.
+
+ * argp-help.c (argp_help): Just assign STREAM instead of using 2 vars.
+
+Thu May 9 11:00:52 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * exec-reauth.c (exec_reauth): Use new args to
+ auth_user_authenticate.
+
+ * timefmt.c (fmt_past_time): Cast arg to localtime appropriately.
+
+ * argp-help.c (argp_args_usage): add_usage_item -> fprintf.
+ (argp_help): Don't shadow arg; change parm STREAM to be STREAMARG
+ and adjust initialization of STREAM variable to use the renamed
+ parm.
+
+Tue May 7 14:58:48 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * timefmt.c (fmt_past_time): Suppress leading noise in some formats.
+
+ * argp-help.c (hol_usage): Set the wmargin, not the lmargin.
+ (hol_help): Set the wmargin as well as the lmargin.
+ * argp-help.c <linewrap.h>: New include.
+ (lmargin): Function deleted.
+ (hol_entry_help, hol_usage): Use line_wrap_set_lmargin instead.
+
+Mon May 6 12:46:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-help.c <line.h>: Include removed.
+ (lmargin, indent_to): New functions.
+ (argp_usage_arg): Function removed.
+ (hol_entry_help, hol_help, hol_usage, argp_args_usage, argp_doc,
+ argp_help): Use stdio streams and line_wrap_ functions instead of
+ line_ functions.
+
+Sat May 4 05:32:28 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * rwlock.h: Moved to ../libthreads.
+ * Makefile (LCLHDRS): Remove rwlock.h.
+
+Fri May 3 18:10:41 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * path-lookup.c: File removed.
+ * Makefile (SRCS): Remove path-lookup.c.
+
+ * argz.c, argz.h, envz.c, envz.h: Files removed.
+ * Makefile (SRCS): Remove argz.c, envz.c.
+ (LCLHDRS): Remove argz.h, envz.h.
+
+Thu May 2 00:31:32 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (_argp_hang): New variable.
+ (OPT_HANG): New macro.
+ (argp_default_options, argp_default_parser): Add hidden --HANG option.
+ (argp_default_parser): New function.
+ (argp_version_options, argp_version_argp): New variables.
+ (argp_parse): Use ARGP_VERSION_ARGP when appropiate.
+ * argp.h (argp_program_version, argp_program_version_hook): New decls.
+ * Makefile (SRCS): Add argp-pv.c & argp-pvh.c.
+ * argp-pv.c, argp-pvh.c: New files.
+
+Tue Apr 30 20:25:12 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * timefmt.c (fmt_past_time): New function.
+ (fmt_minutes, fmt_seconds): New args, rewrite.
+ (add_field): New function.
+ (fmt_frac_value, append_fraction): Functions removed.
+ * timefmt.h (fmt_past_time): New declaration.
+ (fmt_minutes, fmt_seconds): Update.
+
+ * argp-parse.c (argp_parse): Work with ARGP == 0.
+
+Mon Apr 29 15:34:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * cacheq.c, cacheq.h: New files.
+ * Makefile (SRCS): Add cacheq.c.
+ (LCLHDRS): Add cacheq.h.
+
+Thu Apr 25 00:09:48 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * idvec.c (idvec_free_contents): New function.
+ * idvec.h (idvec_free_contents): Declare it.
+
+Thu Apr 11 15:23:15 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wire.c (wire_segment_internal): Cast values nicely in `poke'
+ loop.
+
+Wed Apr 3 12:57:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (argp_parse): Change HOOK argument to INPUT.
+ (struct argp_state): Rename HOOK & CHILD_HOOKS to INPUT & CHILD_INPUTS;
+ add HOOK field again.
+ * argp-parse.c (argp_parse): Change HOOK argument to INPUT.
+ Don't propagate back return values when we're done.
+ (struct group): Rename HOOK & CHILD_HOOKS to INPUT & CHILD_INPUTS;
+ add HOOK field again.
+ (group_parse): Restore and save value of GROUP's hook field into
+ STATE around calling the parser. Don't save changed value of INPUT.
+
+Tue Apr 2 18:25:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * lcm.c: New file.
+ * Makefile (SRCS): Add lcm.c.
+
+Thu Mar 28 19:06:12 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * portinfo.c, xportinfo.c, portinfo.h: New files.
+ * portxlate.c, portxlate.h: New files.
+ * Makefile (LCLHDRS): Add portinfo.h, portxlate.h.
+ (SRCS): Add portinfo.c, xportinfo.c, portxlate.c.
+
+Tue Mar 26 17:43:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * wire.c: Add a weak reference to _start, so we don't have to
+ compile all users of this library.
+
+Mon Mar 25 18:38:23 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * timefmt.c (fmt_named_interval): Rationalize WIDTH.
+
+Mon Mar 25 16:11:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wire.h, wire.c: New files.
+ * Makefile (SRCS): Add wire.c.
+ (LCLHDRS): Add wire.h.
+
+Mon Mar 25 16:06:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * envz.c (envz_merge): NEW_LEN is a size, not a char.
+
+Mon Mar 18 14:09:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (struct argp_state): Add HOOK and CHILD_HOOKS fields.
+ Rename the PARENTS field to be CHILDREN (the most common use is
+ initialization, so this change shouldn't have much effect).
+ (ARGP_KEY_BEGIN, ARGP_KEY_ERROR): New macros.
+ * argp-parse.c (struct group): Add PARENT, PARENT_INDEX, HOOK, and
+ CHILD_HOOKS fields.
+ (argp_parse): Add HOOK argument.
+ Implement passing hook values to parsers, and propagating them
+ between parents and children.
+ * argp-help.c (argp_doc, argp_args_usage, argp_hol): Rename
+ PARENTS field to CHILDREN.
+
+ * argp-help.c (argp_error): Take an argp_state instead of an argp,
+ and only doing anything if ARGP_NO_ERRS isn't set in it.
+ (argp_state_help): New function.
+ (argp_help): Don't interpret exiting options anymore.
+ * argp-parse.c (argp_default_options): Add --usage option.
+ (argp_default_parser): Use argp_state_help, so we don't need to
+ screw with exit options anymore.
+ Add usage option.
+ (argp_parse): When printing `too many arguments', test
+ ARGP_NO_ERRS instead of ARGP_NO_HELP.
+ * argp.h (argp_state_help): New function.
+ (argp_usage, argp_error): Change arguments.
+
+Fri Mar 1 18:59:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-help.c (hol_entry_help): Don't print extraneous blank lines.
+
+Wed Feb 28 18:44:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): Print an error message if appropiate
+ when we know there are too many arguments.
+
+ * argp-help.c (hol_entry_help): Handle null group headers nicely.
+
+Wed Feb 28 16:09:27 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * maptime.c (maptime_map): mapped_time_value arg is volatile data.
+ * maptime.h (maptime_map): Likewise.
+
+Sat Feb 17 21:34:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * shared-dom.c, localhost.c: New file.
+ * Makefile (SRCS): Add shared-dom.c and localhost.c.
+
+Fri Feb 16 15:54:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * maptime.c, maptime.h: New files.
+ * Makefile (SRCS, LCLHDRS): Add maptime.c and maptime.h respectively.
+
+ * timefmt.c (fmt_named_interval): Correct backwards comparison.
+
+Thu Feb 15 15:18:34 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * canon-host.c: New file.
+ * Makefile (SRCS): Add canon-host.c.
+
+ * argp-parse.c (argp_parse): Correctly deal with errors from
+ getopt, and allow the user to use '?' as a short option.
+ (KEY_ERR): New macro.
+ (argp_default_options, argp_default_parser): Use -? as the short
+ option for --help.
+
+Wed Feb 14 14:33:48 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): Make things a bit more readable by
+ using the TRY_GETOPT variable in place of opt == EOF.
+ Use KEY_END, KEY_ARG, and QUOTE.
+ Clear STATE.quoted if STATE.next has been moved back before it.
+ (KEY_END): New macro, in place of EOF.
+ (KEY_ARG, QUOTE): New macros.
+
+Mon Feb 12 15:08:33 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): Don't parse args in order by
+ default. Honor ARGP_NO_ARGS.
+ Deal correctly when the user turns a non-option arg into an option
+ in re-ordering mode.
+ * argp.h (struct argp_state): Add `quoted' field.
+
+Thu Feb 8 19:35:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): When a non-option arg fails to be
+ parsed with EINVAL, set ARG_EINVAL true, and leave ERR as is until
+ just before we return.
+ Put process_arg() in the right scope.
+
+Wed Feb 7 23:08:33 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): Deal with getopt returning EOF early
+ because of `--'.
+
+ * argp-parse.c (argp_parse): Make STATE.arg_num per-group.
+ (struct group): Renamed process_arg field to args_processed (a count).
+
+Mon Feb 5 13:39:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (struct argp_state): Add ARG_NUM field.
+ * argp-parse.c (argp_parse): Implement the ARG_NUM field.
+
+ * argp.h (struct argp, struct argp_state, argp_parse, argp_help,
+ argp_usage, argp_error, _option_is_short, _option_is_end): Add `const'
+ where appropriate.
+ * argp-parse.c (argp_default_options, argp_default_argp,
+ argp_parse, find_long_option): Likewise.
+ * argp-help.c (struct hol_entry, make_hol,
+ hol_entry_short_iterate, hol_entry_long_iterate,
+ hol_entry_first_short, hol_entry_first_long, hol_find_entry,
+ hol_sort, hol_entry_help, argp_hol, argp_args_usage, argp_doc,
+ argp_help, argp_error): Likewise.
+ * line.h (line_write, line_fill, line_puts): Likewise.
+ * line.c (line_write, line_fill): Likewise.
+
+Sat Feb 3 02:00:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * idvec.c (idvec_merge_ids): Correctly add all IDS, even if some
+ duplicates are avoided.
+
+Tue Jan 23 15:02:03 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-help.c (hol_entry_help): Correctly print group headers, and
+ precede them with a blank line.
+ (hol_set_group): Renamed from hol_set_sort_class.
+ (argp_help): Use hol_set_group instead of hol_set_sort_class.
+ (struct hol_entry, make_hol, hol_sort, hol_set_group): Rename the
+ `set_class' field to be `group'.
+ (hol_help, hol_entry_help): After a group header has been printed,
+ separate subsequent groups with a blank line.
+
+Mon Jan 15 11:01:15 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * path-lookup.c (hurd_file_name_path_lookup, file_name_path_lookup):
+ Add PREFIXED_NAME (return) argument.
+ (file_name_path_scan): New function.
+ (hurd_file_name_path_lookup): Use file_name_path_scan().
+
+Tue Jan 2 01:24:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_default_options, argp_default_parser): Add
+ --program-name (hidden) option.
+ (OPT_PROGNAME): New macro.
+
+ * idvec.c (idvec_merge_ids): Preserve duplicates internal to IDS.
+ (idvec_ensure): Alloc NUM ids, not NUM chars!
+ (idvec_remove): Correctly copy ids when deleting.
+ * idvec.h (idvec_merge, idvec_delete): New declarations.
+
+ * idvec-auth.c (idvec_merge_auth): Fix various small typos.
+
+ * argz.c (argz_delete): If the result is empty, free it.
+
+ * exec-reauth.c (exec_reauth): Doc fix.
+
+ * argz.h (argz_delete): Renamed from argz_remove.
+ * argz.c (argz_delete): Ditto.
+ (argz_insert): Deref ARGZ where necessary.
+ * envz.c (envz_merge): Rename argz_remove to argz_delete.
+
+Mon Jan 1 17:48:34 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * idvec.c (idvec_remove, idvec_insert_only): New functions.
+ (idvec_setid): Use idvec_insert_only() instead of idvec_insert_new().
+ * idvec.h (idvec_remove, idvec_insert_only): New declarations.
+
+ * Makefile (SRCS): Add exec-reauth.c.
+
+ * idvec.c (idvec_free_wrapper, idvec_free, idvec_ensure,
+ idvec_grow, idvec_tail_contains, idvec_add_new, idvec_insert_new,
+ idvec_merge_ids, idvec_setid): New functions.
+ (idvec_insert): Rewritten to use idvec_grow().
+ * idvec-auth.c (idvec_merge_auth): New function.
+ * idvec.h (idvec_free_wrapper, idvec_free, idvec_ensure,
+ idvec_grow, idvec_tail_contains, idvec_add_new, idvec_insert_new,
+ idvec_merge_ids, idvec_setid, idvec_merge_auth): New declarations.
+ * Makefile (SRCS): Added idvec-auth.c.
+
+Fri Dec 29 12:15:00 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (_argp_unlock_xxx): New function.
+
+Thu Dec 21 10:18:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * idvec.h (struct idvec): Renamed from struct ivec. `ints' field
+ renamed to `ids'.
+ (make_idvec, idvec_insert, idvec_add, idvec_contains):
+ All renamed from the corresponding `ivec' declaration, and types,
+ variable names, etc, changed accordingly.
+ * idvec.c (make_idvec, idvec_insert, idvec_add, idvec_contains):
+ All renamed from the corresponding `ivec' routine, and types,
+ variable names, etc, changed accordingly.
+ * Makefile (SRCS): Remove options.c. Rename ivec.c to idvec.c.
+ (LCLHDRS): Remove options.h. Rename ivec.h to idvec.h.
+
+Wed Dec 20 13:05:00 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argz.c (argz_insert): Instead of an integer position N, take a
+ pointer BEFORE into ARGZ to insert before.
+ * argz.h (argz_insert): Instead of an integer position N, take a
+ pointer BEFORE into ARGZ to insert before.
+ (argz_next): New inline function.
+
+Tue Dec 19 13:52:52 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (struct argp_option): Add the GROUP field. Twiddle doc.
+ (_option_is_end): Be more pessimistic about what constitutes `the end'.
+ * argp-help.c (make_hol): Use the new GROUP field in struct
+ argp_option to initialize sort_classes.
+ (HEADER_COL): New macro.
+ (hol_entry_help): Deal with group headers.
+ * argp-parse.c (argp_default_options): Put --help in group -1.
+
+Sun Dec 17 00:18:58 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ivec.c: New file.
+ * ivec.h: New file.
+ * Makefile (LCLHDRS): Add ivec.h.
+ (SRCS): Add ivec.c.
+
+Sat Dec 16 17:42:27 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * termsize.c (deduce_term_size): New function, new file.
+ * Makefile (SRCS): Add termsize.c.
+
+ * argz.c (argz_insert): New function.
+ (argz_remove, argz_append, argz_add): New functions, were in envz.c.
+ * argz.h (argz_insert): New declaration.
+
+Thu Dec 14 18:04:48 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argz.h (argz_append, argz_add, argz_remove): New functions.
+
+Wed Dec 13 14:28:12 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * envz.c: New file.
+ * envz.h: New file.
+ * Makefile (SRCS): Add envz.c.
+ (LCLHDRS): Add envz.h
+
+Wed Dec 6 15:05:43 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (struct argp_state): Rename the INDEX field to be NEXT.
+ * argp-parse.c (argp_parse): Change uses of that field.
+
+ * argz.c (argz_stringify): Add the SEP argument.
+ * argz.h (argz_stringify): Ditto.
+
+Tue Dec 5 18:38:40 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (SRCS, LCLHDRS): Removed error.c and error.h.
+ (CPPFLAGS-error.c): Variable removed.
+ * error.c, error.h: Files removed.
+
+Thu Oct 19 18:39:59 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (argp_usage, argp_error): New declarations.
+ (argp_usage): New inline function.
+ * argp-help.c (argp_error): New function.
+
+Fri Oct 13 19:28:28 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h (ARGP_HELP_STD_ERR): Doesn't print a usage message.
+ (ARGP_HELP_STD_USAGE): ... whereas this does.
+
+Thu Oct 12 15:57:18 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-parse.c (argp_parse): Correctly mark short options as optional.
+ (argp_parse): If an option alias doesn't have a key, use the real key.
+
+Wed Oct 11 13:54:18 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp-help.c (hol_find_entry): Don't increment ENTRY prematurely.
+
+ * argp-parse.c (argp_parse): Update STATE.argp when adding a
+ wrapper to implement the --help option.
+ In general, use the version of variables that are in STATE.
+ Update STATE.index in the case where getopt returns EOF.
+ (argp_parse): Correctly translate options.
+
+ * line.c (line_write): New function.
+ (line_puts): Function deleted.
+ (line_fill): Use line_write instead of line_printf.
+ * line.h (line_write): New declaration.
+ (line_puts): Rewrite in terms of line_write.
+
+ * argp-help.c (hol_entry_help): Print the right documentation
+ string for each entry.
+
+ * argp-parse.c (argp_default_parser, argp_parse): Rename uses of
+ argp_usage* to argp_help*.
+
+ * argp-help.c (argp_help): Renamed from argp_usage.
+ * argp.h (ARGP_HELP_*, argp_help): Renamed from ARGP_USAGE_* &c.
+
+ * argp.h (ARGP_USAGE_STD_HELP): Use ARGP_USAGE_SHORT_USAGE instead
+ of ARGP_USAGE_USAGE.
+
+ * argp-help.c (make_hol): Deal with a null value of OPT. If there
+ are no entries, don't define the ENTRIES or SHORT_OPTIONS fields.
+ (hol_free): Don't free ENTRIES or SHORT_OPTIONS unless there are any.
+ (hol_sort): Don't sort unless there are some entries.
+ (hol_usage): Don't do anything unless there are some entries.
+ (hol_sort): Sort int he correct order.
+ (argp_usage): Add the ARGP_USAGE_SHORT_USAGE case.
+
+ * argp-parse.c (argp_parse): Deal with null parser or option fields.
+ If an argp has neither a parser or any options, don't put it in GROUPS.
+ Use comparison with EGROUP, rather than testing the parser field,
+ the end test for iteration over GROUPS.
+
+ * argp-help.c (hol_append): Implement.
+
+ * argp-parse.c (argp_parse): Pass in the right value for GROUPS to
+ convert_options.
+
+ * Makefile (SRCS): Add argp-parse.c, argp-help.c, and line.c
+ (LCLHDRS): Add line.h and argp.h.
+
+Tue Oct 10 17:58:14 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.h: Doc fixes.
+
+ * argp.h: (ARGP_KEY_NO_ARGS): New macro.
+ * argp-parse.c (argp_parse): Add support for ARGP_KEY_NO_ARGS.
+ Put all the group attributes into structures which get stored in
+ the GROUPS array, rather than having a separate array for each.
+
+Sat Oct 7 03:32:51 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * rwlock.h: Protect against multiple inclusion.
+ Include cthreads.h and assert.h.
+
+Wed Sep 27 17:37:08 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * options.c (options_parse): Use 0 as the tag for non-option args.
+ * options.h: Ditto.
+
+Sat Sep 23 14:15:01 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * rwlock.h (RWLOCK_INITIALIZER): New macro.
+
+Sat Sep 16 13:40:22 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (lndist, $(srcdir)/hurd-snap/$(dir)/error.[ch]):
+ Targets removed.
+
+Thu Aug 24 11:49:13 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * options.c: Include "options.h" instead of <options.h>.
diff --git a/libstore/ChangeLog b/libstore/ChangeLog
new file mode 100644
index 00000000..a5f797f1
--- /dev/null
+++ b/libstore/ChangeLog
@@ -0,0 +1,147 @@
+Sun Jun 16 22:49:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.c (parse_opt): Use argp_failure.
+
+Thu May 23 10:54:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.c (parse_opt): Honor ARGP_NO_ERRS.
+ <error.h>: New include.
+
+Wed May 22 00:14:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.c (parse_opt): Use error instead of ERR for non-parsing errors.
+ Rename ERR to PERR.
+
+Tue May 21 00:01:02 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storecat.c (main): Delete most everything and use store arg parsing.
+ (options, doc, args_doc): Variables removed.
+
+ * create.c (store_create): Add FLAGS & CLASSES params.
+ * rdwr.c (store_write): Return an error if STORE is readonly.
+ * decode.c (store_decode): Add CLASSES param, use it instead of big
+ hardwired switch statement.
+ (store_default_leaf_decode): Use typedef for CREATE param. Pass in
+ FLAGS arg when calling it.
+ * encode.c (store_std_leaf_allocate_encoding): Renamed from
+ store_default_leaf_allocate_encoding. Make STORE const.
+ (store_std_leaf_encode): Renamed from store_default_leaf_encode.
+ Make STORE const. Get class id from store->class->id.
+ (store_encode): Use CLASS field instead of METHS field.
+ * clone.c (store_clone): Copy the flags by passing them to _make_store.
+ Use CLASS field instead of METHS field.
+ * file.c (store_file_open, file_decode): New functions.
+ (store_file_create): Always set STORE_ENFORCED.
+ (file_class): Renamed from file_meths. Add more fields. Make std
+ with _STORE_STD_CLASS.
+ (file_byte_class): Renamed from file_byte_meths.
+ <fcntl.h>, <hurd.h>: New includes.
+ * device.c (store_device_open, dev_decode): New functions.
+ (store_device_create): Always set STORE_ENFORCED.
+ (device_class): Renamed from device_meths. Add more fields. Make std
+ with _STORE_STD_CLASS.
+ <hurd.h>: New include.
+ * stripe.c (ileave_allocate_encoding, ileave_encode, ileave_decode,
+ concat_allocate_encoding, concat_encode, concat_decode): New functions.
+ (concat_class): New variable.
+ (ileave_class): Renamed from stripe_class. More fields added.
+ * store.h (struct store): Remove CLASS field. METHS field renamed
+ CLASS.
+ (STORE_IMMUTABLE_FLAGS, STORE_GENERIC_FLAGS, STORE_BACKEND_SPEC_BASE,
+ STORE_BACKEND_FLAGS, STORE_READONLY, STORE_HARD_READONLY,
+ STORE_ENFORCED): New macros.
+ (struct store_class): Renamed from store_meths; all uses changed.
+ Add ID, NAME, DECODE, SET_FLAGS, CLEAR_FLAGS, and NEXT fields.
+ (store_std_leaf_decode): Renamed from store_default_leaf_decode.
+ (store_std_leaf_create_t): New type.
+ (_STORE_STD_CLASS): New macro.
+ (struct store_argp_params): READONLY field deleted, FLAGS field added.
+ (store_allocate_child_encodings, store_encode_children,
+ store_decode_children, store_set_flags, store_clear_flags,
+ store_file_open, store_device_open, store_null_create,
+ store_std_classes, _store_add_std_class,
+ store_allocate_child_encodings, store_encode_children,
+ store_decode_children): New declarations
+ (store_decode, store_create, store_device_create, _store_device_create,
+ store_file_create, _store_file_create, store_ileave_create,
+ store_concat_create, _make_store): Declarations updated.
+ * make.c (_make_store): CLASS param removed, METHS param renamed
+ CLASS; all callers changed. FLAGS param added.
+ * stripe.c (store_ileave_create, store_concat_create): Likewise.
+ * file.c (store_file_create, _store_file_create): Likewise.
+ * device.c (store_device_create, _store_device_create): Likewise.
+ * argp.c (open_machdev): Function removed.
+ (parse_opt): Use store_device_open instead of open_machdev.
+ (open_file, parse_opt): Add FLAGS arg to various function calls.
+ * set.c (store_set_children): Function moved to kids.c.
+ * null.c, flags.c, std.c, kids.c: New files.
+ * Makefile (SRCS): Add null.c, flags.c, std.c, & kids.c.
+
+Sun May 12 10:12:24 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.c (store_parse_opt): Put result in the passed-in params struct.
+ Pass hook to open_{file,machdev}.
+ (open_machdev): Use params to determine readonly-ness.
+ (open_file): New function.
+ * store.h (store_argp): New declaration.
+ (struct store_argp_params): New type.
+ * Makefile (SRCS): Add argp.c.
+
+ * create.c (store_create): Steal SOURCE instead of cloning it.
+
+Sat May 11 01:17:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * argp.c: New file.
+
+ * storeread.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
+ * storecat.c (parse_opt): Likewise.
+
+Fri May 10 13:23:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * store.h (struct store_run): New type.
+ (struct store): RUNS is a vector of runs, not offsets.
+ (_store_device_create, _store_file_create, _make_store,
+ store_set_runs, store_default_leaf_decode): Update declaration.
+ * rdwr.c (store_find_first_run, store_next_run, store_write,
+ store_read): Use store_run, not off_t, vectors; tweak accordingly.
+ Rename variables called `RUNS' to `RUN', because although they're
+ always vectors, they're used more often for their first element.
+ * derive.c (_store_derive): Use store_run, not off_t, vectors; tweak
+ accordingly.
+ * device.c (store_device_create, _store_device_create): Likewise.
+ * set.c (store_set_runs): Likewise.
+ * storecat.c (main): Likewise.
+ * storeread.c (main): Likewise.
+ * make.c (_make_store): Likewise.
+ * stripe.c (store_ileave_create, store_concat_create): Likewise.
+ * file.c (store_file_create, _store_file_create): Likewise.
+ * decode.c (store_default_leaf_decode): Convert the slice of the
+ offset vector we're using into a vector of store_runs to pass to
+ CREATE. Change type of CREATE accordingly.
+ * encode.c (store_default_leaf_encode): Convert from the store_run
+ vector to a off_t vector for encoding.
+
+ * create.c (store_create): Use the real file_get_storage_info.
+ (fgsi): Function removed.
+
+ * store.h (struct store): Add CHILDREN & NUM_CHILDREN fields.
+ Rename RUNS_LEN to NUM_RUNS (all uses changed).
+ (store_set_children): New declaration.
+ * make.c (_make_store): Initialize CHILDREN & NUM_CHILDREN.
+ (store_free): Free all children too.
+ * clone.c (store_clone): Clone children too.
+ * set.c (store_set_children): New function.
+ * stripe.c (store_ileave_create, store_concat_create): Use
+ store_set_children.
+ (stripe_clone): Function removed.
+ (stripe_read, stripe_write): Get stripes from CHILDREN, not HOOK.
+
+ * Makefile (storeread, storecat): Remove explicit dependency on
+ program object file.
+ Put include of ../Makeconf before dependencies.
+
+Mon May 6 15:20:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * store.h: Move big comment describing file_get_storage_info
+ encoding to <hurd/hurd_types.h>.
+
diff --git a/libthreads/ChangeLog b/libthreads/ChangeLog
new file mode 100644
index 00000000..3d0d177d
--- /dev/null
+++ b/libthreads/ChangeLog
@@ -0,0 +1,264 @@
+Thu Jun 6 07:29:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * malloc.c (more_memory): Use assert_perror instead of MACH_CALL.
+ "cthread_internals.h": Include removed.
+
+Thu May 9 11:13:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (installhdrs, installhdrsubdir): Install headers using
+ the generic technique, now that installhdrsubdir is available.
+
+ * rwlock.h: If _RWLOCK_DEFINE_FUNCTIONS is defined, then clear
+ _EXTERN_INLINE, but *after* header files have been included.
+ * rwlock.c (_RWLOCK_DEFINE_FUNCTIONS): New macro; use in place of
+ clearing _EXTERN_INLINE, which conflicts with machine-sp.h.
+
+Sat May 4 05:33:57 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * cthreads.h [lint] (NEVER): Spurious global variable removed.
+ [!lint] (NEVER): Useless macro removed.
+
+ * Makefile (SRCS): Add rwlock.c.
+ (LCLHDRS): Add rwlock.h.
+ (install): Depend on $(includedir)/rwlock.h.
+ ($(includedir)/%.h: %.h): New rule.
+ ($(includedir)/cthreads.h): Target removed, obviated by that rule.
+ * rwlock.h: Moved to libthreads from libshouldbeinlibc.
+ (_EXTERN_INLINE): New macro.
+ Use it for all the inline defns.
+ * rwlock.c: New file.
+
+Thu Apr 11 17:55:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (CFLAGS): Turn off -Wall.
+
+ * Makefile (VPATH): Fix up for new configure reality.
+
+Thu Mar 7 15:52:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * malloc.c (realloc): Use LOG2_MIN_SIZE.
+ (LOG2_MIN_SIZE): New macro.
+
+ * malloc.c (realloc): Don't bother allocating a new block if the
+ new size request fits in the old one and doesn't waste any space.
+ Only free the old block if we successfully got a new one.
+
+Wed Mar 6 18:05:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * malloc.c [MCHECK] (struct header): New type.
+ (union header): Only define if !MCHECK.
+ (HEADER_SIZE, HEADER_NEXT, HEADER_FREE, HEADER_CHECK): New macros.
+ [MCHECK] (MIN_SIZE): Add correct definition for this case.
+ (more_memory, malloc, free, realloc): Use above macros, and add
+ appropiate checks & frobs in MCHECK case.
+
+Wed Jan 31 20:05:57 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * cancel-cond.c: Add assert to check for signal bug.
+
+Wed Jan 24 13:38:11 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * cthreads.h: Use prototypes for functions of zero args.
+
+Sun Dec 10 08:41:36 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * stack.c (addr_range_check, probe_stack): Functions #if 0'd out.
+ (stack_init): Don't call probe_stack or frob old stack at all.
+ Default cthread_stack_size to 16 pages if it is zero.
+
+Wed Dec 6 14:48:37 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * cprocs.c (condition_unimplies): Take address of (*impp)->next in
+ assignment to IMPP on loop step instruction.
+
+Wed Oct 4 16:22:27 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * i386/csw.S (JUMPTARGET): New macro, versions for [PIC] and not.
+ Use it in place of EXT.
+ * Makefile (csw_pic.o): Bogus braindead target from hell removed.
+ Bushnell will be shot.
+
+Fri Sep 22 13:51:22 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * cprocs.c: Include hurd/threadvar.h.
+
+Sat Sep 16 13:42:02 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (CPPFLAGS): Variable removed.
+ (lndist-i386-files): Use $(top_srcdir) in place of $(srcdir).
+
+Wed Sep 13 15:49:17 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * cthreads.h (CONDITION_INITIALIZER): Provide initial zero for
+ IMPLICATIONS member.
+ (condition_init): Bother initializing NAME and IMPLICATIONS members.
+
+Wed Aug 30 11:10:27 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * cthreads.h (condition_implies, condition_unimplies): New
+ functions.
+ (struct condition): New member `implications'.
+ (cond_imp): New structure.
+ (cond_signal): Return int now.
+ (condition_broadcast): Always call cond_broadcast if this
+ condition has implications.
+ (condition_signal): Always call cond_signal if this condition has
+ implications.
+ * cprocs.c (cond_signal): If this condition has implications,
+ see if one of them needs to be signalled when we have no waiters.
+ (cond_broadcast): Signal the implications list too.
+ (condition_implies, condition_unimplies): New functions.
+
+ * cthreads.h (hurd_condition_wait): Provide declaration.
+
+Tue Aug 29 10:48:59 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * cthread_internals.h (cproc_block): Provide decl.
+
+Sat Aug 26 14:08:15 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * cancel-cond.c (hurd_condition_wait_cancel): Name changed to
+ `hurd_condition_wait'.
+
+Tue Aug 22 19:26:38 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Add a backslash.
+
+Mon Aug 21 12:52:38 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Add cancel-cond.c.
+ * cancel-cond.c: New file.
+
+Thu Jul 6 13:39:25 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (install): Don't *always* install cthreads.h; do it
+ only if it's new.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+ * Makefile (csw_pic.o): Provide slightly cheating rule.
+
+Fri May 12 14:25:35 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * i386/csw.S: Use EXT macro instead of explicit underscores.
+ * i386/asm.h: File removed; it is installed by libc.
+ * Makefile (I386HDRS): Variable removed.
+ ($(OBJS)): Don't depend on i386/asm.h.
+
+ * Makefile (CPPFLAGS): Use $(srcdir) instead of $(hurdsource).
+
+Wed Apr 12 14:33:06 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (lndist, lndist-i386-files): Change $(hurdsource) to
+ $(srcdir).
+ ($(hurdsource)/hurd-snap/$(dir)/i386): Likewise.
+
+Tue Apr 4 17:04:45 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (CPPFLAGS): Define.
+ ($(OBJS) rule): Fix typo in target.
+ (install-cthreads.h): Use $(INSTALL_DATA).
+
+ * cthreads.h (mutex_lock, mutex_unlock): Use __ names for *_solid.
+ * cprocs.c (mutex_lock_solid, mutex_unlock_solid): Renamed to __*.
+ (_cthread_mutex_lock_routine, _cthread_mutex_unlock_routine): Variables
+ removed.
+
+Fri Jul 22 10:47:51 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+
+Tue Jul 19 12:22:01 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (generic-sources): Restored malloc.c.
+ (malloc-sources, malloc-objects): Deleted variables.
+ (DIST_FILES): Deleted $(malloc-sources)
+ (all): Deleted libmalloc.a.
+ (libmalloc.a): Delted target.
+ ($(hurdinst)/lib/libmalloc.a): Deleted target.
+ (install): Deleted $(hurdinst)/lib/libmalloc.a.
+ (clean): Deleted libmalloc.a.
+
+Tue Jul 5 14:17:28 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (SRCS, TAGSHDRS): New variables.
+ (TAGS): Deleted local definition; now it's in Makeconf.
+
+Thu May 19 00:54:54 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * cprocs.c (_cthread_mutex_lock_routine,
+ _cthread_mutex_unlock_routine): New variables.
+
+Thu May 5 19:33:49 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makefile: (generic-sources): Removed malloc.c.
+ (malloc-sources, malloc-objects): new variables.
+ (DIST_FILES): added $(malloc-sources).
+ (libmalloc.a, $(hurdinst)/lib/libmalloc.a): New targets.
+ ($(hurdinst)/lib/malloc.o): Deleted target.
+ (all): added libmalloc.a.
+ (install): Changed $(hurdinst)/lib/malloc.o to
+ $(hurdinst)/lib/libmalloc.a
+ (clean): Added libmaloc.a.
+
+Thu May 5 04:30:34 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * cthreads.c (cthread_init): Pass STACK instead of P to mig_init.
+
+ * cprocs.c (cproc_create): Pass normal offset value to
+ cproc_stack_base. Explicitly store CHILD ptr at base of its stack.
+
+ * stack.c (stack_init): Set __hurd_threadvar_stack_mask to find
+ the lowest address of the stack segment.
+ [STACK_GROWTH_UP]: Set __hurd_threadvar_stack_offset to
+ sizeof(ur_cthread_t*).
+ [! STACK_GROWTH_UP]: Set __hurd_threadvar_stack_offset to the size
+ of the stack minus space for the cproc_self ptr and thread variables.
+
+ * malloc.c (malloc, free, realloc): Change declarations to
+ standard types, so as not to conflict with the declarations in
+ <stdlib.h>.
+
+ * cthread_internals.h: #if 0 out declaration of malloc.
+ (struct cproc): #if 0 out `reply_port' member; libc implements that.
+ * cprocs.c (cproc_alloc): #if 0 out initialization of P->reply_port.
+
+ * Makefile (generic-sources): Omit sync.c. libc implements that.
+
+ * cprocs.c (cproc_block): Add __hurd_threadvar_max * sizeof (long
+ int) to 2nd arg to cproc_stack_base.
+
+ * stack.c: Include <hurd/threadvar.h>.
+ (__hurd_threadvar_stack_mask, __hurd_threadvar_stack_offset,
+ __hurd_threadvar_max): Define variables (uninitialized).
+ (stack_init): Set __hurd_threadvar_stack_mask to cthread_stack_mask.
+ Set __hurd_threadvar_stack_offset to point past the cproc_self ptr.
+ Add __hurd_threadvar_max * sizeof (long int) to 2nd arg to
+ cproc_stack_base.
+
+ * cthreads.h: #if 0 include of <machine/cthreads.h>.
+ Instead, include <machine-sp.h>.
+ (cthread_sp): Define using __thread_stack_pointer.
+ #if 0 out spin_lock definitions. Just include <spin-lock.h> instead.
+ (struct mutex): Move `held' member to be first in the structure.
+
+Wed May 4 14:55:15 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * i386/thread.c: Changed inclusions because we aren't using
+ -I flags the way CMU's makefiles do.
+
+ * i386/csw.S: Convert comment character to /* */ pairs.
+
+ * Renamed csw.s to csw.S so that GCC knows to run cpp on it.
+ * Makefile (machine-sources): Change csw.s to csw.S.
+
+Wed May 4 07:11:46 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile (GEN_SRCS): Renamed generic-sources.
+ (I386_SRCS): Replaced with machine-sources, omitting directory.
+ (SRCS): Renamed sources. Include $(machine-sources) and prepend
+ $(machine)/ directory name.
+ (headers): Define variable.
+ (OBJS): Renamed objects.
+ (VPATH): Define to $(machine).
diff --git a/libtrivfs/ChangeLog b/libtrivfs/ChangeLog
new file mode 100644
index 00000000..d3b68006
--- /dev/null
+++ b/libtrivfs/ChangeLog
@@ -0,0 +1,659 @@
+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.
+
+
+
diff --git a/login/ChangeLog b/login/ChangeLog
new file mode 100644
index 00000000..8bfdb3c1
--- /dev/null
+++ b/login/ChangeLog
@@ -0,0 +1,15 @@
+Mon Aug 21 16:35:34 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * utmp.c (trivfs_goaway, trivfs_modify_stat): Update arguments.
+
+Sun Apr 23 16:03:48 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * utmp.c (_find_device, add_device, remove_device): Remove the LEN
+ parameter and the incorrectly computed value which was shadowing
+ it, both of which are the wrong thing anyway.
+
+Tue Apr 11 11:20:21 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: New file.
+
+
diff --git a/mkbootfs/ChangeLog b/mkbootfs/ChangeLog
new file mode 100644
index 00000000..787943a2
--- /dev/null
+++ b/mkbootfs/ChangeLog
@@ -0,0 +1,22 @@
+Fri Jul 22 10:38:17 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+
+Wed Jul 20 16:24:08 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (mkbootfs): Put -n after hostname for compat with
+ old broken rsh.
+ Use gcc literally instead of MIGHOSTCC.
+
+Tue Jul 5 14:22:00 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (SRCS): New variable.
+
+Fri May 6 13:25:47 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makefile (mkbootfs): Use MIGHOSTCC instead of CC.
+
+Thu May 5 19:06:21 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makefile (mkbootfs): Call rsh with -n flag.
+
diff --git a/nfs/ChangeLog b/nfs/ChangeLog
new file mode 100644
index 00000000..10e17872
--- /dev/null
+++ b/nfs/ChangeLog
@@ -0,0 +1,160 @@
+Wed Jul 17 13:12:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c (mounted_soft): Initialize to zero.
+
+Thu Jul 4 17:14:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (netfs_attempt_link) [case SYMLINK]: Include directory
+ handle as an RPC arg.
+
+Wed Jun 26 16:41:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (netfs_get_options): New function.
+ (netfs_parse_runtime_options, netfs_unparse_runtime_options):
+ Functions removed.
+ (runtime_argp_parents, runtime_argp, netfs_runtime_argp): New variables.
+ (main): Use &NETFS_STD_STARTUP_ARGP insteda of NETFS_STARTUP_ARGP.
+
+Thu Jun 13 09:24:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Remove pager.c.
+ * nfs.h (struct netnode): Add member `fileinfo'.
+ * nfs.h (register_fresh_stat): Add decl.
+
+Wed Jun 12 22:37:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Add pager.c.
+
+Wed May 22 18:49:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (parse_startup_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
+
+Tue May 14 14:00:21 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (netfs_attempt_unlink): Add new arg in call to
+ netfs_attempt_link.
+
+Sat May 11 01:10:05 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (parse_common_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
+
+Fri May 10 18:15:11 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (netfs_attempt_rename, netfs_attempt_link): New parm EXCL,
+ but don't implement the hard case yet.
+
+Thu May 9 20:24:21 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (netfs_attempt_statfs): Expect and fill in new statfs
+ buffer.
+
+Fri Apr 19 13:50:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c (main): Failure to bind privileged ports is indicated by
+ EACCES, not EPERM.
+
+Thu Apr 11 13:51:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (guess_mode_use): New function.
+ (netfs_check_open_permissions, netfs_report_access): Replace old
+ clever versions with less obtrusive one.
+
+Tue Apr 2 09:12:28 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (netfs_report_access): Bother to initialize LEN.
+
+Fri Mar 29 17:26:14 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * rpc.c: Define malloc to something random around include of rpc/*
+ header files to avoid bogus definition there.
+
+Fri Mar 29 17:10:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (netfs_report_access): Make sure netfs_attempt_read return
+ a reasonable LEN.
+ (netfs_attempt_write): Truncate to THISAMT instead of AMT.
+
+Tue Mar 19 11:00:54 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Drop rpc.h.
+
+ * consts.c: Doc fixes.
+ * cache.c: Likewise.
+ * cred.c: Likewise.
+ * main.c: Likewise.
+ * mount.c: Likewise.
+ * mount.h: Likewise.
+ * nfs.c: Likewise.
+ * ops.c: Likewise.
+ * rpc.c: Likewise.
+
+ * rpc.c (rpc_receive_thread): Allocate receive buffer big enough
+ for largest read we expect.
+
+ * cache.c (lookup_fhandle): Correctly install new node in hash
+ table slot.
+
+ * main.c (parse_startup_opt): Pass STATE, not STATE->argp in call
+ to argp_error.
+
+ * cache.c (lookup_fhandle): Initialize NN->dead_dir and
+ NN->dead_name.
+
+ * ops.c: Include <unistd.h>.
+ (register_fresh_stat): Repair syntax.
+
+Mon Mar 18 19:49:28 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main, netfs_parse_runtime_options): Pass new arg to
+ argp_parse.
+
+Mon Mar 18 11:19:27 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (register_fresh_stat): Set fs_fsid, st_fstype, st_gen,
+ st_author, and st_flags here.
+ * nfs.c (xdr_decode_fattr): Don't set st_fstype, st_gen,
+ st_author, or st_flags here.
+
+ * ops.c (netfs_attempt_write): Increment OFFSET each time around
+ the loop.
+
+ * nfs.c (xdr_encode_create_state): Call hurd_mode_to_nfs_mode and
+ htonl on MODE.
+
+ * nfs.c (xdr_encode_sattr_stat): New function.
+
+Thu Mar 14 15:11:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * nfs.h (struct netnode): New members `dtrans' and `transarg'.
+ * cache.c (lookup_fhandle): Initialize NN->dtrans.
+ (netfs_node_norefs): Free transarg if necessary.
+ (recache_handle): New function.
+ * ops.c (netfs_attempt_mkfile): Make dtrans possible if it
+ isn't already.
+ (netfs_attempt_unlink): Likewise, when doing the rename hack.
+ (netfs_attempt_mksymlink): Implement using dtrans and transarg.
+ (netfs_attempt_mkdev): Likewise.
+ (register_fresh_stat): If NP->nn->dtrans is set, then mutate the
+ mode here.
+ (netfs_attempt_readlink): If NP->nn->dtrans is SYMLINK, then DTRT.
+ (netfs_attempt_link): Only issue NFSPROC_LINK if dtrans is not
+ operative. Otherwise, DTRT.
+ (netfs_attempt_chmod): Implement type-changing using dtrans.
+
+Tue Mar 12 15:23:32 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ops.c (netfs_set_translator, netfs_attempt_mksymlink,
+ netfs_attempt_mkdev): New functions.
+ (netfs_attempt_chmod): Detect attempt to change node type.
+ (netfs_validate_stat): Clear NP->istranslated.
+
+Mon Mar 4 16:16:13 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Use NETFS_STARTUP_ARGP.
+ (netfs_parse_runtime_options, netfs_unparse_runtime_options): New funs.
+
+Wed Feb 28 19:24:23 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (options): New variable.
+ (main): Parse our arguments.
+
diff --git a/pfinet/ChangeLog b/pfinet/ChangeLog
new file mode 100644
index 00000000..b2484ffb
--- /dev/null
+++ b/pfinet/ChangeLog
@@ -0,0 +1,232 @@
+Sat Jul 13 20:18:18 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-ops.c (S_io_reauthenticate): Repeat auth_server_authenticate
+ for as long as we get EINTR. Deal with other errors without
+ crashing.
+
+Sun Jul 7 21:29:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-ops.c (S_io_reauthenticate): Don't use unsafe MOVE_SEND in
+ call to auth_server_authenticate.
+
+Fri Jul 5 19:42:54 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ethernet.c (setup_ethernet_device): Linux's device `mtu' member
+ does not include the hardware header size; subtract that off the
+ value the kernel specifies as maximum packet size in setting
+ ETHER_DEV.mtu.
+
+Thu Jun 27 10:14:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (lndist): Add lndist-asm-files.
+ (lndist-asm-files): New rule.
+ (ASMHEADERS): New variable.
+ ($(top_srcdir)/hurd-snap/$(dir)/asm): New rule.
+
+Tue Jun 25 14:00:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * linux-inet/route.c (ip_rt_del): New function.
+ * linux-inet/route.h (ip_rt_del): New declaration.
+
+ * options.c (trivfs_get_options): Initialize *ARGZ & *ARGZ_LEN.
+ (parse_opt): Fix test for address-less netmask.
+ Fix byte order when using IN_* macros.
+ Base default netmask on dev->pa_addr, not in->address.
+ Don't clear dev->pa_addr.
+ Delete old routing entries before adding new ones.
+ (trivfs_get_options): Add & use ADD_ADDR_OPT macro.
+ (parse_hook_add_interface): Initialize H->curint->device.
+
+Mon Jun 24 16:48:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (sigterm_handler): Renamed from sighup_handle. Make void.
+ Deal with SIGTERM instead of SIGHUP.
+ (main): Use SIGTERM & sigterm_handler instead of SIGHUP &c.
+
+ * options.c (parse_hook_add_interface): Realloc the correct number
+ of bytes.
+
+Mon Jun 24 16:33:55 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c (sighup_handle): New function.
+ (arrange_shutdown_notification): Register SIGHUP handler.
+
+Mon Jun 24 12:44:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * options.c (parse_opt): Don't fail if there were no options.
+ (RETURN): New macro.
+ (PERR, FAIL): Use RETURN instead of return to free memory if nec.
+
+Fri Jun 21 16:42:29 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Pass ARGC & ARGV to argp_parse in the correct order.
+
+Thu Jun 20 22:39:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * options.c: Renamed from opts.c.
+ (parse_opt): Fix lots of typos.
+ (trivfs_get_options): New function.
+ (get_opts, trivfs_S_fsys_get_options, trivfs_S_file_get_fs_options):
+ Functions removed.
+ <netinet/in.h>, <arpa/inet.h>: New includes.
+ * Makefile (pfinet): Depend on ../libfshelp/libfshelp.a &
+ ../libshouldbeinlibc/libshouldbeinlibc.a.
+ (SRCS): Add options.c.
+
+Thu Jun 20 19:47:40 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c: Include <hurd/startup.h> and <string.h>.
+ (shutdown_notify_class): Declare variable.
+ (S_startup_dosync): Give enough args to ports_lookup_port.
+ (S_startup_dosync/do1): Return a value.
+ (arrange_shutdown_notification): Correct spelling of
+ ports_create_port. Initialize shutdown_notify_class.
+ (find_device): Construct arg to strcmp correctly. Correct
+ spelling of ENXIO.
+
+Wed Jun 19 18:46:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts.c (trivfs_S_fsys_set_options): Function removed.
+ (trivfs_runtime_argp): New variable.
+
+Sun Jun 16 22:45:54 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * opts.c (parse_opt): Rename ERR macro to FAIL. Use argp_failure.
+
+Sat Jun 15 19:47:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Rearrange for arg parsing some more.
+ (enumerate_devices): New function.
+ (pfinet_argp): New declaration.
+ (already_open): Make global.
+ <error.h>, <argp.h>: New includes.
+
+Fri Jun 14 15:41:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (find_device): New function.
+ (main): Rearrange to use new argument parsing.
+
+Thu Jun 13 16:55:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (MIGSRCS): Add startup_notifyServer.c.
+ * main.c (S_startup_dosync, arrange_shutdown_notification): New
+ functions.
+ (pfinet_demuxer): Call startup_notify_server.
+ (main): Call arrange_shutdown_notification).
+
+Tue May 14 14:12:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c (main): Initialize fsys_identity.
+ * misc.c (sock_alloc): Initialize SOCK->identity.
+ (sock_release): Destroy SOCK->identity if it's been set.
+ * io-ops.c (S_io_identity): New function.
+ * pfinet.h (fsys_identity): New variable.
+ * linux/net.h (struct socket) [_HURD_]: New member `identity'.
+
+ * ethernet.c (ethernet_open): Delete superfluous arg to
+ assert_perror.
+
+Fri May 10 16:56:52 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * misc.c (make_sock_user): Pass correct args to ports_create_port.
+
+ * ethernet.c (ethernet_open): Pass in ERRNO to assert_perror.
+
+Thu May 9 20:27:28 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io-ops.c (S_io_reauthenticate): Use new auth_server_authenticate
+ interface.
+
+ * io-ops.c (S_io_select): Drop ID_TAG arg.
+
+ * ethernet.c (ethernet_thread): Return any_t.
+ (input_work_thread): Likewise.
+
+ * ethernet.c (ethernet_open): Use new ports_create_port call.
+ * socket-ops.c (S_socket_create_address): Likewise.
+ * misc.c (make_sock_user): Likewise.
+ (make_sockaddr_port): Likewise.
+
+Wed Apr 24 18:35:50 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+
+ * main.c (main): Take third cmdline arg and add gateway route.
+
+Mon Apr 15 12:53:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (CPPFLAGS): Look for config.h in $(srcdir).
+ (io-MIGSFLAGS, socket-MIGSFLAGS): Look for mutations.h in
+ $(srcdir).
+ (vpath %.c): Find linux-inet dir under #(srcdir)>
+ (SRCS): Add time.c.
+ (LCLHDRS, LINUXHDRS, FROBBEDLINUXHEADERS): New variables.
+ (lndist, lndist-linux-inet-files, lndist-linux-files,
+ $(top-srcdir)/hurd-snap/$(dir)/linux-inet,
+ $(top-srcdir)/hurd-snap/$(dir)/linux): New targets.
+
+Mon Feb 26 13:36:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * misc.c (end_using_sockaddr_port): Only call ports_port_deref if
+ arg is valid.
+ (end_using_socket_port): Likewise.
+
+ * linux/interrupt.h (mark_bh): Remove stubby inline, replace
+ with real declaration.
+ * pfinet.h (packet_queue_lock): New variable.
+ * sched.c (packet_queue_lock): Provide initialization.
+ * ethernet.c (ethernet_open): Put READPT in etherport_bucket
+ instead of pfinet_bucket. Fork ethernet_thread and
+ input_work_thread before returning.
+ (more_packets, etherport_bucket): New variables.
+ (input_work_thread, ethernet_thread, mark_bh): New functions.
+
+ * main.c (pfinet_demuxer): Don't use call ethernet_demuxer.
+
+Thu Feb 22 17:54:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ethernet.c (ethernet_open): Request maximum queue limit
+ on our read port.
+
+Thu Feb 8 18:32:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * socket-ops.c (S_socket_connect): Don't return EINVAL for
+ SS_CONNECTED state.
+
+Mon Jan 22 13:47:47 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * timer-emul.c (init_time): There are *still* a million microseconds to
+ the second.
+
+Thu Jan 18 12:37:57 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mapped-time.h (fetch_jiffies): Uh, duh, there are a million
+ microseconds in a second, not just a thousand.
+
+Tue Dec 26 19:29:16 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io-ops.c (S_io_select): Add REPLY parameter, and request
+ notification if it dies.
+ * mutations.h (IO_SELECT_REPLY_PORT): New def.
+
+Thu Dec 14 18:50:07 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ethernet.c (ethernet_open): Don't set filter priority high.
+
+Mon Dec 11 13:23:49 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * socket-ops.c (S_socket_recv): Whoops, incorrectly negated this
+ particular return value. Rename the variable `recvd' to make
+ things more clear.
+ (S_socket_send): Ditto (`sent'), plus correctly check the return
+ value when deciding whether to deallocate ADDR's send right.
+
+Thu Dec 7 18:24:37 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * socket-ops.c (S_socket_recv, S_socket_bind, S_socket_send):
+ Negate error return values from linux code.
+ (S_socket_setopt): Implement.
+
+Wed Aug 23 14:20:48 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (pfinet): Put all dependencies here.
+ (HURDLIBS): Removed.
+
diff --git a/pflocal/ChangeLog b/pflocal/ChangeLog
new file mode 100644
index 00000000..d750463c
--- /dev/null
+++ b/pflocal/ChangeLog
@@ -0,0 +1,244 @@
+Sat Jul 13 20:20:55 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io.c (S_io_reauthenticate): Repeat sock_create_port and
+ auth_server_authenticate for as long as we get EINTR.
+
+Sun Jul 7 21:30:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io.c (S_io_reauthenticate): Don't use unsafe MOVE_SEND in call
+ to auth_server_authenticate.
+
+Mon Jul 1 18:45:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * sock.c (sock_create): Initialize ID field to MACH_PORT_NULL.
+
+Thu Jun 27 17:58:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (LCLHDRS): Add sserver.h.
+
+Thu Jun 20 16:33:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (pflocal): Depend on ../libfshelp/libfshelp.a.
+
+Wed May 15 20:27:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * sock.c (sock_free): Destroy SOCK's id port if necessary.
+
+Tue May 14 14:05:33 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (S_io_identity): New function.
+ * sock.h (struct sock): Make the id field a receive right, not an int.
+
+Thu May 9 20:20:20 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * io.c (S_io_reauthenticate): Use new auth_server_authenticate
+ protocol.
+
+Thu May 9 12:14:37 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (S_io_select): Remove TAG arg.
+
+Mon Apr 15 12:52:32 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (MIGSFLAGS): Look for mig-mutate.h in $(srcdir).
+
+Fri Jan 26 16:46:37 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * socket.c (S_socket_recv): Test for MSG_OOB in IN_FLAGS, not FLAGS.
+ Return EINVAL if we get MSG_OOB, not EOPNOTSUPP.
+
+Thu Jan 25 17:34:50 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * sock.c (sock_create_port, addr_create): Use ports_create_port
+ instead of ports_allocate_port.
+ * pflocal.c (trivfs_goaway): Handle errors from
+ ports_inhibit_bucket_rpcs.
+ (thread_cancel): Function deleted.
+
+Tue Jan 23 21:31:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * socket.c (S_socket_connect): Handle connectionless protocols
+ correctly.
+
+ * socket.c (S_socket_send): Allow DEST_ADDR to be null if the
+ socket is connected.
+
+ * sock.c (sock_bind): Don't change SOCK's ref count if we're
+ returning an error.
+
+Thu Jan 4 15:44:13 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (S_io_select): Reworked to avoid calling
+ ports_interrupt_self_on_port_death() if there's data immediately
+ available. Also, don't block if we can return EOF/EPIPE.
+
+Thu Dec 28 13:46:32 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (S_io_select): Use handy macro to avoid unthinkable line break.
+
+Tue Dec 26 17:30:18 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * io.c (S_io_select): Add reply port parameter, and request
+ notification if it dies.
+ * mig-mutate.h (IO_SELECT_REPLY_PORT): New def.
+
+Mon Nov 13 14:03:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * socket.c (S_socket_bind, S_socket_connect): Drop ADDR's send right.
+
+Thu Nov 9 13:18:44 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * socket.c (S_socket_connect): Drop our reference to ADDR.
+
+Sun Nov 5 10:01:15 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pf.c (S_socket_create_address): Removing BINDING argument.
+
+ * pflocal.c (main): Add FLAGS argument to trivfs_startup call.
+
+Tue Sep 19 14:07:24 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * io.c (S_io_pathconf): New function.
+ (S_io_set_all_openmodes, S_io_set_some_openmodes,
+ S_io_clear_some_openmodes): The user specifies O_NONBLOCK, not
+ SOCK_NONBLOCK.
+ (S_io_get_openmodes): Always return O_APPEND.
+
+Wed Sep 6 11:53:48 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * sserver.c (sock_demuxer): Use ports_interrupt_server and
+ ports_notify_server instead of our own version.
+ (do_mach_notify_no_senders, do_mach_notify_port_deleted,
+ do_mach_notify_msg_accepted, do_mach_notify_port_destroyed,
+ do_mach_notify_port_deleted, do_mach_notify_send_once,
+ do_mach_notify_dead_name): Functions deleted.
+ * io.c (S_interrupt_operation): Function deleted.
+ * Makefile (MIGSTUBS): Remove notifyServer.o and interruptServer.o.
+
+ * io.c (S_io_read, S_io_readable): Don't return EPIPE on EOF.
+
+Tue Sep 5 14:22:18 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * io.c (S_io_stat): Only attempt to use the read pipe if it exists.
+
+Thu Aug 31 16:31:18 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * io.c (S_io_select): Change the way selects are done, now that
+ writes can block.
+ (S_io_write): Pass in the new NOBLOCK parameter to pipe_write.
+ * socket.c (S_socket_send): Pass in the new NOBLOCK parameter to
+ pipe_send.
+
+Tue Aug 29 14:33:14 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * io.c (S_io_select): Use pipe_select instead of pipe_wait.
+
+ * connq.c (struct connq): Remove interrupt_seq_num field.
+ (connq_listen): Use hurd_condition_wait to detect interrupts
+ instead of previous ad-hoc mechanism.
+ (connq_interrupt, connq_interrupt_sock): Functions deleted.
+ * connq.h (connq_interrupt, connq_interrupt_sock): Decls deleted.
+ * io.c (S_interrupt_operation): Use ports_interrupt_rpc to
+ interrupt waiting threads.
+
+ * sock.c (sock_acquire_read_pipe, sock_acquire_write_pipe):
+ `aquire' -> `acquire'.
+ * socket.c (S_socket_send, S_socket_recv): Ditto.
+ * sock.h: Ditto.
+
+Tue Aug 29 14:30:59 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * io.c (S_io_select): Fix typo in masking off SELECT_URG.
+ Don't check open modes and return EBADF.
+
+Thu Aug 24 10:35:58 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (pflocal): Put all dependencies here.
+ (OBJS): Remove error.o.
+ (HURDLIBS): Removed.
+ Removed all rules dealing with error.o.
+
+Mon Aug 21 16:37:32 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pflocal.c (trivfs_goaway, trivfs_modify_stat): Update arguments.
+
+Fri Aug 11 15:33:28 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * sock.h (struct sock): Store the pipe class in a separate field,
+ as READ_PIPE is no longer always defined.
+ * sock.c (sock_create, sock_connect): Set/use the PIPE_CLASS field.
+ (sock_connect, sock_aquire_write_pipe): Use pipe_aquire_writer
+ instead of pipe_aquire.
+ (sock_aquire_read_pipe): Use pipe_aquire_reader instead of
+ pipe_aquire. Handle the case where there is no read pipe (in
+ which case return EPIPE).
+ (sock_shutdown): Make shutting down the read half just like the
+ write half -- the pipe goes away...
+ (sock_create): Don't bump the read pipe ref count ourself.
+ (sock_free): Use sock_shutdown to trash the read pipe too.
+
+ * socket.c
+ (S_socket_recv): Use pipe_release_reader instead of pipe_release.
+ (S_socket_send): Use pipe_release_writer instead of pipe_release.
+ (S_socket_recv): Reflect EPIPE as EOF.
+
+ * io.c (S_io_read, S_interrupt_operation, S_io_readable, S_io_select):
+ Use pipe_release_reader instead of pipe_release.
+ (S_io_write): Use pipe_release_writer instead of pipe_release.
+ (S_io_readable, S_io_read): Reflect EPIPE as EOF.
+
+Mon Jul 31 13:59:15 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * connq.c (connq_compress): New function.
+ (connq_interrupt_sock): Use connq_compress to compress the queue.
+
+Sun Jul 30 10:30:24 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * connq.c (connq_interrupt_sock): Reset CQ's tail to the end of
+ the compressed queue.
+
+Sat Jul 29 00:00:57 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * socket.c (S_socket_send): Only free SOURCE_ADDR if the send
+ fails, as otherwise it's consumed; also free all the ports in
+ PORTS if the send fails.
+
+ * io.c (S_interrupt_operation): Allow socket trying to connect to
+ be interrupted.
+ * connq.c (connq_interrupt_sock): New function.
+ * socket.c (S_socket_connect): Use the CONNECT_QUEUE field to
+ allow only a single connection attempt at once.
+ Check for already-connected sockets here instead of waiting for
+ the final rendezvous.
+ * connq.h (connq_interrupt_sock): New declaration.
+
+ * connq.c (connq_listen, connq_connect, connq_interrupt,
+ connq_set_length): Reverse the roles of the HEAD and TAIL fields,
+ and make sure they're used correctly.
+ (qprev): Deleted function.
+
+ * sock.h (struct sock, all uses changed): Add the CONNECT_QUEUE
+ field, and rename the CONNQ field to LISTEN_QUEUE.
+ * sock.c (sock_create): Initialize the CONNECT_QUEUE field and
+ rename CONNQ to LISTEN_QUEUE.
+
+ * connq.c (connq_set_length): When shrinking the queue, actually
+ do so, and don't leak memory.
+
+ * socket.c (S_socket_connect): Return ECONNREFUSED when trying to
+ connect to a non-existant address, instead of EADDRNOTAVAIL.
+
+ * connq.c (struct connq): Add the INTERRUPT_SEQ_NUM field, used to
+ detect interupts.
+ (connq_listen): Detect when we get interrupted, and return EINTR.
+ (connq_interrupt): New function.
+ * connq.h (connq_interrupt): New declaration.
+ * io.c (S_interrupt_operation): Call connq_interrupt when appropiate.
+
+ * connq.c (connq_connect): Initialize REQ before using it.
+ (connq_request_init): Swap the arguments.
+ (connq_listen): Don't lock the accepted request just to get its sock.
+
+ * socket.c (S_socket_connect): Actually use the connq operations
+ to connect, like the listening socket is expecting, instead of
+ connecting directly to it.
diff --git a/release/ChangeLog b/release/ChangeLog
new file mode 100644
index 00000000..f7a8b993
--- /dev/null
+++ b/release/ChangeLog
@@ -0,0 +1,75 @@
+Wed Jul 17 00:17:05 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * INSTALL-binary: Yet more changes.
+
+Tue Jul 16 23:41:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (dist-files): boot-menu.grub -> menu.lst.
+ (install-dist): Likewise; also put it in /boot/grub and don't
+ bother with link in /etc.
+ * menu.lst: Renamed from boot-menu.grub.
+
+Mon Jul 15 17:18:05 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * INSTALL-binary: Many changes.
+
+ * boot-menu.grub: Rewritten; much nicer now.
+
+Mon Jul 15 15:58:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * INSTALL-GRUB-MBR: Only read first block of disk as mbr.
+ "in)" -> "in".
+
+ (INSTALL-GRUB-MBR): New file.
+ * Makefile (dist-files): Add INSTALL-GRUB-MBR.
+ (install-dist): Install INSTALL-GRUB-MBR.
+
+Sun Jul 14 20:21:12 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * servers.boot: That's STATIC ufs.
+
+Sat Jul 13 18:06:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * SETUP: Make ptys too.
+
+ * SETUP: Setup /servers/crash too.
+
+ * COPYING.LIB: New file.
+ * Makefile (install-dist): Install COPYING.LIB and COPYING.
+ Fix commands to install most everything from $(srcdir).
+
+ * boot-menu.grub: New file.
+ * servers.boot: New file.
+ * Makefile (dist-files): Add servers.boot and boot-menu.grub.
+ (install-dist): Install servers.boot and boot-menu.grub.
+ (dist-links): Create $(dist-root)/boot.
+
+ * INSTALL-binary: Various changes.
+
+Fri Jul 12 15:18:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * install-stripped (makelocalhardlink): Only do cleverness if TO
+ already exists. If it's not there, just make the link.
+
+Tue Jul 9 20:10:21 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * INSTALL-binary: Changed.
+
+Tue Jul 9 18:03:45 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * INSTALL-binary: Various changes.
+
+ * Makefile (install-dist): Depend on dist-links.
+ (dist-links): New target.
+
+ * SETUP: Put pflocal on /servers/socket/local (which will be a
+ link to /servers/socket/1).
+
+ * SETUP: Set root writable before doing anything else; offer to
+ reboot the system when through.
+
+Mon Jul 8 17:47:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * INSTALL-binary: Various changes.
+
+
diff --git a/sutils/ChangeLog b/sutils/ChangeLog
new file mode 100644
index 00000000..5ef879fc
--- /dev/null
+++ b/sutils/ChangeLog
@@ -0,0 +1,55 @@
+Sat Jul 6 19:55:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsck.c: (argp_program_version): New variable.
+
+Wed Jul 3 14:22:03 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fstab.c (fstab_add_fs): Don't SEGV if COPY is 0.
+
+Thu Jun 27 00:01:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsck.c (fsck): Fsck pass 0 if not in automatic mode. Respect
+ `noauto' option in automatic mode.
+ (main): Set FSCK_F_AUTO flag if in automatic mode.
+ (FSCK_F_AUTO): New macro.
+ (fs_start_fsck): When deciding to use a flags arg, mask flags
+ against an explicit list of valid ones.
+
+Tue Jun 25 18:39:44 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsck.c (main, options): Add --writable/-w option.
+ (FSCK_F_WRITABLE): New macro.
+ (struct fsck): Rename WAS_READONLY field to MAKE_WRITABLE.
+ (fscks_start_fsck): Change to set make_writable field instead of
+ was_readonly.
+ (fsck_cleanup): Change RESTORE_WRITABLE to MAKE_WRITABLE.
+ (fscks_wait): Likewise.
+
+Thu Jun 20 14:08:12 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsck.c (fsck): Wait for fscks to finish.
+ * fstab.c (fstypes_create): Copy SEARCH_FMTS contents into NEW.
+ (fs_set_mntent): Don't keep old fsys fields if the mnt_dir is changed.
+ (fstab_add_mntent): Initialize fields in FS with non-zero values.
+ (_fs_check_mounted): The root is always mounted.
+
+Wed Jun 19 10:44:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fstab.c (fs_set_readonly, fs_remount): If fsys_set_options
+ returns EINVAL, return EOPNOTSUPP instead.
+ (fs_set_readonly): Use fsys_set_readonly.
+ (fs_remount): Use fsys_remount.
+ (fs_readonly): Use fsys_get_readonly.
+ (_fs_check_mounted): Use file_name_lookup_carefully.
+ * clookup.c: New file.
+ * fsck.c (_debug): New variable.
+ (debug, fs_debug): New macros.
+ (fs_start_fsck, fscks_start_fsck, fsck_cleanup, fscks_wait, fsck, main):
+ Add debugging noise.
+ (main): Use FSTAB_PATH instead of _PATH_MNTTAB.
+ (args_doc): Fix.
+
+Tue Jun 18 22:56:11 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsck.c (options): Rename `--max-parallel' to `--parallel'.
+
diff --git a/term/ChangeLog b/term/ChangeLog
new file mode 100644
index 00000000..8a9fa491
--- /dev/null
+++ b/term/ChangeLog
@@ -0,0 +1,394 @@
+Tue Jul 16 20:49:29 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_io_read): Bother to set atime when
+ appropriate.
+
+ * users.c (trivfs_modify_stat): Fill in st->st_mode, st->st_uid,
+ and st->st_gid ourselves.
+ (trivfs_S_file_chown): New routine, to override trivfs default.
+ (trivfs_S_file_chmod): Likewise.
+ * main.c (main): Initialize term_owner, term_group, and term_mode.
+ * term.h (term_owner, term_group, term_mode): New variables.
+
+Thu Jun 20 16:45:57 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * devio.c (devio_abandon_physical_output): Don't do anything if
+ carrier is off.
+
+Thu Jun 20 16:26:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Add ../libfshelp/libfshelp.a.
+
+Sat May 11 01:18:41 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * iomux.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
+
+Fri May 10 09:27:46 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * users.c: Include <stdio.h>.
+
+ * users.c (init_users): Order args correctly in call to
+ ports_create_port.
+
+Thu May 9 19:32:50 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * users.c (call_asyncs): Provide sigcode arg in call to
+ nowait_msg_sig_post.
+
+ * users.c (init_users): Use new ports_create_port.
+ * devio.c (device_open_reply): Likewise.
+
+Thu Apr 25 16:04:17 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ptyio.c (pty_open_hook): Don't do increment of nptyperopens
+ here.
+ (pty_po_create_hook): Increment nptyperopens here, but only if this is
+ for O_READ or O_WRITE.
+ (pty_po_destroy_hook): Only do decrement if this was for O_READ or
+ O_WRITE.
+ * users.c (open_hook): Don't circumvent pty_open_hook, not even
+ when FLAGS is clear.
+
+Wed Apr 24 09:24:29 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * users.c (call_asyncs): Add DIR argument; all callers changed.
+ * term.h: Include <fcntl.h>.
+
+ * users.c (call_asyncs): Remove FORCE argument; all callers changed.
+ * term.h (enqueue_internal): Go back to only using call_asyncs
+ when inputq becomes non-empty.
+ (SUPPRESS_ASYNC): Flag removed.
+
+Tue Apr 23 17:44:25 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * term.h (enqueue_internal): Use call_asyncs on every character.
+ (SUPPRESS_ASYNC): New flag.
+ * users.c (po_create_hook, trivfs_S_io_set_some_openmodes,
+ trivfs_S_io_set_all_openmodes): If setting ICKY_ASYNC, then use
+ call_asyncs.
+ (call_asyncs): New argument, FORCE, which use. All callers changed.
+ (init_users): Give our self send rights to the async id ports, since
+ hurd_sig_post uses COPY_SEND.
+ (trivfs_S_io_get_icky_async_id): Renamed from ..._get_async_icky.
+ (trivfs_S_file_set_size, trivfs_S_io_seek,
+ trivfs_S_io_get_icky_async_id, trivfs_S_io_async): Add reply port args.
+
+ * users.c (num_icky_async_peropens): New variable.
+ (po_create_hook, po_destroy_hook, trivfs_S_io_set_all_openmodes,
+ trivfs_S_io_set_some_openmodes, trivfs_S_io_clear_some_openmodes): Use
+ it to enable ICKY_ASYNC to be turned off.
+
+Tue Apr 23 14:26:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * users.c (call_asyncs): Delete local decl; no longer static.
+ * term.h (dequeue_quote): If this is the outputq, send SIGIO as
+ appropriate with call_asyncs.
+ (enqueue_internal): If this is the inputq, send SIGIO as appropriate
+ with call_asyncs.
+ (call_asyncs): Add decl.
+
+Mon Apr 22 14:55:20 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * devio.c (real_speed_to_bogus_speed): EXTB should be 38400, not
+ 24800.
+
+Tue Apr 2 16:18:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ptyio.c (pty_po_create_hook): Don't do anything here.
+ (pty_open_hook): Increment nptyperopens here.
+
+Wed Mar 27 11:51:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_io_read): Call call_asyncs *before* we release
+ GLOBAL_LOCK.
+ (pi_destroy_hook): Leak the hook for now, to try and catch a bug. XXX
+
+ * ptyio.c (pty_io_read): Block using hurd_condition_wait instead
+ of condition_wait.
+
+Sat Feb 24 13:56:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ptyio.c (ptyio_init): This can't be a constructor because it
+ frobs INPUTQ, which is assigned in main.
+ * main.c (main): Call ptyio_init if appropriate.
+ * term.h: Declare ptyio_init.
+
+Wed Feb 14 14:02:54 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_io_set_all_openmodes,
+ trivfs_S_io_set_some_openmodes): Set ICKY_ASYNC in TERMFLAGS if
+ O_ASYNC is set in BITS.
+
+Thu Jan 25 22:54:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Use trivfs_startup & trivfs_create_port instead
+ of trivfs_handle_port.
+ * devio.c (devio_assert_dtr): Use ports_create_port instead of
+ ports_allocate_port.
+
+Thu Jan 18 11:50:29 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * users.c (report_carrier_off): Flush queues when carrier turns
+ off.
+
+Tue Dec 26 16:58:55 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_io_select): Ask for notification if our reply
+ port dies. Pass REPLY to pty_io_select().
+ * ptyio.c (pty_io_select): Add new reply port parameter, and ask
+ for notification if it dies.
+ * term.h (pty_io_select): Add new reply port parameter.
+
+Fri Dec 22 14:34:38 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Set PEERCNTL to &PTYCTL if we're a slave, not 0.
+
+Wed Dec 20 13:56:09 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * users.c (S_term_get_nodename, S_term_set_nodename): Get the node
+ name from our cred->po->cntl->hook rather than NODENAME.
+ * main.c (main): Put the nodename on ourcntl->hook rather than
+ NODENAME, and also put our peer's nodname on peercntl->hook.
+ * term.h (nodename): Variable removed.
+
+ * ptyio.c (ptyopen, nptyperopens, pktnostop, output_stopped):
+ Initialize to 0.
+
+Tue Dec 19 19:57:53 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_io_read): After a block on the input queue,
+ don't go back and check the input queue if there is a signal in
+ progress; wait for the signal to complete first.
+ (send_signal): Release global_lock around signal RPC. Call
+ report_sig_start and report_sig_end around signal RPC.
+ (call_asyncs): Likewise.
+ (report_sig_start, report_sig_end): New functions.
+ (sigs_in_progress, input_sig_wait, input_sig_wakeup): New variables.
+
+Thu Dec 14 12:48:08 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ptyio.c (pty_io_read): When copying TIOCPKT_DATA; account for
+ size correctly.
+
+ * ptyio.c (pty_io_write): Always tell the user everything was
+ written.
+
+Wed Dec 13 19:32:52 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ptyio.c (pty_io_write): Keep track of how mount we wrote.
+
+Tue Dec 12 13:53:40 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * ptyio.c (ptyio_init): Make this a constructor function.
+
+ * ptyio.c (pty_open_hook, pty_po_create_hook,
+ pty_po_destroy_hook): New functions.
+ (ptyopen, nptyperopens): New variables.
+ * term.h (pty_open_hook, pty_po_create_hook, pty_po_destroy_hook):
+ New declarations.
+ * users.c (open_hook): If this is the pty, then call pty specific
+ function.
+ (po_create_hook): Likewise.
+ (po_destroy_hook): Likewise.
+ (pi_create_hook): Don't do anything for pty.
+ (pi_destroy_hook): Likewise.
+
+ * users.c (open_hook): Don't require carrier for opens that don't
+ want to read or write.
+
+ * users.c (S_tioctl_tiocgpgrp): Omit bogus extra attempt to lock
+ global_lock.
+
+ * users.c (S_term_get_bottom_type): Return TERM_ON_MASTERPTY when
+ appropriate.
+
+ * main.c (main): Set BOTTOM.
+
+Tue Dec 5 15:30:36 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c (main): Totally rework arg parsing and translator
+ linkage. No longer support being started s a shell program. Now
+ support pty's, though no attempt is made to deal nicely with the
+ node collision problem.
+
+Mon Dec 4 20:09:21 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * term.h (pty_cntl_class, ptyctl): New variables.
+ * main.c (main): Initialize pty_class, pty_cntl_class,
+ trivfs_protid_portclasses[1], and trivfs_cntl_portclasses[1].
+ (trivfs_protid_portclasses): Increase size to 2.
+ (trivfs_cntl_portclasses): Likewise.
+ (trivfs_protid_nportclasses): Increase initialization to 2.
+ (trivfs_cntl_nportclasses): Likewise.
+
+ * ptyio.c: Include <unistd.h>.
+ (ptyio_set_bits): If the stop char state has changed, dinkle the
+ stop bits in the control_byte accordingly.
+
+ * term.h: Include <hurd/trivfs.h> and <sys/types.h>.
+ (pty_io_write, pty_io_read, pty_io_readable, pty_io_select): New
+ declarations.
+ * ptyio.c: Include <fcntl.h>.
+ (pty_io_read): Add CRED arg.
+ (pty_io_write): Likewise.
+ (pty_io_select): Likewise.
+ * users.c (trivfs_S_io_write): If this is a pty master, call pty
+ routine to do the work.
+ (trivfs_S_io_read): Likewise.
+ (trivfs_S_io_readable): Likewise.
+ (trivfs_S_io_select): Likewise.
+ (S_tioctl_tiocmodg): Accept both pty and tty ports.
+ (S_tioctl_tiocmods): Likewise.
+ (S_tioctl_tiocexcl): Likewise.
+ (S_tioctl_tiocnxcl): Likewise.
+ (S_tioctl_tiocflush): Likewise.
+ (S_tioctl_tiocgeta): Likewise.
+ (set_state): Likewise.
+ (S_tioctl_tiocgetd): Likewise.
+ (S_tioctl_tiocsetd): Likewise.
+ (S_tioctl_tiocdrain): Likewise.
+ (S_tioctl_tiocswinsz): Likewise.
+ (S_tioctl_tiocgwinsz): Likewise.
+ (S_tioctl_tiocmget): Likewise.
+ (S_tioctl_tiocmset): Likewise.
+ (S_tioctl_tiocmbic): Likewise.
+ (S_tioctl_tiocmbis): Likewise.
+ (S_tioctl_tiocstart): Likewise.
+ (S_tioctl_tiocstop): Likewise.
+ (S_tioctl_tiocsti): Likewise.
+ (S_tioctl_tiocoutq): Likewise.
+ (S_tioctl_tiocspgrp): Likewise.
+ (S_tioctl_tiocgpgrp): Likewise.
+ (S_tioctl_tioccdtr): Likewise.
+ (S_tioctl_tiocsdtr): Likewise.
+ (S_tioctl_tioccbrk): Likewise.
+ (S_tioctl_tiocsbrk): Likewise.
+ (set_state): If this op is being done on the pty master, then
+ flush output before beginning work.
+
+Fri Dec 1 14:08:44 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_interrupt_operation): Delete function.
+
+ * users.c (S_tioctl_tiocdrain): Free reference on CRED before
+ returning.
+
+ * munge.c (input_character): Skip much processing if
+ external_processing is on.
+ (output_character): Don't do tab expansion of external_processing
+ is on.
+ (echo_p): Never echo if external_processing is on.
+ * users.c (set_state): Make EXTPROC bit read only. When
+ external_processing, call set_bits even if CIGNORE.
+ (S_tioctl_tiocext): Deleted function.
+ * term.h (external_processing): New variable.
+
+ * users.c (trivfs_S_io_readable): If remote_input_mode, then don't
+ include extra final character as input.
+ trivfs_S_io_read): If remote_input_mode, copy characters without
+ interpretation; treat last character left in queue as junk.
+ (S_tioctl_tiocremote): Deleted function.
+ * term.h (remote_input_mode): New variable.
+
+ * users.c (S_tioctl_tiocsig, S_tioctl_tiocpkt,
+ S_tioctl_tiocucntl): Deleted functions.
+
+ * term.h (ptyio_bottom, pty_class): New variables.
+ * Makefile (SRCS): Added ptyio.c.
+ * ptyio.c: New file.
+
+ * term.h (struct bottomhalf): New member `notice_input_flushed'.
+ * devio.c (devio_notice_input_flushed): New function.
+ (devio_bottom): Add devio_notice_input_flushed.
+ * users.c (po_destroy_hook): Call notice_input_flushed after
+ flushing input queues.
+ (S_tioctl_tiocflush): Likewise.
+ (set_state): Likewise.
+
+ * munge.c (input_character) [VSTOP]: Suspend physical output after
+ setting flag.
+ * term.h (struct bottomhalf): New member `suspend_physical_output'.
+ * users.c (S_tioctl_tiocstart): Start output after clearing
+ USER_OUTPUT_SUSP.
+ (S_tioctl_tiocstop): Suspend physical output after setting flag.
+ * devio.c (devio_start_output): Honor USER_OUTPUT_SUSP flag.
+ Restart output if USER_OUTPUT_SUSP flag off and output_stopped true.
+ (output_stopped): New variable.
+ (devio_suspend_physical_output): New function.
+ (devio_bottom): Add devio_suspend_physical_output.
+
+ * users.c (trivfs_S_io_select): Return EINTR if we are cancelled.
+
+ * munge.c (reprint_line): C-r is CHAR_DC2, not DC3.
+ * term.h (CHAR_DC3): Correct value is '\023'.
+ (CHAR_DC1, CHAR_DC2): New macros.
+
+Thu Nov 30 15:50:01 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * devio.c (start_output): Add devio_ prefix; declare static.
+ All callers changed.
+ (set_break): Likewise.
+ (clear_break): Likewise.
+ (abandon_physical_output): Likewise.
+ (pending_output_size): Likewise.
+ (assert_dtr): Likewise.
+ (desert_dtr): Likewise.
+ (set_bits): Likewise.
+ (mdmctl): Likewise.
+ (mdmstate): Likewise.
+ (devio_bottom): New variable.
+ * term.h (struct bottomhalf): New type.
+ (bottom, devio_bottom): New variables.
+ (start_output, set_break, clear_break, abandon_physical_output,
+ pending_output_size, assert_dtr, desert_dtr, set_bits, mdmctl,
+ mdmstate): Deleted declarations.
+
+ * devio.c (ports_do_mach_notify_send_once): New function.
+
+Sun Nov 5 02:07:56 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Add flags arg to fsys_startup call.
+
+Sat Sep 23 00:48:17 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * term.h: Include errno.h.
+
+Mon Sep 18 14:51:40 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_file_set_size): Renamed from
+ trivfs_S_file_truncate.
+
+Sat Sep 16 13:03:40 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Added ourmsg.defs.
+ (ourmsg_U.h ourmsgUser.c, ourmsg.defs): Targets removed.
+
+Thu Sep 7 13:08:55 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * users.c (trivfs_S_io_write): Start pending output before
+ blocking.
+
+Fri Sep 1 09:51:11 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * munge.c (input_character): Clear input queues correctly for
+ VINTR/VQUIT, VSUSP, and input queue full.
+
+ * users.c (init_users): New function.
+ * main.c (main): Call init_users.
+ * term.h (init_users): New decl.
+
+ * users.c (open_hook): Turn on NO_OWNER for fresh opens.
+ * main.c (main): Assert NO_OWNER in initial state.
+
+ * term.h (output_psize): Delete decl.
+ (write_character): New decl.
+ * munge.c (output_character): Don't set echo_qsize or echo_pstart
+ here.
+ (write_character): New function.
+ (echo_char): Use write_character for closing '/' of hderase.
+ (output_psize): New decl.
+ * users.c (trivfs_S_io_write): Use write_character instead of
+ output_character.
+ * main.c (main): Don't initialize output_psize.
+
+
diff --git a/trans/ChangeLog b/trans/ChangeLog
new file mode 100644
index 00000000..475cd839
--- /dev/null
+++ b/trans/ChangeLog
@@ -0,0 +1,324 @@
+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.
+
diff --git a/ufs-fsck/ChangeLog b/ufs-fsck/ChangeLog
new file mode 100644
index 00000000..1ea09c4a
--- /dev/null
+++ b/ufs-fsck/ChangeLog
@@ -0,0 +1,245 @@
+Sat Jul 6 19:59:27 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (argp_program_version): New variable.
+ <hurd.h>: New include.
+
+Mon Jul 1 12:55:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pass2.c (pass2): Don't skip empty directories in `.' and `..'
+ correctness check; we don't clear them the way BSD does, so we
+ want `.' and `..' to get created for us. Also handle `.' before
+ `..' so that they get created in the usual order for empty
+ directories.
+
+ * dir.c (makeentry): After successful directory expansion, write
+ out modified directory inode.
+
+ * pass4.c (pass4): If a reconnect fails while we are preening,
+ give up.
+
+Mon Jun 24 10:19:39 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * utilities.c (errexit, punt): Exit with status 8 for catastrophic
+ failures.
+
+Thu May 23 14:12:21 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pass2.c (pass2): Don't clear all node types in directories, just
+ clear those that are wrong.
+
+Tue May 14 16:49:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pass2.c (pass2): Fix up test in preen case.
+
+Tue May 14 15:29:36 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pass2.c (pass2): Handle directory entry type fields better for
+ Hurd.
+
+Sat May 11 01:07:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
+
+Thu May 9 20:12:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pass1b.c (pass1b): Bother to initialize NUMBER.
+
+Fri May 3 00:48:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (nice_size, show_stats): New functions.
+ (main): Use show_stats.
+
+Wed May 1 13:59:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Shorten summary message so that it fits on one line.
+ * utilities.c (no_preen): New function.
+ (problem, warning, pinode): Use it.
+ (warning): Don't flush all pending problems, just our own.
+ * dir.c (linkup): Consistently put quotes around filenames.
+
+ * main.c (preen, num_files): New variables.
+ (main): Implement clean-bit checking in preen mode, and print
+ summary statistics.
+ (main, options): Add --force & --silent options.
+ * pass1.c (pass1): Increment NUM_FILES.
+ When clearing inode due to bad blocks, continue.
+ * inode.c (allocino, freeino): Frob NUM_FILES.
+ * fsck.h (force): New declaration.
+ * pass5.c (pass5): Vary clean msg depending on whether FSMODIFIED.
+ * setup.c (setup): Use error to print error msgs.
+ <error.h>, <errno.h>: New includes.
+
+ * utilities.c (problem, warning, pextend, pfail): New functions.
+ (pinode, pfix, reply): Use new problem recording stuff.
+ (push_problem, resolve_problem, flush_problems): New functions.
+ (struct problem): New type.
+ (problems, free_problems): New variables.
+ (retch, punt): New functions.
+ * fsck.h (problem, warning, pextend, pfail): New declarations.
+ (pinode): Update declaration.
+ * dir.c (validdir, makeentry, linkup): Use new printing functions.
+ * pass1.c (pass1): Likewise.
+ * pass1b.c (pass1b): Likewise.
+ * pass2.c (pass2): Likewise.
+ * pass3.c (pass3): Likewise.
+ * pass4.c (pass4): Likewise.
+ * pass5.c (pass5): Likewise.
+ * setup.c (setup): Likewise.
+
+Tue Apr 30 19:06:42 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pass5.c (pass5): Be sure to call pwarn before pfix.
+ * main.c (main): Don't print large obnoxious banner if PREEN.
+
+Fri Apr 26 16:20:37 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * inode.c (allocino): Parenthesize test correctly.
+
+ * fsck.h (swab_disk): Define as constant zero.
+
+ * pass5.c (pass5): If not marked clean, but now it is, then offer
+ to mark it clean.
+ * utilities.c (reply): Set fix_denied anytime we return 0.
+ * fsck.h (fix_denied): New variable.
+
+Wed Apr 24 13:32:39 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pass1.c (pass1): Don't print block numbers as we go anymore.
+
+Tue Apr 23 10:11:49 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pass5.c (pass5): Correctly track contig summaries even though
+ they aren't used by the filesystem; we still need to preserve the
+ format.
+
+Mon Apr 15 12:51:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (vpath tables.c): Find ufs directory in $(top_srcdir).
+
+Tue Apr 2 09:00:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pass1.c (pass1): Print mode correctly in unknown file type case.
+ Recognize inode type IFSOCK too.
+
+Mon Mar 18 19:48:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Pass new arg to argp_parse. Use argp_usage correctly.
+
+Thu Oct 19 17:45:12 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Exit with a non-zero status if we fixed anything.
+ Use argp to parse options.
+ (options): Converted to argp format.
+ (args_doc): New variable.
+ (USAGE, usage, SHORT_OPTIONS): Removed.
+ Include <argp.h> instead of <getopt.h>.
+ * Makefile ($(target)): Depend on libshouldbeinlibc.a.
+
+Fri Sep 22 16:55:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * utilities.c (pfix): New function.
+ (pfatal, pwarn, errexit): Print DEVICE_NAME too if in preen mode.
+ * fsck.h: Declare DEVICE_NAME.
+ * setup.c (setup): Set DEVICE_NAME.
+ * pass1.c, pass2.c, pass3.c, pass4.c, pass5.c (pass1, pass2,
+ pass3, pass4, pass5): Call pfix instead of printf.
+ * pass1.c (pass1): Only print progress report if not in preen mode.
+ * main.c (main): Only print section headers if not in preen mode.
+
+Wed Sep 20 09:11:59 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * utilities.c (pinode): Take a message & args to print as well.
+ * fsck.h: Change declaration of pinode.
+ * pass2.c (pass2): Use changed pinode.
+ * pass3.c (pass3): Use changed pinode.
+ * pass4.c (pass4): Use changed pinode.
+
+Tue Sep 19 15:37:02 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pass1.c (pass1): Change the extent of DBWARN & IBWARN so that
+ they actually work.
+ * pass2.c (pass2): Adjust our record of link counts when we
+ add/change dir entries; also print error messages when we can't.
+ * pass4.c (pass4): If an unlinked file can't be reconnected, offer
+ to clear it. Once a reconnect attempt fails, don't try again.
+ * dir.c (linkup): Print the value of LFNAME rather than `lost+found'.
+ (searchdir, changeino): Fix backward compare.
+ (linkup): Don't fail when makeentry succeeds.
+ (searchdir): Make searchdir return zero if there's an error
+ during the search.
+ (linkup): Print appropiate error messages if searchdir fails.
+ (validdir): Get rid of extra newlines in error messages --
+ everyone who calls this routine prints extra information if it
+ fails, which should immediately follow.
+ * main.c (main): Use getopt to parse command line options.
+ (usage): New function.
+ (options): New variable.
+ (lfname, lfmode): Variables moved here from setup.c.
+ (lfname): Made into a char* so that we can change it.
+ (lfmode): Get rid of IFDIR; it's added when necessary.
+ * fsck.h: Change LFNAME to char*.
+ * setup.c (lfname, lfmode): Variables moved to main.c.
+
+Sat Sep 9 12:12:59 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (target): Changed to `fsck.ufs'.
+ (installationdir): New variable, install into $(sbindir).
+
+Thu Jul 6 15:33:46 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * fsck.h (lookup_directory): New decl.
+
+ * pass1.c (pass1): Remove assignment from if test.
+ * utilities.c (pinode): Likewise.
+
+ * Makefile (tables.o): Delete rule.
+ (vpath tables.c): Tell where to find tables.c.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Thu Nov 3 17:19:03 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (dir): Changed to fsck.
+ (target): Changed to fsck.
+
+Wed Nov 2 14:39:13 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * pass2.c (pass2): Use DIRECT_NAMLEN instead of d_namlen
+ throughout.
+ * dir.c (searchdir): Likewise.
+ (changeino): Likewise.
+ (makeentry): Likewise.
+
+Mon Oct 17 16:07:56 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (inode_iterate): FN takes new third arg.
+ Keep track of new var `offset' and pass it to FN.
+ * pass2.c (pass2/checkdirblock): New third arg.
+ Only scan DIRBLKSIZ chunks to the total size of the file.
+ * dir.c (searchdir/checkdirblock): Likewise.
+ (changeino/checkdirblock): Likewise.
+ (makeentry/checkdirblock): Likewise.
+ * pass1.c (pass1/checkblock): New third arg (ignored).
+ * pass1b.c (pass1b/checkblock): Likewise.
+
+ * inode.c (inode_iterate): Compute MAXB correctly.
+
+ * utilities.c (getinode): Multiple ino_to_fsbo by
+ sizeof (struct dinode).
+ (write_inode): Likewise.
+ (getinode): Inode buffer needs to be a full block, not a
+ fragment.
+
+Fri Oct 14 21:07:09 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * utilities.c (lastifrag): New variable.
+ (getinode): Use lastifrag instead of buf; Only I/O new block
+ if lastifrag isn't what we want.
+ (write_inode): Likewise.
+
+Fri Oct 14 17:44:59 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * setup.c (setup): Test ISCHR, not ISDIR.
+ Fix NCYL against NCG * CPG test.
+ Bother to set MAXFSBLOCK, MAXINO, and DIRECT_SYMLINK_EXTENSION.
diff --git a/ufs-utils/ChangeLog b/ufs-utils/ChangeLog
new file mode 100644
index 00000000..d6d58f5d
--- /dev/null
+++ b/ufs-utils/ChangeLog
@@ -0,0 +1,104 @@
+Fri Jun 21 02:12:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dlabel.c (fd_get_device): Supply new args to store_create.
+
+Sat May 11 01:20:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * mkfs.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
+
+Fri May 10 15:50:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * dlabel.c (fd_get_device): Update to use libstore.
+ <hurd/store.h>: New include.
+ * Makefile (mkfs.ufs): Depend on ../libstore/libstore.a.
+
+Tue Apr 30 10:06:21 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (include ../Makeconf): BEFORE dependencies.
+ (all): Delete target.
+ ($(targets)): Each target depends on its associated .o.
+
+Wed Apr 3 16:31:13 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * mkfs.c (main): In `Can't get disklabel' error message, specify
+ which flag the user can use to supply the needed information.
+ (mkfs): Fiddle with info message.
+
+Sun Mar 31 14:34:28 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * stati.c (mode_rep): Prefix octal number with `0'.
+
+Fri Mar 29 11:56:52 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * stati.c (main): Print mode & {in,}direct blocks too.
+ (mode_rep): New function.
+ (timespec_rep): P shouldn't be static.
+
+ * mkfs.c (main): Argp interface changes.
+
+Wed Mar 13 18:30:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * mkfs.c (options, args_doc, doc): New variables for option parsing.
+ (struct amark): New type.
+ (amarks_add, amarks_contains): New functions.
+ (default_disklabel): New variable.
+ (main): Most arguments are now options (and optional). Allow many
+ more parameters to be specified. Consult the disk label for some
+ defaults.
+ (most functions): Add explicit return type declarations. Fix
+ printf format specifications. Get rid of #ifdefs for MFS.
+ (started, malloc, realloc, calloc, free): Functions removed.
+ (mfs, membase): Variables removed.
+ <stddef.h>, <stdlib.h>, <argp.h>, <assert.h>, <error.h>,
+ <string.h>: New includes
+ * dlabel.c: New file.
+ * Makefile (SRCS): Add dlabel.c.
+ (mkfs.ufs): New target.
+
+Tue Feb 27 14:52:00 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * clri.c: Move here from ../utils.
+
+ [Entire directory renamed to `ufs-utils' from `newfs']
+
+Sat Sep 9 12:17:11 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (target): Changed to `mkfs.ufs'.
+ (installationdir): New variable, install into $(sbindir).
+
+Thu Nov 24 18:39:30 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * mkfs.c: Protect all mfs code with #ifdef MFS.
+
+Wed Oct 12 12:59:01 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * mkfs.c (main): MAXCONTIG should be zero because we don't
+ do clustering.
+
+Fri Sep 9 09:45:23 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * mkfs.c: Include <sys/stat.h> and <fcntl.h>.
+ (main): New function. Punt newfs.c for now.
+ * Makefile (SRCS, OBJS): Comment out uses of newfs.c.
+ (target): Build mkfs, not newfs.
+
+ * newfs.c (mopts): Comment out.
+ (mntflags): Comment out.
+ (main): Omit check for `mfs'. Omit var `partition'.
+ (main) [case 'o']: Comment out mfs specific code.
+ (main): Comment out check for already-mounted partition.
+ (main): Comment out MFS specific open of FSI.
+
+ * mkfs.c (fsinit): Use DI_MODE to read mode from NODE, and
+ set di_model and di_modeh instead of di_mode.
+ (mkfs): Don't set fields in *PP.
+
+ * newfs.c: Include ufs header files with "../ufs/foo.h" instead of
+ <ufs/ufs/foo.h>. Don't include <sys/disklabel.h>, <sys/mount.h>,
+ or "mntopts.h".
+
+Thu Sep 8 15:52:05 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * mkfs.c: Include ufs header files with "../ufs/foo.h" instead of
+ <ufs/ufs/foo.h>. Don't include <sys/disklabel.h>.
+
diff --git a/ufs/ChangeLog b/ufs/ChangeLog
new file mode 100644
index 00000000..368a2f59
--- /dev/null
+++ b/ufs/ChangeLog
@@ -0,0 +1,1586 @@
+Sat Jul 6 16:14:10 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (ufs_version): Variable removed.
+
+Sat Jul 6 12:45:36 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * inode.c (read_disknode): Don't set allocsize based on st->size
+ for kludged symlinks.
+
+ * sizes.c (diskfs_truncate): Call record_poke after truncating a
+ kludged symlink.
+
+Wed Jul 3 13:27:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c: Include <argz.h>.
+ (startup_parents, runtime_parents): Declare const.
+
+Tue Jun 25 14:02:02 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (diskfs_get_options): Include `--compat=' in options.
+
+Mon Jun 24 16:59:12 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.c (diskfs_lookup_hard): Use diskfs_check_readonly instead of
+ diskfs_readonly.
+ (diskfs_dirempty): Likewise.
+
+ * dir.c (diskfs_lookup_hard): Use diskfs_check_readonly instead of
+ diskfs_readonly.
+ (diskfs_dirempty): Likewise.
+ * inode.c (diskfs_cached_lookup): Likewise.
+ (read_symlink_hook): Likewise.
+ * sizes.c (diskfs_truncate): Call diskfs_check_readonly.
+ (diskfs_grow): Likewise.
+ * hyper.c (diskfs_set_hypermetadata): If CLEAN is not set, make
+ sure we clear the clean bit on disk. Always call sync_disk (with
+ appropriate WAIT).
+ (diskfs_readonly_changed): Don't do set_hypermetadata here.
+ (copy_sblock): Don't track clean state here.
+
+ * pager.c (diskfs_shutdown_pager): Don't shutdown DISKPAGER ever,
+ just sync it instead.
+
+Sat Jun 22 17:45:34 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (diskfs_get_options): New function.
+ (options): Make const.
+
+Fri Jun 21 01:32:09 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (parse_opt): Handle runtime invalid selection of 4.2 mode.
+ Save select mode until we're done to correctly deal with external
+ errors at runtime.
+ (startup_parents, startup_argp, runtime_parents, runtime_argp):
+ New variables.
+ (main): Argp vars made global.
+ (argp_parents): diskfs_device_startup_argp -->
+ &diskfs_std_device_startup_argp.
+
+Sat Jun 15 13:57:27 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (options): New variable.
+ (parse_opt): New function.
+ (main): Parse ufs-specific options too.
+ <string.h>: New include.
+
+Fri May 10 09:29:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_statfs): Fix one reference to old name of ST
+ member.
+
+Thu May 9 11:54:13 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (ufs.static ufs): s/ioserver/iohelp/g
+ * ufs.h: ioserver.h -> iohelp.h.
+
+ * inode.c (diskfs_set_statfs): Use and fill in new statfs
+ structure.
+
+Mon May 6 14:23:54 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * main.c (ufs_version): Upgrade to 0.0.
+
+Fri May 3 09:15:33 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * sizes.c (block_extended): Rewrite code that moves pages
+ to be more efficient, and not deadlock too, using unlocked
+ pagein permission feature (read "hack"). Return value
+ now indicates whether we expect a sync.
+ (diskfs_grow): If a call to block_extended returns nonzero,
+ then sync the file before returning.
+ * pager.c (diskfs_get_filemap): Initialize
+ UPI->allow_unlocked_pagein and UPI->unlocked_pagein_length.
+ (unlocked_pagein_lock): New variable.
+ (find_address): New parameter `isread'; all callers changed.
+ If ISREAD and we are in the unlocked pagein region, don't
+ attempt to acquire NP->dn->allocptrlock.
+ * ufs.h (struct user_pager_info): New members
+ `allow_unlocked_pagein' and `unlocked_pagein_length'.
+ (unlocked_pagein_lock): New variable.
+
+Thu May 2 10:56:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * sizes.c (offer_data): Offer pages at ADDR each time through the
+ loop, not the same page over and over.
+ (block_extended): When moving data, sync in-core pager both before
+ reading from disk and after providing data to kernel.
+ (diskfs_grow): Always call block_extended or offer_data before
+ adjusting block pointer.
+
+Tue Apr 30 13:38:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_grow): In last offer_data, don't offer a block
+ number as an address.
+
+Fri Apr 26 15:35:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (makemode): Now `servers'.
+ (targets): Renamed from `target'; now include ufs.static.
+ (ufs.static-LDFLAGS): Renamed from `LDFLAGS'.
+ (ufs.static): Depend on same things as `ufs'.
+ (include ../Makeconf): Must come before dependency information.
+
+Wed Apr 24 14:05:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.h (DIRECT_NAMLEN) [! LITTLE_ENDIAN]: Deal correctly with the
+ case where it was written on a little endian machine without the
+ extension.
+ (DIRECT_NAMLEN) [LITTLE_ENDIAN]: Deal with case correctly where it
+ was written without the extension on a big endian machine.
+ * dir.c (dirscanblock): Use read/write_disk_entry when reading or
+ writing fields from directory entries.
+ (diskfs_direnter_hard): Likewise.
+ (diskfs_dirremove_hard): Likewise.
+ (diskfs_dirrewrite_hard): Likewise.
+ (diskfs_get_directs): Likewise.
+ (diskfs_dirempty): Likewise.
+ (count_dirents): Likewise.
+
+Tue Apr 23 11:28:42 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.c (diskfs_dirempty): node_update -> diskfs_node_update.
+
+ * hyper.c (swab_sblock, swab_csums): New functions.
+ (get_hypermetadata): If this is a swapped filesystem, set swab_disk.
+ Also swap csum and sblock after reading them.
+ (diskfs_set_hypermetadata): If swab_disk, swap the csums back before
+ writing them.
+ (copy_sblock): If swab_disk, swap the sblock before writing it.
+ * ufs.h (swab_disk): New variable.
+ (swab_short, swab_long, swab_long_long): New functions.
+ (read_disk_entry, write_disk_entry): New macros.
+ * alloc.c (ffs_realloccg): Use read/write_disk_entry when
+ reading/writing on-disk inode fields.
+ * bmap.c (fetch_indir_spec): Likewise.
+ * inode.c (read_disknode): Likewise.
+ (write_node): Likewise.
+ (diskfs_set_translator): Likewise.
+ (diskfs_get_translator): Likewise.
+ (diskfs_S_file_get_storage_info): Likewise.
+ * sizes.c (diskfs_truncate): Likewise.
+ (diskfs_grow): Likewise.
+ * pager.c (pager_unlock_page): Likewise.
+ * bmap.c (fetch_indir_spec): Use read/write_disk_entry when
+ reading/writing on-disk indirect blocks.
+ * sizes.c (diskfs_truncate): Likewise.
+ (indir_release): Likewise.
+ (diskfs_grow): Likewise.
+ * pager.c (pager_unlock_page): Likewise.
+ * alloc.c: Include <string.h>
+ (ffs_blkpref): Use read_disk_entry when reading from BAP array.
+ (swab_cg, read_cg, release_cg): New functions.
+ (ffs_fragextend, ffs_alloccg, ffs_nodealloccg, ffs_blkfree,
+ diskfs_free_node): Use new cg access functions.
+
+Thu Apr 18 14:50:30 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_grow): New variable `pagerpt'.
+ (offer_zeroes, block_extended): New functions.
+ (diskfs_grow): In initializing newly allocated data disk blocks with
+ zeroes, use less aggressive offer_zeroes instead of immediate
+ synchronous writes. After ffs_realloccg succeeds, use
+ block_extended to handle the magic. Get rid of old poke calls.
+ * alloc.c (ffs_realloccg): If we are allocating a new block, don't
+ actually free the old one here.
+ * sizes.c (diskfs_grow): New variable `pagerpt'.
+ (offer_zeroes, block_extended): New functions.
+ (diskfs_grow): In initializing newly allocated data disk blocks
+ with zeroes, use less aggressive offer_zeroes instead of immediate
+ synchronous writes. After ffs_realloccg succeeds, use
+ block_extended to handle the magic. Get rid of old poke calls.
+
+Tue Apr 16 15:20:07 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.c (diskfs_lookup_hard): Set atime appropriately, and sync
+ the new atime if we are running synchronously (!).
+ (diskfs_dirempty): Likewise.
+ (diskfs_direnter_hard): Set mtime appropriately.
+ (diskfs_dirremove_hard): Likewise.
+ (diskfs_dirrewrite_hard): Likewise.
+
+ * inode.c (diskfs_write_disknode): Only do sync if WAIT is set.
+
+Thu Apr 4 16:39:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_cached_lookup): Intialize NP->cache_id *after*
+ NP exists.
+
+Wed Apr 3 16:03:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_cached_lookup): Renamed from `iget'. All
+ callers changed. Initialize NP->cache_id.
+
+Fri Mar 29 16:52:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_truncate): Cast DI->di_shortlink to correct type
+ before adding a character count to it.
+
+Mon Mar 25 13:08:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.c (diskfs_null_dirstat): New function.
+
+Fri Mar 22 23:43:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (read_symlink_hook): Only set NP's atime if !readonly.
+
+Wed Mar 20 14:36:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.c (diskfs_lookup_hard): Don't do initial or final permission
+ checking here.
+ * dir.c (diskfs_dirrewrite_hard): Renamed from diskfs_dirrewrite.
+ No longer call modification tracking routines.
+ (diskfs_dirremove_hard): Renamed from diskfs_dirremove. No longer call
+ modification tracking routines.
+ (diskfs_direnter_hard): Renamed from diskfs_direnter. No longer call
+ modification tracking routines.
+ (diskfs_lookup_hard): Renamed from diskfs_lookup.
+
+Mon Mar 18 19:50:41 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Pass new arg to argp_parse.
+
+Mon Mar 18 12:33:06 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pager.c (diskfs_max_user_pager_prot) [add_pager_max_prot]:
+ (a == b) ? 1 : 0 ====> (a == b).
+
+Fri Feb 23 15:27:05 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * hyper.c (get_hypermetadata): Use diskfs_device_arg in unclean msgs.
+
+Wed Feb 21 05:57:12 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * hyper.c: Implement proper handling of the filesystem `clean bit'.
+ (ufs_clean): New variable.
+ (get_hypermetadata): Set it from the fs_clean flag. If not clean,
+ complain and force read-only. Complain when ignoring COMPAT_BSD42.
+ (diskfs_set_hypermetadata): Set the clean flag in the superblock
+ when CLEAN and fs was clean to start with.
+ (copy_sblock): Remove bogus clean flag frobnication.
+
+Fri Feb 16 17:05:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Check error return from diskfs_init_diskfs.
+
+Sat Jan 6 11:50:14 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ufs.h (diskpager, diskpagerport, disk_image): Variables removed.
+ Include <hurd/diskfs-pager.h> instead.
+ (sync_disk_blocks): Use `disk_pager' in place of `diskpager->p'.
+ * pager.c (diskfs_shutdown_pager, diskfs_sync_everything): Use
+ `disk_pager' in place of `diskpager->p'.
+ (create_disk_pager): Rewritten using disk_pager_setup.
+ * pokeloc.c (sync_disk): Use `disk_pager' in place of `diskpager->p'.
+ * sizes.c (indir_release): Likewise.
+ * main.c (diskfs_reload_global_state): Likewise.
+
+Thu Jan 4 19:10:11 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * main.c (main): Don't map disk image here; create_disk_pager now
+ does it.
+
+ * hyper.c (get_hypermetadata, copy_sblock): Don't put
+ diskfs_catch_exception () inside assert, bonehead! Use
+ assert_perror on a variable of its result.
+
+Mon Jan 1 16:38:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pager.c (pager_unlock_page): When allocating block in direct
+ array, clear it synchronously just like we do when it goes in the
+ indirect array.
+
+Thu Nov 9 14:01:30 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * dir.c (struct dirstat): New member `nbytes'.
+ (dirscanblock): If DS->type is COMPRESS, still look
+ for TAKE/SHRINK possibilities. Also, if it's COMPRESS,
+ still look to see if the current block can be compressed
+ with fewer byte copies.
+
+Sun Nov 5 02:08:38 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Add flags arg to diskfs_startup_diskfs call.
+
+Sat Nov 4 20:01:58 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_S_file_get_storage_info): Add FLAGS argument.
+
+Thu Oct 19 12:50:11 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pager.c (diskfs_max_user_pager_prot): Return what we discovered,
+ instead of 1.
+
+ * dir.c (diskfs_lookup, diskfs_dirempty): Give diskfs_get_filemap
+ a protection arg.
+ * sizes.c (diskfs_truncate, diskfs_grow): Ditto.
+
+ * hyper.c (diskfs_readonly_changed): Give the 2nd arg to
+ vm_protect an appropiate type.
+
+ * pager.c (diskfs_max_user_pager_prot): Stop iterating early if poss.
+
+Wed Oct 18 16:28:42 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ufs.h (struct user_pager_info): Add max_prot field.
+ * pager.c (diskfs_get_filemap): Add PROT parameter, & use it.
+ (diskfs_pager_users): Split out block_caching & enable_caching.
+ (block_caching, enable_caching): New function.
+ (diskfs_max_user_pager_prot): New function.
+
+ * main.c (main): Always include VM_PROT_WRITE in max prot.
+ * hyper.c (diskfs_readonly_changed): Change the protection of
+ DISK_IMAGE to reflect the new state. Clear SBLOCK_DIRTY if readonly.
+
+ * inode.c (read_disknode): Bother to set the allocsize field.
+
+ * ufs.h (struct rwlock): Structure deleted.
+ (rwlock_init, rwlock_reader_unlock, rwlock_reader_lock,
+ rwlock_writer_lock, rwlock_writer_unlock): Functions deleted.
+
+
+Tue Oct 17 14:49:43 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_node_reload): New function.
+ (iget): Move allocsize setting into read_disknode.
+ * pager.c (flush_node_pager): New function.
+ * ufs.h (zeroblock, sblock, csum): Declare extern.
+ (flush_node_pager, flush_pokes): New declarations.
+ * pokeloc.c (flush_pokes): New function.
+ * hyper.c (diskfs_readonly_changed): New function.
+ (get_hypermetadata): Move compat_mode futzing & disk size
+ validation here from main.
+ (zeroblock, sblock, csum): Define (were common).
+ (get_hypermetadata): Only allocate SBLOCK if not already done.
+ Deallocate any old ZEROBLOCK and CSUM storage.
+ (diskfs_readonly_changed): New function.
+ * main.c (main): Move stuff into get_hypermetadata.
+ Writable init code moved to diskfs_readonly_changed.
+ (diskfs_reload_global_state): New function.
+
+Fri Oct 13 15:03:37 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (main): Use new handy diskfs routines and get rid of
+ tons of junk. Main should be almost all ufs-specific now.
+ (USAGE, usage, SHORT_OPTS, long_opts, parse_opt, trans_parse_arg): RIP.
+ (printf_lock): Initialize.
+
+Thu Oct 12 18:48:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pager.c (pager_unlock_page, pager_write_page, pager_read_page):
+ Use diskfs_device_{read,write}_sync instead of dev_{read,write}_sync.
+ * hyper.c (diskfs_set_hypermetadata): Ditto.
+ * sizes.c (diskfs_grow): Ditto.
+ * pager.c (pager_report_extent): Calculate the pager size.
+ * ufs.h (dev_read_sync, dev_write_sync, dev_write, diskpagersize):
+ Decls removed.
+
+ * Makefile (SRCS): Remove devio.c.
+ * ufs.h (ufs_device, ufs_device_name): Variables removed.
+ * inode.c (diskfs_S_file_get_storage_info): Use DISKFS_DEVICE
+ instead of UFS_DEVICE, and DISKFS_DEVICE_NAME instead of
+ UFS_DEVICE_NAME.
+
+Sat Oct 7 20:47:56 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * main.c (diskfs_init_completed): Function deleted (now in libdiskfs).
+ (thread_cancel): Function deleted.
+
+Fri Oct 6 17:30:23 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_S_file_get_storage_info): Change type of
+ ADDRESSES to off_t **, and add the BLOCK_SIZE parameter.
+
+Wed Oct 4 17:21:33 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_statfs): fsys_stb_bsize -> fsys_stb_iosize.
+ fsys_stb_fsize -> fsys_stb_bsize.
+
+ * main.c (parse_opt): Rearrange slightly.
+
+Tue Sep 26 11:54:35 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * inode.c: Include <netinet/in.h>.
+ (diskfs_S_file_get_storage_info): New function.
+ * main.c (main): Delete var `devname'. Use `ufs_device_name'
+ throughout instead.
+ * ufs.h (ufs_device_name): New var.
+
+Fri Sep 22 13:22:42 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * hyper.c (get_hypermetadata): Use %Zd format for result of sizeof.
+
+Tue Sep 19 13:41:46 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (LDFLAGS): New variable.
+
+Wed Sep 13 12:30:23 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * dir.c (diskfs_lookup): Don't attempt to lock NP if NPP is not
+ set. Don't even set NP if NPP is not set; use INUM as "lookup
+ succeeded flag" instead. Lookups for REMOVE and RENAME now *must*
+ set NPP.
+
+Wed Sep 6 11:01:50 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * pager.c (diskfs_pager_users): Ignore the disk pager when seeing
+ if there are any active pagers.
+
+Mon Aug 28 17:07:36 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (ufs): Depend on ../libshouldbeinlibc/libshouldbeinlibc.a.
+
+Fri Aug 25 17:14:09 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_truncate): When freeing direct blocks mentioned
+ in a single indirect block, or single indirect blocks mentioned in
+ a double, only call the free routine (ffs_blkfree or
+ indir_release, respectively) if the block is actually allocated.
+
+Wed Aug 23 12:24:07 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (ufs): Add explicit dependencies.
+ (HURDLIBS, LDFLAGS, REMHDRS): Removed.
+ Rules associated with ../lib removed.
+
+Fri Jul 21 17:48:12 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * pager.c (diskfs_get_filemap): Drop initial reference created by
+ pager_create.
+
+ * pager.c (diskfs_get_filemap): Avoid race with simultaneous
+ termination by looping until we win.
+ (pager_clear_user_data): Only clear UPI->np->dn->fileinfo if it
+ still points to us.
+
+Mon Jul 17 14:35:25 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * pager.c (thread_function): Don't have any global timeout here;
+ we don't use it anyhow.
+
+Thu Jul 6 15:42:52 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Mon Jun 26 20:17:42 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * pager.c: Include <unistd.h>.
+ (diskfs_pager_users): New function.
+
+Thu Jun 22 11:41:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * pager.c (thread_function): Move thread_function to be non-local,
+ of course, because it needs to live even after create_disk_pager
+ returns.
+
+ * main.c (thread_cancel): New function (HACK).
+
+ * Makefile (HURDLIBS): Add libihash.
+
+ * main.c (main): Have main thread exit when done instead of
+ calling a diskfs function.
+
+Wed Jun 21 12:20:01 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * ufs.h (user_pager_info): Removed members next and prevp.
+ * pager.c (pager_clear_user_data): Don't maintain pager linked
+ list.
+ (diskfs_get_filemap): Don't maintain pager linked list.
+ (pager_dropweak): New function.
+ (pager_traverse): Delete function.
+ (diskfs_shutdown_pager): Use ports_bucket_iterate instead of
+ pager_traverse.
+ (diskfs_sync_everything): Likewise.
+
+ * pager.c (pager_bucket): New variable.
+ (create_disk_pager): Provide pager_bucket in call to pager_create.
+ (diskfs_get_filemap): Likewise.
+ (diskfs_file_update): Use ports reference calls directly instead
+ of pager wrappers.
+ (drop_pager_softrefs): Likewise.
+ (allow_pager_softrefs): Likewise.
+ (pager_traverse): Likewise.
+ (create_disk_pager): Initialize pager_bucket here and fork off
+ service thread for pager ports.
+
+ * sizes.c (diskfs_truncate): Likewise.
+
+ * dir.c (diskfs_lookup): Provide initialization for BUFLEN.
+ (diskfs_direnter): Move assignment out of if test.
+
+Tue Jun 20 11:48:06 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_grow): Provide initialization of POKE_OFF.
+ * alloc.c (ffs_realloccg): Remove assignment from if tests.
+ * sizes.c (diskfs_truncate): Likewise.
+ * bmap.c (fetch_indir_spec): Likewise.
+
+Mon Jun 19 21:17:21 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_node_iterate): New function.
+ (write_all_disknodes): Use it.
+
+Wed Jun 14 16:18:55 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_get_translator): Conform to new memory usage
+ semantic.
+
+Sat May 20 00:17:30 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * main.c (trans_parse_args): Use options_parse &
+ diskfs_standard_startup_options to parse our translator options.
+ (usage): New function.
+ (parse_opt): New function.
+
+ * Makefile (CPPFLAGS): Add -I../lib, to get include lib include files,
+ and $(CPPFLAGS-$(notdir $<)) to get file-specific cpp options.
+ Add a vpath for %.c to ../lib, so we can use source files from there.
+
+Mon May 15 13:14:48 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * pager.c (pager_clear_user_data): Doc fix.
+
+Sat May 13 05:04:11 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Remove exec_server_image.o.
+ (exec_server_image.o): Rule removed.
+
+Mon May 8 08:43:43 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * dir.c (diskfs_lookup): When looping back to try_again: because
+ we're looking up "..", be sure and trash the mapping we made of
+ the directory's pager -- otherwise the reference to the pager
+ never gets dropped and we can never free the node.
+
+ * dir.c (diskfs_lookup): ds->type was being compared to LOOKING, which
+ value it can never have. Compare ds->stat against LOOKING instead.
+
+ * pager.c (pager_clear_user_data): Don't die when called on the
+ disk pager.
+
+ * inode.c (write_all_disknodes): Fix typo `alloc' --> `alloca'.
+
+Tue May 2 11:59:09 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * pager.c (pager_clear_user_data): Acquire pagerlistlock around
+ modifications to UPI->next/prevp list structure.
+
+Fri Apr 28 19:02:05 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (write_all_disknodes): We have to really lock the nodes
+ around the calls to diskfs_set_node_times and write_node; this in
+ turn forces us to have real refereces.
+
+Thu Apr 13 16:36:57 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * main.c (main): Don't abort if a std file descriptor is already open.
+
+Tue Apr 4 20:08:25 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_translator): When freeing passive
+ translator, account for blocks freed in NP->dn_stat.st_blocks.
+
+Fri Mar 31 13:43:27 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_truncate): Don't acquire writer lock on
+ NP->dn->allocptrlock until after forcing delayed copies through;
+ otherwise the pageins will deadlock attempting to get a reader
+ lock to service them. This is safe, because we only need
+ NP->allocsize here, and that can't change as long as we hold
+ NP->lock.
+
+Mon Mar 20 13:58:44 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * consts.c (diskfs_synchronous): New variable.
+
+Fri Mar 17 14:31:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * alloc.c (ffs_clusteracct): Make static.
+ (alloc_sync): New function.
+ (ffs_alloc): Call alloc_sync.
+ (ffs_realloccg): Likewise.
+ (diskfs_alloc_node): Likewise.
+ (ffs_blkfree): Likewise.
+ (diskfs_free_node): Likewise.
+
+Sat Jan 28 14:59:26 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Remove reference to libc's devstream.o.
+
+Fri Nov 11 11:45:38 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * hyper.c (diskfs_set_hypermetadata): Always use dev_write_sync to
+ avoid device_write bug that says you can't modify the buffer until
+ device_write returns. Also remember to deallocate BUF.
+
+Thu Nov 10 13:27:09 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * main.c (main): Issue decent prompt.
+
+ * hyper.c (diskfs_set_hypermetadata): Copy CSUM into a
+ page-aligned page-sized buffer for disk write to avoid inane
+ kernel bug.
+
+Wed Nov 9 05:43:14 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * main.c (main): Behave more reasonably if we can't open DEVNAME.
+
+Tue Nov 8 00:03:20 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * pager.c (pager_write_page): Use %p for printing PAGER.
+
+ * ufs.h: Declare copy_sblock.
+
+Wed Nov 2 16:06:10 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * hyper.c (copy_sblock): Don't copy csum here.
+ (diskfs_set_hypermetadata): Write csum directly to disk here.
+
+Thu Oct 27 20:58:08 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * dir.c (diskfs_lookup): diskfs_get_filemap returns a send right,
+ so don't create an additional one here.
+ (diskfs_dirempty): Likewise.
+ * sizes.c (diskfs_truncate): Likewise.
+ (diskfs_grow): Likewise.
+
+Tue Oct 25 12:49:41 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * hyper.c (copy_sblock): Call record_poke for csum and superblock
+ after modifying them.
+
+ * pager.c (diskfs_shutdown_pager): Call copy_sblock.
+ (diskfs_sync_everything): Likewise.
+
+ * alloc.c (ffs_fragextend): Call record_poke for CG after
+ modifying it. Also set CSUM_DIRTY and SBLOCK_DIRTY.
+ (ffs_alloccg): Likewise.
+ (ffs_alloccgblk): Likewise.
+ (ffs_nodealloccg): Likewise.
+ (ffs_blkfree): Likewise.
+ (diskfs_free_node): Likewise.
+
+Fri Oct 7 01:32:56 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * main.c (diskfs_init_completed): Don't call _hurd_proc_init.
+ (saved_argv): Variable removed.
+ (main): Don't set saved_argv. Pass ARGV to diskfs_start_bootstrap.
+
+Wed Oct 5 22:18:46 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * inode.c (read_disknode): If we are the bootstrap filesystem,
+ then getpid changes once proc starts up. So only call getpid
+ once, thus not allowing st_dev values to mysteriously change.
+
+Wed Oct 5 12:56:53 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * alloc.c (diskfs_alloc_node): Abort if free inode has
+ translator attached.
+
+Tue Oct 4 18:33:35 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * pager.c (pager_unlock_page): Call diskfs_catch_exception.
+
+Tue Oct 4 00:16:04 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_lost_hardrefs): Comment out body.
+ * ufs.h (node2pagelock): New variable.
+ * pager.c (node2pagelock): Initialize.
+ (diskfs_get_filemap): Don't let node hold a reference to the pager.
+ (pager_clear_user_data): Acquire node2pagelock and clear
+ the node's reference to the pager.
+ (diskfs_file_update): Hold node2pagelock for reference
+ of NP->dn->fileinfo.
+ (drop_pager_softrefs): Likewise.
+ (allow_pager_softrefs): Likewise.
+ (diskfs_get_filemap): Likewise.
+ * sizes.c (diskfs_truncate): Likewise.
+
+ * Makefile (SRCS): Added pokeloc.c.
+
+Mon Oct 3 15:03:38 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_truncate): Rewritten.
+
+ * bmap.c (fetch_indir_spec): Initialize OFFSET values to -2,
+ meaning that the entry is not needed. If LBN is negative,
+ then don't set values for the data block.
+
+ * inode.c (write_node): Call record_poke after writing
+ dinode.
+ (create_symlink_hook): Likewise.
+ (diskfs_set_translator): Likewise.
+ * pager.c (pager_unlock_page): Likewise.
+ * sizes.c (diskfs_truncate): Likewise.
+ * pager.c (pager_unlock_page): Call record_poke after writing
+ indirect block.
+ * sizes.c (diskfs_grow): Likewise.
+ (diskfs_grow): Likewise.
+ * pager.c (diskfs_sync_everything) [sync_one]: If this is the
+ disk pager, call sync_disk instead.
+ * pokeloc.c: New file.
+
+Fri Sep 30 11:25:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * dir.h: Delete DT_* definitions; they are now in <dirent.h>.
+ * dir.c (diskfs_get_directs): Set USERP->d_type as DT_UNKNOWN.
+ When the bugs in the type fields are fixed (dealing with
+ multiple links and mode changes) then this can actually return
+ the value.
+
+Thu Sep 29 17:16:58 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * main.c (main): Test getpid()>0 to decide we are a normal
+ translator instead of the boot fs. Fetch bootstrap port after
+ possibly calling diskfs_parse_bootargs, not before.
+
+Tue Sep 27 15:24:58 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * sizes.c (diskfs_grow) [computation of newallocsize]: Last block
+ number is one less than the total number of blocks.
+
+Tue Sep 27 11:58:44 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * bmap.c (fetch_indir_spec): Single indirect block pointer is
+ in the INDIR_SINGLE slot, not the INDIR_DOUBLE slot.
+
+Mon Sep 26 20:47:30 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Added bmap.c.
+
+ * main.c (main): Don't call pager_init.
+
+ * inode.c (diskfs_get_translator): Repair to read translator
+ correctly.
+
+ * sizes.c (diskfs_grow): Compute block numbers in a more clean
+ (and confidently correct) fashion.
+ (diskfs_truncate): Set NP->allocsize from a properly rounded
+ value.
+
+Mon Sep 26 12:50:38 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_lost_hardrefs): "Know" that a pager starts
+ with a portinfo; we don't actually have access to the pager
+ struct here.
+
+Fri Sep 23 14:21:55 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ [ Continuing yesterday's changes. ]
+ * ufs.h (struct dirty_indir): New type.
+ (struct disknode): New member `dirty'.
+ * inode.c (iget): Initialize DN->dirty.
+ * bmap.c (mark_indir_dirty): New function.
+ * pager.c (pager_unlock_page): Call mark_indir_dirty before
+ writing into indirect blocks.
+ (diskfs_file_update): Sync indirect blocks here.
+ (pager_traverse): Simplify; do FILE_DATA and diskpager.
+ (pager_init): Removed function.
+ (create_disk_pager): New function.
+ * sizes.c: Completely rewritten.
+ * main.c (main): Spawn first thread sooner so we can
+ map and look at the disk image.
+ * hyper.c (get_hypermetadata): Moved firewall asserts
+ here from pager_init.
+
+Thu Sep 22 11:28:46 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ [This long series of changes deletes the DINODE, CG, SINDIR,
+ and DINDIR pagers and adds a new pager type DISK.]
+ * ufs.h (struct disknode) Removed DINLOCK, SINLOCK, and
+ SININFO members. New member ALLOCPTRLOCK renamed from DATALOCK.
+ Removed SINLOC, DINLOC, SINLOCLEN, and DINLOCLEN.
+ (struct user_pager_info) [enum pager_type]: Removed types
+ DINODE, CG, SINDIR and DINDIR; added type DISK.
+ (dinpager, dinodepager, cgpager): Deleted vars.
+ (diskpager): New var.
+ (dinmaplock, sinmaplock, pagernplock): Deleted vars.
+ (sblock_dirty, csum_dirty, cgs, dinodes): Deleted vars.
+ (fsaddr): New macro.
+ (dino, indir_block, cg_locate): New inline functions.
+ (sync_disk_blocks, sync_dinode): New inline functions.
+ (struct iblock_spec): New type.
+ * pager.c (dinport, dinodeport, cgport, sinlist): Deleted vars.
+ (filepagerlist): Renamed from filelist.
+ (pagernplock): Deleted variable.
+ (find_address): Removed switch; support only DISK and FILE_DATA.
+ (pager_report_extent): Likewise.
+ (pager_unlock_page): Removed switch. Return without comment for
+ DISK; allocate indirect blocks as necessary right here for
+ FILE_DATA.
+ (sin_map, sin_remap, sin_unmap, din_map, din_unmap): Deleted
+ functions.
+ (indir_alloc, sync_dinode): Deleted functions.
+ (enqueue_pager, dequeue_pager): Deleted functions.
+ (diskfs_file_update): No longer lock pagernplock; nothing
+ to do with sininfo.
+ (drop_pager_softrefs): Likewise.
+ (allow_pager_softrefs): Likewise.
+ (diskfs_get_filemap): Put pager on filepagerlist right here
+ instead of through pager_enqueue.
+ (pager_clear_user_data): Likewise, mutatis mutandis.
+ * main.c (main): Call create_disk_pager and then map the
+ entire disk into disk_image.
+ * hyper.c (get_hypermetadata): Use bcopy instead of dev_read_sync.
+ (diskfs_set_hypermetadata): NOP out function.
+ (copy_sblock): New function, substance of code is from old
+ diskfs_set_hypermetadata.
+ * inode.c (iget): Don't initialize deleted disknode fields.
+ (diskfs_node_norefs): Don't verify that deleted disknode
+ fields are not set.
+ (read_disknode): Get dinode from DINO, not DINODES array.
+ (write_node): Likewise.
+ (create_symlink_hook): Likewise.
+ (read_symlink_hook): Likewise.
+ (diskfs_set_translator): Likewise.
+ (diskfs_get_translator): Likewise.
+ (diskfs_node_translated): Likewise.
+ * alloc.c (ffs_realloccg): Likewise.
+ (ffs_fragextend): Use cg_locate instead of cgs array.
+ (ffs_alloccg): Likewise.
+ (ffs_nodealloccg): Likewise.
+ (ffs_blkfree): Likewise.
+ (diskfs_free_node): Likewise.
+ * inode.c (diskfs_set_translator): Use bcopy and sync_disk_blocks
+ instead of dev_write_sync.
+ (diskfs_get_translator): Likewise, mutatis mutandis.
+ (read_disknode): Initialize NP->istranslated.
+ (diskfs_set_translator): Set/clear NP->istranslated as appropriate.
+ (diskfs_node_translated): Removed function.
+ * bmap.c: New file.
+
+ [This improves the RWLOCK mechanism and makes it more
+ orthogonal. It should probably be moved into a library.]
+ * ufs.h (struct rwlock): Added MASTER and WAKEUP members.
+ (struct disknode): Removed RWLOCK_MASTER and RWLOCK_WAKEUP
+ fields.
+ (rwlock_reader_lock): Ommitted arg DN; use new MASTER and WAKEUP
+ members inside LOCK instead.
+ (rwlock_writer_lock): Likewise.
+ (rwlock_reader_unlock): Likewise.
+ (rwlock_init): Initialize new MASTER and WAKEUP fields.
+ * inode.c (iget): Don't deal with RWLOCK_MASTER and RWLOCK_WAKEUP.
+ * pager.c (find_address): Deleted arg DNP. Only pass one
+ arg to rwlock functions.
+ (pager_read_page): Deleted var DN; only pass one arg to rwlock
+ functions.
+ (pager_write_page): Likewise.
+
+Wed Sep 21 00:26:25 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * pager.c (allow_pager_softrefs): Unlock PAGERNPLOCK when
+ we're done with it.
+ (sin_map): Hold PAGERNPLOCK all the way until we're done
+ with the sininfo pointer.
+ (pagernplock): No longer static.
+ * ufs.h (pagernplock): Declare here.
+
+ * sizes.c (diskfs_grow): Don't call diskfs_file_update here.
+ This was done to prevent too much dirty data from accumulating
+ and then overwhelming the pager later. But that's really the
+ pager's responsibility.
+
+ * ufs.h (struct disknode): New members `dinloclen' and `sinloclen'.
+ * inode.c (iget): Initialize DN->dinloclen and DN->sinloclen.
+ (diskfs_node_norefs): Verify that DN->dinloclen and DN->sinloclen
+ are both zero.
+ * pager.c (find_address) [SINDIR]: Verify that reference is
+ within bounds of NP->dn->dinloc.
+ (pager_unlock_page) [SINDIR]: Likewise.
+ (din_map): Set NP->dn->dinloclen.
+ (din_unmap): Clear NP->dn->dinloclen.
+ (find_address) [FILE_DATA]: Verify that reference is within
+ bounds of NP->dn->sinloc.
+ (pager_unlock_page) [FILE_DATE]: Likewise.
+ (sin_map): Set NP->dn->sinloclen.
+ (sin_remap): Reset NP->dn->sinloclen.
+ (sin_unmap): Clean NP->dn->sinloclen.
+
+ * pager.c (pager_write_page): Flush stdout after printf.
+ (pager_unlock_page) [FILE_DATA]: Likewise.
+
+ * sizes.c (diskfs_truncate): In all references to sinloc and
+ dinloc arrays, verify that references are within allocated bounds.
+ (diskfs_grow): Likewise.
+ (sindir_drop): Likewise.
+
+ * pager.c: Create new mapping with extent NEWSIZE, not SIZE (which
+ was the old size of the mapping).
+
+Tue Sep 20 15:51:35 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * pager.c (pager_report_extent) [SINDIR]: Remove erroneous extra
+ division by block size.
+ (sin_remap): Likewise.
+
+Mon Sep 19 17:34:11 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * inode.c (create_symlink_hook): Write assert test correctly.
+
+ * dir.c (diskfs_direnter) [EXTEND]: Reference file size only
+ *once*; don't rely on the behavior if diskfs_grow vis a vis
+ file size.
+
+Fri Sep 16 10:29:42 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * dir.c (dirscanblock): Compute offset correctly for mangled
+ entry notice.
+
+ * dir.c (diskfs_direnter) [EXTEND]: Reference file size only
+ once before calling diskfs_grow in case diskfs_grow actually
+ increases the size.
+
+ * inode.c (diskfs_set_statfs): Set fsid from getpid.
+ (read_disknode): Likewise.
+
+ * dir.h (struct directory_entry): Renamed from struct direct.
+ * dir.c: All uses of struct direct changed to use
+ struct directory_entry.
+ (diskfs_get_directs): New var `userp'. Copy from *ENTRYP into
+ it (set at DATAP) more cleanly.
+
+Mon Sep 12 11:30:48 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * hyper.c (diskfs_set_hypermetadata): Don't frob clean and dirty
+ bits if we are readonly.
+
+Sat Sep 10 11:41:06 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * main.c (main): When started up as a passive translator,
+ open fds 0, 1, and 2 on /dev/console for debugging messages.
+ Call diskfs_init_diskfs with no args; after warp_root, call
+ diskfs_startup_diskfs on BOOTSTRAP. Compare BOOTSTRAP to
+ MACH_PORT_NULL instead of zero.
+
+Fri Sep 9 13:02:33 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * main.c (trans_parse_args): Fix and enable.
+
+Tue Sep 6 11:29:55 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * inode.c (iget): Remove old assert test that checked for bad
+ inode block allocations.
+
+Thu Sep 1 11:39:12 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * tables.c: Don't include "ufs.h"; include <sys/types.h>. Then
+ this file can be used unmodified by fsck.
+
+Tue Aug 30 13:36:37 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_translator): ffs_blkfree doesn't have
+ a return value.
+
+Mon Aug 29 12:49:17 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (diskfs_set_translator): If NAMELEN is zero, then
+ make the node have no translator.
+
+Fri Aug 26 12:28:20 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * inode.c (read_disknode): 4.4 fsck sometimes sets the author
+ field to -1 to mean "ignore old uid location"; take that to mean
+ "author == uid".
+ (diskfs_set_translator): If we are allocating a new block for
+ the translator, then account for it in st_blocks.
+
+Thu Aug 18 12:41:12 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (HURDLIBS): Use short version.
+
+ * alloc.c (diskfs_alloc_node): Bother to set *NPP before
+ returning.
+
+Tue Aug 16 10:48:04 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (LDFLAGS): New variable.
+
+Fri Aug 5 15:51:09 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * dir.c (diskfs_direnter) [EXTEND]: Crash if the entry won't
+ fit in the new block.
+ (diskfs_lookup): Return ENAMETOOLONG if the name is bigger than
+ MAXNAMLEN.
+
+ * dir.c (diskfs_get_directs): Set USERD->d_reclen correctly.
+
+Fri Jul 22 15:12:35 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+
+Wed Jul 20 13:28:38 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * main.c (main): Don't set diskfs_dotdot_file.
+
+Tue Jul 19 21:51:54 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * ufs.h: Removed defns of u_quad_t, quad_t; now in <sys/types.h>.
+ Removed defn of struct timespec; now in <sys/time.h>.
+
+Tue Jul 19 12:47:31 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * main.c (main): Deleted var `diskfs_dotdot_file'.
+ (trans_parse_args): Don't set diskfs_dotdot_file; don't expect
+ dotdot from fsys_getroot.
+
+ * Makefile (LDFLAGS): Moved to rule for `ufs' and commented out.
+ (ufs): Don't use variable $(link) anymore.
+
+Mon Jul 18 14:55:17 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir.c (diskfs_get_directs): Return data to user in old format.
+ Add new code for new format, maintaining compatibility correctly,
+ but comment it out until the library is ready.
+
+ * hyper.c (diskfs_set_hypermetadata): If we presumed to
+ set new values of fs_maxfilesize, fs_qbmask, and fs_qfmask,
+ then restore the originals before writing out the superblock.
+
+ * pager.c (diskfs_get_filemap): Test should be S_ISLNK, not
+ S_ISSOCK.
+
+ * hyper.c (get_hypermetadata): Set new constants in filesystems
+ which don't have them yet.
+ (get_hypermetadata): Cast MAXSYMLINKLEN to long to avoid
+ converting sblock->fs_maxsymlinklen into an unsigned.
+
+ * subr.c (scanc, skipc): New functions.
+ (ffs_setblock): Use assert instead of panic.
+
+ * inode.c (read_disknode): Set old stat structure until the header
+ file gets changed.
+
+Fri Jul 15 12:07:15 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * sizes.c: Include <string.h> for bzero.
+ * fs.h (blksize): Comment out dblksize macro. In blksize
+ macro, use NP->allocsize instead of IP->i_size.
+
+ * dinode.h (INDIR_SINGLE, INDIR_DOUBLE, INDIR_TRIPLE): New macros.
+
+ * inode.c (read_disknode, write_node): Use new stat and dinode
+ fields for times.
+
+ * ufs.h: Change `nextgennumber' to be `u_long' instead of int.
+ Change prototypes of some alloc.c functions.
+ * alloc.c (ffs_alloc): Declare to return error_t.
+ (ffs_realloccg): Likewise.
+ (ffs_hashalloc, ffs_alloccg, ffs_fragextend, ffs_alloccg,
+ ffs_dirpref, ffs_nodealloccg, ffs_allccgblk, ffs_mapsearch,
+ ffs_clusteracct): Provide forward declarations.
+ (ffs_realloccg): Use printf instead of log.
+ Make BPREF volatile for setjmp safety.
+ (diskfs_alloc_node): Use diskfs global variable instead of TIME.
+ (ffs_nodealloccg): Likewise.
+ (ffs_blkfree): Likewise.
+ (diskfs_free_node): Likewise.
+ (ffs_blkfree, ffs_clusteracct): Declare as void.
+ (ffs_alloccg, ffs_nodealloccg): Declare as u_long.
+
+ * ufs.h: Change prototypes of some subr.c functions.
+ * subr.c (ffs_isblock): Use assert instead of panic.
+ (ffs_clrblock): Likewise.
+
+ * hyper.c: Include "dinode.h".
+
+ * dinode.h (LINK_MAX): New macro, from BSD sys/sys/syslimits.h.
+ * fs.h (MAXBSIZE, MAXFRAG): New macros, from BSD sys/sys/param.h.
+
+ * hyper.c (get_hypermetadata): Provide first arg in call to
+ fsbtodb.
+ (diskfs_set_hypermetadata): Likewise.
+ * inode.c (diskfs_set_translator): Likewise.
+ (diskfs_get_translator): Likewise.
+ * pager.c (find_address): Likewise.
+ (indir_alloc): Likewise.
+ * inode.c (iget): Provide first arg in call to lblkno.
+ * sizes.c (diskfs_truncate): Likewise.
+ * pager.c (find_address): Likewise.
+ * sizes.c (diskfs_grow): Likewise.
+ * inode.c (iget): Provide first arg in call to fragroundup.
+ * sizes.c (diskfs_trucate): Likewise.
+ * sizes.c (diskfs_grow): Likewise.
+ * inode.c (iget): Provide first arg in call to blkroundup.
+ * pager.c (pager_unlock_page): Likewise.
+ * sizes.c (diskfs_truncate): Likewise.
+ * sizes.c (diskfs_grow): Likewise.
+ * pager.c (find_address): Provide first arg in call to cgtod.
+ * pager.c (find_address): Provide first arg in call to cgimin.
+ * pager.c (find_address): Provide first arg in call to blktofrags.
+ * pager.c (find_address): Provide first arg in call to blkoff.
+ * sizes.c (diskfs_truncate): Likewise.
+ * sizes.c (diskfs_grow): Likewise.
+ * sizes.c (diskfs_truncate): Provide first arg in call to blksize.
+ * sizes.c (diskfs_grow): Likewise.
+ * sizes.c (diskfs_truncate): Provide first arg in call to numfrags.
+
+ * ufs.h: Added temporary declarations of `u_quad_t', `quad_t', and
+ `struct timespec'.
+
+ * pager.c (diskfs_get_filemap): Make sure that this is
+ a kind of node that can be validly read.
+
+ * inode.c (create_symlink_hook): Renamed from symlink_hook.
+ (read_symlink_hook): New function.
+ (diskfs_read_symlink_hook): Initialize.
+
+Thu Jul 14 12:23:45 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * alloc.c: New from 4.4 BSD; BSD version `8.8 2/21/94'.
+ Remove old includes; include "ufs.h", "fs.h", "dinode.h",
+ and <stdio.h>. Replace panics with asserts and comment out
+ uprintfs. Use prototypes throughout. Replace calls
+ to ffs_fserr with printf.
+ (alloclock): New variable.
+ (ffs_alloc): Variable struct inode *IP is now struct node *NP;
+ refer to it appropriately. Initialize FS to sblock.
+ Lock alloclock around actual allocation steps. Reverse order
+ of BNP and CRED arguments; declare CRED as a protid and use
+ accordingly. Permit CRED to be null.
+ (ffs_realloccg): Variable struct inode *IP is now struct node *NP;
+ refer to it accordingly. Comment out U*x buffer management code.
+ Lock alloclock around actual allocation steps. Initialize FS
+ from sblock. Declare CRED as a protid and use it accordingly.
+ Change BUF arg to PBN (physical block number); return new block
+ there.
+ (ffs_reallocblks): Comment out.
+ (diskfs_alloc_node): Renamed from ialloc. Initialize FS from
+ sblock. Use calling sequence from <hurd/diskfs.h>. Acquire
+ alloclock aroud actual allocation steps. Deleted vars
+ `pip', `pvp' (use dir instead). Use iget instead of VFS_VGET.
+ Var struct inode *IP now struct node *NP. Lock gennumberlock
+ around frobbing of nextgennumber.
+ (ffs_blkpref): Arg struct inode *ip is now struct node *np;
+ refer to it accordingly. Initialize FS to sblock. Lock
+ alloclock during actual work. Use csum instead of fs_cs macro.
+ (ffs_hashalloc): Arg struct inode *IP is now struct node *NP;
+ use it accordingly. Initialize FS from sblock.
+ (ffs_fragextend): Arg struct inode *IP is now struct node *NP;
+ use it accordingly. Initialize FS from sblock. Initialize
+ CGP from cgs array; don't use bread. Comment out calls to brelse
+ and bdwrite. Set CGP->time from diskfs global var. Use csum
+ instead of fs_cs macro.
+ (ffs_alloccg): Arg struct inode *IP is now struct node *NP.
+ Initialize FS from sblock. Initialize CGP from cgs array;
+ don't use bread. Comment out calls to brelse and bdwrite.
+ Set CGP->time from diskfs global var. Use csum instead of
+ fs_cs macro.
+ (ffs_nodealloccg): Arg struct inode *IP is now struct node *NP.
+ Initialize FS from sblock. Initialize CGP from cgs array;
+ don't use bread. Comment out calls to brelse and bdwrite. Use
+ csum instead of fs_cs macro.
+ (ffs_blkfree): Arg struct inode *IP is now struct node *NP.
+ Initialize FS from sblock. Initialize CGP from cgs array;
+ don't use bread. Comment out calls to brelse and bdwrite. Use
+ csum instead of fs_cs macro.
+ (diskfs_free_node): Renamed from ffs_vfree. Use calling
+ sequence from <hurd/diskfs.h>. Initialize FS from sblock.
+ Deleted vars pip,pvp (use NP instead). Initialize CGP from
+ cgs array; don't use bread. Comment out calls to brelse and
+ bdwrite. Use csum instead of fs_cs macro.
+ (ffs_fserr): Commented out.
+ (ffs_dirpref): Use csum instead of fs_cs macro.
+
+ * ufs.h (ffs_alloc): Renamed from alloc; all callers changed.
+ (ffs_blkfree): New arg NP; renamed from blkfree; all callers changed.
+ (ffs_blkpref): Renamed from blkpref; all callers changed.
+ (ffs_realloocg): Rename from realloccg; all callers changed.
+
+ * fs.h: New from 4.4 BSD; BSD version `8.7 4/19/94'.
+ (fs_cs): Don't use fs_csp; use global csum instead.
+
+ * subr.c: New from 4.4 BSD; BSD version `8.2 9/21/93'.
+ Remove old includes. Include "ufs.h" and "fs.h".
+ (ffs_blkatoff, ffs_checkoverlap): Comment out.
+
+ * tables.c: New from 4.4 BSD; BSD version `8.1 6/11/93'.
+ Don't include <param.h>; do include "ufs.h" and "fs.h".
+
+ * dinode.h: New from 4.4 BSD; BSD version `8.3 1/21/94'.
+ Remove oldids/inum union; replace with author.
+ Renamed di_mode to be di_model; allocated di_modeh from spare.
+ Allocate di_trans from spare.
+ (di_inumber): Remove macro.
+ * inode.c (read_disknode): Fetch uid and gid from new (long)
+ fields in dinode unless we are the old inode format, in which
+ case fetch them from the old fields.
+ (write_node): Only set new uid and gid fields if we are not
+ COMPAT_BSD4. Set old fields if the superblock says to.
+ (symlink_hook): New function.
+ (diskfs_create_symlink_hook): Initialize.
+ * sizes.c (diskfs_truncate): Deal with truncation of short
+ symlink properly.
+
+ * dir.h: New from 4.4 BSD; BSD version `8.2 1/21/94'.
+ Substitute our version of DIRSIZ which uses the namelen.
+ Comment out declarations of struct dirtemplate and struct
+ odirtemplate.
+ (DIRECT_TYPE, DIRECT_NAMLEN): New macros.
+ * ufs.h (direct_symlink_extension): New variable.
+ * hyper.c (get_hypermetadata): Set direct_symlink_extension.
+ * dir.c (dirscanblock): Use DIRECT_NAMLEN instead of d_namlen.
+ (diskfs_direnter): Likewise.
+ (diskfs_dirempty): Likewise.
+ (diskfs_get_directs): Likewise.
+ (diskfs_direnter): Set d_type field of new slot if
+ direct_symlink_extension is set.
+ (diskfs_dirrewrite): Likewise.
+
+ * ufs.h (compat_mode): New variable.
+ * main.c (main): Set compat_mode to zero if we are the bootstrap
+ filesystem.
+ * inode.c (diskfs_set_translator): Return error if compat_mode
+ is set.
+ (write_node): Don't set GNU dinode field extensions unless
+ compat_mode is COMPAT_GNU.
+
+Mon Jul 11 18:14:26 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir.c (diskfs_get_directs): When copying entries into DATAP,
+ set the d_reclen parameter of the copy to the minimum length
+ (because that's all we use) rather than the size that it had
+ in the directory itself.
+
+Wed Jul 6 14:41:48 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir.c (dirscanblock): In main loop, initialize PREVOFF
+ to zero, not BLOCKADDR. Otherwise, the wrong value is
+ stored into DS->prevoff and then diskfs_dirremove crashes.
+
+Tue Jul 5 14:07:38 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dinode.h: Include <endian.h> before test of BYTE_ORDER.
+
+ * Makefile (TAGSLIBS): New variable.
+
+Tue Jun 21 13:45:04 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir.c (diskfs_direnter): Update dirents of DP, not NP.
+
+Mon Jun 20 16:43:48 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * dir.c (diskfs_direnter) [case SHRINK]: NEW should be set to
+ OLDNEEDED past DS->entry, not to the start of the next entry.
+
+ * dir.c (diskfs_direnter) [case EXTEND]: Cast in assignment
+ to NEW needs proper scope.
+
+ * inode.c (diskfs_node_norefs): Free dirents list of structure
+ being deallocated. Also add assert checks to make sure other
+ state is already clean.
+
+Thu Jun 16 11:38:17 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * dir.c (diskfs_dirempty): Map directory contents ourselves
+ instead of using diskfs_node_rdwr.
+ (struct dirstat): New structure to cache mapping between
+ lookup and commit operation and avoid use of diskfs_node_rdwr.
+ (diskfs_lookup): Map directory ourselves. Keep mapping in
+ DS if DS is nonzero and we might use it in direnter, dirremove,
+ or dirrewrite. Deallocate mapped buffer if we return some
+ error (other than ENOENT), or if DS is zero, or if there is
+ no possible commit operation to follow. When setting DS->stat
+ to EXTEND, do it the new way.
+ (dirscanblock): Changed BLKOFF to be virtual address of mapped
+ block and renamed it BLKADDR. New arg IDX. Use mapped block
+ instead of calling diskfs_node_rdwr. Set DS according to the new
+ rules.
+ (diskfs_direnter): Interpret new dirstat format.
+ (diskfs_dirremove): Likewise.
+ (diskfs_dirrewrite): Likewise.
+ (diskfs_drop_dirstat): Deallocate cached mapping here.
+
+ * dir.c (dirscanblock): When we find the node for type CREATE,
+ invalidate DS by setting type to LOOKUP, not LOOKING.
+
+ * dir.c (diskfs_direnter, diskfs_dirremove, diskfs_dirrewrite):
+ Call diskfs_notice_dirchange when appropriate.
+
+ * dir.c (diskfs_get_directs): Deal properly with case where
+ BUFSIZ==0 and where NENTRIES==-1.
+
+Wed Jun 15 16:40:12 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * main.c (main): Check device sector size and media size
+ on startup.
+
+Tue Jun 14 14:41:17 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * ufs.h (struct disknode) [dirents]: New member.
+ * inode.c (iget): Initialize DN->dirents.
+ * dir.c (diskfs_direnter, diskfs_dirremove): Keep track
+ of dirents member.
+ (dirscanblock): New var `nentries'; use it to count the
+ number of directory entries in this block and set it if
+ we end up scanning the entire block.
+ (count_dirents): New function.
+ (diskfs_get_directs): New function.
+
+Mon Jun 13 13:50:00 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * ufs.h (sinmaplock, dinmaplock): New global vars.
+ * inode.c (inode_init): Initialize sinmaplock and dinmaplock.
+ * pager.c (find_address, pager_unlock_page): Protect use
+ if dinloc array with dinmaplock.
+ (din_map, din_unmap): Doc fix.
+ (find_address, pager_unlock_page): Protect use of sinloc array
+ with sinmaplock.
+ (sin_map, sin_remap, sin_unmap): Doc fix.
+ (pager_clear_user_data): Acquire sinmaplock and dinmaplock
+ instead of NP->dn->datalock and NP->dn->sinlock respectively.
+
+ * sizes.c (diskfs_truncate, diskfs_grow): Protect use of sinloc
+ and sindir mapping functions with sinmaplock.
+ (sindir_drop): Protect use of dinloc and dindir mapping functions
+ with dinmaplock.
+
+ * ufs.h (struct rwlock): New type.
+ (struct disknode) [dinlock, sinlock, datalock]: Use read-write lock.
+ Change comments so that these don't lock dinloc and sinloc anymore.
+ [rwlock_master, rwlock_wakeup]: New members.
+ (rwlock_reader_lock, rwlock_writer_lock, rwlock_reader_unlock,
+ rwlock_writer_unlock, rwlock_init): New functions.
+ * inode.c (iget): Initialize DN->rwlock_master and
+ DN->rwlock_wakeup. Change initialization of DN->dinlock,
+ DN->sinlock, and DN->datalock to use rwlock_init.
+ * pager.c (find_address): Lock NP->dn->dinlock, NP->dn->sinlock,
+ and NP->dn->datalock with rwlock_reader_lock. Change type of
+ parameter NPLOCK to be a read-write lock. New parm DNP. Callers
+ changed.
+ (pager_read_page, pager_write_page): Change type of NPLOCK to be
+ read-write lock; call rwlock_reader_unlock instead of
+ mutex_unlock. New variable DN.
+ (pager_unlock_page): Use rwlock_writer_lock to lock
+ NP->dn->dinlock, NP->dn->sinlock, and NP->dn->datalock.
+ * sizes.c (diskfs_truncate, diskfs_grow): Change locks of DATALOCK
+ field to use rwlock_writer_{un,}lock.
+ (sindir_drop): Ditto for SINLOCK field.
+ (dindir_drop): Ditto for DINLOCK field.
+
+Mon Jun 6 19:23:26 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * sizes.c (diskfs_grow): After realloccg, zero new data (which I'm
+ not sure is really necessary, but until I figure it out, this is
+ safest). Also poke old data (the latter only if the block has
+ moved)--otherwise the kernel won't know to page it out to the new
+ location.
+ (poke_pages): When poking, be careful not to actually change the data.
+ LEN should be end - start, not start - end.
+
+Fri Jun 3 12:37:27 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * inode.c (iget): When we find the node in the table, acquire the
+ mutex *after* incrementing NP->references and unlocking
+ diskfs_node_refcnt_lock; otherwise we can deadlock against
+ diskfs_nput.
+
+Thu Jun 2 12:16:09 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * ufs.h (sblock_dirty, csum_dirty, alloclock): New global variables.
+ * alloc.c (alloclock): Remove static keyword..
+ * alloc.c (realloccg): Set sblock_dirty after changing sblock.
+ (blkpref): Likewise.
+ (fragextend): Likewise.
+ (alloccg): Likewise.
+ (alloccgblk): Likewise.
+ (ialloccg): Likewise.
+ (blkfree): Likewise.
+ (diskfs_free_node): Likewise.
+ * hyper.c (diskfs_set_hypermetadata): Likewise.
+ * alloc.c (fragextend): Set csum_dirty after changi csum.
+ (alloccg): Likewise.
+ (alloccgblk): Likewise.
+ (ialloccg): Likewise.
+ (blkfree): Likewise.
+ (diskfs_free_node): Likewise.
+ * hyper.c (diskfs_set_hypermetadata): Acquire alloclock while
+ writing hypermetadata. Only write csum and sblock if
+ csum_dirty or sblock_dirty, respectively, is set, and then
+ clear it after starting the write.
+
+ * main.c (main): Likewise.
+
+ * sizes.c (diskfs_truncate): Don't turn off caching; the new
+ light reference system takes care of this.
+ * pager.c (diskfs_get_filemap): No longer necessary to turn
+ on caching here, because truncate no longer turns it off.
+
+ * inode.c (diskfs_lost_hardrefs, diskfs_new_hardrefs): New functions.
+ * pager.c (drop_pager_softrefs, allow_pager_softrefs): New functions.
+ (sin_map): Use diskfs_nref_light, not diskfs_nref.
+ (diskfs_get_filemap): Use diskfs_nref_light, not diskfs_nref.
+ (pager_clear_user_data): Use diskfs_nrele_light, not diskfs_nrele.
+ * ufs.h (drop_pager_softrefs, allow_pager_softrefs): New
+ declarations.
+
+Wed Jun 1 13:35:11 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * sizes.c (diskfs_truncate): After calling sin_unmap, turn
+ off caching on the sininfo pager so that it gets freed promptly
+ (there's generally no value in keeping it around because there
+ is no live fileinfo pager).
+ * pager.c (diskfs_get_filemap): Make sure we turn caching back on
+ here, however, if we start using the file pager.
+
+ * pager.c (sin_map): When np->dn->sininfo is set, we have
+ to insert a valid send right after fetching the receive name.
+
+ * pager.c (sin_unmap, din_unmap): New functions.
+ (pager_clear_user_data): Call sin_unmap and din_unmap
+ instead of doing it right here.
+
+ * sizes.c (diskfs_truncate): Call sin_unmap instead of
+ doing it right here.
+ (sindir_drop): Call din_unmap instead of doing it right
+ here. Also, call it always, not just when wo do dindir_drop.
+
+ * sizes.c (diskfs_grow): After alloc into sindir area,
+ unmap it if we don't have an active data pager.
+ * ufs.h (sin_unmap, din_unmap): New declarations.
+
+ * sizes.c (diskfs_grow): In computing OSIZE in the realloc
+ case of lbn < NDADDR, deal correctly with the case where
+ np->allocsize is already an integral number of blocks.
+
+ * sizes.c (diskfs_grow): Compute SIZE correctly.
+
+ * alloc.c (alloc, realloccg, blkfree): When checking validity
+ of size arguments, also make sure the size isn't zero.
+
+ * alloc.c (diskfs_alloc_node): Lock ALLOCLOCK before checking
+ sblock->fs_cstotal.cs_nifree.
+
+Tue May 31 18:47:42 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * ufs.h (DONT_CACHE_MEMORY_OBJECTS): Define it.
+
+ * dir.c (diskfs_direnter: case TAKE): Assert that OLD->d_reclen >=
+ NEEDED, not that it is strictly >.
+
+Tue May 31 11:10:28 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * sizes.c (diskfs_grow): Call diskfs_node_update (but don't wait)
+ after successful completion to prevent old data from hanging around
+ too long and getting flushed all at once from the kernel.
+
+ * sizes.c (diskfs_grow): Change SIZE to be the size of the last
+ block allocated. Delete variable NSIZE; use SIZE instead.
+
+Fri May 27 13:15:26 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * sizes.c (diskfs_truncate): Set NP->dn_stat_dirty after each
+ modification of NP->dn_stat.
+
+ * sizes.c (diskfs_truncate): Compute new value of NP->allocsize
+ correctly.
+
+ * inode.c (iget): Set NP->allocsize to be the *actual* allocsize.
+
+Thu May 26 11:51:45 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * sizes.c (diskfs_truncate): In blkfree loop of blocks past
+ NDADDR, subtract NDADDR from idx to index correctly into
+ sinloc array. Start this loop with idx not less than NDADDR.
+ (diskfs_truncate): If olastblock == NDADDR, then we also
+ need to truncate blocks (one) mapped by single indirect blocks.
+ (diskfs_truncate): New variable `first2free'. Use in place
+ of older losing calculations involving lastblock.
+ (sindir_drop): Rename parameters to be FIRST and LAST. Change
+ interpretation of FIRST by one to correspond with changed call
+ in diskfs_truncate.
+
+ * pager.c (sin_remap): When computing NEWSIZE, round up to
+ a page boundary, thus mimicing the SINDIR computation in
+ pager_report_extent properly.
+
+ * pager.c (pager_unlock_page) [case SINDIR; vblkno == 0]: Read
+ from ....di_ib[INDIR_SINGLE] rather than invalid data before
+ NP->dn->dinloc.
+
+ * alloc.c (alloc) [nospace]: Unlock alloclock.
+ (realloccg): Unlock alloclock before jumping to nospace.
+ (blkpref) [!(lbn < NDADDR)]: Unlock alloclock before returning
+ success.
+
+ * sizes.c (diskfs_grow): When allocing a block past NDADDR, the
+ tbl arg to blkpref is the table of direct block pointers
+ NP->dn->sinloc, not the table of indirect block pointers
+ ...->di_ib.
+
+ * sizes.c (diskfs_grow): When writing into the SINDIR area, call
+ sin_map instead of sin_remap if the sindir isn't already mapped.
+ Also set np->allocsize *before* calling sin_map, but *after*
+ calling sin_remap, to meet the requirements of those separate
+ routines.
+
+ * sizes.c (diskfs_grow): If END isn't bigger than NP->allocsize,
+ then don't try and do anything. In computation of LBN and the
+ first use of NB, round up to block boundary correctly. Don't
+ attempt to realloc an old block if the size is 0 (in which case
+ NB is -1 and unsigned comparison rules might foul things up).
+
+Mon May 23 13:18:33 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (ufs): Give -n in the proper order to rsh.
+
+ * main.c: Include <hurd/startup.h>.
+
+ * ufs.h (DONT_CACHE_MEMORY_OBJECTS): New compilation flag.
+ * pager.c (pager_report_attributes): Deleted function.
+ (MAY_CACHE): New macro; more useful form for using
+ DONT_CACHE_MEMORY_OBJECTS.
+ (sin_map, pager_init, diskfs_get_filemap): Provide new
+ args in calls to pager_create.
+ * sizes.c (MAY_CACHE): New macro; more useful form for
+ using DONT_CACHE_MEMORY_OBJECTS.
+ (diskfs_truncate): Use MAY_CACHE in calls to pager_change_attributes.
+
+Fri May 20 18:52:41 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * sizes.c (diskfs_truncate): Force any delayed copies of the
+ vanishing region to be taken immediately before stopping, and
+ prevent any new delayed copies from being made until we are done
+ manipulating things.
+ (poke_pages): New function.
+ * pager.c (pager_report_attributes): New function.
+
+Wed May 18 15:51:40 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * alloc.c (alloc, realloccg, diskfs_alloc_node, alloccgblk,
+ blkfree, diskfs_free_node, mapsearch): Added helpful strings to
+ asserts.
+ (realloccg): Split up assert.
+
+Tue May 17 13:26:22 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * main.c (main): Delete unused variable PROC.
+
+Mon May 16 15:32:07 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * alloc.c (realloccg): When fragextend succeeds, bother to set
+ *PBN.
+
+ * sizes.c (diskfs_grow): In fragment growth case, NSIZE should
+ not be the amount to hold SIZE (SIZE is the amount the file is
+ growing by), but rather the old size of the fragment plus the
+ SIZE.
+
+ * dir.c (diskfs_direnter case COMPRESS): Rewrite loop to deal
+ properly with the case where from and to overlap.
+
+Mon May 9 16:51:44 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * main.c (ufs_version): New variable.
+ (save_argv): New variable.
+ (main): Set save_argv.
+ (diskfs_init_completed): New function.
+
+Thu May 5 19:06:54 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * Makefile (exec_server_image.o): Use -n when calling rsh.
+
+Thu May 5 07:39:38 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile ($(OBJS)): Use $(includedir) instead of $(headers) in deps.
+
diff --git a/utils/ChangeLog b/utils/ChangeLog
new file mode 100644
index 00000000..ab0ae2bc
--- /dev/null
+++ b/utils/ChangeLog
@@ -0,0 +1,1057 @@
+Tue Jul 16 21:38:01 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * login.c (main): If chown fails, print error message using errno,
+ not -1.
+
+Fri Jul 12 15:49:09 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (dog): Get rid of `Beware of dog' -- it can't ever happen.
+ Rename watch_login calls to check_login; don't use return value.
+ (check_login): Renamed from watch_login. Change type to void.
+ Exit if there's no such process.
+
+ * login.c (main): Only start a watchdog timer if in a new login coll.
+
+ * login.c (watch_login): New function.
+ (dog): Use watch_login. Get rid of wierd rules for root-gone-away.
+
+ * Makefile (INSTALL-ps-ops, INSTALL-w-ops): New variables.
+
+Fri Jul 12 14:20:44 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (INSTALL-login-ops): New variable.
+
+Sun Jul 7 21:31:36 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * settrans.c (main): Don't use unsafe MOVE_SEND in call to
+ file_set_translator.
+
+Sat Jul 6 18:06:52 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * portinfo.c, vmstat.c, hurdids.c, fsysopts.c, settrans.c,
+ showtrans.c, storeinfo.c, login.c, w.c, ps.c
+ (argp_program_version): New variable.
+ * vmstat.c <hurd.h>: New include.
+
+Fri Jul 5 22:28:11 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (add_utmp_entry): Pass the the basename of TTY to getutline.
+
+Wed Jul 3 14:00:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (add_utmp_entry): Don't fill in ut_line or ut_type
+ fields in UTMP.
+ Fill in the ut_addr field.
+
+ * Makefile (settrans): Depend on ../libports/libports.a.
+
+Tue Jul 2 14:54:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (dog): Include all args in the asprintf.
+ Put the ARGV message in parens.
+
+Mon Jul 1 13:05:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (kill_login): Don't kill dog.
+ (dog): Take new ARGV argument, and record status in it for ps.
+ (main): Pass ARGV to dog.
+
+ * w.c (_w_specs): Don't use utmp buffer sizes for field widths, as
+ they can be very large.
+
+ * login.c (add_utmp_entry): Always fill in UTMP.ut_line.
+ Set UTMP.ut_type.
+
+Fri Jun 28 15:44:15 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (add_utmp_entry): Increment TTY_FD while searching for a
+ TTY.
+
+Mon Jun 24 16:02:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Fix heuristic to decide whether native booted.
+
+Thu Jun 20 14:41:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * login.c (main): No need for EXEC_NEWTASK or EXEC_SECURE.
+
+ * Makefile (getty): Remove rule.
+ (targets): Remove `getty'.
+ (SRCS): Remove getty.c.
+ * getty.c: Removed file to daemons directory.
+
+Wed Jun 19 14:11:14 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (hurd_file_name_path_lookup): Declaration removed.
+ (main: child_lookup): Pass 0 for new LOOKUP arg to
+ hurd_file_name_path_lookup.
+
+Mon Jun 17 18:06:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (targets): Add `getty'.
+ (SRCS): Add `getty.c'.
+ (getty): Depend on -lutil.
+
+Mon Jun 17 10:41:28 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (targets): Remove reboot & halt.
+ (SRCS): Remove reboot.c & halt.c.
+ (login): Depend on -lutil instead of grot.
+
+Tue Jun 11 13:43:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (get_utmp_host): Function removed.
+ (add_utmp_entry): Get rid of TTY_FD parameter. Don't search for
+ the tty unless we need it to get the old host, since login does it
+ for us.
+ Also use the `existing host' in the case that a new one isn't specified.
+ (main): Update call to add_utmp_entry.
+
+ * login.c (dog): Don't print stupid message if login session is empty.
+ (add_utmp_entry): Use gettimeofday instead of time to get the time.
+
+Wed May 29 11:01:18 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * sush.sh: Don't use -z flag to login.
+
+Tue May 28 17:48:12 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (main): Fetch the parent uids before checking their number.
+ (dog): Don't kill session if the user logged in!
+ Print newline before message.
+ (check_owned): Return OWNED, not NOTOWNED.
+
+ * ps.c (fmts): Use %sz for vmem format, not %size.
+ (spec_abbrevs): Still use `NTH' for field name, just `TH' for title.
+ (fmts): Use %nth.
+
+Tue May 21 12:18:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (print_store): Get rid of class-name printing code,
+ and use store->class->name. Print all flags.
+
+Tue May 14 09:50:21 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (dog): Use error to print messages. Use pretty time fmting.
+ (main): Fork login timeout watchdog before clearing the process owner.
+
+ * login.c (main): Only allow real users to make new login collections.
+
+Mon May 13 18:10:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (options, main): Remove -z/--no-utmp option.
+ (main): Only add utmp entry for session leader.
+ Clear process owner if no uids.
+ Fork self-destruct timer when appropiate.
+ (default_args): Add NOAUTH_TIMEOUT entry.
+ (check_owned, kill_login, dog): New functions.
+
+Sun May 12 13:38:34 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * psout.c (psout): When printing result of ps_fmt_creation_error,
+ don't pass ERR to error (it should already be in PROBLEM if necessary).
+
+Sat May 11 01:00:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (_parse_strlist, parse_strlist, parse_numlist, lookup_user,
+ main): Slather on consts, in a misguided attempt to shut up the
+ compiler.
+
+Fri May 10 13:53:30 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * devprobe.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.
+ * showtrans.c (parse_opt): Likewise.
+ * portinfo.c (parse_opt): Likewise.
+ * ps.c (parse_opt): Likewise.
+ * settrans.c (parse_opt): Likewise.
+ * login.c (parse_opt): Likewise.
+ * hurdids.c (parse_opt): Likewise.
+ * fsysopts.c (parse_opt): Likewise.
+
+ * showtrans.c (parse_opt): Print a usage msg with no args.
+ (options, main): Add --translated/-t option.
+
+ * Makefile (storeinfo): Depend on ../libstore/libstore.a.
+
+ * settrans.c (main): Remove const cast from first arg to argz_create.
+ * fsysopts.c (main): Likewise.
+ * login.c (main): Likewise.
+ (main): Remove const from decl of USER & ARG.
+ (fail): Remove const from decl of VIA.
+
+ * ps.c (parse_strlist): Make DEFAULT_FN return a const char *.
+
+ * storeinfo.c (print_store): New function.
+ (info): Use store_create to make a store and print_store to print it.
+ (parse_opt): Print a usage message for no args.
+ (options, parse_opt): Add --children option.
+
+Thu May 9 19:46:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * w.c (uptime): Cast arg to localtime appropriately.
+
+ * login.c (add_utmp_entry): Declare HOST `char const *'.
+ (main) [fail]: Declare VIA `char const *'.
+ (main): Declare USER `char const *'.
+ Declare ARG `char const *'.
+
+ * login.c (main): Provide new third arg to proc_setowner.
+
+ * fsysopts.c (main) [parse_opt]: Cast first arg of argz_create
+ appropriately.
+ * settrans.c (main) [parse_opt]: Likewise.
+ * login.c (main) [parse_opt] [case ARGP_KEY_ARG]: Likewise.
+ (main): Likewise.
+
+ * ps.c (main) [current_tty_name]: Remove `const' keyword to avoid
+ type clash.
+
+ * ps.c (main) [proc_stat_has_ctty]: Add parentheses around
+ assignment used as truth value.
+
+Mon May 6 17:36:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * psout.c (psout): Take a field, not a spec. Honor PS_FMT_FIELD_KEEP.
+
+ * w.c (w_user_getter): New function.
+ (w_get_user): New function.
+ (w_fetch): Implement W_PSTAT_USER.
+ (struct w_hook): Add user field.
+ (_w_specs): Add "Name" entry.
+ (w_get_uname): Renamed from w_get_user.
+ (w_uname_getter): Renamed from w_user_getter.
+ * ps.c (fmts): Upcase most format strings.
+
+Sun May 5 01:05:54 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * psout.h: New file.
+ * ps.c (fmts): Use new field syntax.
+ (options): Add -o/--posix-fmt option. -A is an alias.
+ "psout.h": New include.
+ * w.c (_w_specs): Add precision & keep fields.
+ (DEFAULT_FMT_STRING): Use new field syntax.
+ "psout.h": New include.
+ (main): Update call to psout.
+ * psout.c (psout): Add posix_fmt arg.
+
+Thu May 2 00:10:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * psout.c (psout): Use ps_fmt_creation_error to find out in detail
+ why ps_fmt_create fails.
+
+Wed May 1 19:53:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (main): Default KILL_ACTIVE to 0.
+
+Tue Apr 30 19:04:01 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * w.c (_w_specs): Use ps_emit_past_time to show login times.
+
+Tue Apr 30 09:47:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (all): Remove target.
+ (include ../Makeconf): Place before all dependencies.
+ ($(targets)): Each separate target should depend on its own .o.
+
+Tue Apr 23 13:49:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Try to intuit whether this is a native-booted hurd
+ system, and if so, don't filtered out non-parented processes.
+
+Wed Apr 10 19:47:45 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * devprobe.c: New file.
+ * Makefile (targets): Add devprobe.
+ (SRCS): Add devprobe.c.
+
+Mon Apr 8 17:09:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * portinfo.c (options, doc): Change meaning of --translate's
+ argument, in preparation for other changes.
+ (options, main): Add, but don't really implement, --search option.
+
+Fri Mar 29 14:37:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (options): Add --exclusive option, change descriptions.
+ (main): Rearrange meanings of arguments somewhat.
+
+Thu Mar 28 13:58:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * portinfo.c (main): Use new names for functions, and pass stdout.
+ (port_info, ports_info, xlated_port_info, xlated_ports_info,
+ name_xlator_create, name_xlator_free, name_xlator_xlate):
+ Functions removed (renamed and put in libshouldbeinlibc).
+
+ * portinfo.c (parse_task): Use strtoul instead of atoi so pid 0 works.
+
+Mon Mar 25 14:19:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * w.c (uptime): Correctly calculate uptime.
+ (...various...): Use real types instead of old ps typedefs.
+ * ps.c (spec_abbrevs): Make const.
+ (ps_specs): Make non-const.
+ (...various...): Use real types instead of old ps typedefs.
+ * psout.c (psout): Use real types instead of old ps typedefs.
+
+Sat Mar 23 01:02:37 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * w.c (uptime): Add a temporary hack to pretend to show uptime.
+
+Mon Mar 18 18:34:51 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Pass new arg to argp_parse.
+ * w.c (main): Likewise.
+ * storeinfo.c (main): Likewise.
+ * fsysopts.c (main): Likewise.
+ * hurdids.c (main): Likewise.
+ * login.c (main): Likewise.
+ * vmstat.c (main): Likewise.
+ * showtrans.c (main): Likewise.
+ * settrans.c (main): Likewise. Also use argp_usage correctly.
+ * portinfo.c (main): Likewise.
+
+Tue Mar 5 14:17:22 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * portinfo.c (main): Fix arg order to name_xlator_create.
+ (name_xlator_create): Return X in XLATOR.
+ (name_xlator_free): Deallocate all ports in X too.
+ (main): Use xlated_port_info / xlated_ports_info.
+ (xlated_port_info, xlated_ports_info): New functions.
+ (struct name_xlator, name_xlator_create, name_xlator_xlate): Don't
+ depend on a specified receive/send type for the source being specified.
+ (name_xlator_xlate): Take FROM_TYPE arg, & return TO_TYPE.
+ (options, main): Get rid of -R/-S options, and add --translate/-t
+ option.
+
+Mon Mar 4 15:25:41 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * portinfo.c (struct name_xlator): New structure.
+ (name_xlator_create, name_xlator_free, name_xlator_xlate): New funcs.
+ (options, main): Add --translate-{receive,send}/-R/-S options.
+
+Fri Mar 1 18:55:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (targets, SRCS): Add portinfo & portinfo.c.
+
+Tue Feb 27 14:51:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (targets, SRCS): Remove clri & clri.c.
+
+Mon Feb 26 13:50:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (main): Don't print a newline after `Pausing...' msg.
+
+ * ps.c: Include <error.h> instead of "error.h".
+ "common.h": Don't include this anymore.
+
+Wed Feb 21 11:47:01 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+
+ * w.c (uptime): Use %.2f format for load average numbers.
+
+Mon Feb 19 15:49:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (STRINGIFY): Make work. Is this in a header somewhere?
+ (_STRINGIFY): New macro. Ick.
+
+ * fsysopts.c (main): Use ARGP_IN_ORDER.
+
+Sat Feb 17 23:47:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * uptime.sh: New file.
+ * Makefile (targets, special-targets): Add uptime.
+ (SRCS): Add uptime.sh.
+
+Thu Feb 15 15:47:45 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Don't make -a imply -g.
+
+ * sush.sh: Change -aBACKUP_SHELL to -aBACKUP_SHELLS.
+
+ * login.c (child_lookup): Pass last arg to hurd_file_name_path_lookup.
+
+Wed Feb 14 17:38:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * w.c (add_utmp_procs): Correctly add terminal processes using new
+ libps functionality.
+ (read_utmp_procs): Emit all utmp entries, even the last one.
+
+ * ps.c (main): Get rid of totally dead processes/threads.
+ (add_pid): Complain about non-existant processes.
+ (psout): New declaration.
+
+ * ps.c (parse_numlist): Correctly handle NULL hook functions.
+ (parse_opt): Deref STATE correctly.
+ (main): Update calls to changed proc_stat_list_add_* functions.
+
+ * login.c (main): Don't set old SAW_USER_ARG variable.
+
+Tue Feb 13 13:54:03 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * sush.sh: Exec login.
+
+ * login.c (main): Deal with the shell args reasonably.
+
+ * ps.c (parse_opt): Don't turn quoted args into options.
+
+Mon Feb 12 14:54:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (options, main): Add --timeout/-t option.
+ (main): Pass ARGP_IN_ORDER to argp_parse (it's no longer the
+ default), and deal with the fallout.
+
+Wed Feb 7 23:11:10 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (main): Allow switches in the login args naturally.
+
+Mon Feb 5 14:18:03 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * vmstat.c (main, args_doc, doc): Add repeat mode.
+ (FVAL): New macro.
+
+ * vmstat.c (main): Slightly decrease the space for numbers in the
+ verbose output format.
+ Twiddle the widths of the terse fields to make sure there's room
+ for typical numbers.
+
+Sat Feb 3 01:28:20 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * vmstat.c (fields, options): Make const.
+
+ * vmstat.c: New file.
+ * Makefile (targets): Add vmstat.
+ (SRCS): Add vmstat.c
+
+ * login.c (main): Correctly add gids.
+ Avoid duplicating the old real id when keeping the old ids.
+ Don't ask for a password unnecessarily.
+
+Thu Feb 1 19:15:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * sush.sh: Don't save the parent ids.
+
+ * login.c (main): When the user is specified as the first
+ argument, always add it as both effective, real, and saved ids,
+ even if there are others already.
+
+ * login.c (main): Get the ttyname to chown.
+ Only do the chown if NO_LOGIN isn't set.
+
+ * settrans.c (options, main): Add --pause option.
+
+Thu Feb 1 16:27:24 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * login.c (main): Chown the terminal.
+
+Tue Jan 30 15:25:23 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (main): Put LOGNAME in the environ even if it was already.
+ (copied_args): Add "USER".
+
+Mon Jan 29 09:52:08 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (add_utmp_entry): Get rid of declaration for login().
+ (main, default_args): Replace the BACKUP_SHELL param with
+ BACKUP_SHELLS, which is a list of things to try. The default
+ includes both bash and the /bin/sh.
+ (main): Try to set the default path using confstr().
+
+Mon Jan 15 12:29:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (options, main): Make -g/--goaway only apply to
+ active translators.
+ (options): Rearrange a bit.
+
+Sun Jan 14 12:45:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (main): Call setlogin().
+
+Thu Jan 11 19:30:27 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (options, main): Change the -R/--retry option so that
+ the optional argument is an argument to add to those passed to
+ login when retrying, and remove all the hardwired arguments
+ (except propagating -h/--via).
+ (default_args, options, main): Get rid of the -n/--nobody option
+ and variables, making it an additional login parameter.
+
+ * login.c (default_args): Make the default shell /bin/bash instead of
+ _PATH_BSHELL.
+ (default_args, default_env): Make the default path just /bin.
+
+ * loginpr.sh (user): Pass the appropiate -R options to login.
+
+Wed Jan 10 15:32:19 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (main): Turn on RETRY when the -h option is specified.
+
+Fri Jan 5 15:21:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (add_canonical_host): Try harder to get the actual host name.
+
+Thu Jan 4 22:37:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (add_canonical_host): New function.
+ (add_utmp_entry): Use VIA_ADDR instead of VIA in the utmp entry if
+ it fits better.
+ (add_entry): Function moved out of main.
+ (main): Use add_canonical_host() to implement the -h option. Only
+ let root specify the login host.
+
+ * login.c (main): child_lookup() now takes an additional PATH arg,
+ and calls hurd_file_name_path_lookup() instead. Pass a path when
+ looking up the shell executable.
+
+Tue Jan 2 01:15:13 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * sush.sh: Instead of giving --su to login, use all the component
+ options it stood for. Also use --program-name for nice errors.
+
+ * login.c (main): Do all file-name lookups using the target
+ authentication, so that login isn't a security hole.
+ Rework how password-checking is done somewhat (only ask when necess).
+ Call exec_reauth() with SECURE==0 so that it reauths all the ports.
+ If setting the real [ug]id, also add it as the `saved id'.
+ (cat): Take an io_t port instead of a file descriptor.
+ (options, main): Get rid of the -s/--su option, and add -S/--shell-arg.
+ (FAILURE_SHELL): Macro deleted.
+ (default_args): Add BACKUP_SHELL param.
+ (main): Use BACKUP_SHELL instead of FAILURE_SHELL define.
+
+Mon Jan 1 20:51:41 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (main): Use exec_reauth() instead of our own.
+ (options, main): Add -k/--keep & -s/--su options.
+ (options, main): Remove -m/--umask option; use UMASK param instead.
+ (main): Get rid of various string vars only used once.
+
+Fri Dec 29 12:16:13 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * loginpr.sh: New program.
+ * login.c (main): Add optional shell argument for --retry.
+ Add --paranoid/-P option.
+
+ * login.c (main): Don't ask for password by name if only one user.
+
+Thu Dec 28 17:41:11 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c (main, options): Add --retry/-R option.
+
+ * login.c (main): If -f/--no-passwd is specified, get rid of the
+ effect of the login executable being setuid/gid.
+ Only set the shell proc's owner to an effective uid.
+
+Sun Dec 24 14:26:18 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Move a bunch of stuff into psout() in psout.c.
+ * psout.c: New file.
+
+Sat Dec 23 20:49:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Allow user to use `-' prefix to invert sort as well.
+ (main): Use ps_fmt_set_output_width() to set the output width.
+
+ * login.c (add_utmp_entry): Only remove a prefix from the tty name
+ if it's _PATH_DEV.
+
+Thu Dec 21 11:15:42 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (spec_abbrevs, ps_specs): New variables.
+ (fmts): Get rid of redundant header specifications.
+ (fmt_sortrevs): Variable removed.
+ (main): Don't allow sorting on field names any more, just spec
+ names (prob ok, since most things ps prints are now spec names).
+ (main, options): Rename -o flag to -U for posix compat (ick).
+
+ * login.c (options): Add --no-utmp/-z option.
+ (add_utmp_entry): New function.
+ (main): Call add_utmp_entry().
+ (main): Ivec routines are now idvec routines.
+ Include <idvec.h> instead of <ivec.h>.
+ (options): --host/-h is now --via/-h.
+ (main): Store the host were logged in from via in VIA, in the
+ login parameters instead of the child environment; optionally copy
+ it into the environment too.
+ (main): Enable EXEC_SECURE.
+ * Makefile (libutil-libsubst): New hack.
+ (login): Depend on -lutil.
+
+ * ps.c (main): Ivec routines are now idvec routines.
+ Include <idvec.h> instead of <ivec.h>.
+ Use argz functions to store tty_names instead of our own.
+
+Sun Dec 17 00:24:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main, options): If the specified sort field begins with
+ `-', reverse the sort.
+
+ * ps.c (main): If there is no current uid, don't try to filter with it.
+ (FILTER_NOT_LEADER): Renamed from FILTER_NSESSLDR.
+ (main): Rename ps_not_leader_filter from ps_not_sess_leader_filter.
+
+ * ps.c (main): Use ivec routines instead of ids.
+ (make_ids, ids_add, ids_contains): Routines deleted.
+ Include <ivec.h>.
+
+Sat Dec 16 22:13:32 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (options): Reformat doc string for --tty option.
+
+ * ps.c (options): Add argument and doc for 'w' option.
+ (main): Implement 'w' option.
+
+ * login.c: Zillions of changes.
+
+Tue Dec 12 20:16:22 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * login.c: New file.
+ * Makefile (SRCS): Add login.c
+ (targets): Add login.
+ (login): Depends on ../libshouldbelibc/libshouldbelibc.
+
+Wed Dec 6 15:12:15 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsysopts.c (main): Supply the new SEP argument to argz_stringify.
+ * showtrans.c (main): Ditto.
+
+ * fsysopts.c (main): Change uses of the INDEX field in argp_state
+ structures to use NEXT instead.
+ * ps.c (main): Ditto.
+ * settrans.c (main): Ditto.
+ * showtrans.c (main): Ditto. Fix default prefix-printing test.
+ * storeinfo.c (main): Ditto.
+
+Mon Dec 4 15:41:06 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (main): Correctly whether to print prefix by default.
+ (options): Fix help strings.
+
+Wed Nov 15 19:56:21 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Use new libps stream type.
+
+Tue Nov 14 18:28:20 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Grow TTY_NAMES properly even when it's empty.
+
+Mon Nov 6 12:41:21 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (ids_add): Increase the size of IDS even when 0.
+
+ * fsysopts.c (main): Use file_get_fs_options, not fsys_get_options.
+ (doc): `filesystem' --> `FILESYS'.
+
+Sat Nov 4 19:56:38 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (print_info): Use the new FLAGS argument to
+ file_get_storage_info. Add new storage types.
+
+Wed Nov 1 19:30:42 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (main): Change to use the new wierd callback
+ interface to fshelp_start_translator.
+
+ * ps.c (options): Add --not-owner/-O option.
+ (id_t, struct ids): New type.
+ (make_ids, ids_add, ids_contains): New functions.
+ (main): Use a struct ids instead of multiple variables to hold the
+ wanted uids list, which renamed to ONLY_UIDS. Add the NOT_UIDS
+ list to contain the opposite sense, and use it.
+
+ * ps.c (main): Use proc_stat_proc_info instead of proc_stat_info and
+ PSTAT_PROC_INFO instead of PSTAT_INFO.
+
+Tue Oct 31 17:57:25 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * fsysopts.c (doc, args_doc): Mention usage without any options.
+ (main): If no options are supplied, print existing options.
+
+ * ps.c (fmts): Add RPC field to the -l format.
+
+Mon Oct 30 16:24:37 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (options): --all is -e, not -a.
+
+Mon Oct 23 15:17:42 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (options): Change --force/-f to --goaway/-g. Add
+ flags for killing translators: --recurse/-r, --force/-f, --nosync/-S.
+ (doc): New variable.
+ (main): Support new flags. Have some of the options update flag
+ words instead of setting variables.
+
+ * storeinfo.c (print_info): Calculate total size/blocks correctly.
+
+Fri Oct 20 15:44:45 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * settrans.c (args_doc): New variable.
+ (main): Set ARGZ inside of parse_opt.
+
+ * fsysopts.c (options): FILE --> FILESYS in help msg.
+ (args_doc): OPTION --> FS_OPTION, since the usage message already
+ uses OPTION to mean those to fsysopts.
+ (doc): New variable; give some common choices for FS_OPTION.
+
+Thu Oct 19 19:07:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (parse_enum): Use argp_error.
+
+Thu Oct 12 15:22:24 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (parse_enum): Use ARGP_HELP_STD_ERR.
+
+Wed Oct 11 19:03:19 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * ps.c (main): Use realloc on a variable in main instead of
+ alloca, since the storage gets used after parse_opt returns.
+
+ * fsysopts.c (main): Use argp_help instead of argp_usage.
+
+Tue Oct 10 15:02:17 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * showtrans.c (options): Converted to argp format.
+ (main): Use argp, not getopt.
+ (usage, USAGE, SHORT_OPTIONS): Deleted.
+ (arg_doc, doc): New variables.
+ Include <argp.h> not <getopt.h>.
+ * fsysopts.c (options): Converted to argp format.
+ (main): Use argp, not getopt.
+ (usage, USAGE, SHORT_OPTIONS): Deleted.
+ (arg_doc): New variable.
+ Include <argp.h> not <getopt.h>.
+ * settrans.c (options): Converted to argp format.
+ (main): Use argp, not getopt.
+ (usage, USAGE, SHORT_OPTIONS): Deleted.
+ Include <argp.h> not <getopt.h>.
+ * ps.c (options): Converted to argp format.
+ (main): Use argp, not getopt.
+ (usage, USAGE, SHORT_OPTIONS): Deleted.
+ (arg_doc, doc): New variables.
+ Include <argp.h> not <getopt.h>.
+
+Fri Oct 6 17:33:01 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * storeinfo.c (print_info): Use the new block_size value returned
+ from file_get_storage_info.
+
+Wed Oct 4 18:15:59 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * showtrans.c (usage, options, main): Change -h/--no-header options to
+ -p/--prefix and -P/--no-prefix.
+ (main): Unless overridden by -p/-P, only print a FILE: prefix when
+ there are multiple files on the command line.
+
+Mon Oct 2 19:00:27 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * Makefile (targets): Add storeinfo.
+ (SRCS): Add storeinfo.c.
+
+Fri Sep 1 11:35:12 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * settrans.c (main): Use fshelp_start_translator instead of
+ start_translator from ../lib.
+ * Makefile: Get rid of rules related to ../lib.
+ (settrans): Depend on libfshelp.a instead of starttrans.o.
+
+Thu Aug 24 10:44:17 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (all): New target.
+ (ps, settrans, showtrans, fsysopts): Put all dependencies in these
+ targets.
+ (settrans-HURDLIBS, showtrans-HURDLIBS, ps-HURDLIBS): Removed.
+
+Tue Aug 22 17:56:09 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (settrans-HURDLIBS, showtrans-HURDLIBS, ps-HURDLIBS):
+ Add libshouldbeinlibc.
+ (settrans, showtrans, fsysopts, ps): Get rid of things that are
+ now in libshouldbeinlibc.
+ Get rid of rules dealing with error.o.
+
+Sun Jul 23 15:58:06 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): sh.ChangeLog -> shd.ChangeLog.
+
+Fri Jul 7 19:20:21 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * clri.c (copyright, sccsid): Correct syntax.
+
+Fri Jul 7 18:56:45 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * settrans.c (SHORT_OPTIONS): Remove '?' as getopt usurps it.
+ (options, main): Use '&' instead of '?' to mean help.
+
+Thu Jul 6 21:04:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * su.c (main, apply_auth_to_loginid, apply_auth_to_pgrp): Remove
+ assignments from inside if tests.
+
+ * sync.c (main): Declare return type.
+
+ * clri.c (copyright, sccsid): Declare unused.
+ (main): Correct format for fourth arg in printf call.
+
+ * ps.c (lookup_user): Declare return to be `int' to avoid type
+ clash in use as 4th parameter to parse_numlist.
+
+ * shd.c (run): Remove assignments from inside if tests.
+ (command): Likewise.
+
+ * Makefile (special-targets): New var.
+ (mount): Provide command.
+ (OBJS): New var.
+ (shd, su, clri, sync, reboot, halt): List object files here.
+
+Thu Jul 6 16:12:22 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * settrans.c (main): Give an error message instead of dying when
+ no filename argument is given.
+
+Thu Jul 6 15:43:15 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Wed Jul 5 21:18:42 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (ps-HURDLIBS): Renamed from HURDLIBS.
+ (ps): Fix dependencies.
+
+Mon Jun 26 16:13:47 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (CPPFLAGS): Put -I../lib back in.
+ Put back the vpath for %.c to ../lib.
+
+Tue Jun 6 13:22:52 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (HURDLIBS): Added libihash.
+ (CPPFLAGS): Deleted addition of -I../lib.
+ (vpath): Deleted spec.
+ (ps): Deleted ihash.o and primes.o.
+
+Thu Jun 1 11:33:47 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (ps.o, fsysopts.o, showtrans.o, settrans.o): Add
+ dependencies on header files.
+ (REMHDRS): Define this variable.
+
+Tue May 30 12:17:33 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (SCRS): Removed update.c.
+ (targets): Removed update.
+
+Sat May 20 00:51:50 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * fsysopts.c (main): Check for a missing filesystem name.
+ (main): Tweak the error msgs a bit.
+
+ * fsysopts.c (options, main): Don't use '?' as the --help key.
+
+Mon May 15 20:31:31 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * Makefile (SRCS, targets): Add fsysopts.
+
+Wed May 3 11:37:39 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.c (main, usage, SHORT_OPTIONS, options): Add the -n flag
+ (--nominal-fields), which prevents elision of uninteresting fields.
+ Also add elision of uninteresting fields...
+
+Tue May 2 17:22:11 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * ps.c (fmts): Add the SC (suspend count) field to various output fmts.
+ (usage, main, SHORT_OPTIONS): Add the (ignored) -w flag for BSD compat.
+ (main): Use the new name for ps_fmt_squash: ps_fmt_squash_flags.
+
+Tue May 2 14:37:07 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * shd.c (reap): Check for ECHILD, not ESRCH.
+
+Wed Apr 26 21:40:57 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * settrans.c (main): Allow options before and immediately after
+ the node name to be rearranged by getopt without affecting those
+ following the translator name.
+
+Fri Apr 14 10:18:34 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * mount.sh: Move the test for a valid translator to just before we
+ use it. Gratuitously change the "unknown" value for type to "".
+ Don't use `--' when invoking settrans, as getopt doesn't seem to
+ be handling it correctly. Use `usage' not `USAGE'.
+
+Wed Apr 12 14:38:25 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (DIST_FILES): Omit ps.ChangeLog.
+
+Tue Apr 11 15:21:46 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (targets): Changed `sh' to `shd'.
+ (SRCS): Changed `sh.c' to `shd.c'.
+ * shd.c: Renamed from `sh.c'.
+
+Mon Apr 10 20:01:20 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.c (main): Tweak things so that the -t flag works correctly
+ for processes whose tty we can't figure out.
+
+Sun Apr 9 14:00:09 1995 Miles Bader <miles@duality.gnu.ai.mit.edu>
+
+ * su.c (main): Getopt now returns '\001' for non-switch options
+ instead of '\0', no doubt to work around an obscure bug in some
+ brain-dead system only used by 2 people twice a decade.
+
+Fri Apr 7 11:55:25 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.c (parse_enum): Renamed from enum_name.
+ (main, usage): Add lots of sysvish options, and generalize some
+ existing ones to deal with sysvish usage. Make -t & -o work.
+
+Thu Apr 6 11:56:23 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.c (main): Add the `jobc' (-j) output format from netbsd.
+
+Wed Apr 5 22:10:50 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * ps.c (main): When processes are specified on the command line by PID,
+ turn off all filtering so that they don't disappear later. Also
+ minor changes in some spec names.
+
+Tue Apr 4 11:32:53 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile: Add showtrans & mount, and uncomment-out su.
+
+ * settrans.c (main): Get rid of the `show passive translator'
+ functionality, as this is now done by showtrans.
+
+ * ps.c (main): Make -a imply -g as well, to be compatible with bsd.
+ Add the -M (--no-msg-port) switch, which disables all fields that
+ would use any process's message port.
+
+ * showtrans.c: New file: Show passive translators.
+
+ * su.c (apply_auth): Use msg_add_auth & msg_del_auth instead of
+ add_auth & del_auth.
+ (apply_auth_to_pids, apply_auth_to_loginid, apply_auth_to_pgrp):
+ Don't use the IDS variable, it's no longer around; I think AUTH is
+ the right thing to replace it with.
+
+Tue Apr 4 01:47:57 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ps.c (main): Treat argument without leading - as if it had one,
+ unless it's a number.
+
+Mon Mar 20 20:17:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (ps): Link in ihash.o, error.o, and primes.o too.
+ * Makefile (vpath %.c): New decl.
+
+ * ps.c: Include <hurd/ps.h> instead of "ps.h".
+ Include <unistd.h>.
+ (enum_name): Avoid warning.
+ (program_name): New variable.
+ (main): Don't set program_invocation_short_name (the library does it
+ for us). Do set program_name.
+
+ * ps.c: Replace with new version by Miles Bader. See ps.ChangeLog
+ for some changes made to the new version before the replacement.
+ Old ps.c and ps.ChangeLog are now ps.c.old and ps.ChangeLog.old.
+ * Makefile (HURDLIBS): Define, for ps.
+ (CPPFLAGS): Define, for ps.
+ (ps): Add rule to get library.
+
+Sat Jan 28 15:02:08 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * sh.c (main): Only open /dev/tty if stdin is unreadable.
+
+Wed Nov 16 20:28:40 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * reboot.c: Include unistd.h, stdio.h, not hurd/anything.
+ (main): If reboot returns, give error message and return 1.
+ * halt.c: Likewise.
+
+Sat Nov 12 21:20:07 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * reboot.c (main): Just use the reboot function.
+ * halt.c (main): Likewise.
+
+Fri Nov 11 12:05:38 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * Makefile (targets): Added reboot and halt.
+ (SRCS): Added reboot.c and halt.c.
+ * reboot.c: New file
+ * halt.c: New file.
+
+ * ps.c (main): Print in shorter format by default; take -v flag to
+ print in longer format.
+
+Wed Nov 9 04:43:54 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * ps.c (time_str): Specify format for decimals correctly.
+
+Wed Nov 9 00:20:09 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ps.c (time_str): Use %.2d instead of %2d to get 0 pads.
+
+Mon Nov 7 14:15:10 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * ps.c (time_str): Don't use floating point conversion;
+ it's buggy.
+
+Wed Nov 2 13:34:56 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * sync.c: New file.
+ * Makefile (targets): Added sync.
+ (SRCS): Added sync.c.
+
+Thu Oct 27 22:19:29 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * ps.c (main): Also print out a field with the number of threads.
+
+Tue Oct 4 19:40:22 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * clri.c: New file.
+ * Makefile (targets): Added clri.
+ (SRCS): Added clri.c.
+
+Sat Oct 1 03:44:55 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * update.c: Take optional arg to specify sleep time.
+ Use daemon instead of doing its work by hand.
+
+Fri Sep 30 11:53:53 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * update.c: New file.
+ * Makefile (SRCS): Added update.c.
+ (targets): Added update.
+
+Sat Sep 10 08:22:34 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * settrans.c (main): Give usage message when given no args.
+ Use O_NOTRANS in file name lookup.
+ Don't use FS_TRANS_EXCL in file_set_translator.
+ If given args "FILE -show", get translator and print it out.
+
+Thu Sep 1 11:50:51 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * settrans.c: New file.
+ * Makefile (SRCS): Added settrans.c.
+ (targets): Added settrans.
+
+Tue Aug 30 16:40:54 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * sh.c (run): Use file_name_lookup instead of path_lookup.
+
+Tue Aug 23 10:44:16 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile (targets): Comment out `su' until Roland gets it back
+ into a usable state.
+
+Mon Aug 22 12:18:09 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * sh.c (main): Open /dev/tty with O_IGNORE_CTTY and fdopen that
+ onto stdin/out/err.
+
+Fri Jul 22 12:26:27 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten to use new scheme.
+