函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |