Linux kernel 添加到等待队列

Linux kernel 添加到等待队列,linux-kernel,Linux Kernel,我想知道如何在linux内核模块的等待队列中添加一个task\u struct?例如,如果我想将一个名为task的task\u struct添加到WaitQueue,我可以使用什么函数来实现这一点 我知道如何将当前模块添加到等待队列,但我想将其他正在运行的进程添加到队列,例如,如果vi正在运行,我需要将其添加到等待队列。您可以使用wait\u event*()函数在等待队列上创建当前任务块。见第6.2.2节。简单的睡眠。你应该澄清这个问题,我不明白什么是“物品”。提到您尝试使用的API以及您尝试

我想知道如何在linux内核模块的等待队列中添加一个
task\u struct
?例如,如果我想将一个名为task的
task\u struct
添加到
WaitQueue
,我可以使用什么函数来实现这一点


我知道如何将当前模块添加到等待队列,但我想将其他正在运行的进程添加到队列,例如,如果vi正在运行,我需要将其添加到等待队列。

您可以使用
wait\u event*()
函数在等待队列上创建当前任务块。见第6.2.2节。简单的睡眠。

你应该澄清这个问题,我不明白什么是“物品”。提到您尝试使用的API以及您尝试完成的任务。基本上,我需要知道如何将任务结构添加到等待队列OK,因此我在模块中定义了一个名为等待的等待队列。如果我调用类似于:
wait\u event\u timeout(wait,somecondition,30*HZ)
(我需要进程在30秒后唤醒)。这如何知道我要添加到等待队列中的特定任务是什么?它只会阻止调用
等待事件*()
的任务,即
当前的
任务,这意味着如果希望任务在该等待队列上休眠,则必须掌握其执行上下文。最标准的方法是实现
/proc
/sys
文件,并让程序打开/读取/写入它。