大家好:
ioctl这个函数中有个参数cmd,当PCIe向C6678传输数据时,cmd为C6678_PCI_TRANS_DATA,该宏定义在PCIe.h中:#define C6678_PCI_TRANS_DATA _IOR(PCIDEV_IOC_MAGIC, 2, int);当PCIe向C6678取回数据时,cmd为C6678_PCI_GET_DATA,该宏同样定义在PCIe.h中:#define C6678_PCI_GET_DATA _IOR(PCIDEV_IOC_MAGIC, 4, int)。
那么我的问题是:为何这两个cmd宏都定义的是_IOR而没有定义为_IOW?如果是PCIe传输数据不应该是_IOW吗?另外,如果我想让PCIe同时双向传输是否应该使用_IOWR?我尝试过在PCIe.h中将C6678_PCI_TRANS_DATA的_IOR改为_IOW,就显示调用cmd错误,一直不知道是什么原因。
希望得到各位的指教,谢谢。