On Tue, 2006-12-19 at 12:56 +0200, Momchil Velikov wrote: > Arjan van de Ven wrote: > > On Mon, 2006-12-18 at 17:12 -0500, Ming Zhang wrote: > >> See this code piece > >> > >> http://lxr.linux.no/source/drivers/scsi/libata-scsi.c?v=2.6.18#L1049 > >> > >> 1056 lba |= ((u64)scsicmd[2]) << 24; > >> 1057 lba |= ((u64)scsicmd[3]) << 16; > >> 1058 lba |= ((u64)scsicmd[4]) << 8; > >> 1059 lba |= ((u64)scsicmd[5]); > >> > >> it can also be written as > >> > >> lba = be32_to_cpu(*(u32 *)(&scsicmd[2]) > > ISO/IEC 9899:1999(E) "6.5 Expressions" [#7] read but still can not understand why u list this here. i wrote code in that way because scsi specification list cmd in big endian and that 4 byte will fit a 32bit BE well. > > For example, what is the alignment of ``scsicmd'' ? but as all of you pointed out, the alignment will be an issue. > > ~velco > -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/