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
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to