|
From: | Lei Li |
Subject: | Re: [Qemu-devel] [PATCH] chardev: Get filename for new qapi backend |
Date: | Wed, 15 May 2013 15:26:07 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 |
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..
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
[Prev in Thread] | Current Thread | [Next in Thread] |