mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-protocol
synced 2025-12-31 20:04:07 +00:00
qxl_dev: Align QXLRam to 4 bytes
This avoids compilers detect misaligned access which can lead to warnings. In QEMU the structure is allocated at the beginning of a 4Kb page, in Xspice is allocated with a calloc, so the structure will end up 4 bytes aligned as well with these users. We are not aware of other users of QXLRam, but if there was, it's likely the struct would be at least naturally aligned, so this change should not impact anyone. Aligning to 4 bytes maintains the size of the structure unchanged avoiding possible ABI changes. clang currently generates an invalid function call if a misaligned 4 byte atomic operation is detected. This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1565766 Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Christophe Fergeau <cfergeau@redhat.com>
This commit is contained in:
parent
dca5931a3a
commit
beda5ec7a6
@ -32,6 +32,7 @@
|
||||
/* See start-packed.h for details */
|
||||
|
||||
#undef SPICE_ATTR_PACKED
|
||||
#undef SPICE_ATTR_ALIGNED
|
||||
|
||||
#if defined(__MINGW32__) || !defined(__GNUC__)
|
||||
#pragma pack(pop)
|
||||
|
||||
@ -253,7 +253,7 @@ SPICE_RING_DECLARE(QXLReleaseRing, uint64_t, QXL_RELEASE_RING_SIZE);
|
||||
#define QXL_INTERRUPT_CLIENT_MONITORS_CONFIG (1 << 5)
|
||||
|
||||
/* qxl-1 compat: append only */
|
||||
typedef struct SPICE_ATTR_PACKED QXLRam {
|
||||
typedef struct SPICE_ATTR_ALIGNED(4) SPICE_ATTR_PACKED QXLRam {
|
||||
uint32_t magic;
|
||||
uint32_t int_pending;
|
||||
uint32_t int_mask;
|
||||
|
||||
@ -48,6 +48,7 @@
|
||||
#ifdef __GNUC__
|
||||
|
||||
#define SPICE_ATTR_PACKED __attribute__ ((__packed__))
|
||||
#define SPICE_ATTR_ALIGNED(n) __attribute__ ((__aligned__ (n)))
|
||||
|
||||
#ifdef __MINGW32__
|
||||
#pragma pack(push,1)
|
||||
@ -58,6 +59,7 @@
|
||||
#pragma pack(push)
|
||||
#pragma pack(1)
|
||||
#define SPICE_ATTR_PACKED
|
||||
#define SPICE_ATTR_ALIGNED(n) __declspec (align (n))
|
||||
#pragma warning(disable:4200)
|
||||
#pragma warning(disable:4103)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user