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