qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/2] vl: add -vga help support


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH 2/2] vl: add -vga help support
Date: Fri, 12 Apr 2019 18:15:52 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1

On 4/12/19 5:27 PM, Marc-André Lureau wrote:
> Provide help output similar to other argument help handling:
> 
> $ qemu-system-x86_64 -vga help
> none
> std                  standard VGA (default)
> cirrus               Cirrus VGA
> vmware               VMWare SVGA
> xenfb
> qxl                  QXL VGA
> virtio               Virtio VG

Maybe you can show the previous behavior:

$ qemu-system-x86_64 -vga help
qemu-system-x86_64: unknown vga type: help

> 
> Signed-off-by: Marc-André Lureau <address@hidden>

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>

> ---
>  vl.c | 40 +++++++++++++++++++++++++++++++---------
>  1 file changed, 31 insertions(+), 9 deletions(-)
> 
> diff --git a/vl.c b/vl.c
> index 0a96232e95..840c45c00f 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2080,11 +2080,39 @@ static bool vga_interface_available(VGAInterfaceType 
> t)
>             object_class_by_name(ti->class_names[1]);
>  }
>  
> -static void select_vgahw(const char *p)
> +static const char *
> +get_default_vga_model(const MachineClass *machine_class)
> +{
> +    if (machine_class->default_display) {
> +        return machine_class->default_display;
> +    } else if (vga_interface_available(VGA_CIRRUS)) {
> +        return "cirrus";
> +    } else if (vga_interface_available(VGA_STD)) {
> +        return "std";
> +    }
> +
> +    return NULL;
> +}
> +
> +static void select_vgahw(const MachineClass *machine_class, const char *p)
>  {
>      const char *opts;
>      int t;
>  
> +    if (g_str_equal(p, "help")) {
> +        const char *def = get_default_vga_model(machine_class);
> +
> +        for (t = 0; t < VGA_TYPE_MAX; t++) {
> +            const VGAInterfaceInfo *ti = &vga_interfaces[t];
> +
> +            if (vga_interface_available(t) && ti->opt_name) {
> +                printf("%-20s %s%s\n", ti->opt_name, ti->name ?: "",
> +                       g_str_equal(ti->opt_name, def) ? " (default)" : "");
> +            }
> +        }
> +        exit(0);
> +    }
> +
>      assert(vga_interface_type == VGA_NONE);
>      for (t = 0; t < VGA_TYPE_MAX; t++) {
>          const VGAInterfaceInfo *ti = &vga_interfaces[t];
> @@ -4437,16 +4465,10 @@ int main(int argc, char **argv, char **envp)
>  
>      /* If no default VGA is requested, the default is "none".  */
>      if (default_vga) {
> -        if (machine_class->default_display) {
> -            vga_model = machine_class->default_display;
> -        } else if (vga_interface_available(VGA_CIRRUS)) {
> -            vga_model = "cirrus";
> -        } else if (vga_interface_available(VGA_STD)) {
> -            vga_model = "std";
> -        }
> +        vga_model = get_default_vga_model(machine_class);
>      }
>      if (vga_model) {
> -        select_vgahw(vga_model);
> +        select_vgahw(machine_class, vga_model);
>      }
>  
>      if (watchdog) {
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]