Message ID | 1452601779-5790-1-git-send-email-kraxel@redhat.com |
---|---|
State | New |
Headers | show |
On Tue, Jan 12, 2016 at 01:29:33PM +0100, Gerd Hoffmann wrote: > 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. > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Regards, Daniel
Gerd Hoffmann <kraxel@redhat.com> 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 <kraxel@redhat.com> > --- > 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.
Markus Armbruster <armbru@redhat.com> writes: > Gerd Hoffmann <kraxel@redhat.com> 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 <kraxel@redhat.com> >> --- >> 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. And add a declaration to a suitable header :) ui/input.c: In function ‘qemu_input_handler_bind’: ui/input.c:87:11: warning: implicit declaration of function ‘qemu_console_lookup_by_device_name’ [-Wimplicit-function-declaration] con = qemu_console_lookup_by_device_name(device_id, head, &err); ^
Markus Armbruster <armbru@redhat.com> writes: > And add a declaration to a suitable header :) > > ui/input.c: In function ‘qemu_input_handler_bind’: > ui/input.c:87:11: warning: implicit declaration of function ‘qemu_console_lookup_by_device_name’ [-Wimplicit-function-declaration] > con = qemu_console_lookup_by_device_name(device_id, head, &err); > ^ Scratch that, I misapplied your series.
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);
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. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/ui/console.h | 2 ++ ui/console.c | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+)