Re: [Qemu-devel] [PATCH v3 12/12] vl: drop display_type variable

2018-02-02 Thread Eric Blake
On 02/02/2018 05:10 AM, Gerd Hoffmann wrote:
> Switch over all leftover users to qapi DisplayType.
> Then delete the unused display_type variable.
> 
> Add 'default' DisplayType, which isn't an actual display type but
> a placeholder for "user didn't specify a display".  It will be replaced
> by the DisplayType actually used, which in turn depends on the
> DisplayTypes availabel in the particular build.

s/availabel/available/

> 
> Signed-off-by: Gerd Hoffmann 
> ---
>  vl.c | 54 ++
>  qapi/ui.json |  5 +++--
>  2 files changed, 17 insertions(+), 42 deletions(-)
> 

> +++ b/qapi/ui.json
> @@ -1017,7 +1017,7 @@
>  #
>  ##
>  { 'enum': 'DisplayType',
> -  'data': [ 'none', 'gtk', 'sdl',
> +  'data': [ 'default', 'none', 'gtk', 'sdl',
>  'egl-headless', 'curses', 'cocoa' ] }

Worth documenting that the 'default' value is special and will be
converted to one of the other types, based on compile-time availability?

>  
>  ##
> @@ -1039,7 +1039,8 @@
>  '*window-close'  : 'bool',
>  '*gl': 'bool' },
>'discriminator' : 'type',
> -  'data': { 'none'   : 'DisplayNoOpts',
> +  'data': { 'default': 'DisplayNoOpts',
> +'none'   : 'DisplayNoOpts',
>  'gtk': 'DisplayGTK',
>  'sdl': 'DisplayNoOpts',
>  'egl-headless'   : 'DisplayNoOpts',
> 

Reviewed-by: Eric Blake 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



signature.asc
Description: OpenPGP digital signature


[Qemu-devel] [PATCH v3 12/12] vl: drop display_type variable

2018-02-02 Thread Gerd Hoffmann
Switch over all leftover users to qapi DisplayType.
Then delete the unused display_type variable.

Add 'default' DisplayType, which isn't an actual display type but
a placeholder for "user didn't specify a display".  It will be replaced
by the DisplayType actually used, which in turn depends on the
DisplayTypes availabel in the particular build.

Signed-off-by: Gerd Hoffmann 
---
 vl.c | 54 ++
 qapi/ui.json |  5 +++--
 2 files changed, 17 insertions(+), 42 deletions(-)

diff --git a/vl.c b/vl.c
index 4ef774e783..42867d60f8 100644
--- a/vl.c
+++ b/vl.c
@@ -2079,24 +2079,12 @@ static void select_vgahw(const char *p)
 }
 }
 
-typedef enum LegacyDisplayType {
-DT_DEFAULT,
-DT_CURSES,
-DT_SDL,
-DT_COCOA,
-DT_GTK,
-DT_EGL,
-DT_NONE,
-} LegacyDisplayType;
-
-static LegacyDisplayType select_display(const char *p)
+static void parse_display(const char *p)
 {
 const char *opts;
-LegacyDisplayType display = DT_DEFAULT;
 
 if (strstart(p, "sdl", &opts)) {
 #ifdef CONFIG_SDL
-display = DT_SDL;
 dpy.type = DISPLAY_TYPE_SDL;
 while (*opts) {
 const char *nextopt;
@@ -2175,7 +2163,6 @@ static LegacyDisplayType select_display(const char *p)
 } else if (strstart(p, "egl-headless", &opts)) {
 #ifdef CONFIG_OPENGL_DMABUF
 display_opengl = 1;
-display = DT_EGL;
 dpy.type = DISPLAY_TYPE_EGL_HEADLESS;
 #else
 fprintf(stderr, "egl support is disabled\n");
@@ -2183,7 +2170,6 @@ static LegacyDisplayType select_display(const char *p)
 #endif
 } else if (strstart(p, "curses", &opts)) {
 #ifdef CONFIG_CURSES
-display = DT_CURSES;
 dpy.type = DISPLAY_TYPE_CURSES;
 #else
 error_report("curses support is disabled");
@@ -2191,7 +2177,6 @@ static LegacyDisplayType select_display(const char *p)
 #endif
 } else if (strstart(p, "gtk", &opts)) {
 #ifdef CONFIG_GTK
-display = DT_GTK;
 dpy.type = DISPLAY_TYPE_GTK;
 while (*opts) {
 const char *nextopt;
@@ -2228,14 +2213,11 @@ static LegacyDisplayType select_display(const char *p)
 exit(1);
 #endif
 } else if (strstart(p, "none", &opts)) {
-display = DT_NONE;
 dpy.type = DISPLAY_TYPE_NONE;
 } else {
 error_report("unknown display type");
 exit(1);
 }
-
-return display;
 }
 
 static int balloon_parse(const char *arg)
@@ -3063,7 +3045,6 @@ int main(int argc, char **argv, char **envp)
 const char *incoming = NULL;
 bool userconfig = true;
 bool nographic = false;
-LegacyDisplayType display_type = DT_DEFAULT;
 int display_remote = 0;
 const char *log_mask = NULL;
 const char *log_file = NULL;
@@ -3257,18 +3238,16 @@ int main(int argc, char **argv, char **envp)
 }
 break;
 case QEMU_OPTION_display:
-display_type = select_display(optarg);
+parse_display(optarg);
 break;
 case QEMU_OPTION_nographic:
 olist = qemu_find_opts("machine");
 qemu_opts_parse_noisily(olist, "graphics=off", false);
 nographic = true;
-display_type = DT_NONE;
 dpy.type = DISPLAY_TYPE_NONE;
 break;
 case QEMU_OPTION_curses:
 #ifdef CONFIG_CURSES
-display_type = DT_CURSES;
 dpy.type = DISPLAY_TYPE_CURSES;
 #else
 error_report("curses support is disabled");
@@ -3676,7 +3655,6 @@ int main(int argc, char **argv, char **envp)
 break;
 case QEMU_OPTION_sdl:
 #ifdef CONFIG_SDL
-display_type = DT_SDL;
 dpy.type = DISPLAY_TYPE_SDL;
 break;
 #else
@@ -4292,7 +4270,7 @@ int main(int argc, char **argv, char **envp)
 exit(1);
 }
 #ifdef CONFIG_CURSES
-if (display_type == DT_CURSES) {
+if (dpy.type == DISPLAY_TYPE_CURSES) {
 error_report("curses display cannot be used with -daemonize");
 exit(1);
 }
@@ -4338,39 +4316,35 @@ int main(int argc, char **argv, char **envp)
 display_remote++;
 }
 #endif
-if (display_type == DT_DEFAULT && !display_remote) {
+if (dpy.type == DISPLAY_TYPE_DEFAULT && !display_remote) {
 #if defined(CONFIG_GTK)
-display_type = DT_GTK;
 dpy.type = DISPLAY_TYPE_GTK;
 #elif defined(CONFIG_SDL)
-display_type = DT_SDL;
 dpy.type = DISPLAY_TYPE_SDL;
 #elif defined(CONFIG_COCOA)
-display_type = DT_COCOA;
 dpy.type = DISPLAY_TYPE_COCOA;
 #elif defined(CONFIG_VNC)
 vnc_parse("localhost:0,to=99,id=default", &error_abort);
 #else
-display_type = DT_NONE;
 dpy.type = DISPLAY_TYPE_NONE;
 #endif
 }
 
-if ((no_frame || alt_grab || ctrl_grab) && display_type != DT_SDL) {
+if ((no_frame || alt_grab || ctrl_grab) && dpy.