uhid(4) and report structures
Marcus von Appen
mva at FreeBSD.org
Tue Nov 15 21:04:19 UTC 2011
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?
Best regards
Marcus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20111115/e4f1f7ad/attachment.pgp
More information about the freebsd-current
mailing list