阅读:3678回复:4
usb驱动中ioctl函数第三个参数的用法!!!
ioctl函数第三个参数传送的数据是不是指setup数据包的内容,还是别的什么数据!
ioctl函数中copy_from_user函数的参数如下: copy_from_user(&args,(void *)arg,sizeof(args)) 指针args是指向setup数据包的(内核空间)。第二个参数arg是指向用户空间的,能不能讲一下这个参数具体指向用户空间的何处,谢谢!! 我的理解是这个参数就是用户空间所调用的ioctl函数的第三个参数,不知道对不对? |
|
沙发#
发布于:2003-05-25 22:16
第三个参数时命令码,你的意思应该是第四个参数吧。每一个ioctl命令执行不同的操作,需要不同的参数。用户层app调用ioctl命令时,会把对应这个命令的参数一同传给driver。
|
|
板凳#
发布于:2003-05-27 09:28
命令的参数具体是指什么?是不是向设备发送的一些控制信息??这个参数和setup数据包有关系吗?
|
|
地板#
发布于:2003-05-28 00:36
命令及其参数用于app与driver交换信息。比如定义一个命令为读取数据,那么参数可能包含数据长度、位移和buffer。
setup包属于controller和device之间在硬件层的协议,跟软件没有任何关系。 |
|
地下室#
发布于:2003-05-28 09:29
谢谢dos回答我的问题!我正在做毕设,课题是实现一块dsp板的usb驱动,驱动框架已经完成!但在完成与硬件进行数据传输的功能时,
老师给我一个结构让我在驱动中定义,结构如下: USB_GSM_REQ { UCHAR bmRequestType UCHAR bRequest USHORT WValue USHORT WIndex USHORT WLength } 这个usb设备的底层是由老师自己写的,我不知如何在我的驱动中实现,请指教!! |
|