@thomaseichinger, that's not what I meant (well, I didn't really explain myself, I guess):

Normally the compiler is allowed to add padding to structures. That is good and well as long as it is done consistently. But if a hardware manual describes a struct, the software must not add any padding. One can prohibit the compiler by using bit fields and by using `__attribute__ ((__packed__))`. Since there are bit fields inside the members of `ASM_struct`, the don't-use-padding attribute might be propagated to the outer struct as well, but I am not sure about that, are you?

The safe course would be to add `__attribute__ ((__packed__))` to the definition.