[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/5] xen: Add V4V implementation
On 19/07/12 12:33, Stefano Stabellini wrote: >>> The problem isn't with the individual fields (they are all correctly >>> aligned) it is >>> the the overall structure size which is 64 even so offset of q is 60 >>> (and sizeof q >>> should be 0). >>> >>> I think there is no way around it. The structure I have should be >>> aligned on 64b anyway. >>> >>> Thanks, >>> Jean >> Ah yes - silly me. I understand your problem now >> >> struct b >> { >> uint64_t a; >> uint32_t b; >> uint16_t c; >> uint16_t d; >> uint32_t e; >> uint32_t f; >> uint32_t g; >> uint8_t h[32]; >> union { uint8_t q[0]; uint32_t _pad; } u; >> }; >> >> This works for me on gcc and gives identical sizeof and offsetof results >> on both 32 and 64bit. > Yes, but then the access to q becomes b.u.q unless we use anonymous > unions that are only available in C11. Combine it with the Linux style of #define q u.q although with rather more sensible names than q and u, or just use a macro for all accesses to q from b. -- Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer T: +44 (0)1223 225 900, http://www.citrix.com _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |