On 15.11.2011 22:54, Marcus von Appen wrote:
On, Tue Nov 15, 2011, Alexander Motin wrote:
On 15.11.2011 21:29, Marcus von Appen wrote:
I wonder, if I am correct with my assumption that the usb_ctl_report*
structures mentioned in uhid(4) have to be defined and created by the
code portion that uses the USB_GET_REPORT(), USB_SET_REPORT(),
... calls.
In FreeBSD< 800063 we defined them in the header files of the USB
subsystem. After the rewrite those struct definitions vanished. Will
the USB_ macros mentioned in uhid(4) "just" return a byte sequence
(that's what I understand from the UHID specification) so that code,
which uses those calls, can implement its own struct container for the
information retrieved?
Thanks for shedding some light on this. In case i am correct with what I
wrote above, it might make sense to mention it in uhid(4).
In new USB stack these calls use struct usb_gen_descriptor argument.
Difficult to say why it was done, but it was. To hide that I've recently
added two wrapper functions to the libusbhid in HEAD: hid_get_report()
and hid_set_report().
So the man page is currently not up to date and can - at least for now -
be assumed to be wrong?
To get the mappings correct, which fields would I have to use from
usb_gen_descriptor? Earlier we had:
struct usb_ctl_report {
int ucr_report;
u_char ucr_data[1024];
};
The mapping might be:
usb_gen_descriptor.ugd_data == usb_ctl_report.ucr_data
usb_gen_descriptor.ugd_report_type == usb_ctl_report.ucr_report
Is that correct? Also, ugd_data is of variable size with ugd_actlen
indicating the size of the ugd_data buffer?
Here is usage example:
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libusbhid/data.c.diff?r1=1.9;r2=1.10;f=h
--
Alexander Motin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"