写入UIO设备

时间:2018-09-18 03:27:30

标签: linux-kernel linux-device-driver

我了解documentation中所述的UIO驱动程序的基本知识。我缺少的部分是如何将数据从用户空间程序 back 写入设备驱动程序。我的猜测是您会将这些数据写入mmap区域,但是然后如何让设备驱动程序知道它应该读取所​​述内存?

最终,我试图编写一个可以由用户空间程序实现的块设备。我已插入并运行块设备代码:https://github.com/wspeirs/usbd。我的想法是,UIO是在块设备和用户空间程序之间传输块/扇区的最有效方法。这是从用户空间与块设备驱动程序进行通信的错误方法吗?我应该使用sysfs还是其他通讯机制?

1 个答案:

答案 0 :(得分:2)

UIO的设计使用户空间可以绕过内核与硬件设备进行通信。这似乎不符合您的需求。

在标准Linux块设备中,您可以使用mmap()将数据写入块,并使用msync()向驱动程序指示已写入的区域。