qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3] vl.c: Add '-L help' which lists data dirs.
@ 2016-05-16 16:34 Richard W.M. Jones
  2016-05-16 16:34 ` Richard W.M. Jones
  0 siblings, 1 reply; 5+ messages in thread
From: Richard W.M. Jones @ 2016-05-16 16:34 UTC (permalink / raw)
  To: pbonzini; +Cc: qemu-devel, berrange, peter.maydell, eblake

v2 -> v3:

- Use constants true/false for list_data_dirs variable.

Rich.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH v3] vl.c: Add '-L help' which lists data dirs.
  2016-05-16 16:34 [Qemu-devel] [PATCH v3] vl.c: Add '-L help' which lists data dirs Richard W.M. Jones
@ 2016-05-16 16:34 ` Richard W.M. Jones
  2016-05-24 13:07   ` Richard W.M. Jones
  2016-06-13 11:55   ` Paolo Bonzini
  0 siblings, 2 replies; 5+ messages in thread
From: Richard W.M. Jones @ 2016-05-16 16:34 UTC (permalink / raw)
  To: pbonzini; +Cc: qemu-devel, berrange, peter.maydell, eblake

QEMU compiles a list of data directories from various sources.  When
consuming a QEMU binary it's useful to be able to get this list of
data directories: a primary reason is so you can list what BIOSes or
keymaps ship with this version of QEMU.  However without reproducing
the method that QEMU uses internally, it's not possible to get the
list of data directories.

This commit adds a simple '-L help' option that just lists out the
data directories as qemu calculates them:

$ ./x86_64-softmmu/qemu-system-x86_64 -L help
/home/rjones/d/qemu/pc-bios
/usr/local/share/qemu

$ ./x86_64-softmmu/qemu-system-x86_64 -L /tmp -L help
/tmp
/home/rjones/d/qemu/pc-bios
/usr/local/share/qemu

Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 qemu-options.hx |  2 ++
 vl.c            | 13 ++++++++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/qemu-options.hx b/qemu-options.hx
index 6106520..bec0210 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -3199,6 +3199,8 @@ STEXI
 @item -L  @var{path}
 @findex -L
 Set the directory for the BIOS, VGA BIOS and keymaps.
+
+To list all the data directories, use @code{-L help}.
 ETEXI
 
 DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
diff --git a/vl.c b/vl.c
index 5fd22cb..d25f2f7 100644
--- a/vl.c
+++ b/vl.c
@@ -2990,6 +2990,7 @@ int main(int argc, char **argv, char **envp)
     FILE *vmstate_dump_file = NULL;
     Error *main_loop_err = NULL;
     Error *err = NULL;
+    bool list_data_dirs = false;
 
     qemu_init_cpu_loop();
     qemu_mutex_lock_iothread();
@@ -3371,7 +3372,9 @@ int main(int argc, char **argv, char **envp)
                 add_device_config(DEV_GDB, optarg);
                 break;
             case QEMU_OPTION_L:
-                if (data_dir_idx < ARRAY_SIZE(data_dir)) {
+                if (is_help_option(optarg)) {
+                    list_data_dirs = true;
+                } else if (data_dir_idx < ARRAY_SIZE(data_dir)) {
                     data_dir[data_dir_idx++] = optarg;
                 }
                 break;
@@ -4128,6 +4131,14 @@ int main(int argc, char **argv, char **envp)
         data_dir[data_dir_idx++] = CONFIG_QEMU_DATADIR;
     }
 
+    /* -L help lists the data directories and exits. */
+    if (list_data_dirs) {
+        for (i = 0; i < data_dir_idx; i++) {
+            printf("%s\n", data_dir[i]);
+        }
+        exit(0);
+    }
+
     smp_parse(qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
 
     machine_class->max_cpus = machine_class->max_cpus ?: 1; /* Default to UP */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH v3] vl.c: Add '-L help' which lists data dirs.
  2016-05-16 16:34 ` Richard W.M. Jones
@ 2016-05-24 13:07   ` Richard W.M. Jones
  2016-06-13 11:55   ` Paolo Bonzini
  1 sibling, 0 replies; 5+ messages in thread
From: Richard W.M. Jones @ 2016-05-24 13:07 UTC (permalink / raw)
  To: pbonzini; +Cc: peter.maydell, qemu-devel

Any further objections to this one?  It's a pretty useful
patch for us.

On Mon, May 16, 2016 at 05:34:35PM +0100, Richard W.M. Jones wrote:
> QEMU compiles a list of data directories from various sources.  When
> consuming a QEMU binary it's useful to be able to get this list of
> data directories: a primary reason is so you can list what BIOSes or
> keymaps ship with this version of QEMU.  However without reproducing
> the method that QEMU uses internally, it's not possible to get the
> list of data directories.
> 
> This commit adds a simple '-L help' option that just lists out the
> data directories as qemu calculates them:
> 
> $ ./x86_64-softmmu/qemu-system-x86_64 -L help
> /home/rjones/d/qemu/pc-bios
> /usr/local/share/qemu
> 
> $ ./x86_64-softmmu/qemu-system-x86_64 -L /tmp -L help
> /tmp
> /home/rjones/d/qemu/pc-bios
> /usr/local/share/qemu
> 
> Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> ---
>  qemu-options.hx |  2 ++
>  vl.c            | 13 ++++++++++++-
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 6106520..bec0210 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -3199,6 +3199,8 @@ STEXI
>  @item -L  @var{path}
>  @findex -L
>  Set the directory for the BIOS, VGA BIOS and keymaps.
> +
> +To list all the data directories, use @code{-L help}.
>  ETEXI
>  
>  DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
> diff --git a/vl.c b/vl.c
> index 5fd22cb..d25f2f7 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2990,6 +2990,7 @@ int main(int argc, char **argv, char **envp)
>      FILE *vmstate_dump_file = NULL;
>      Error *main_loop_err = NULL;
>      Error *err = NULL;
> +    bool list_data_dirs = false;
>  
>      qemu_init_cpu_loop();
>      qemu_mutex_lock_iothread();
> @@ -3371,7 +3372,9 @@ int main(int argc, char **argv, char **envp)
>                  add_device_config(DEV_GDB, optarg);
>                  break;
>              case QEMU_OPTION_L:
> -                if (data_dir_idx < ARRAY_SIZE(data_dir)) {
> +                if (is_help_option(optarg)) {
> +                    list_data_dirs = true;
> +                } else if (data_dir_idx < ARRAY_SIZE(data_dir)) {
>                      data_dir[data_dir_idx++] = optarg;
>                  }
>                  break;
> @@ -4128,6 +4131,14 @@ int main(int argc, char **argv, char **envp)
>          data_dir[data_dir_idx++] = CONFIG_QEMU_DATADIR;
>      }
>  
> +    /* -L help lists the data directories and exits. */
> +    if (list_data_dirs) {
> +        for (i = 0; i < data_dir_idx; i++) {
> +            printf("%s\n", data_dir[i]);
> +        }
> +        exit(0);
> +    }
> +
>      smp_parse(qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
>  
>      machine_class->max_cpus = machine_class->max_cpus ?: 1; /* Default to UP */
> -- 
> 2.7.4
> 

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH v3] vl.c: Add '-L help' which lists data dirs.
  2016-05-16 16:34 ` Richard W.M. Jones
  2016-05-24 13:07   ` Richard W.M. Jones
@ 2016-06-13 11:55   ` Paolo Bonzini
  2016-06-13 12:54     ` Richard W.M. Jones
  1 sibling, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2016-06-13 11:55 UTC (permalink / raw)
  To: Richard W.M. Jones; +Cc: peter.maydell, qemu-devel



On 16/05/2016 18:34, Richard W.M. Jones wrote:
> QEMU compiles a list of data directories from various sources.  When
> consuming a QEMU binary it's useful to be able to get this list of
> data directories: a primary reason is so you can list what BIOSes or
> keymaps ship with this version of QEMU.  However without reproducing
> the method that QEMU uses internally, it's not possible to get the
> list of data directories.
> 
> This commit adds a simple '-L help' option that just lists out the
> data directories as qemu calculates them:
> 
> $ ./x86_64-softmmu/qemu-system-x86_64 -L help
> /home/rjones/d/qemu/pc-bios
> /usr/local/share/qemu
> 
> $ ./x86_64-softmmu/qemu-system-x86_64 -L /tmp -L help
> /tmp
> /home/rjones/d/qemu/pc-bios
> /usr/local/share/qemu
> 
> Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> ---
>  qemu-options.hx |  2 ++
>  vl.c            | 13 ++++++++++++-
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 6106520..bec0210 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -3199,6 +3199,8 @@ STEXI
>  @item -L  @var{path}
>  @findex -L
>  Set the directory for the BIOS, VGA BIOS and keymaps.
> +
> +To list all the data directories, use @code{-L help}.
>  ETEXI
>  
>  DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
> diff --git a/vl.c b/vl.c
> index 5fd22cb..d25f2f7 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2990,6 +2990,7 @@ int main(int argc, char **argv, char **envp)
>      FILE *vmstate_dump_file = NULL;
>      Error *main_loop_err = NULL;
>      Error *err = NULL;
> +    bool list_data_dirs = false;
>  
>      qemu_init_cpu_loop();
>      qemu_mutex_lock_iothread();
> @@ -3371,7 +3372,9 @@ int main(int argc, char **argv, char **envp)
>                  add_device_config(DEV_GDB, optarg);
>                  break;
>              case QEMU_OPTION_L:
> -                if (data_dir_idx < ARRAY_SIZE(data_dir)) {
> +                if (is_help_option(optarg)) {
> +                    list_data_dirs = true;
> +                } else if (data_dir_idx < ARRAY_SIZE(data_dir)) {
>                      data_dir[data_dir_idx++] = optarg;
>                  }
>                  break;
> @@ -4128,6 +4131,14 @@ int main(int argc, char **argv, char **envp)
>          data_dir[data_dir_idx++] = CONFIG_QEMU_DATADIR;
>      }
>  
> +    /* -L help lists the data directories and exits. */
> +    if (list_data_dirs) {
> +        for (i = 0; i < data_dir_idx; i++) {
> +            printf("%s\n", data_dir[i]);
> +        }
> +        exit(0);
> +    }
> +
>      smp_parse(qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
>  
>      machine_class->max_cpus = machine_class->max_cpus ?: 1; /* Default to UP */
> 

Queued, thanks.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH v3] vl.c: Add '-L help' which lists data dirs.
  2016-06-13 11:55   ` Paolo Bonzini
@ 2016-06-13 12:54     ` Richard W.M. Jones
  0 siblings, 0 replies; 5+ messages in thread
From: Richard W.M. Jones @ 2016-06-13 12:54 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: peter.maydell, qemu-devel

On Mon, Jun 13, 2016 at 01:55:59PM +0200, Paolo Bonzini wrote:
> On 16/05/2016 18:34, Richard W.M. Jones wrote:
> > QEMU compiles a list of data directories from various sources.  When
> > consuming a QEMU binary it's useful to be able to get this list of
> > data directories: a primary reason is so you can list what BIOSes or
> > keymaps ship with this version of QEMU.  However without reproducing
> > the method that QEMU uses internally, it's not possible to get the
> > list of data directories.
> > 
> > This commit adds a simple '-L help' option that just lists out the
> > data directories as qemu calculates them:
> > 
> > $ ./x86_64-softmmu/qemu-system-x86_64 -L help
> > /home/rjones/d/qemu/pc-bios
> > /usr/local/share/qemu
> > 
> > $ ./x86_64-softmmu/qemu-system-x86_64 -L /tmp -L help
> > /tmp
> > /home/rjones/d/qemu/pc-bios
> > /usr/local/share/qemu
> > 
> > Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>
[...]
> Queued, thanks.

Thanks.  This is a good patch and I think we should have it in qemu.

However the semi-related "bios-fast" patch needs more work, and so I'd
like to withdraw that one from consideration (if it was being
considered ..)

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-06-13 12:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-16 16:34 [Qemu-devel] [PATCH v3] vl.c: Add '-L help' which lists data dirs Richard W.M. Jones
2016-05-16 16:34 ` Richard W.M. Jones
2016-05-24 13:07   ` Richard W.M. Jones
2016-06-13 11:55   ` Paolo Bonzini
2016-06-13 12:54     ` Richard W.M. Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).