Messages in this thread |  | | Date | Wed, 10 Sep 2008 18:51:37 -0700 | | From | "Chris Leech" <> | | Subject | Re: [PATCH 1/3] 24-bit types: typedef and macros for accessing 3-byte arrays as integers |
| |
On Wed, Sep 10, 2008 at 9:11 AM, Boaz Harrosh <bharrosh@panasas.com> wrote: > Chris you might want to change the definitions at linux/types.h > to: > > typedef struct { __u8 b[3]; } __be24, __le24 __packed; > > With gcc it will not help with the proceeding fields, and the > containing struct will need it's own "__packed" declaration > but it will keep it packed with previous fields.
I haven't seen padding added simply because of a nested structure boundary, but I'm not up on all the ABIs for the different architectures. Obviously a containing structure would want to have the 24-bit type adjacent to an 8-bit type, or have it's own packed attribute if needed.
It shouldn't hurt, in this case the members shouldn't be expected to have more than byte alignment anyway, but I can't see how it would help.
If there's a particular arch that might be a problem I'm happy to look into it, but I don't want to start throwing packed attributes around just in case.
Chris
|  |