Provide a syscall to pop a user context (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 20 Jan 2016 16:47:00 +0000 (11:47 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 2 Feb 2016 22:43:52 +0000 (17:43 -0500)
commit29cdaf79e6eff13bb73f095d9092c377256fe157
treefafcad3ee200b61d1be9b971c433ca6deee0f10e
parent7af825bbdf7ef91d988318dec3b046bcea27aa2c
Provide a syscall to pop a user context (XCC)

x86 will need help running VM contexts, which is the only intended use for
this syscall.

The syscall works for any type of context, but be careful actually using
it.  As noted in the comments, Parlib manages TLS separately from
pop_user_ctx(), but this syscall will set the TLS.  When testing, I had
parlib 0 FS base in the the ctx, then had proc_pop_ctx only change the FS
base if it wasn't 0.  Technically, they could want us to set a FS base of
0, so it's not really a fix.  Another solution would be to have parlib read
fsbase, then fill that into the context.  Considering there's no real need
for the kernel to pop HW or SW contexts, none of it is worth doing.

Reinstall your kernel headers.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/ros/bits/syscall.h
kern/src/syscall.c