Re: PATCH: usb: descriptor structures have to be packed

Sergei Organov <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
Oliver Neukum <[email protected]> writes:
> Am Mittwoch, 7. Februar 2007 15:04 schrieb Sergei Organov:
>> Unfortunately le16_to_cpu() is not exactly what's needed here, and if
>> I re-implement the above in terms of it:
>
> The issues of endianness and alignment are orthogonal. If you
> face both do:
>
> x = le16_to_cpu(get_unaligned(p));

OK, re-inventing the infrastructure was not my point after all, so I
have nothing to say against:

  static inline unsigned usb_get_uint16(__u8 const *p)
  {
    return le16_to_cpu(get_unaligned((__le16*)p));
  }

provided it indeed does the right thing here and produces acceptably
short/fast code.

However, I do think that macros/functions that get/put different kinds
of data from/to a character array (i.e., serialize/extract data) in a
portable way are useful by themselves and should be preferred over
conversions of, say, integers between different endianness, as the
latter is too easy to forget to do.

-- Sergei.

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.