我已经看到了一些执行此操作的示例代码:
proc_entry->read_proc = module_read;
proc_entry->write_proc = module_write;
但是,在我的模块中,我使用了 ioctls 而不是读写。这是我的 ioctl 函数原型:
int mytimer_ioctl(struct inode *inode, struct file *file, unsigned int fcn, unsigned long args)
对于读取,我的“fcn”是 IOCTL_GET_TIMER,对于写入,我的“fcn”是 IOCTL_SET_TIMER。
无论如何要做这样的事情:
proc_entry->read_proc = module_ioctl(IOCTL_GET_TIMER);
proc_entry->write_proc = module_ioctl(IOCTL_SET_TIMER);
但不传入“args”参数?
或者更简单的方法是只编写 module_read 和 module_write 函数,然后让它们调用 ioctl?
谢谢你们的帮助!