函数逻辑报告 |
Source Code:kernel\fork.c |
Create Date:2022-07-27 09:58:19 |
Last Modify:2020-03-17 11:04:53 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:copy_clone_args_from_user
函数原型:noinline static int copy_clone_args_from_user(struct kernel_clone_args *kargs, struct clone_args __user *uargs, size_t usize)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct kernel_clone_args * | kargs | |
struct clone_args __user * | uargs | |
size_t | usize |
2599 | 如果此条件成立可能性小(为编译器优化)(usize > PAGE_SIZE)则返回:负E2BIG |
2601 | 如果此条件成立可能性小(为编译器优化)(usize < sizeof first published struct )则返回:负EINVAL |
2604 | err等于py_struct_from_user: copy a struct from userspace*@dst: Destination address, in kernel space |
2608 | 如果此条件成立可能性小(为编译器优化)(set_tid_size > MAX_PID_NS_LEVEL is needed for limiting size of 'struct pid' )则返回:负EINVAL |
2611 | 如果此条件成立可能性小(为编译器优化)(!set_tid && set_tid_size > 0)则返回:负EINVAL |
2614 | 如果此条件成立可能性小(为编译器优化)(set_tid && set_tid_size == 0)则返回:负EINVAL |
2621 | 如果此条件成立可能性小(为编译器优化)((exit_signal & ~((u64)signal mask to be sent at exit )) || !Test if 'sig' is valid signal. Use this instead of testing _NSIG directly )则返回:负EINVAL |
2625 | * kargs = (struct kernel_clone_args){flags = flags, pidfd = u64_to_user_ptr(pidfd), child_tid = u64_to_user_ptr(child_tid), parent_tid = u64_to_user_ptr(parent_tid), exit_signal = exit_signal, stack = stack, stack_size = stack_size, tls = tls, Number of elements in *set_tid = set_tid_size, } |
2637 | 如果set_tid且copy_from_user(kset_tid, u64_to_user_ptr(set_tid), ( Number of elements in *set_tid * sizeof(pid_t)))则返回:负EFAULT |
2644 | 返回:0 |
名称 | 描述 |
---|---|
SYSCALL_DEFINE2 | lone3 - create a new process with specific properties*@uargs: argument structure*@size: size of @uargs* clone3() is the extensible successor to clone()/clone2().* It takes a struct as argument that is versioned by its size. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |