From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42104) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RaCQr-0007NF-Ip for qemu-devel@nongnu.org; Mon, 12 Dec 2011 15:25:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RaCQq-0001IP-00 for qemu-devel@nongnu.org; Mon, 12 Dec 2011 15:25:05 -0500 Received: from cpe-70-123-132-139.austin.res.rr.com ([70.123.132.139]:55876 helo=localhost6.localdomain6) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RaCQp-0001Hz-NY for qemu-devel@nongnu.org; Mon, 12 Dec 2011 15:25:03 -0500 From: Anthony Liguori Date: Mon, 12 Dec 2011 14:18:35 -0600 Message-Id: <1323721273-32404-40-git-send-email-aliguori@us.ibm.com> In-Reply-To: <1323721273-32404-1-git-send-email-aliguori@us.ibm.com> References: <1323721273-32404-1-git-send-email-aliguori@us.ibm.com> Subject: [Qemu-devel] [PATCH v3 039/197] virtio-serial-port List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Peter Maydell , Anthony Liguori , Stefan Hajnoczi , Jan Kiszka , Markus Armbruster , Luiz Capitulino --- hw/virtio-serial-bus.c | 17 ++++++++++++++++- hw/virtio-serial.h | 12 ++++++++++++ 2 files changed, 28 insertions(+), 1 deletions(-) diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index b9c8ca7..a459e31 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -829,7 +829,7 @@ void virtio_serial_port_qdev_register(VirtIOSerialPortInfo *info) info->qdev.bus_info = &virtser_bus_info; info->qdev.exit = virtser_port_qdev_exit; info->qdev.unplug = qdev_simple_unplug_cb; - qdev_register(&info->qdev); + qdev_register_subclass(&info->qdev, TYPE_VIRTIO_SERIAL_PORT); } VirtIODevice *virtio_serial_init(DeviceState *dev, virtio_serial_conf *conf) @@ -925,3 +925,18 @@ void virtio_serial_exit(VirtIODevice *vdev) virtio_cleanup(vdev); } + +static TypeInfo virtio_serial_port_type_info = { + .name = TYPE_VIRTIO_SERIAL_PORT, + .parent = TYPE_DEVICE, + .instance_size = sizeof(VirtIOSerialPort), + .abstract = true, + .class_size = sizeof(VirtIOSerialPortClass), +}; + +static void virtio_serial_register_devices(void) +{ + type_register_static(&virtio_serial_port_type_info); +} + +device_init(virtio_serial_register_devices); diff --git a/hw/virtio-serial.h b/hw/virtio-serial.h index ab13803..86fae8d 100644 --- a/hw/virtio-serial.h +++ b/hw/virtio-serial.h @@ -62,6 +62,18 @@ struct virtio_serial_conf { /* == In-qemu interface == */ +#define TYPE_VIRTIO_SERIAL_PORT "virtio-serial-port" +#define VIRTIO_SERIAL_PORT(obj) \ + OBJECT_CHECK(VirtIOSerialPort, (obj), TYPE_VIRTIO_SERIAL_PORT) +#define VIRTIO_SERIAL_PORT_CLASS(klass) \ + OBJECT_CLASS_CHECK(VirtIOSerialPortClass, (klass), TYPE_VIRTIO_SERIAL_PORT) +#define VIRTIO_SERIAL_PORT_GET_CLASS(obj) \ + OBJECT_GET_CLASS(VirtIOSerialPortClass, (obj), TYPE_VIRTIO_SERIAL_PORT) + +typedef struct VirtIOSerialPortClass { + DeviceClass parent_class; +} VirtIOSerialPortClass; + typedef struct VirtIOSerial VirtIOSerial; typedef struct VirtIOSerialBus VirtIOSerialBus; typedef struct VirtIOSerialPort VirtIOSerialPort; -- 1.7.4.1