From nobody Tue Feb 10 02:42:42 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543854059841353.92824552167633; Mon, 3 Dec 2018 08:20:59 -0800 (PST) Received: from localhost ([::1]:50414 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gTqxu-0007Lh-LS for importer@patchew.org; Mon, 03 Dec 2018 11:20:58 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52526) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gTqFy-00026m-NB for qemu-devel@nongnu.org; Mon, 03 Dec 2018 10:35:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gTqFt-0006C5-SF for qemu-devel@nongnu.org; Mon, 03 Dec 2018 10:35:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34842) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gTqFt-0006BK-Jd for qemu-devel@nongnu.org; Mon, 03 Dec 2018 10:35:29 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EE77B3082E4C; Mon, 3 Dec 2018 15:35:28 +0000 (UTC) Received: from 640k.localdomain.com (ovpn-112-19.ams2.redhat.com [10.36.112.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id A410C17D42; Mon, 3 Dec 2018 15:35:25 +0000 (UTC) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 3 Dec 2018 16:33:10 +0100 Message-Id: <1543851204-41186-58-git-send-email-pbonzini@redhat.com> In-Reply-To: <1543851204-41186-1-git-send-email-pbonzini@redhat.com> References: <1543851204-41186-1-git-send-email-pbonzini@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Mon, 03 Dec 2018 15:35:29 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 57/71] tests/libqos: remove pre-qgraph QVirtioPCIDevice API X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , Emanuele Giuseppe Esposito , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Remove the qvirtio_pci_device_find* and qvirtio_pci_device_free APIs, now that they do not have any users. Signed-off-by: Paolo Bonzini --- tests/libqos/virtio-pci.c | 112 +++++++-----------------------------------= ---- tests/libqos/virtio-pci.h | 4 -- 2 files changed, 17 insertions(+), 99 deletions(-) diff --git a/tests/libqos/virtio-pci.c b/tests/libqos/virtio-pci.c index 0b58b74..993d347 100644 --- a/tests/libqos/virtio-pci.c +++ b/tests/libqos/virtio-pci.c @@ -35,14 +35,6 @@ * original qvirtio_pci_destructor and qvirtio_pci_start_hw. */ =20 -typedef struct QVirtioPCIForeachData { - void (*func)(QVirtioDevice *d, void *data); - uint16_t device_type; - bool has_slot; - int slot; - void *user_data; -} QVirtioPCIForeachData; - static inline bool qvirtio_pci_is_big_endian(QVirtioPCIDevice *dev) { QPCIBus *bus =3D dev->pdev->bus; @@ -51,50 +43,6 @@ static inline bool qvirtio_pci_is_big_endian(QVirtioPCID= evice *dev) return qtest_big_endian(bus->qts); } =20 -void qvirtio_pci_device_free(QVirtioPCIDevice *dev) -{ - g_free(dev->pdev); -} - -static void qvirtio_pci_init_from_pcidev(QVirtioPCIDevice *dev, QPCIDevice= *pci_dev) -{ - dev->pdev =3D pci_dev; - dev->vdev.device_type =3D qpci_config_readw(pci_dev, PCI_SUBSYSTEM_ID); - - dev->config_msix_entry =3D -1; - - dev->vdev.bus =3D &qvirtio_pci; - dev->vdev.big_endian =3D qvirtio_pci_is_big_endian(dev); - - /* each virtio-xxx-pci device should override at least this function */ - dev->obj.get_driver =3D NULL; - dev->obj.start_hw =3D qvirtio_pci_start_hw; - dev->obj.destructor =3D qvirtio_pci_destructor; -} - -static void qvirtio_pci_foreach_callback( - QPCIDevice *dev, int devfn, void *data) -{ - QVirtioPCIForeachData *d =3D data; - QVirtioPCIDevice *vpcidev =3D g_new0(QVirtioPCIDevice, 1); - - qvirtio_pci_init_from_pcidev(vpcidev, dev); - if (vpcidev->vdev.device_type =3D=3D d->device_type && - (!d->has_slot || vpcidev->pdev->devfn =3D=3D d->slot << 3)) { - d->func(&vpcidev->vdev, d->user_data); - } else { - qvirtio_pci_device_free(vpcidev); - g_free(vpcidev); - } -} - -static void qvirtio_pci_assign_device(QVirtioDevice *d, void *data) -{ - QVirtioPCIDevice **vpcidev =3D data; - assert(!*vpcidev); - *vpcidev =3D container_of(d, QVirtioPCIDevice, vdev); -} - #define CONFIG_BASE(dev) (VIRTIO_PCI_CONFIG_OFF((dev)->pdev->msix_enabled)) =20 static uint8_t qvirtio_pci_config_readb(QVirtioDevice *d, uint64_t off) @@ -317,48 +265,6 @@ const QVirtioBus qvirtio_pci =3D { .virtqueue_kick =3D qvirtio_pci_virtqueue_kick, }; =20 -/* TODO: delete this once qgraph is completed */ -static void qvirtio_pci_foreach(QPCIBus *bus, uint16_t device_type, - bool has_slot, int slot, - void (*func)(QVirtioDevice *d, void *data), void *data) -{ - QVirtioPCIForeachData d =3D { .func =3D func, - .device_type =3D device_type, - .has_slot =3D has_slot, - .slot =3D slot, - .user_data =3D data }; - - qpci_device_foreach(bus, PCI_VENDOR_ID_REDHAT_QUMRANET, -1, - qvirtio_pci_foreach_callback, &d); -} - -QVirtioPCIDevice *qvirtio_pci_device_find(QPCIBus *bus, uint16_t device_ty= pe) -{ - QVirtioPCIDevice *dev =3D NULL; - - qvirtio_pci_foreach(bus, device_type, false, 0, - qvirtio_pci_assign_device, &dev); - - if (dev) { - dev->vdev.bus =3D &qvirtio_pci; - } - - return dev; -} - -QVirtioPCIDevice *qvirtio_pci_device_find_slot(QPCIBus *bus, - uint16_t device_type, int s= lot) -{ - QVirtioPCIDevice *dev =3D NULL; - - qvirtio_pci_foreach(bus, device_type, true, slot, - qvirtio_pci_assign_device, &dev); - - dev->vdev.bus =3D &qvirtio_pci; - - return dev; -} - void qvirtio_pci_device_enable(QVirtioPCIDevice *d) { qpci_device_enable(d->pdev); @@ -445,7 +351,7 @@ void qvirtio_pci_destructor(QOSGraphObject *obj) { QVirtioPCIDevice *dev =3D (QVirtioPCIDevice *)obj; qvirtio_pci_device_disable(dev); - qvirtio_pci_device_free(dev); + g_free(dev->pdev); } =20 void qvirtio_pci_start_hw(QOSGraphObject *obj) @@ -455,6 +361,22 @@ void qvirtio_pci_start_hw(QOSGraphObject *obj) qvirtio_start_device(&dev->vdev); } =20 +static void qvirtio_pci_init_from_pcidev(QVirtioPCIDevice *dev, QPCIDevice= *pci_dev) +{ + dev->pdev =3D pci_dev; + dev->vdev.device_type =3D qpci_config_readw(pci_dev, PCI_SUBSYSTEM_ID); + + dev->config_msix_entry =3D -1; + + dev->vdev.bus =3D &qvirtio_pci; + dev->vdev.big_endian =3D qvirtio_pci_is_big_endian(dev); + + /* each virtio-xxx-pci device should override at least this function */ + dev->obj.get_driver =3D NULL; + dev->obj.start_hw =3D qvirtio_pci_start_hw; + dev->obj.destructor =3D qvirtio_pci_destructor; +} + void virtio_pci_init(QVirtioPCIDevice *dev, QPCIBus *bus, QPCIAddress * ad= dr) { QPCIDevice *pci_dev =3D qpci_device_find(bus, addr->devfn); diff --git a/tests/libqos/virtio-pci.h b/tests/libqos/virtio-pci.h index 5631352..728b471 100644 --- a/tests/libqos/virtio-pci.h +++ b/tests/libqos/virtio-pci.h @@ -35,10 +35,6 @@ extern const QVirtioBus qvirtio_pci; =20 void virtio_pci_init(QVirtioPCIDevice *dev, QPCIBus *bus, QPCIAddress * ad= dr); QVirtioPCIDevice *virtio_pci_new(QPCIBus *bus, QPCIAddress * addr); -QVirtioPCIDevice *qvirtio_pci_device_find(QPCIBus *bus, uint16_t device_ty= pe); -QVirtioPCIDevice *qvirtio_pci_device_find_slot(QPCIBus *bus, - uint16_t device_type, int s= lot); -void qvirtio_pci_device_free(QVirtioPCIDevice *dev); =20 /* virtio-pci object functions available for subclasses that * override the original start_hw and destroy --=20 1.8.3.1