我想知道IOCTL的定义。我想从IOCTL函数调用中翻转GPIO pin的状态。我正在使用Yocto linux。

最佳答案

ioctl请求由每个驱动程序定义。对于新的chardev GPIO,这在<linux/gpio.h>中定义。
这些值的编码逻辑在<asm/ioctl.h>中。请注意,这取决于平台(例如,MIPS不同于x86和x86_64)。
如果你感兴趣,这里有一个逻辑预示着生锈:https://docs.rs/nix/0.11.0/src/nix/sys/ioctl/linux.rs.html
但是在实践中,您不需要自己转换这些请求代码。您只需包含<linux/gpio.h>,然后就可以使用定义的IOCTL请求代码,比如GPIOHANDLE_GET_LINE_VALUES_IOCTL。以下是一些实现示例:https://github.com/torvalds/linux/tree/master/tools/gpio

09-30 18:15
查看更多