函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:ipc\msg.c Create Date:2022-07-27 18:16:33
Last Modify:2020-03-17 22:56:56 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:ss_wakeup

函数原型:static void ss_wakeup(struct msg_queue *msq, struct wake_q_head *wake_q, bool kill)

返回类型:void

参数:

类型参数名称
struct msg_queue *msq
struct wake_q_head *wake_q
boolkill
201  struct task_struct * stop_tsk = NULL
202  h等于q_senders
205  如果kill链表后项 = NULL
213  否则如果stop_tsk恒等于tsk退出
222  否则如果非msg_fits_inqueue(msq, msgsz)则
223  如果非stop_tskstop_tsk等于tsk
226  链表项移动到尾部
227  继续下一循环
230  wake_q_add() - queue a wakeup for 'later' waking
调用者
名称描述
freequeque() wakes up waiters on the sender and receiver waiting queue,* removes the message queue from message queue ID IDR, and cleans up all the* messages associated with this queue.* msg_ids.rwsem (writer) and the spinlock for this message queue are held
msgctl_downThis function handles some msgctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function.
do_msgrcv