linux-使用wait_event_interruptible_timeout判断设备驱动程序超时是否发生
作者:互联网
在设备驱动程序中,我正在使用wait_event_interruptible_timeout.如何判断是否发生超时?该宏仅在中断时返回错误代码,但超时不是中断,因此返回“ 0”.
编辑:不确定如何判断是否发生超时,但是条件不会被设置,所以听起来像答案.
解决方法:
在几周前阅读Linux Device Drivers, Third Edition中对该函数的描述后,我遇到了同样令人困惑的问题.但是,在阅读了当前内核源代码树中各种wait函数的注释之后,我发现自本书以来,API发生了变化已出版.较新的内核(至少2.6.34,可能还要远得多)将超时的剩余数量的jiffies返回,而不是返回错误代码.因此,零返回值指示发生了超时,并且任何非零值都应指示通过事件条件成功唤醒. include / linux / wait.h中的注释提供了有关新API的良好描述.
标签:linux-kernel,linux-device-driver,linux 来源: https://codeday.me/bug/20191102/1993152.html