我如何在我的linux虚拟设备驱动程序中检索数据?

时间:2015-05-27 07:43:48

标签: c linux driver

我必须实现虚拟设备驱动程序,它将计算指定角度的sin。

我发现article如何编写hello-world驱动程序,当我在其上调用update时它很好用。

但是为了计算罪,我需要将一些数据传输给我的驱动程序。哪种解决方案最无痛?

我应该首先以单独的方法读取所有输入数据,记住它,然后计算&输出

1 个答案:

答案 0 :(得分:2)

最无痛的解决方案可能是实施ioctl

链接示例中的cat使用read(),这在您的设备生成数据时非常好,例如鼠标或摄像机,但是当设备回复命令时{{1}更合适:你以一个角度作为参数发送一个命令ioctl,然后得到答案的回复。

替代方案是GET_SIN角度,然后write()解决方案:更复杂,因为可能有几个进程同时读写,这将是一个烂摊子!< / p> 顺便说一句,小心! AFAIK,内核不允许使用浮点算术,也不允许链接到read(),所以你必须将正弦实现为定点整数函数,可能使用表...