[RFCv2 22/46] conf: Extract embedded structs from virDomainGraphicsDef as standalone structs

Shi Lei shi_lei at massclouds.com
Fri Sep 4 03:35:14 UTC 2020


Extract those embedded structs from virDomainGraphicsDef so that we can
specify directives on them.

Signed-off-by: Shi Lei <shi_lei at massclouds.com>
---
 src/conf/domain_conf.h  | 112 ++++++++++++++++++++++------------------
 src/conf/virconftypes.h |  18 +++++++
 2 files changed, 80 insertions(+), 50 deletions(-)

diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 14a3763..3d14aa1 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1672,6 +1672,62 @@ struct _virDomainGraphicsListenDef {
     bool autoGenerated;
 };
 
+struct _virDomainGraphicsSDLDef {
+    char *display;
+    char *xauth;
+    bool fullscreen;
+    virTristateBool gl;
+};
+
+struct _virDomainGraphicsVNCDef {
+    int port;
+    bool portReserved;
+    int websocket;
+    bool websocketGenerated;
+    bool autoport;
+    char *keymap;
+    virDomainGraphicsAuthDef auth;
+    int sharePolicy;
+};
+
+struct _virDomainGraphicsRDPDef {
+    int port;
+    bool autoport;
+    bool replaceUser;
+    bool multiUser;
+};
+
+struct _virDomainGraphicsDesktopDef {
+    char *display;
+    bool fullscreen;
+};
+
+struct _virDomainGraphicsSpiceDef {
+    int port;
+    int tlsPort;
+    bool portReserved;
+    bool tlsPortReserved;
+    virDomainGraphicsSpiceMouseMode mousemode;
+    char *keymap;
+    virDomainGraphicsAuthDef auth;
+    bool autoport;
+    int channels[VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_LAST];
+    virDomainGraphicsSpiceChannelMode defaultMode;
+    int image;
+    int jpeg;
+    int zlib;
+    int playback;
+    int streaming;
+    virTristateBool copypaste;
+    virTristateBool filetransfer;
+    virTristateBool gl;
+    char *rendernode;
+};
+
+struct _virDomainGraphicsEGLHeadlessDef {
+    char *rendernode;
+};
+
 struct _virDomainGraphicsDef {
     virObjectPtr privateData;
 
@@ -1682,56 +1738,12 @@ struct _virDomainGraphicsDef {
      */
     virDomainGraphicsType type;
     union {
-        struct {
-            int port;
-            bool portReserved;
-            int websocket;
-            bool websocketGenerated;
-            bool autoport;
-            char *keymap;
-            virDomainGraphicsAuthDef auth;
-            int sharePolicy;
-        } vnc;
-        struct {
-            char *display;
-            char *xauth;
-            bool fullscreen;
-            virTristateBool gl;
-        } sdl;
-        struct {
-            int port;
-            bool autoport;
-            bool replaceUser;
-            bool multiUser;
-        } rdp;
-        struct {
-            char *display;
-            bool fullscreen;
-        } desktop;
-        struct {
-            int port;
-            int tlsPort;
-            bool portReserved;
-            bool tlsPortReserved;
-            virDomainGraphicsSpiceMouseMode mousemode;
-            char *keymap;
-            virDomainGraphicsAuthDef auth;
-            bool autoport;
-            int channels[VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_LAST];
-            virDomainGraphicsSpiceChannelMode defaultMode;
-            int image;
-            int jpeg;
-            int zlib;
-            int playback;
-            int streaming;
-            virTristateBool copypaste;
-            virTristateBool filetransfer;
-            virTristateBool gl;
-            char *rendernode;
-        } spice;
-        struct {
-            char *rendernode;
-        } egl_headless;
+        virDomainGraphicsSDLDef sdl;
+        virDomainGraphicsVNCDef vnc;
+        virDomainGraphicsRDPDef rdp;
+        virDomainGraphicsDesktopDef desktop;
+        virDomainGraphicsSpiceDef spice;
+        virDomainGraphicsEGLHeadlessDef egl_headless;
     } data;
     /* nListens, listens, and *port are only useful if type is vnc,
      * rdp, or spice. They've been extracted from the union only to
diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h
index 9042a2b..ae7c18d 100644
--- a/src/conf/virconftypes.h
+++ b/src/conf/virconftypes.h
@@ -362,3 +362,21 @@ typedef virDomainXMLPrivateDataCallbacks *virDomainXMLPrivateDataCallbacksPtr;
 
 typedef struct _virDomainXenbusControllerOpts virDomainXenbusControllerOpts;
 typedef virDomainXenbusControllerOpts *virDomainXenbusControllerOptsPtr;
+
+typedef struct _virDomainGraphicsSDLDef virDomainGraphicsSDLDef;
+typedef virDomainGraphicsSDLDef *virDomainGraphicsSDLDefPtr;
+
+typedef struct _virDomainGraphicsVNCDef virDomainGraphicsVNCDef;
+typedef virDomainGraphicsVNCDef *virDomainGraphicsVNCDefPtr;
+
+typedef struct _virDomainGraphicsRDPDef virDomainGraphicsRDPDef;
+typedef virDomainGraphicsRDPDef *virDomainGraphicsRDPDefPtr;
+
+typedef struct _virDomainGraphicsDesktopDef virDomainGraphicsDesktopDef;
+typedef virDomainGraphicsDesktopDef *virDomainGraphicsDesktopDefPtr;
+
+typedef struct _virDomainGraphicsSpiceDef virDomainGraphicsSpiceDef;
+typedef virDomainGraphicsSpiceDef *virDomainGraphicsSpiceDefPtr;
+
+typedef struct _virDomainGraphicsEGLHeadlessDef virDomainGraphicsEGLHeadlessDef;
+typedef virDomainGraphicsEGLHeadlessDef *virDomainGraphicsEGLHeadlessDefPtr;
-- 
2.25.1





More information about the libvir-list mailing list