函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\futex.c Create Date:2022-07-27 11:53:52
Last Modify:2020-03-17 15:28:32 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__unqueue_futex() - Remove the futex_q from its futex_hash_bucket*@q: The futex_q to unqueue* The q->lock_ptr must not be NULL and must be held by the caller.

函数原型:static void __unqueue_futex(struct futex_q *q)

返回类型:void

参数:

类型参数名称
struct futex_q *q
1509  如果Use of ({0;}) because WARN_ON_SMP(x) may be used either as* a stand alone line statement or as a condition in an if ()* statement.* A simple "0" would cause gcc to give a "statement has no effect"* warning.(!lock_ptr)或WARN_ON(节点不在链表上)则返回
1511  lockdep_assert_held(lock_ptr)
1513  hb等于container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(lock_ptr, structfutex_hash_bucket, lock)
1514  从plist移除节点
1515  Reflects a waiter being removed from the waitqueue by wakeup* paths.
调用者
名称描述
mark_wake_futexThe hash bucket lock must be held when this is called.* Afterwards, the futex_q must not be accessed. Callers* must ensure to later call wake_up_q() for the actual* wakeups to occur.
requeue_pi_wake_futexqueue_pi_wake_futex() - Wake a task that acquired the lock during requeue*@q: the futex_q*@key: the key of the requeue target futex*@hb: the hash_bucket of the requeue target futex* During futex_requeue, with requeue_pi=1, it is possible to acquire the
unqueue_mequeue_me() - Remove the futex_q from its futex_hash_bucket*@q: The futex_q to unqueue* The q->lock_ptr must not be held by the caller
unqueue_me_piPI futexes can not be requeued and must remove themself from the* hash bucket. The hash bucket lock (i.e. lock_ptr) is held on entry* and dropped here.