On 05/15/2013 01:39 PM, Gerd Hoffmann wrote:
On 05/15/13 05:52, Lei Li wrote:
This patch add the filename when the new qapi backend init from opts.

Commit 2c5f488293c7d0cd095635c74157c2526e2c4947 add support for
qapi-based chardev initialization, but miss the filename of the
char device as below:

(qemu) info chardev
parallel0: filename=(null)
serial0: filename=(null)
compat_monitor0: filename=(null)
@@ -3276,6 +3276,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
          ChardevReturn *ret = NULL;
          const char *id = qemu_opts_id(opts);
          const char *bid = NULL;
+        char *filename = g_strdup(qemu_opt_get(opts, "backend"));
if (qemu_opt_get_bool(opts, "mux", 0)) {
              bid = g_strdup_printf("%s-base", id);
@@ -3308,6 +3309,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
          }
chr = qemu_chr_find(id);
+        chr->filename = filename;
That should happen in qmp_chardev_add(), so filename is set consistently
for every chardev no matter how it gets created.

Yeah, I was hesitant to add it here for that it does not looks very logical/...
/But I am not sure about the best place for it..
//  
<http://www.google.com.hk/search?newwindow=1&safe=strict&biw=1280&bih=646&q=i+am+a+little+Hesitant&spell=1&sa=X&ei=OiaTUaGALpPI4AOOoIDoCQ&ved=0CCkQvwUoAA>


Take care to not overwrite filename, some functions
(qmp_chardev_open_socket for example) do set chr->filename already.

Yes, for the char device pipe, pty, socket, they set chr->filename in their
own open functions. But I think the overwrite will not happen because
it will not get "backend" by qemu_opt_get() for these chardevs.


Maybe it's better to put that into the individual qmp_chardev_open_*
functions anyway.

OK, I'll have a try and see if everyone like it, I don't have better idea..


cheers,
   Gerd




--
Lei


Reply via email to