Remote mbox can deal with recursive calls (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 13 Dec 2011 21:33:13 +0000 (13:33 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 15 Dec 2011 22:48:42 +0000 (14:48 -0800)
commit29b734b9a5106b8885a7add29e3bf6b9688c532f
tree180112edd6b84a5df71794dd527be3e9a192af7f
parent78cbd31dd2f5d369a67b33d1b27c5c9a7465780a
Remote mbox can deal with recursive calls (XCC)

This handles cases where you are handling a remote vcpd mbox, and then
want to handle another remote mbox (which happens if the remote mbox got
a preemption message).  The way we handle all of the cases uses some
form of "tell our future self what to do".

I also moved the relevant code over to event.c, which might make it more
reusable for future event handlers.  Note that any event handler that
doesn't return needs to somehow deal with VCPD mboxes around the
no-return site.  We have a couple handlers for that.

Reinstall your kernel header(s).
kern/include/ros/event.h
user/parlib/event.c
user/parlib/include/event.h
user/parlib/uthread.c