From patchwork Thu Jan 27 14:23:45 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gerd Hoffmann X-Patchwork-Id: 80701 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id CC4421007D2 for ; Fri, 28 Jan 2011 01:25:10 +1100 (EST) Received: from localhost ([127.0.0.1]:49848 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PiSmY-0001yk-Qr for incoming@patchwork.ozlabs.org; Thu, 27 Jan 2011 09:25:06 -0500 Received: from [140.186.70.92] (port=44902 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PiSlK-0001ZX-BT for qemu-devel@nongnu.org; Thu, 27 Jan 2011 09:23:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PiSlJ-0004QA-2d for qemu-devel@nongnu.org; Thu, 27 Jan 2011 09:23:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:24510) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PiSlI-0004Q5-Qg for qemu-devel@nongnu.org; Thu, 27 Jan 2011 09:23:49 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id p0RENmBL017879 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 27 Jan 2011 09:23:48 -0500 Received: from rincewind.home.kraxel.org (vpn2-8-106.ams2.redhat.com [10.36.8.106]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p0RENkRP030827; Thu, 27 Jan 2011 09:23:47 -0500 Received: by rincewind.home.kraxel.org (Postfix, from userid 500) id 87A91415AA; Thu, 27 Jan 2011 15:23:45 +0100 (CET) From: Gerd Hoffmann To: qemu-devel@nongnu.org Date: Thu, 27 Jan 2011 15:23:45 +0100 Message-Id: <1296138225-29408-1-git-send-email-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. Cc: Gerd Hoffmann Subject: [Qemu-devel] [PATCH] kill VirtIOSerialDevice X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org VirtIOSerialDevice is like VirtIOSerialPort with just the first two fields, which makes it pretty pointless. Using VirtIOSerialPort directly works equally well and is less confusing. Signed-off-by: Gerd Hoffmann --- hw/virtio-console.c | 13 +++---------- hw/virtio-serial-bus.c | 15 ++++++--------- hw/virtio-serial.h | 9 ++------- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/hw/virtio-console.c b/hw/virtio-console.c index caea11f..5ec7fcc 100644 --- a/hw/virtio-console.c +++ b/hw/virtio-console.c @@ -59,13 +59,10 @@ static void chr_event(void *opaque, int event) } /* Virtio Console Ports */ -static int virtconsole_initfn(VirtIOSerialDevice *dev) +static int virtconsole_initfn(VirtIOSerialPort *port) { - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); - port->info = dev->info; - port->is_console = true; if (vcon->chr) { @@ -76,9 +73,8 @@ static int virtconsole_initfn(VirtIOSerialDevice *dev) return 0; } -static int virtconsole_exitfn(VirtIOSerialDevice *dev) +static int virtconsole_exitfn(VirtIOSerialPort *port) { - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); if (vcon->chr) { @@ -110,13 +106,10 @@ static void virtconsole_register(void) device_init(virtconsole_register) /* Generic Virtio Serial Ports */ -static int virtserialport_initfn(VirtIOSerialDevice *dev) +static int virtserialport_initfn(VirtIOSerialPort *port) { - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); - port->info = dev->info; - if (vcon->chr) { qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event, vcon); diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index b728040..94f5c8e 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -578,8 +578,7 @@ static VirtIOSerialBus *virtser_bus_new(DeviceState *dev) static void virtser_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent) { - VirtIOSerialDevice *dev = DO_UPCAST(VirtIOSerialDevice, qdev, qdev); - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); + VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev); monitor_printf(mon, "%*s dev-prop-int: id: %u\n", indent, "", port->id); @@ -641,9 +640,8 @@ static void remove_port(VirtIOSerial *vser, uint32_t port_id) static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base) { - VirtIOSerialDevice *dev = DO_UPCAST(VirtIOSerialDevice, qdev, qdev); + VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev); VirtIOSerialPortInfo *info = DO_UPCAST(VirtIOSerialPortInfo, qdev, base); - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtIOSerialBus *bus = DO_UPCAST(VirtIOSerialBus, qbus, qdev->parent_bus); int ret; bool plugging_port0; @@ -681,8 +679,8 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base) return -1; } - dev->info = info; - ret = info->init(dev); + port->info = info; + ret = info->init(port); if (ret) { return ret; } @@ -709,8 +707,7 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base) static int virtser_port_qdev_exit(DeviceState *qdev) { - VirtIOSerialDevice *dev = DO_UPCAST(VirtIOSerialDevice, qdev, qdev); - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); + VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev); VirtIOSerial *vser = port->vser; remove_port(port->vser, port->id); @@ -718,7 +715,7 @@ static int virtser_port_qdev_exit(DeviceState *qdev) QTAILQ_REMOVE(&vser->ports, port, next); if (port->info->exit) - port->info->exit(dev); + port->info->exit(port); return 0; } diff --git a/hw/virtio-serial.h b/hw/virtio-serial.h index ff08c40..22d6ff8 100644 --- a/hw/virtio-serial.h +++ b/hw/virtio-serial.h @@ -62,11 +62,6 @@ typedef struct VirtIOSerialBus VirtIOSerialBus; typedef struct VirtIOSerialPort VirtIOSerialPort; typedef struct VirtIOSerialPortInfo VirtIOSerialPortInfo; -typedef struct VirtIOSerialDevice { - DeviceState qdev; - VirtIOSerialPortInfo *info; -} VirtIOSerialDevice; - /* * This is the state that's shared between all the ports. Some of the * state is configurable via command-line options. Some of it can be @@ -119,12 +114,12 @@ struct VirtIOSerialPortInfo { * The per-port (or per-app) init function that's called when a * new device is found on the bus. */ - int (*init)(VirtIOSerialDevice *dev); + int (*init)(VirtIOSerialPort *dev); /* * Per-port exit function that's called when a port gets * hot-unplugged or removed. */ - int (*exit)(VirtIOSerialDevice *dev); + int (*exit)(VirtIOSerialPort *dev); /* Callbacks for guest events */ /* Guest opened device. */