Palacios Public Git Repository
To checkout Palacios execute
git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the
devel branch or one of the release branches. To switch to the devel
branch, simply execute
cd palacios
git checkout --track -b devel origin/devel
The other branches are similar.
HVM capability enhancement: asynchronous upcalls to ROS userspace
This adds the ability for the HRT, ROS, or other component of
the VMM to send what looks like a "user interrupt" (e.g. signal)
to a process running in the ROS.
This mechanism looks similar to signals: the ROS process
installs a handler and stack (our library hides the details), the VMM
then dispatches to the handler by switching stacks, building
what looks like a CPL 3 -> CPL 3 interrupt frame (with error code)
on the selected stack, and then points rip to a userspace wrapper
that handles register save/restore + iret, wrapping around a call
to the user's handler.
Whoever raises the signal supplies the error code, which is then
coerced into an argument for the user's handler.
Only a single process in the ROS can register a handler at a time.
The context includes not only the stack and handler function, but
also the CR3 extant at registration time, and CPL 3 at injection time.