Super Clean
but I would have bad withdrawal symptoms if I don't get my fix of nitpicking..
when storing the context, the kernel does not need to allocate space on the stack, its only the user-code that must do so for the likelihood that the kernel would store the context on the negative side of the stack pointer.
that is such a negligible issue, so I will close it right away.
well done.