CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2017/02/11 21:55:08
Modified files:
share/man/man9 : Makefile fork1.9
sys/sys : proc.h
sys/uvm : uvm_extern.h
sys/kern : init_main.c kern_fork.c kern_kthread.c
kern_sched.c
sys/arch/alpha/alpha: vm_machdep.c
sys/arch/amd64/amd64: vm_machdep.c
sys/arch/arm/arm: vm_machdep.c
sys/arch/arm64/arm64: vm_machdep.c
sys/arch/hppa/hppa: vm_machdep.c
sys/arch/i386/i386: vm_machdep.c
sys/arch/m88k/m88k: vm_machdep.c
sys/arch/mips64/mips64: vm_machdep.c
sys/arch/powerpc/powerpc: vm_machdep.c
sys/arch/sh/sh : vm_machdep.c
sys/arch/sparc64/sparc64: vm_machdep.c
Added files:
share/man/man9 : thread_fork.9
Log message:
Split up fork1():
- FORK_THREAD handling is a totally separate function, thread_fork(),
that is only used by sys___tfork() and which loses the flags, func,
arg, and newprocp parameters and gains tcb parameter to guarantee
the new thread's TCB is set before the creating thread returns
- fork1() loses its stack and tidptr parameters
Common bits factor out:
- struct proc allocation and initialization moves to thread_new()
- maxthread handling moves to fork_check_maxthread()
- setting the new thread running moves to fork_thread_start()
The MD cpu_fork() function swaps its unused stacksize parameter for
a tcb parameter.
luna88k testing by aoyama@, alpha testing by dlg@
ok mpi@