From nobody Sun Nov 9 22:30:57 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1551981886838444.7229521694327; Thu, 7 Mar 2019 10:04:46 -0800 (PST) Received: from localhost ([127.0.0.1]:56556 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1xNr-0005re-Jp for importer@patchew.org; Thu, 07 Mar 2019 13:04:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39884) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1wrB-0003fX-IV for qemu-devel@nongnu.org; Thu, 07 Mar 2019 12:30:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h1wrA-0008Ru-Fk for qemu-devel@nongnu.org; Thu, 07 Mar 2019 12:30:57 -0500 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:39936) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h1wrA-0008RL-7m for qemu-devel@nongnu.org; Thu, 07 Mar 2019 12:30:56 -0500 Received: by mail-wr1-x42c.google.com with SMTP id y6so3260070wrn.7 for ; Thu, 07 Mar 2019 09:30:56 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id d206sm9979753wmc.11.2019.03.07.09.30.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Mar 2019 09:30:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=ONpxlFM8KN/oydwuZ3QtAxwwDeeXEMkw+n+ylFICszU=; b=p7523rdtCgRliR8BI8609tbZHQ0HkTAvMdlxE+Y2bdgAEYDDzVy23xYzuXK9BE1LpK zEyISLNRHTU/rx5b9jUG5U2Q4gq4lB425YiDCDlf0vX3yqU/i2iwEzX3LNVThD4r3wVC UafF+TNkm2O74BomsZv+4ONjyKnXq3RmJrf+nqUjZ7XPC+kg7SrvcrqBbIFCQu963eWO Cs66Pj7p6Mojf5gGfraXPbIzM6xpC6h9rnqsELa08tltEjMmHlVFPpW12CiXj1DYhXY0 ZUuQnfYPr1YsEv0LPKRWSzr7ZQC63XBsEmB2Gey8lBN6DrIlLAE8Svf9UFgV7eb6XHAe NaHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=ONpxlFM8KN/oydwuZ3QtAxwwDeeXEMkw+n+ylFICszU=; b=Xt/ir0FW3/ZYAntGHiQOUm4BnK0ogf0xG67t6CHqhwGULFSS3fCSGhcV5Uh7ZMWRyM lDJ/Vx1KaK6triK+bC3sW3Zbu/s7Cf58fEMFQPTbPh4guVh180t9BdU9rTrXtqlJBWVs gngXmKtBfYDuO7WOyGs3h35b47pWsi3M95A71AW4x1YG3Tuq4CUojrGDVjsnaEAvNcRz pNofVFLiJjDwF5lhLw2nACZThQDwUvJ8WY3sdn4c65/vW2NVloYWPARm+FdaOL0VYWEs JCnN7YCL3QfvkR7gb5VH1/ssIF/fzqPlRXOHAHMe9FBiqYs+icOHTpR6eXj6DBvjvEED s3Zw== X-Gm-Message-State: APjAAAUlPU3Jn4GwkNzor7YAggH7x4nGGEGQy7WxF0PrBm+nDLW92dhR uNuInRc1gA07xKA9MGpZJrxDHnYS X-Google-Smtp-Source: APXvYqwgcXvvr2DKzzyNjEXiMIs70YlGS8BAL4x1/rSamScbHdPcDP8sB7KcgFSnDWjA3ZG18QV5kA== X-Received: by 2002:adf:dd4d:: with SMTP id u13mr8394452wrm.284.1551979854908; Thu, 07 Mar 2019 09:30:54 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Thu, 7 Mar 2019 18:29:50 +0100 Message-Id: <1551979804-6060-44-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1551979804-6060-1-git-send-email-pbonzini@redhat.com> References: <1551979804-6060-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42c Subject: [Qemu-devel] [PULL 43/57] 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: thuth@redhat.com, lviver@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) 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