函数逻辑报告 | 
Source Code:kernel\futex.c | 
Create Date:2022-07-27 11:54:07 | 
| Last Modify:2020-03-17 15:28:32 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:Wake up all waiters hashed on the physical page that is mapped* to this virtual address:
函数原型:static int futex_wake_op(unsigned int __user *uaddr1, unsigned int flags, unsigned int __user *uaddr2, int nr_wake, int nr_wake2, int op)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| unsigned int __user * | uaddr1 | |
| unsigned int | flags | |
| unsigned int __user * | uaddr2 | |
| int | nr_wake | |
| int | nr_wake2 | |
| int | op | 
| 1759 | key1等于FUTEX_KEY_INIT, key2等于FUTEX_KEY_INIT | 
| 1765 | retry : | 
| 1767 | 如果此条件成立可能性小(为编译器优化)(ret != 0)则转到:out | 
| 1770 | 如果此条件成立可能性小(为编译器优化)(ret != 0)则转到:out_put_key1 | 
| 1776 | retry_private : | 
| 1778 | op_ret等于futex_atomic_op_inuser(op, uaddr2) | 
| 1779 | 如果此条件成立可能性小(为编译器优化)(op_ret < 0)则 | 
| 1780 | double_unlock_hb(hb1, hb2) | 
| 1789 | 转到:out_put_keys | 
| 1794 | 如果ret则转到:out_put_keys | 
| 1799 | cond_resched() | 
| 1800 | 转到:retry_private | 
| 1803 | put_futex_key( & key2) | 
| 1804 | put_futex_key( & key1) | 
| 1805 | cond_resched() | 
| 1806 | 转到:retry | 
| 1821 | 如果op_ret大于0则 | 
| 1837 | out_unlock : | 
| 1838 | double_unlock_hb(hb1, hb2) | 
| 1840 | out_put_keys : | 
| 1841 | put_futex_key( & key2) | 
| 1842 | out_put_key1 : | 
| 1843 | put_futex_key( & key1) | 
| 1844 | out : | 
| 1845 | 返回:ret | 
| 名称 | 描述 | 
|---|---|
| do_futex | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |