【关于linux驱动的问题】<br /> 在学习点灯驱动程序中遇到一下一问题,请各位大虾给予解惑:<br /> 驱动程序中的入口点:<br />....<br />static struct file_operations matrix4_leds_fops = {<br /> owner: THIS_MODULE,<br /> ioctl: leds_ioctl,<br />};<br />static int leds_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)<br />{...... //实现<br /> }<br />....<br /><br />而在上层控制程序中有:<br />int main(int argc, char **argv)<br />{<br /> int on;<br /> int led_no;<br /> int fd;<br /> .....<br /> fd = open("/dev/leds", 0);<br /> ...<br /> ioctl(fd, on, led_no); //疑惑????<br /> ....<br />}<br /><br />请问上层测试程序ioctl(fd, on, led_no)和驱动中的ioctl函数是怎样调用的啊?他们的参数的个数以及参数的类型好像不一致?那么是怎样匹配的呢?<br /> 请各位大虾给以解答!提前谢了. |
|