/* NOTE! Only a kernel-only process(ie the swapper or direct descendants who haven't done an "execve()") should use this: it will work within a system call from a "real" process, but the process memory space will not be free'd until both the parent and the child have exited.  */
static void kernel_thread_helper(void *nouse, int(*fn)(void *), void *arg)
/* NOTE! Only a kernel-only process(ie the swapper or direct descendants who haven't done an "execve()") should use this: it will work within a system call from a "real" process, but the process memory space will not be free'd until both the parent and the child have exited.  */
static void kernel_thread_helper(void *nouse, int(*fn)(void *), void *arg)
{
	fn(arg);
	do_exit(-1);
}