首先,我是设备驱动程序的人.这是我第一次处理用户模式程序.我曾经有一个中断服务程序来响应硬件中断.换句话说,硬件使用中断服务例程来通知驱动程序进行服务.我使用ioctl作为现在在应用程序和设备驱动程序之间进行通信的通道,并轮询它以等待响应.设备驱动程序完成某项任务后是否还有其他方式可以通知应用程序?欢迎任何评论.谢谢,
这有几种机制.第一种方法:用户空间应用程序使poll()或select()系统调用,等待来自内核的某些事件.第二种方法是使用Netlink套接字.还有其他像mmap()或信号.谷歌kernel user-space IPC,您将看到整个列表.
至于你的情况(司机发展),我会说下一步的方法.在驱动程序中创建sysfs文件,并执行sysfs_notify()(或许wait_for_completion_interruptible_timeout()或类似的事情).在用户空间中,为驱动程序sysfs文件执行select()系统调用.例如,了解如何从用户空间安装线路规则.
| 归档时间: |
|
| 查看次数: |
787 次 |
| 最近记录: |