函数逻辑报告 |
Source Code:kernel\locking\rtmutex.c |
Create Date:2022-07-27 10:52:25 |
| Last Modify:2020-03-17 14:26:38 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Try to take an rt-mutex* Must be called with lock->wait_lock held and interrupts disabled*@lock: The lock to be acquired
函数原型:static int try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task, struct rt_mutex_waiter *waiter)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct rt_mutex * | lock | |
| struct task_struct * | task | |
| struct rt_mutex_waiter * | waiter |
| 810 | lockdep_assert_held( & 保护自旋锁) |
| 834 | 如果rt_mutex_owner(lock)则返回:0 |
| 842 | 如果waiter则 |
| 847 | 如果waiter不等于rt_mutex_top_waiter(lock)则返回:0 |
| 854 | rt_mutex_dequeue(lock, waiter) |
| 856 | 否则 |
| 898 | pi_blocked_on = NULL |
| 908 | takeit : |
| 910 | debug_rt_mutex_lock(lock) |
| 918 | 返回:1 |
| 名称 | 描述 |
|---|---|
| __rt_mutex_slowlock | __rt_mutex_slowlock() - Perform the wait-wake-try-to-take loop*@lock: the rt_mutex to take*@state: the state the task should block in (TASK_INTERRUPTIBLE* or TASK_UNINTERRUPTIBLE)*@timeout: the pre-initialized and started timer, or NULL for none*@waiter: |
| rt_mutex_slowlock | Slow path lock function: |
| __rt_mutex_slowtrylock | |
| __rt_mutex_start_proxy_lock | __rt_mutex_start_proxy_lock() - Start lock acquisition for another task*@lock: the rt_mutex to take*@waiter: the pre-initialized rt_mutex_waiter*@task: the task to prepare* Starts the rt_mutex acquire; it enqueues the @waiter and does deadlock* detection |
| rt_mutex_cleanup_proxy_lock | _mutex_cleanup_proxy_lock() - Cleanup failed lock acquisition*@lock: the rt_mutex we were woken on*@waiter: the pre-initialized rt_mutex_waiter* Attempt to clean up after a failed __rt_mutex_start_proxy_lock() or* rt_mutex_wait_proxy_lock() |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |