[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 5/5] xen/x86_emulate: Shuffle use of __attribute__((packed))
Also include #defines for the test code to allow compilation. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CC: Keir Fraser <keir@xxxxxxx> CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- I have mixed thoughts about this, which is why it is explicit separated from the rest of the series. On the one hand, consistency is good but on the other, it makes x86_emulate harder to use as a dropin in other code. --- tools/tests/x86_emulator/test_x86_emulator.c | 2 ++ tools/tests/x86_emulator/x86_emulate.c | 2 ++ xen/arch/x86/x86_emulate/x86_emulate.h | 8 ++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c index 7404ee3..17b674b 100644 --- a/tools/tests/x86_emulator/test_x86_emulator.c +++ b/tools/tests/x86_emulator/test_x86_emulator.c @@ -7,6 +7,8 @@ #include <xen/xen.h> #include <sys/mman.h> +#define __packed __attribute__((packed)) + #include "x86_emulate/x86_emulate.h" #include "blowfish.h" diff --git a/tools/tests/x86_emulator/x86_emulate.c b/tools/tests/x86_emulator/x86_emulate.c index b157ade..ef9bfe9 100644 --- a/tools/tests/x86_emulator/x86_emulate.c +++ b/tools/tests/x86_emulator/x86_emulate.c @@ -14,5 +14,7 @@ typedef bool bool_t; #define cpu_has_amd_erratum(nr) 0 #define mark_regs_dirty(r) ((void)(r)) +#define __packed __attribute__((packed)) + #include "x86_emulate/x86_emulate.h" #include "x86_emulate/x86_emulate.c" diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h index 85bc4bc..107addf 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.h +++ b/xen/arch/x86/x86_emulate/x86_emulate.h @@ -55,7 +55,7 @@ enum x86_segment { * Attribute for segment selector. This is a copy of bit 40:47 & 52:55 of the * segment descriptor. It happens to match the format of an AMD SVM VMCB. */ -typedef union segment_attributes { +typedef union __packed segment_attributes { uint16_t bytes; struct { @@ -69,18 +69,18 @@ typedef union segment_attributes { uint16_t g: 1; /* 11; Bit 55 */ uint16_t pad: 4; } fields; -} __attribute__ ((packed)) segment_attributes_t; +} segment_attributes_t; /* * Full state of a segment register (visible and hidden portions). * Again, this happens to match the format of an AMD SVM VMCB. */ -struct segment_register { +struct __packed segment_register { uint16_t sel; segment_attributes_t attr; uint32_t limit; uint64_t base; -} __attribute__ ((packed)); +}; /* * Return codes from state-accessor functions and from x86_emulate(). -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |