[Spice-devel] [PATCH spice-protocol 2/2] qxl_dev: Move QXLReleaseInfoExt out of start/end-packed.h

Frediano Ziglio fziglio at redhat.com
Thu Jul 4 13:56:10 UTC 2019


This structure is not declares as SPICE_ATTR_PACKED resulting it
as aligned and no packed using GCC (no MingW).
This structure is only packed under MingW or Microsoft compilers.
This structure is not technically a definition for QXL device but
is used only for spice-server QXL interface.
As said above this change could affect only MingW/Microsoft that is
only Windows ABI of spice-server (very recently added) so
following lines are really not much important.
Note that Windows does not support architectures with CPUs not
supporting unaligned access.
Under Win32 this change don't affect size so nothing much can change.
This structure is currently passed as value to release_resource
callback. Under Win64 this structure is passed like a
"const QXLReleaseInfoExt *" so even if the structure is 16 bytes instead
of 12 this is read the same way.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 spice/qxl_dev.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/spice/qxl_dev.h b/spice/qxl_dev.h
index 659f930..c844d7b 100644
--- a/spice/qxl_dev.h
+++ b/spice/qxl_dev.h
@@ -280,11 +280,6 @@ typedef union SPICE_ATTR_PACKED QXLReleaseInfo {
     uint64_t next;    // out
 } QXLReleaseInfo;
 
-typedef struct QXLReleaseInfoExt {
-    QXLReleaseInfo *info;
-    uint32_t group_id;
-} QXLReleaseInfoExt;
-
 typedef struct  SPICE_ATTR_PACKED QXLDataChunk {
     uint32_t data_size;
     QXLPHYSICAL prev_chunk;
@@ -779,4 +774,9 @@ typedef struct SPICE_ATTR_PACKED QXLMonitorsConfig {
 
 #include <spice/end-packed.h>
 
+typedef struct QXLReleaseInfoExt {
+    QXLReleaseInfo *info;
+    uint32_t group_id;
+} QXLReleaseInfoExt;
+
 #endif /* _H_QXL_DEV */
-- 
2.20.1



More information about the Spice-devel mailing list