From patchwork Sun Mar 24 12:39:51 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 230444 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 3C4692C007C for ; Sun, 24 Mar 2013 23:38:54 +1100 (EST) Received: from localhost ([::1]:47187 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UJkCK-0002ME-F2 for incoming@patchwork.ozlabs.org; Sun, 24 Mar 2013 08:38:52 -0400 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 Received: from shalem.localdomain.com (vpn1-5-143.ams2.redhat.com [10.36.5.143]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r2OCaRiJ014234; Sun, 24 Mar 2013 08:36:35 -0400 From: Hans de Goede To: qemu-devel@nongnu.org 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> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: Amit Shah , Hans de Goede Subject: [Qemu-devel] [PATCH 6/8] qemu-char: Consolidate guest_close/guest_open into a set_fe_open callback X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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);