在linux设备驱动程序中实现异步读/写支持

时间:2013-12-19 08:46:29

标签: asynchronous linux-kernel linux-device-driver embedded-linux

我需要在我的linux设备驱动程序中实现异步读/写支持。 用户空间程序应该从设备驱动程序获取异步信号,指示驱动程序具有数据并且用户空间程序可以读取它。 以下是我通过谷歌搜索和LDD书籍找到的选项。

[1]实施民意调查。驱动程序返回读/写队列的状态。然后,用户空间程序可以决定是否在设备上执行读/写操作。

[2]实施异步通知。当驱动器端的数据准备就绪时,设备驱动程序能够向用户空间发送信号。然后,用户空间程序可以读取数据。

但是我看到开发人员使用tty驱动程序调用select_read。不确定应该在我的现有设备驱动程序中添加哪些支持,以便从用户空间使用select_read。

需要您对上述最有效方法的建议。

1 个答案:

答案 0 :(得分:0)

Asynchronouse通知(信号)更难使用,因此通常建议使用poll()代替。

您不需要单独实现select(),poll()和select()都是用户空间接口,映射到内核中驱动程序的.poll回调。