From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:54646) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UJkAB-0007nD-1U for qemu-devel@nongnu.org; Sun, 24 Mar 2013 08:36:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UJkA9-0000MI-RE for qemu-devel@nongnu.org; Sun, 24 Mar 2013 08:36:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:30276) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UJkA9-0000M4-Jm for qemu-devel@nongnu.org; Sun, 24 Mar 2013 08:36:37 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r2OCablS026125 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Sun, 24 Mar 2013 08:36:37 -0400 From: Hans de Goede Date: Sun, 24 Mar 2013 13:39:51 +0100 Message-Id: <1364128793-12689-7-git-send-email-hdegoede@redhat.com> In-Reply-To: <1364128793-12689-1-git-send-email-hdegoede@redhat.com> References: <1364128793-12689-1-git-send-email-hdegoede@redhat.com> Subject: [Qemu-devel] [PATCH 6/8] qemu-char: Consolidate guest_close/guest_open into a set_fe_open callback List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Amit Shah , Hans de Goede Signed-off-by: Hans de Goede --- include/char/char.h | 3 +-- qemu-char.c | 10 +++------- spice-qemu-char.c | 17 +++++++---------- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/include/char/char.h b/include/char/char.h index 3c8dd28..1457e80 100644 --- a/include/char/char.h +++ b/include/char/char.h @@ -68,8 +68,7 @@ struct CharDriverState { void (*chr_close)(struct CharDriverState *chr); void (*chr_accept_input)(struct CharDriverState *chr); void (*chr_set_echo)(struct CharDriverState *chr, bool echo); - void (*chr_guest_open)(struct CharDriverState *chr); - void (*chr_guest_close)(struct CharDriverState *chr); + void (*chr_set_fe_open)(struct CharDriverState *chr, int fe_open); void *opaque; int idle_tag; char *label; diff --git a/qemu-char.c b/qemu-char.c index 713c154..5be2ae7 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -487,8 +487,7 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv) chr->chr_update_read_handler = mux_chr_update_read_handler; chr->chr_accept_input = mux_chr_accept_input; /* Frontend guest-open / -close notification is not support with muxes */ - chr->chr_guest_open = NULL; - chr->chr_guest_close = NULL; + chr->chr_set_fe_open = NULL; /* Muxes are always open on creation */ qemu_chr_be_generic_open(chr); @@ -3395,11 +3394,8 @@ void qemu_chr_fe_set_echo(struct CharDriverState *chr, bool echo) void qemu_chr_fe_set_open(struct CharDriverState *chr, int fe_open) { chr->fe_open = fe_open; - if (fe_open && chr->chr_guest_open) { - chr->chr_guest_open(chr); - } - if (!fe_open && chr->chr_guest_close) { - chr->chr_guest_close(chr); + if (chr->chr_set_fe_open) { + chr->chr_set_fe_open(chr, fe_open); } } diff --git a/spice-qemu-char.c b/spice-qemu-char.c index 613cc64..ba59374 100644 --- a/spice-qemu-char.c +++ b/spice-qemu-char.c @@ -213,16 +213,14 @@ static void spice_chr_close(struct CharDriverState *chr) g_free(s); } -static void spice_chr_guest_open(struct CharDriverState *chr) +static void spice_chr_set_fe_open(struct CharDriverState *chr, int fe_open) { SpiceCharDriver *s = chr->opaque; - vmc_register_interface(s); -} - -static void spice_chr_guest_close(struct CharDriverState *chr) -{ - SpiceCharDriver *s = chr->opaque; - vmc_unregister_interface(s); + if (fe_open) { + vmc_register_interface(s); + } else { + vmc_unregister_interface(s); + } } static void print_allowed_subtypes(void) @@ -256,8 +254,7 @@ static CharDriverState *chr_open(const char *subtype) chr->chr_write = spice_chr_write; chr->chr_add_watch = spice_chr_add_watch; chr->chr_close = spice_chr_close; - chr->chr_guest_open = spice_chr_guest_open; - chr->chr_guest_close = spice_chr_guest_close; + chr->chr_set_fe_open = spice_chr_set_fe_open; QLIST_INSERT_HEAD(&spice_chars, s, next); -- 1.8.1.4