函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\exit.c Create Date:2022-07-27 10:03:35
Last Modify:2020-03-17 11:17:32 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:COMPAT_SYSCALL_DEFINE5

函数原型:COMPAT_SYSCALL_DEFINE5(waitid, int, which, compat_pid_t, pid, struct compat_siginfo __user *, infop, int, options, struct compat_rusage __user *, uru)

返回类型:

参数:

1673  struct waitid_info info = {status = 0}
1674  err等于kernel_waitid(which, pid, & info, options, uru ? & ru : NULL)
1675  signo等于0
1676  如果err大于0则
1677  signo等于SIGCHLD
1678  err等于0
1679  如果uru
1681  如果COMPAT_USE_64BIT_TIMEerr等于copy_to_user(uru, & ru, ru的长度)
1683  否则err等于put_compat_rusage( & ru, uru)
1685  如果err则返回:负EFAULT
1690  如果非infop则返回:err
1693  如果非The "unsafe" user accesses aren't really "unsafe", but the naming* is a big fat warning: you have to not only do the access_ok()* checking before using them, but you have to surround them with the* user_access_begin/end() pair.则返回:负EFAULT
1696  unsafe_put_user(signo, & si_signo, Efault)
1697  unsafe_put_user(0, & si_errno, Efault)
1698  unsafe_put_user(cause, & si_code, Efault)
1699  unsafe_put_user(pid, & si_pid, Efault)
1700  unsafe_put_user(uid, & si_uid, Efault)
1701  unsafe_put_user(status, & si_status, Efault)
1702  user_access_end()
1703  返回:err
1704  Efault :
1705  user_access_end()
1706  返回:负EFAULT