uth: add got_posix_signal() to the 2LS ops
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 13 Jun 2019 20:32:41 +0000 (16:32 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 11 Jul 2019 18:29:21 +0000 (14:29 -0400)
commit1b64bce15d420eb72455d3050e7357da1b3096c0
tree2023e9d84b72b1ec4e25dfc4c46deea5789a8c3e
parent0959a6703e992780f62ab5410845ef34cb59d76f
uth: add got_posix_signal() to the 2LS ops

How we handle a POSIX signal is very 2LS-specific.  Thread0 can easily
abort syscalls for its only thread.  Pthreads can call pthread_kill.
The VMM-2LS can route signals to specific task threads.

This commit moves the default logic into 2LS-specific ops.  VMM and
pthreads keep the old behavior.  Thread0 gets behavior more similar to
what the shells want: interrupt their syscall.  It also doesn't need to
use a fake context.

To some extent, the 2LS just needs to pick a thread, and then we
trigger_posix_signal() and/or abort the syscall.  Whether or not those
all need to happen, or whether we need to provide a context to the
threads, is currently 2LS dependent.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/parlib/include/parlib/uthread.h
user/parlib/signal.c
user/parlib/thread0_sched.c
user/pthread/pthread.c
user/vmm/sched.c