函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\locking\rtmutex.c Create Date:2022-07-27 10:52:16
Last Modify:2020-03-17 14:26:38 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:rt_mutex_enqueue_pi

函数原型:static void rt_mutex_enqueue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter)

返回类型:void

参数:

类型参数名称
struct task_struct *task
struct rt_mutex_waiter *waiter
308  link等于rb_node
309  struct rb_node * parent = NULL
311  bool leftmost = true
313 link循环
314  parent等于link
315  entry等于rb_entry(parent, structrt_mutex_waiter, pi_tree_entry)
316  如果rt_mutex_waiter_less(waiter, entry)则
317  link等于rb_left
318  否则
319  link等于rb_right
320  leftmost = false
324  rb_link_node( & pi_tree_entry, parent, link)
325  rb_insert_color_cached( & pi_tree_entry, & pi_waiters, leftmost)
调用者
名称描述
rt_mutex_adjust_prio_chainAdjust the priority chain
try_to_take_rt_mutexTry to take an rt-mutex* Must be called with lock->wait_lock held and interrupts disabled*@lock: The lock to be acquired
task_blocks_on_rt_mutexTask blocks on lock.* Prepare waiter and propagate pi chain* This must be called with lock->wait_lock held and interrupts disabled
remove_waiterRemove a waiter from a lock and give up* Must be called with lock->wait_lock held and interrupts disabled. I must* have just failed to try_to_take_rt_mutex().