👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

NetBSD 6.1.5 - man page for child_return (netbsd section 9)

CPU_LWP_FORK(9) 		  BSD Kernel Developer's Manual 		  CPU_LWP_FORK(9)

NAME
     cpu_lwp_fork, child_return, proc_trampoline -- finish a fork operation

SYNOPSIS
     #include <sys/proc.h>

     void
     cpu_lwp_fork(struct lwp *l1, struct lwp *l2, void *stack, size_t stacksize,
	 void (*func)(void *), void *arg);

     void
     child_return(void *arg);

DESCRIPTION
     cpu_lwp_fork() is the machine-dependent portion of fork1() which finishes a fork operation,
     with child lwp l2 nearly set up.  It copies and updates the PCB and trap frame from the par-
     ent l1, making the child ready to run.

     cpu_lwp_fork() rigs the child's kernel stack so that it will start in proc_trampoline().
     proc_trampoline() does not have a normal calling sequence and is entered by cpu_switch().
     If an alternate user-level stack is requested (with non-zero values in both the stack and
     stacksize arguments), the user stack pointer is set up accordingly.

     After being entered by cpu_switch() and while running in user context (within the kernel)
     proc_trampoline() will invoke the function func with the argument arg.  If a kernel thread
     is being created, the return path and argument are specified with func and arg.  If a user
     process is being created, fork1() will pass child_return() and l2 to cpu_lwp_fork() as func
     and arg respectively.  This causes the newly-created child process to go directly to user
     level with an apparent return value of 0 from fork(2), while the parent process returns nor-
     mally.

SEE ALSO
     fork(2), cpu_switchto(9), fork1(9)

BSD					  April 13, 2010				      BSD


All times are GMT -4. The time now is 01:49 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password