我正在尝试修改和编译usbmouse.c在编译的时候,函数usb_maxpackets需要3个参数,但是我从torvald git复制的代码只传递了2个参数给这个函数代码可在此处找到:https://github.com/torvalds/linux/blob/master/drivers/hid/usbhid/usbmouse.c我使用的是debian gnu/linux 10,内核版本为4.19.94-ti-r42
usbmouse.c
usb_maxpackets
https://github.com/torvalds/linux/blob/master/drivers/hid/usbhid/usbmouse.c
debian gnu/linux 10
4.19.94-ti-r42
kupeojn61#
usb_maxpacket()函数的参数数量在Linux内核5.19版本中从3个改为2个。第三个参数指示管道的方向,但该信息是冗余的,因为方向可以从其他两个参数推导出来。为了与4.19内核兼容,新函数调用maxp = usb_maxpacket(dev, pipe);需要更改为maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));。(usb_pipeout(pipe)是管道方向。)为了使代码与新旧内核兼容,可以根据内核版本有条件地编译代码:第一个或者,可以在调用usb_maxpacket的函数之前添加一些兼容性代码:第一个
usb_maxpacket()
maxp = usb_maxpacket(dev, pipe);
maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
usb_pipeout(pipe)
usb_maxpacket
1条答案
按热度按时间kupeojn61#
usb_maxpacket()
函数的参数数量在Linux内核5.19版本中从3个改为2个。第三个参数指示管道的方向,但该信息是冗余的,因为方向可以从其他两个参数推导出来。为了与4.19内核兼容,新函数调用
maxp = usb_maxpacket(dev, pipe);
需要更改为maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
。(usb_pipeout(pipe)
是管道方向。)为了使代码与新旧内核兼容,可以根据内核版本有条件地编译代码:
第一个
或者,可以在调用
usb_maxpacket
的函数之前添加一些兼容性代码:第一个