Re: [Open-FCoE] [PATCH 1/3] 24-bit types: typedef and macros foraccessing 3-byte arrays as integers

From: Boaz Harrosh
Date: Wed Sep 10 2008 - 14:11:21 EST


Chris Leech wrote:
> Chris Leech wrote:
>> Dave Kleikamp wrote:
>>> @@ -62,7 +60,7 @@ struct timestruc_t {
>>> */
>>> typedef struct {
>>> unsigned len:24;
>>> - unsigned off1:8;
>>> + u8 off1;
>>> u32 off2;
>>> } lxd_t;
>> Shouldn't len here be changed to a __le24? I think this just changed
>> the size of lxd_t by a byte.
>
> Never mind, I see that it's a host order field. And presently surprised
> to see that gcc combines the 24-bit bitfield with the following u8.
>
> Chris

It does because these are all bytes. on x86. But this is not guarantied
for all ARCHs and machine-word-sizes. In any way this should be consistent
with the rest of the file.

Please see my other reply about packing of structures. If this is
on-the-wire then there are problems.

Boaz
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/