sys_waitpid() improvements (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 30 Oct 2012 17:10:59 +0000 (10:10 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 30 Oct 2012 17:29:29 +0000 (10:29 -0700)
commit920fd7a7a750d5468b4d92c12b4a0c7cc00eadfc
treebb3acdc08b841833cdaa6a7884d1dd321a9eab46
parent8a5211f683646b1961d4bc7b70e43383538574f0
sys_waitpid() improvements (XCC)

Cleans up the glibc fork/wait mess by supporting waitpid(-1).  This will
allow shells (busybox/ash) to do some decent job control with
backgrounding tasks.  Previously, we'd wait on our children in order,
instead of waiting on any available child.

This does not handle concurrent wait calls from the parent (even SCPs
could do async calls).  I'm working on that, and will have it in another
commit to serve as an example of the pain caused by concurrent process
management syscalls (whether due to async syscalls by an SCP or parallel
calls from an MCP).

Rebuild glibc.
kern/include/env.h
kern/include/process.h
kern/include/ros/bits/posix_signum.h
kern/include/ros/bits/syscall.h
kern/src/process.c
kern/src/syscall.c
tools/compilers/gcc-glibc/glibc-2.14.1-ros/sysdeps/ros/fork.c
tools/compilers/gcc-glibc/glibc-2.14.1-ros/sysdeps/ros/waitpid.c