diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-03-25 18:02:00 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-03-25 18:02:00 +0000 |
commit | 6131fde768de12a5e56127096c828525b08232d3 (patch) | |
tree | a029c5e7fb75aacf0f8b5673bb276c69fb55d574 | |
parent | 2526bd99954c96fad7b544630a1eb9584a9a357b (diff) | |
download | xen-6131fde768de12a5e56127096c828525b08232d3.tar.gz xen-6131fde768de12a5e56127096c828525b08232d3.tar.bz2 xen-6131fde768de12a5e56127096c828525b08232d3.zip |
Prefix unnamed union structure fields with __extension__ to make it
work properly even in e.g. C99 standard mode.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
-rw-r--r-- | tools/include/xen-foreign/mkheader.py | 2 | ||||
-rw-r--r-- | xen/include/public/arch-ia64.h | 12 | ||||
-rw-r--r-- | xen/include/public/arch-x86/xen-x86_64.h | 2 |
3 files changed, 9 insertions, 7 deletions
diff --git a/tools/include/xen-foreign/mkheader.py b/tools/include/xen-foreign/mkheader.py index 3d75a7a4b6..ba6f98cfce 100644 --- a/tools/include/xen-foreign/mkheader.py +++ b/tools/include/xen-foreign/mkheader.py @@ -38,7 +38,7 @@ inttypes["x86_64"] = { }; header["x86_64"] = """ #ifdef __GNUC__ -# define __DECL_REG(name) union { uint64_t r ## name, e ## name; } +# define __DECL_REG(name) __extension__ union { uint64_t r ## name, e ## name; } # define __align8__ __attribute__((aligned (8))) #else # define __DECL_REG(name) uint64_t r ## name diff --git a/xen/include/public/arch-ia64.h b/xen/include/public/arch-ia64.h index e4cf73fc17..afb2a52164 100644 --- a/xen/include/public/arch-ia64.h +++ b/xen/include/public/arch-ia64.h @@ -64,6 +64,8 @@ typedef unsigned long xen_pfn_t; #ifndef __ASSEMBLY__ +#define __anonymous_union __extension__ union + typedef unsigned long xen_ulong_t; #ifdef __XEN_TOOLS__ @@ -165,11 +167,11 @@ struct mapped_regs { unsigned long reserved1[29]; unsigned long vhpi; unsigned long reserved2[95]; - union { + __anonymous_union { unsigned long vgr[16]; unsigned long bank1_regs[16]; // bank1 regs (r16-r31) when bank0 active }; - union { + __anonymous_union { unsigned long vbgr[16]; unsigned long bank0_regs[16]; // bank0 regs (r16-r31) when bank1 active }; @@ -180,7 +182,7 @@ struct mapped_regs { unsigned long vpsr; unsigned long vpr; unsigned long reserved4[76]; - union { + __anonymous_union { unsigned long vcr[128]; struct { unsigned long dcr; // CR0 @@ -214,7 +216,7 @@ struct mapped_regs { unsigned long rsv6[46]; }; }; - union { + __anonymous_union { unsigned long reserved5[128]; struct { unsigned long precover_ifs; @@ -608,7 +610,7 @@ struct xen_ia64_boot_param { struct xen_ia64_opt_feature { unsigned long cmd; /* Which feature */ unsigned char on; /* Switch feature on/off */ - union { + __anonymous_union { struct { /* The page protection bit mask of the pte. * This will be or'ed with the pte. */ diff --git a/xen/include/public/arch-x86/xen-x86_64.h b/xen/include/public/arch-x86/xen-x86_64.h index 843c0bbbdc..d07f03904b 100644 --- a/xen/include/public/arch-x86/xen-x86_64.h +++ b/xen/include/public/arch-x86/xen-x86_64.h @@ -142,7 +142,7 @@ struct iret_context { #ifdef __GNUC__ /* Anonymous union includes both 32- and 64-bit names (e.g., eax/rax). */ -#define __DECL_REG(name) union { \ +#define __DECL_REG(name) __extension__ union { \ uint64_t r ## name, e ## name; \ uint32_t _e ## name; \ } |