[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/7] console: add qemu_console_lookup_by_device_
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 1/7] console: add qemu_console_lookup_by_device_name |
Date: |
Fri, 15 Jan 2016 17:22:11 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Gerd Hoffmann <address@hidden> writes:
> We have two places needing this, and a third one will come shortly.
> So create a helper function for that so we don't diplicate code.
"duplicate"
>
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
> include/ui/console.h | 2 ++
> ui/console.c | 23 +++++++++++++++++++++++
> 2 files changed, 25 insertions(+)
>
> diff --git a/include/ui/console.h b/include/ui/console.h
> index adac36d..bbc3b7c 100644
> --- a/include/ui/console.h
> +++ b/include/ui/console.h
> @@ -377,6 +377,8 @@ void graphic_hw_text_update(QemuConsole *con,
> console_ch_t *chardata);
>
> QemuConsole *qemu_console_lookup_by_index(unsigned int index);
> QemuConsole *qemu_console_lookup_by_device(DeviceState *dev, uint32_t head);
> +QemuConsole *qemu_console_lookup_by_device_name(const char *device_id,
> + uint32_t head, Error **errp);
> bool qemu_console_is_visible(QemuConsole *con);
> bool qemu_console_is_graphic(QemuConsole *con);
> bool qemu_console_is_fixedsize(QemuConsole *con);
> diff --git a/ui/console.c b/ui/console.c
> index 4b65c34..ddaa165 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -1779,6 +1779,29 @@ QemuConsole *qemu_console_lookup_by_device(DeviceState
> *dev, uint32_t head)
> return NULL;
> }
>
> +QemuConsole *qemu_console_lookup_by_device_name(const char *device_id,
> + uint32_t head, Error **errp)
> +{
> + DeviceState *dev;
> + QemuConsole *con;
> +
> + dev = qdev_find_recursive(sysbus_get_default(), device_id);
> + if (dev == NULL) {
> + error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> + "Device '%s' not found", device_id);
> + return NULL;
> + }
> +
> + con = qemu_console_lookup_by_device(dev, head);
> + if (con == NULL) {
> + error_setg(errp, "Device %s (head %d) is not bound to a QemuConsole",
> + device_id, head);
> + return NULL;
> + }
> +
> + return con;
> +}
> +
> bool qemu_console_is_visible(QemuConsole *con)
> {
> return (con == active_console) || (con->dcls > 0);
Peeking ahead in the series... okay, this is factored out of
qemu_input_handler_bind() and vnc_display_open(), with the error message
improved slightly.
I'd squash PATCH 1-3 together, to make that more obvious.