函数逻辑报告 |
Source Code:kernel\locking\mutex.c |
Create Date:2022-07-27 10:47:57 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:__mutex_unlock_slowpath
函数原型:static noinline void __sched __mutex_unlock_slowpath(struct mutex *lock, unsigned long ip)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct mutex * | lock | |
| unsigned long | ip |
| 1224 | struct task_struct * next = NULL |
| 1228 | mutex_release( & dep_map, ip) |
| 1237 | owner等于atomic_long_read( & owner) |
| 1238 | 循环 |
| 1246 | 如果owner按位与MUTEX_FLAG_HANDOFF则退出 |
| 1249 | old等于atomic_long_cmpxchg_release( & owner, owner, __owner_flags(owner)) |
| 1261 | 加自旋锁 |
| 1262 | debug_mutex_unlock(lock) |
| 1263 | 如果非链表为空则 |
| 1271 | debug_mutex_wake_waiter(lock, waiter) |
| 1278 | 自旋锁解锁 |
| 名称 | 描述 |
|---|---|
| mutex_unlock | mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed. |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |