On May 28 2007 20:04, Nitin Gupta wrote: > > * Changelog vs. original LZO: > 1) Used standard/kernel defined data types: (this eliminated _huge_ > #ifdef chunks) > lzo_bytep -> unsigned char * > lzo_uint -> size_t > lzo_xint -> size_t
Is this safe (as far as compressed LZO stream is concerned) -- or is it even needed (could it be unsigned int)? > - m_pos -= (*(const unsigned short *)ip) >> 2; > -#else > - m_pos = op - 1; > - m_pos -= (ip[0] >> 2) + (ip[1] << 6); > -#endif > > + m_pos = op - 1 - (cpu_to_le16(*(const u16 *)ip) >> 2); > > (Andrey suggested le16_to_cpu for above but I think it should be cpu_to_le16). > *** Need testing on big endian machine *** On i386, both cpu_to_le16 and le16_to_cpu do nothing. On sparc for example, cpu_to_leXX and leXX_to_cpu do 'the same' ;-) they swap 1234<->4321. It is the bytestream (ip) that is reinterpreted as uint16_t. And I really doubt that the LZO author has a big-endian machine, given the days of ubiquitous x86. le16_to_cpu it is. Jan -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/