summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--proc/ChangeLog834
1 files changed, 834 insertions, 0 deletions
diff --git a/proc/ChangeLog b/proc/ChangeLog
new file mode 100644
index 00000000..619ecf26
--- /dev/null
+++ b/proc/ChangeLog
@@ -0,0 +1,834 @@
+Tue Jul 16 11:34:34 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wait.c (EWOULDBLOCK): Define to work around new libc bug.
+
+Sun Jul 7 21:04:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reauthenticate): Don't use unsafe MOVE_SEND in
+ user-side interruptible RPC.
+
+Wed Jul 3 14:44:00 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (process_has_exited): When reparenting children to init,
+ if one of them is dead, alert init.
+
+Fri Jun 28 11:54:21 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * proc.h (check_owner): Return true any time PROC1 has root.
+
+Thu May 30 19:11:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pgrp.c (S_proc_getsidport): MAKE_SEND_ONCE -> MAKE_SEND.
+
+Wed May 29 11:35:37 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Get rid of temp hack for strnlen.
+
+Fri May 24 15:50:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Set PI->exitstatus and PI->sigcode.
+
+ * mgt.c (process_has_exited): Don't call alert_parent if P->p_task
+ is null (which happens only if this is the stub process in
+ proc_reassign). This because the parent is uninvolved in the
+ death of stubp.
+
+Wed May 22 17:47:15 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * stubs.c (send_signal): Send sigcode in message.
+
+ * msg.c (S_proc_setmsgport): Add OLDMSGPORT_TYPE param.
+
+Tue May 14 22:50:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * proc.h (check_owner): New inline function.
+ * info.c (S_proc_pid2task, S_proc_pid2proc): Use check_owner.
+
+Sun May 12 13:22:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * info.c (PI_FETCH_THREAD_DETAILS): New macro.
+ (S_proc_getprocinfo): Only allocate thread detail storage if we're
+ actually returning thread details (a lone PI_FETCH_THREADS simply
+ means "number of threads"). React to errors somewhat more gracefully.
+
+ * info.c (S_proc_getprocinfo): Add comment.
+
+Fri May 10 16:32:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * info.c (S_proc_get_tty): New function.
+
+Fri May 10 09:26:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_exception_raise): Fetch sigcode from correctly
+ named member of HSD.
+
+Thu May 9 19:13:14 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reauthenticate): Use new authentication
+ interface.
+
+ * mgt.c (S_proc_setowner): Expect and interpret new CLEAR parm.
+
+ * info.c (S_proc_getprocinfo): FLAGS is now an in-out parameter.
+
+ * proc.h (struct proc): Add p_sigcode.
+ * wait.c (S_proc_wait): New parm SIGCODE; return p_sigcode in it.
+ (S_proc_mark_stop): New parm SIGCODE; record it.
+ (S_proc_mark_exit): Likewise.
+ (alert_parent): Set P->p_sigcode if process is dying irregularly.
+ * mgt.c (S_proc_exception_raise): Set P->p_sigcode; use new
+ _hurd_exception2signal args.
+
+Mon May 6 14:23:11 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * proc.h (OUR_VERSION): Upgrade to 0.0.
+
+Tue Apr 30 16:48:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Release GLOBAL_LOCK around time
+ consuming bits, and more importantly, potential calls to P's
+ msgport, which can block.
+ Fix test when appending to WAITS.
+
+Mon Apr 29 16:58:24 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Install temporary hack so things at
+ least compile. Turned on thread_waits code.
+
+Mon Apr 15 13:51:41 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (process_has_exited): Clear p->p_waited.
+
+Fri Mar 29 09:38:28 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wait.c (S_proc_wait): When looking for a specific pid, use
+ pid_find_allow_zombie, not ordinary pid_find.
+
+ * mgt.c (S_proc_reassign): Use new ports_transfer_right call
+ instead of claim/install sequence; the latter has leaves the port
+ out of any hash table for a time, which produces a race with
+ incoming messages.
+
+Thu Mar 28 09:21:16 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reassign): Make send once right directly from
+ value in P->p_pi, don't use ports_get_right.
+
+ * mgt.c (process_has_exited): Inhibit this call from happening
+ twice.
+
+ * info.c (S_proc_pid2task): Return MACH_PORT_NULL for a zombie.
+ (S_proc_pid2proc): Likewise.
+
+ * Makefile (mutated_ourmsg_U.h): New target.
+ * mgt.c: Include mutated_ourmsg_U.h instead of ourmsg_U.h.
+ * pgrp.c: Likewise.
+
+ * wait.c: Don't include ourmsg_U.h or process_reply_U.h.
+ * msg.c: Don't include process_reply_U.h.
+
+ * msg.c (S_proc_getmsgport): Allow call to be made for dead
+ processes; they'll return null. Thank you, Mr. Posix.
+ * mgt.c (process_has_exited): Null out P->p_msgport and drop
+ reference.
+
+ * wait.c (S_proc_wait): Return EOPNOTSUPP if RPC destination is
+ not a valid process.
+ (S_proc_mark_stop): Likewise.
+ (S_proc_mark_exit): Likewise.
+ (S_proc_mark_cont): Likewise.
+ (S_proc_mark_traced): Likewise.
+ (S_proc_mod_stopchild): Likewise.
+ * msg.c (S_proc_setmsgport): Likewise.
+ (S_proc_getmsgport): Likewise.
+ * pgrp.c (S_proc_setsid): Likewise.
+ (S_proc_getsidport): Likewise.
+ (S_proc_setpgrp): Likewise.
+ (S_proc_mark_exec): Likewise.
+ * mgt.c (S_proc_reauthenticate): Likewise.
+ (S_proc_child): Likewise.
+ (S_proc_reassign): Likewise.
+ (S_proc_setowner): Likewise.
+ (S_proc_getpids): Likewise.
+ (S_proc_set_arg_locations): Likewise.
+ (S_proc_dostop): Likewise.
+ * info.c (S_proc_pid2task): Likewise.
+ (S_proc_proc2task): Likewise.
+ (S_proc_pid2proc): Likewise.
+ (S_proc_make_login_coll): Likewise.
+ (S_proc_setlogin): Likewise.
+ (S_proc_getlogin): Likewise.
+ * host.c (S_proc_sethostid): Likewise.
+ (S_proc_sethostname): Likewise.
+ (S_proc_getprivports): Likewise.
+ (S_proc_setexecdata): Likewise.
+
+ * proc.h (process_drop): New (inline) function.
+ * hash.c (reqport_find): Only deallocate newly found reference
+ if process is dead.
+ * Makefile (MIGSTUBS): Delete process_replyUser.c.
+ (MIGSFLAGS): Provide new definition.
+ * msg.c (S_proc_setmsgport): Spawn thread to tickle init instead
+ of sending reply here.
+ (tickle_init): New function.
+
+Mon Mar 25 17:02:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * Makefile (proc): Add libshouldbeinlibc.a.
+ * main.c: Include <wire.h>.
+ (main): Use wire_task_self instead of doing it ourselves.
+
+Thu Mar 21 11:59:29 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wait.c (S_proc_wait) [child_ready]: Flip test of waited flag.
+ * mgt.c (new_proc): Oops, reinstall code to request dead name
+ notification on the task port.
+
+Wed Mar 20 10:41:01 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * pgrp.c (S_proc_setpgrp): Delete bletcherous hack from July 22,
+ 1995.
+
+ -- All these changes get rid of zombies and integrate them
+ into the regular process tables. --
+ * proc.h (struct zombie): Delete type.
+ (zombie_list): Delete variable.
+ * hash.c (pid_find): Return 0 if process is dead.
+ (task_find): Likewise.
+ (task_find_nocreate): Likewise.
+ (pidfree): Don't call zombie_check_pid. Call
+ pid_find_allow_zombie instead of pid_find.
+ (pid_find_allow_zombie): New function.
+ (prociterate): Don't call FUN for dead processes.
+ * mgt.c (new_proc): Initialize P->p_dead.
+ (process_has_exited): Don't call reparent_zombies. Set P->p_dead.
+ Don't remove from hash tables here, delete ref to task port or
+ remove from parent's list of children (now in
+ complete_exit). Don't remove from pgrp here.
+ (complete_exit): New function.
+ * wait.c (alert_parent): Don't create zombie.
+ (reparent_zombies): Delete function.
+ (S_proc_wait): Don't scan zombie list; check dead children at the
+ same time as stopped children. When completing wait on a dead
+ child, call complete_exit after we've finished work.
+ (zombie_check_pid): Delete function.
+ * proc.h (complete_exit): Provide prototype.
+
+ -- All these changes make proc multithreaded
+ and use the ports library in the usual fashion
+ (well, almost the usual fashion) --
+ * Makefile (proc): Mention ../libports/libports.a.
+ * hash.c (porthash, exchash): Delete variables.
+ (reqport_find): Use ports library instead of porthash.
+ (add_proc_to_hash): Don't add to porthash.
+ (remove_proc_from_hash): Don't remove from porthash.
+ (exc_find, remove_exc_from_hash): Delete functions.
+ * mgt.c (new_proc): Allocate new proc structure with
+ ports_create_port. Don't frob P->p_reqport.
+ (process_has_exited): Don't frob P->p_reqport, cal
+ ports_destry_right instead.
+ * proc.h (proc_bucket, proc_class): New variables.
+ (request_portset): Delete variable.
+ * proc.h (struct proc): Delete members `p_reqport' and
+ p_porthashloc. Add member `p_pi'.
+ * Makefile (MIGSFLAGS): Delete variable.
+ * proc.h (global_lock): New variable.
+ * main.c (global_lock): Provide definition.
+ (message_demuxer): Lock global_lock around work.
+ (main): Initialize proc_bucket and proc_class instead of
+ request_portset. Initialize generic_port through ports
+ library calls. Fetch startup procserver port through ports
+ library instead of reading p_reqport. Initialize exc_class.
+ * mgt.c (S_proc_reauthenticate) Likewise.
+
+ * proc.h: Include <hurd/ports.h> and <cthreads.h>.
+ * info.c (S_proc_task2proc): Use ports_get_right instead
+ of p_reqport.
+ (S_proc_pid2proc): Likewise.
+ * proc.h (exc_port_class): New variable.
+ (struct exc): Add member `pi'. Remove member `excport'.
+ * mgt.c (S_proc_handle_exceptions): Allocate using
+ ports library.
+ (S_proc_exception_raise): Use ports library to manage
+ structure.
+ (exc_clean): New function.
+
+
+***
+
+ -- All these changes switch to using condition variables
+ for wakeup instead of explicit block code --
+ * mgt.c (new_proc): Initialize P->p_wakeup.
+ * wait.c (waiting_parent_cares): Delete function.
+ * Makefile (MIGSTUBS): Delete interruptServer.o.
+ * main.c (message_demuxer): Remove call to interrupt_server.
+ Add call to ports_interrupt_server.
+ * wait.c: Don't include "interrupt_S.h".
+ (alent_parent): Unconditionally enqueue zombie.
+ (S_interrupt_operation): Delete function.
+ (abort_wait): Delete function.
+ * msg.c (abort_getmsgport): Delete function.
+ * wait.c (alert_parent): Use condition_broadcast instead of
+ continuation stuff.
+ (reparent_zombies): Likewise.
+ (S_proc_mark_stop): Likewise.
+ * msg.c (check_message_return): Likewise.
+ (check_message_dying): Likewise.
+ * wait.c (S_proc_wait): Use condition_wait instead of continuation
+ stuff; never return EBUSY.
+ * msg.c (S_proc_getmsgport): Likewise.
+ * proc.h (struct proc): New member `p_wakeup'. Delete member
+ `p_continuation'.
+
+
+
+Mon Feb 12 14:13:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Fail reasonably for #ifdef'd-out
+ thread waits code.
+
+Fri Feb 9 15:45:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Support returning wait strings.
+
+Fri Feb 9 15:19:14 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_exception_raise): Rewritten.
+ (S_proc_handle_exceptions): Don't set E->replyport.
+ (S_proc_exception_raise_reply): Function removed.
+ * main.c (message_demuxer): Don't call proc_excrepl_server.
+ * proc_excrepl.defs: File removed.
+ * Makefile (DIST_FILES): Remove proc_excrepl.defs.
+ (MIGSTUBS): Remove its objects.
+ * proc_exc.defs: Add msgoption arg.
+ Use integer_t where appropriate.
+ * notify.c (do_mach_notify_no_senders): Don't use E->replyport.
+ * proc.h (struct exc): Removed useless members `replyport',
+ `replyporttype'.
+
+Wed Dec 20 17:29:13 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reassign): Have notifications sent to the correct
+ request port.
+ Once we've given STUBP's request port to P, don't leave it in
+ STUBP, so process_has_exited() doesn't dealloc it.
+
+ * pgrp.c (S_proc_getsidport): Add and use new arg sessport_type.
+
+Wed Dec 20 13:31:01 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (new_proc): Don't set P->p_noowner for processes 0 and 1.
+
+Wed Dec 20 13:09:04 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * info.c (get_vector): Rewritten without arbitrary limits.
+
+Tue Dec 19 18:14:30 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * pgrp.c (free_session): Correctly get rid of the receive right
+ we're holding.
+ (S_proc_getsidport): Return errors.
+
+Tue Dec 19 13:58:59 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * info.c (get_string_array): Fix stupid bug in copying to newly
+ allocated space.
+
+Tue Dec 19 13:17:46 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reauthenticate): Reverse miles' last change.
+
+Mon Dec 18 19:56:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reauthenticate): Don't return 0 for the new port.
+
+Tue Nov 21 13:50:30 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wait.c (S_interrupt_operation): Include new seqno parameter.
+
+Tue Nov 14 13:15:55 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wait.c (S_proc_wait): `p->msgportwait' ==> `p->p_msgportwait'
+ typo fix.
+
+Thu Nov 9 13:01:28 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * msg.c (S_proc_setmsgport): Only do the RPC reply by hand for
+ init. Also, return the correct port in that by-hand reply.
+
+ * msg.c (S_proc_getmsgport): Also return EBUSY if P->waiting,
+ because both share the same memory in the proc structure.
+ * wait.c (S_proc_wait): Likewise, mutatis mutandis.
+
+Wed Nov 8 13:10:27 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Don't attempt msg_report_wait if
+ P->p_msgport is not valid.
+
+ * info.c (S_proc_getprocinfo): Inhibit PI_FETCH_THREAD_WAITS for
+ now.
+
+Tue Nov 7 19:49:32 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Calculate the size of the returned
+ structure correctly.
+
+Sun Nov 5 02:05:10 1995 Miles Bader <miles@gnu.ai.mit.edu>
+
+ * proc.h: Include <sys/resource.h>.
+
+ * info.c (S_proc_getprocinfo): Add NOISE and NOISE_LEN args.
+ Fix various typos. Initialize ERR.
+
+Tue Oct 31 14:19:04 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * wait.c (struct zombie): Deleted; now in proc.h.
+ (zombie_list): Likewise.
+ * proc.h (struct zombie): New type.
+ (zombie_list): New variable.
+
+ * info.c (S_proc_getprocinfo): Implement all the rest of the PI
+ flags except PI_ZOMBIE.
+
+Mon Oct 30 16:22:49 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): Support new FETCH flags; support
+ new msg_report_wait call; improve organization.
+
+ * info.c (S_proc_getprocenv): Removed #ifdef notyet; fixed args to
+ get_string_array.
+
+Sat Sep 16 12:57:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * ourmsg.defs: New file.
+ * Makefile (DIST_FILES): Added ourmsg.defs.
+ (ourmsg_U.h ourmsgUser.c, ourmsg.defs): Targets removed.
+
+Thu Aug 24 10:38:58 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (MIGSTUBS): New variable.
+ (OBJS): Get the mig stubs from $(MIGSTUBS).
+
+Wed Aug 23 14:25:30 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
+
+ * Makefile (proc): Put all dependencies here.
+ (HURDLIBS, REMHDRS): Removed.
+ (OBJS): Calculate the appropiate bits from $(SRCS).
+
+Sat Jul 22 15:04:52 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * wait.c (zombie_check_pid): Examine Z->pgrp too.
+
+ * pgrp.c (S_proc_setpgrp): Install bletcherous hack.
+
+Thu Jul 6 15:41:22 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * hash.c: "ihash.h" -> <hurd/ihash.h>.
+
+ * Makefile (ourmsg_U.h ourmsgUser.c): Use local ourmsg.defs
+ instead of include file directly.
+ (ourmsg.defs): New target.
+
+ * Makefile: Removed dependencies that are now automatically
+ generated.
+
+Tue Jun 27 12:02:47 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_dostop): Remove assigments from inside if tests.
+
+Tue Jun 6 13:24:51 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (OBJS): Removed ihash.o and primes.o.
+ (CPPFLAGS): Deleted addition of -I../lib.
+ (vpath): Deleted spec.
+ (REMHDRS): Added ../libihash/ihash.h.
+ (HURDLIBS): Added libihash.
+
+Wed Apr 26 14:32:19 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * wait.c (S_proc_wait): Use `waiter_cares', not
+ `waiting_parent_cares' in zombie check.
+
+Tue Apr 18 09:30:13 1995 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
+
+ * wait.c (reparent_zombies): Send SIGCHLD signal to init.
+
+ * wait.c (S_proc_wait): Don't return ESRCH; return ECHILD.
+
+Wed Apr 12 14:36:30 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu>
+
+ * Makefile (SRCS): Omit primes.c (it's moved to the lib dir).
+
+Thu Apr 6 14:29:06 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * info.c (S_proc_getprocinfo): New var `tp'. Bother to set
+ PI->logincollection.
+
+Wed Apr 5 20:32:02 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * wait.c (waiter_cares, waiting_parent_cares): New functions.
+ (alert_parent, reparent_zombies, S_proc_wait, S_proc_mark_stop):
+ Use them.
+
+Tue Apr 4 14:36:36 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * main.c (main): Wire text and data segment on startup to avoid
+ failure mode during non-standalone pseudo-crash.
+
+Tue Mar 14 11:55:00 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
+
+ * hash.c (addhash, findhash): Moved to ihash.c (which is has a more
+ generic interface) and renamed ihash_add & ihash_find; all callers
+ changed. Other changes: struct htable becomes struct ihash, and
+ all routines that previously deleted things explicitly use
+ ihash_locp_remove instead.
+
+Thu Jan 19 02:01:14 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * pgrp.c (S_proc_setpgrp): Use nowait_msg_proc_newids instead of
+ nowait_proc_newids.
+ * mgt.c (S_proc_child): Likewise.
+
+Tue Jan 17 17:48:32 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * mgt.c (check_uid): Return true if P has root.
+
+ * proc.h (struct proc): Make `argv' and `envp' members
+ `vm_address_t'.
+
+Thu Nov 3 12:13:49 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_getallpids): Don't dereference PIDS in call
+ to vm_allocate.
+
+ * info.c (S_proc_getprocinfo): Don't take address of PIARRAY
+ in call to vm_allocate. Dereference PIARRAY in call to
+ vm_deallocate.
+
+Fri Oct 14 04:54:46 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * mgt.c (new_proc): Don't assume MACH_PORT_NULL is zero.
+ (genpid): Deal with all pids between STAR_OVER and WRAP_AROUND
+ being used.
+
+Mon Oct 10 14:23:00 1994 Jim Blandy <jimb@geech.gnu.ai.mit.edu>
+
+ * primes.c (nextprime): Doc fix.
+
+Mon Oct 10 02:18:02 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * host.c (rebuild_uname): If all the server versions after [0]
+ (the microkernel) match, merge them all into one "Hurd-VERSION"
+ element in the uname version string.
+
+Sun Oct 2 20:36:57 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * host.c (S_proc_sethostname): Don't write off end of
+ uname_info.nodename.
+ (rebuild_uname): Rewritten.
+ (initialize_version_info): Write Mach version info as first
+ element of server_versions.
+ (machversion): Variable removed.
+
+Sat Sep 10 11:37:32 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * mgt.c (make_ids): Copy from UIDS and GIDS into newly allocated
+ space, not vice versa.
+
+Wed Aug 31 11:03:13 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reassign): Rather than getting a new request port,
+ preserve STUBP's request port. This is more convenient for
+ users (and equally good security), and it's what the protocol spec
+ says anyway.
+
+Tue Aug 30 12:44:37 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * primes.c: Replaced file with new version from Jim Blandy
+ (jimb@gnu.ai.mit.edu), David Carlton (carlton@math.mit.edu).
+
+ * proc.h (check_dead_execdata_notify): Add prototype.
+
+Mon Aug 29 12:53:27 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reauthenticate): Use new authentication protocol.
+
+Tue Aug 23 11:41:26 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * pgrp.c (S_proc_setpgrp): If we don't actually change the pgrp,
+ still send proc_newids; the library depends on always getting it.
+
+Mon Aug 22 17:09:21 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * wait.c (S_proc_mark_stop): Removed now meaningless assert.
+
+ * info.c (S_proc_getloginpids): Compute size in realloc correctly.
+
+Mon Aug 22 13:29:21 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * wait.c (S_proc_mod_stopchild): Negate VALUE; sense of
+ p_nostopcld flag is opposite of flag value described in process.defs.
+
+Fri Aug 19 10:21:57 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * pgrp.c (S_proc_getpgrppids): Understand PGID of zero as meaning
+ caller's pgrp.
+
+ * mgt.c (S_proc_child): Check CHILDP->p_msgport against
+ MACH_PORT_NULL explicitly.
+
+ * pgrp.c (join_pgrp): If pg->pg_orphcnt has significantly changed,
+ then notify all the processes in the pgrp.
+ (leave_pgrp): Only send newids message if ip->p_msgport is set.
+ * mgt.c (S_proc_child): Becase join_pgrp now always sends
+ newids; don't do it here if we called join_pgrp.
+
+Fri Aug 19 04:53:04 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * pgrp.c (leave_pgrp): Fix swapped args to nowait_proc_newids.
+ (join_pgrp): Call nowait_proc_newids to notify the process.
+
+Thu Aug 18 10:40:13 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * mgt.c (S_proc_reauthenticate): Use MACH_MSG_TYPE_MAKE_SEND
+ to create a send right from P->p_reqport.
+
+ * main.c (main): Removed var `authhandle'. Use global
+ `authserver' instead.
+
+Wed Aug 17 14:02:31 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * host.c (init_stdarrays): Removed function.
+ (S_proc_execdata_notify): Never call init_stdarrays.
+ Only call exec_setexecdata if std_port_array is set.
+ (S_proc_getexecdata): Return error if there is no std_port_array.
+
+Mon Aug 15 16:12:22 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * host.c (check_dead_execdata_notify): New function.
+ * notify.c (do_mach_notify_dead_name): For notifications sent
+ to GENERIC_PORT, call check_dead_execdata_notify.
+ * main.c (main): Create GENERIC_PORT and put it in
+ REQUEST_PORTSET.
+
+ * host.c (init_stdarrays): New function.
+ (S_proc_execdata_notify): Call init_stdarrays the first time.
+ (S_proc_getexecdata): Likewise.
+
+ * host.c: Include <hurd.h> for various frobs. Include
+ <unistd.h> for getpid.
+
+Fri Jul 22 11:01:53 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * Makefile: Rewritten in accord with new scheme.
+ * wait.c: Include "ourmsg_U.h" instead of "msg.h".
+ Include "process_reply_U.h" instead of "process_reply.h".
+ Include "process_S.h" instead of "proc_S.h".
+ * mgt.c: Include "proc_exc_U.h" instead of "proc_exc.h".
+ Include "proc_excrepl_U.h" insted of "proc_excrepl.h".
+ Include "ourmsg_U.h" instead of "msg.h".
+ Include "process_S.h" instead of "proc_S.h".
+ * pgrp.c: Include "process_S.h" instead of "proc_S.h".
+ Include "ourmsg_U.h" instead of "msg.h".
+ * msg.c: Include "process_reply_U.h" instead of "process_reply.h".
+ * host.c: Include "process_S.h" instead of "proc_S.h".
+ * info.c: Likewise.
+
+Wed Jul 20 16:18:31 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu>
+
+ * wait.c (alert_parent): Delete unused variable `err'.
+
+Tue Jul 19 12:45:43 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (proc): Don't use variable $(link) anymore.
+
+Mon Jul 11 14:32:17 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * pgrp.c (leave_pgrp): When pulling process off of pgrp list,
+ mutate *both* links.
+ (free_pgrp): When pulling pgrp off of session list, mutate
+ *both* links.
+
+Tue Jul 5 14:23:21 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (TAGSLIBS, TAGSHDRS): New variables.
+
+Fri Jul 1 10:57:07 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * stubs.c (send_signal): Rewrote to be machine independent
+ and cleaner.
+
+Thu Jun 30 14:05:21 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * stubs.c: New file.
+ * wait.c (alert_parent): Call send_signal instead of nowait_sig_post.
+ (S_proc_mark_stop): Likewise.
+ * pgrp.c (leave_pgrp): Likewise.
+ * proc.h (send_signal): New prototype.
+ * Makefile (OBJS): Added stubs.o.
+ (SRCS): Added stubs.c.
+ (LIBS): New var to get cthreads library.
+
+ * wait.c (alert_parent): Eliminate pointless assert with confusingly
+ incorrect comment.
+
+ * hash.c (findhash): If we find a slot with ID matching the
+ one we're looking for, but it has been deleted, then return
+ 0 rather than HASH_DEL.
+
+ * wait.c (S_proc_wait, reparent_zombies, alert_parent): Use
+ macros WAIT_ANY and WAIT_MYPGRP instead of magic values -1
+ and 0.
+
+ * wait.c (S_proc_wait): Implement correct interpretation of PID
+ argument: -1 means any child; 0 means child in the same pgrp.
+ [Incorrect semantics were in loop to search zombies, and loop
+ looking for stopped children]
+ (reparent_zombies): Likewise. [Incorrect semantics were in
+ PID check before returning startup_proc's wait.]
+ (alert_parent): Likewise. [Incorrect semantics were in
+ PID check before returning P->p_parent's wait.]
+
+ * wait.c (S_proc_wait): Only return wait on stopped child if
+ it passes the PID test.
+
+ * pgrp.c (S_proc_setpgrp): Don't do process group change if we are
+ changing into our own process group.
+ * mgt.c (S_proc_child): Likewise.
+
+ * pgrp.c (S_proc_setpgrp): When PID is zero, act on calling
+ process; when PGID is zero, use pid of affected process.
+ (S_proc_setpgrp): EPERM check should succeed if pgid is the
+ affected process's *pid*, not pgrp.
+
+Thu Jun 30 08:40:35 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * mgt.c (S_proc_dostop): Use the proper allocation for task_threads.
+ Check for errors. Deallocate the send right from CONTTHREAD too.
+
+ * wait.c (alert_parent): Send SIGCHLD to the parent.
+
+Tue Jun 28 18:12:43 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * primes.c: Include <assert.h>.
+ (nextprime): Use calloc instead of alloca, bzero. P might be
+ bigger than will fit on the stack. Assert non-null return
+ from calloc and realloc.
+
+Tue Jun 28 13:57:08 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * main.c (main): Set priority of proc server to 2 so that we
+ get more CPU than ordinary programs.
+
+Fri Jun 24 17:29:55 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * hash.c (struct htable): New member `locps'.
+ (addhash): Store LOCP into hash table for use during rehash.
+ During rehash, then provide correct LOCP parm for old elements.
+ Allocate and free HT->locps as appropriate.
+
+Fri Jun 24 04:15:16 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * mgt.c (S_proc_setprocargs): Renamed to S_proc_set_arg_locations.
+ (S_proc_get_arg_locations): New function.
+
+Mon Jun 20 15:07:00 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * Makefile (install): Use $(INSTALL_BIN) instead of cp.
+
+Fri Jun 17 13:00:27 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * mgt.c (S_proc_child): Reverse Roland's change of June 11.
+
+Sat Jun 11 11:20:16 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * mgt.c (S_proc_child): Inherit the argv and envp values from the
+ parent.
+
+Fri May 27 16:03:53 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * primes.c: Doc fix, with appreciation to Jim Blandy.
+
+Fri May 13 16:58:13 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu)
+
+ * info.c (S_proc_getprocinfo): Only scan through the threads
+ if task_info succeeds.
+
+ * info.c (S_proc_getprocinfo): Behave properly if one of the
+ threads has died in between the call to task_threads and the
+ calls to thread_info (just pretend it never existed).
+
+ * info.c (get_string, get_vector, S_proc_getprocinfo): If the task
+ has died (there's a race between pending requests and processing
+ of dead-name notifications) then convert MACH_SEND_INVALID_DEST to
+ ESRCH.
+
+Thu May 12 00:59:03 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * main.c (main): Take three args. Store ARGV and ENVP in SELF_PROC.
+
+ * info.c (S_proc_getprocargs): Remove `#ifdef notyet's.
+ (get_string, get_vector, get_string_array): Functions exposed.
+ (get_string_array): Set BP before the loop. Use a for loop that
+ iterates over elts in VECTOR. Fix check of LEN to reallocate buffer.
+ (S_proc_getprocargs): Cast BUF to vm_address_t * for get_string_array.
+ (get_vector): Fix pointer arithmetic; break out of loop when done.
+ Check for error from malloc.
+ (get_string): Use memchr for scanning. Check for error from
+ malloc. Pass READLEN correctly to vm_deallocate.
+
+ * msg.c (S_proc_setmsgport): Take new reply port args.
+ Send reply before trying startup_essential_task.
+ Include <hurd/startup.h> to declare startup_essential_task.
+
+ * cpu-types.c: New file.
+ * Makefile (SRCS, OBJS): Add it.
+ * host.c: Include <stdio.h> for sprintf.
+ (rebuild_uname): Removed unused variable J.
+ (S_proc_register_version): Fix arg types.
+ Use master_host_port, not host_priv.
+ Remove unused variable J.
+ (server_versions): Fix syntax errors in struct definition.
+ (S_proc_uname): Fixed type of first arg.
+ (rebuild_uname): Fix typo.
+ (initialize_version_info): Cast args to host_info.
+ (initialize_version_info): Allocate space for machversion.
+
+Mon May 9 14:32:37 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * mgt.c (new_proc): Regard init as having a dead message
+ port initially.
+
+ * msg.c (S_proc_setmsgport): When init chimes in, tell it
+ we are essential.
+
+ * proc.h (OUR_VERSION, OUR_SERVER_NAME): New macros.
+ * host.c (uname_info, machversion, server_versions,
+ nserver_versions, server_version_nalloc): New variables.
+ (S_proc_register_version, rebuild_uname, initialize_version_info,
+ S_proc_uname): New functions.
+ (S_proc_sethostname): Also set uname_info.nodename.
+ * main.c (main): Call initialize_version_info.
+
+Fri May 6 13:00:36 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
+
+ * host.c (S_proc_gethostname): If HOSTNAME is null, return
+ an empty hostname instead of crashing.
+ (S_proc_gethostname): Test buffer length properly; allocate
+ space for the null too.
+
+ * mgt.c (process_has_exited): delete unused variable LAST.
+ * msg.c (check_message_return): delete unused variables I,
+ MSGPORTS, and CP. Changed type of second arg to `void *'
+ so that the function type is appropriate for the first arg
+ to prociterate.
+ (check_message_dying): delete unused variable I.
+
+ * wait.c, host.c, info.c, mgt.c, notify.c, pgrp.c: Changed MiG
+ server stubs' return types from error_t to kern_return_t; the
+ types are incompatible right now.
+
+Thu May 5 07:50:24 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile: Change uses of $(headers) to $(includedir).
+