Split pcpui->syscalls into a current and next
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 12 Nov 2010 22:46:47 +0000 (14:46 -0800)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:56 +0000 (17:35 -0700)
commitd143eb391783a0f8181b6695d0697bb3c85a889a
tree4c4c8381b3a5509d2390e139c0548b2bfc4c70c3
parenta1c7cede3ecd335af3794fda2996427849e778fd
Split pcpui->syscalls into a current and next

Instead of using pcpui->syscalls for both who to run next as well as
which call is currently being serviced.

Now it's more clear that a kthread is running a syscall (or none if ==
0), and we now can use signal_current_sc() after a block point (which
could happen (sys_exec()), though it is rare).

And since there is a cur_sysc active during each syscall, we can use
that struct for errno, instead of the errno_loc (which was originally
used for accessing inside an arch-dependent TF, back when we used a
register for errno).
kern/include/smp.h
kern/src/arsc.c
kern/src/kthread.c
kern/src/smp.c
kern/src/syscall.c