asmlinkage int sys_clone()

in kernel/process.c [152:173]


asmlinkage int sys_clone(unsigned long __user *args)
{
	unsigned long clone_flags;
	unsigned long  newsp;
	uintptr_t parent_tidptr;
	uintptr_t child_tidptr;
	struct kernel_clone_args kargs = {};

	get_user(clone_flags, &args[0]);
	get_user(newsp, &args[1]);
	get_user(parent_tidptr, &args[2]);
	get_user(child_tidptr, &args[3]);

	kargs.flags		= (lower_32_bits(clone_flags) & ~CSIGNAL);
	kargs.pidfd		= (int __user *)parent_tidptr;
	kargs.child_tid		= (int __user *)child_tidptr;
	kargs.parent_tid	= (int __user *)parent_tidptr;
	kargs.exit_signal	= (lower_32_bits(clone_flags) & CSIGNAL);
	kargs.stack		= newsp;

	return kernel_clone(&kargs);
}