On 21-10-21, 12:07, Geert Uytterhoeven wrote: > On Thu, Oct 21, 2021 at 11:52 AM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > > The structure will get aligned to the size of largest element and each > > element will be aligned to itself. I don't see how this will break > > even in case of 32/64 bit communication. > > Structures are not aligned to the size of the largest element, but > to the largest alignment needed for each member. Right, I was talking in terms of the structures we have here for GPIO. The biggest member here (for any structure) is 32bits long, and compiler shouldn't add extra padding here. > This can be smaller than the size of the largest element. > E.g. alignof(long long) might be 4, not 8. Right. > And m68k aligns to two bytes at most. Interesting, I assumed that it will be 4bytes for 32 bit systems. So in case of m68k, we will see something like this ? struct foo { u8 a; // aligned to 2 bytes // padding of 1 byte u32 b; // aligned to 2 bytes } -- viresh