From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3696FC10F14 for ; Tue, 15 Oct 2019 16:32:28 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1566420872 for ; Tue, 15 Oct 2019 16:32:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1566420872 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iKPkA-0005n9-Ro; Tue, 15 Oct 2019 16:32:18 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iKPk9-0005mm-TJ for xen-devel@lists.xenproject.org; Tue, 15 Oct 2019 16:32:17 +0000 X-Inumbo-ID: 59bec57e-ef69-11e9-a531-bc764e2007e4 Received: from mx1.redhat.com (unknown [209.132.183.28]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 59bec57e-ef69-11e9-a531-bc764e2007e4; Tue, 15 Oct 2019 16:32:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6BBA61DA2; Tue, 15 Oct 2019 16:32:16 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-35.brq.redhat.com [10.40.204.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0250A19C58; Tue, 15 Oct 2019 16:31:59 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Tue, 15 Oct 2019 18:26:58 +0200 Message-Id: <20191015162705.28087-26-philmd@redhat.com> In-Reply-To: <20191015162705.28087-1-philmd@redhat.com> References: <20191015162705.28087-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.71]); Tue, 15 Oct 2019 16:32:16 +0000 (UTC) Subject: [Xen-devel] [PATCH 25/32] hw/pci-host/piix: Extract piix3_create() X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Thomas Huth , Stefano Stabellini , Eduardo Habkost , kvm@vger.kernel.org, Paul Durrant , "Michael S. Tsirkin" , Marcel Apfelbaum , Paolo Bonzini , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Aleksandar Markovic , xen-devel@lists.xenproject.org, Anthony Perard , Igor Mammedov , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Richard Henderson Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RXh0cmFjdCB0aGUgUElJWDMgY3JlYXRpb24gY29kZSBmcm9tIHRoZSBpNDQwZnhfaW5pdCgpIGZ1 bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgPHBoaWxtZEBy ZWRoYXQuY29tPgotLS0KIGh3L3BjaS1ob3N0L3BpaXguYyB8IDUxICsrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRp b25zKCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ody9wY2ktaG9zdC9waWl4LmMg Yi9ody9wY2ktaG9zdC9waWl4LmMKaW5kZXggMmY0Y2JjYmZlOS4uMzI5MjcwM2RlNyAxMDA2NDQK LS0tIGEvaHcvcGNpLWhvc3QvcGlpeC5jCisrKyBiL2h3L3BjaS1ob3N0L3BpaXguYwpAQCAtMzMx LDYgKzMzMSwzNiBAQCBzdGF0aWMgdm9pZCBpNDQwZnhfcmVhbGl6ZShQQ0lEZXZpY2UgKmRldiwg RXJyb3IgKiplcnJwKQogICAgIH0KIH0KIAorc3RhdGljIFBJSVgzU3RhdGUgKnBpaXgzX2NyZWF0 ZShQQ0lCdXMgKnBjaV9idXMsIElTQUJ1cyAqKmlzYV9idXMpCit7CisgICAgUElJWDNTdGF0ZSAq cGlpeDM7CisgICAgUENJRGV2aWNlICpwY2lfZGV2OworCisgICAgLyoKKyAgICAgKiBYZW4gc3Vw cG9ydHMgYWRkaXRpb25hbCBpbnRlcnJ1cHQgcm91dGVzIGZyb20gdGhlIFBDSSBkZXZpY2VzIHRv CisgICAgICogdGhlIElPQVBJQzogdGhlIGZvdXIgcGlucyBvZiBlYWNoIFBDSSBkZXZpY2Ugb24g dGhlIGJ1cyBhcmUgYWxzbworICAgICAqIGNvbm5lY3RlZCB0byB0aGUgSU9BUElDIGRpcmVjdGx5 LgorICAgICAqIFRoZXNlIGFkZGl0aW9uYWwgcm91dGVzIGNhbiBiZSBkaXNjb3ZlcmVkIHRocm91 Z2ggQUNQSS4KKyAgICAgKi8KKyAgICBpZiAoeGVuX2VuYWJsZWQoKSkgeworICAgICAgICBwY2lf ZGV2ID0gcGNpX2NyZWF0ZV9zaW1wbGVfbXVsdGlmdW5jdGlvbihwY2lfYnVzLCAtMSwgdHJ1ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFlQRV9Q SUlYM19YRU5fREVWSUNFKTsKKyAgICAgICAgcGlpeDMgPSBQSUlYM19QQ0lfREVWSUNFKHBjaV9k ZXYpOworICAgICAgICBwY2lfYnVzX2lycXMocGNpX2J1cywgeGVuX3BpaXgzX3NldF9pcnEsIHhl bl9wY2lfc2xvdF9nZXRfcGlycSwKKyAgICAgICAgICAgICAgICAgICAgIHBpaXgzLCBYRU5fUElJ WF9OVU1fUElSUVMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBjaV9kZXYgPSBwY2lfY3JlYXRl X3NpbXBsZV9tdWx0aWZ1bmN0aW9uKHBjaV9idXMsIC0xLCB0cnVlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX1BJSVgzX0RFVklDRSk7Cisg ICAgICAgIHBpaXgzID0gUElJWDNfUENJX0RFVklDRShwY2lfZGV2KTsKKyAgICAgICAgcGNpX2J1 c19pcnFzKHBjaV9idXMsIHBpaXgzX3NldF9pcnEsIHBjaV9zbG90X2dldF9waXJxLAorICAgICAg ICAgICAgICAgICAgICAgcGlpeDMsIFBJSVhfTlVNX1BJUlFTKTsKKyAgICAgICAgcGNpX2J1c19z ZXRfcm91dGVfaXJxX2ZuKHBjaV9idXMsIHBpaXgzX3JvdXRlX2ludHhfcGluX3RvX2lycSk7Cisg ICAgfQorICAgICppc2FfYnVzID0gSVNBX0JVUyhxZGV2X2dldF9jaGlsZF9idXMoREVWSUNFKHBp aXgzKSwgImlzYS4wIikpOworCisgICAgcmV0dXJuIHBpaXgzOworfQorCiBQQ0lCdXMgKmk0NDBm eF9pbml0KGNvbnN0IGNoYXIgKmhvc3RfdHlwZSwgY29uc3QgY2hhciAqcGNpX3R5cGUsCiAgICAg ICAgICAgICAgICAgICAgIFBDSUk0NDBGWFN0YXRlICoqcGk0NDBmeF9zdGF0ZSwKICAgICAgICAg ICAgICAgICAgICAgaW50ICpwaWl4M19kZXZmbiwKQEAgLTQwMCwyNyArNDMwLDggQEAgUENJQnVz ICppNDQwZnhfaW5pdChjb25zdCBjaGFyICpob3N0X3R5cGUsIGNvbnN0IGNoYXIgKnBjaV90eXBl LAogICAgICAgICAgICAgICAgICBQQU1fRVhQQU5fU0laRSk7CiAgICAgfQogCi0gICAgLyogWGVu IHN1cHBvcnRzIGFkZGl0aW9uYWwgaW50ZXJydXB0IHJvdXRlcyBmcm9tIHRoZSBQQ0kgZGV2aWNl cyB0bwotICAgICAqIHRoZSBJT0FQSUM6IHRoZSBmb3VyIHBpbnMgb2YgZWFjaCBQQ0kgZGV2aWNl IG9uIHRoZSBidXMgYXJlIGFsc28KLSAgICAgKiBjb25uZWN0ZWQgdG8gdGhlIElPQVBJQyBkaXJl Y3RseS4KLSAgICAgKiBUaGVzZSBhZGRpdGlvbmFsIHJvdXRlcyBjYW4gYmUgZGlzY292ZXJlZCB0 aHJvdWdoIEFDUEkuICovCi0gICAgaWYgKHhlbl9lbmFibGVkKCkpIHsKLSAgICAgICAgUENJRGV2 aWNlICpwY2lfZGV2ID0gcGNpX2NyZWF0ZV9zaW1wbGVfbXVsdGlmdW5jdGlvbihiLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtMSwgdHJ1ZSwgVFlQRV9QSUlYM19YRU5fREVWSUNFKTsK LSAgICAgICAgcGlpeDMgPSBQSUlYM19QQ0lfREVWSUNFKHBjaV9kZXYpOwotICAgICAgICBwY2lf YnVzX2lycXMoYiwgeGVuX3BpaXgzX3NldF9pcnEsIHhlbl9wY2lfc2xvdF9nZXRfcGlycSwKLSAg ICAgICAgICAgICAgICBwaWl4MywgWEVOX1BJSVhfTlVNX1BJUlFTKTsKLSAgICB9IGVsc2Ugewot ICAgICAgICBQQ0lEZXZpY2UgKnBjaV9kZXYgPSBwY2lfY3JlYXRlX3NpbXBsZV9tdWx0aWZ1bmN0 aW9uKGIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCB0cnVlLCBUWVBFX1BJSVgz X0RFVklDRSk7Ci0gICAgICAgIHBpaXgzID0gUElJWDNfUENJX0RFVklDRShwY2lfZGV2KTsKLSAg ICAgICAgcGNpX2J1c19pcnFzKGIsIHBpaXgzX3NldF9pcnEsIHBjaV9zbG90X2dldF9waXJxLCBw aWl4MywKLSAgICAgICAgICAgICAgICBQSUlYX05VTV9QSVJRUyk7Ci0gICAgICAgIHBjaV9idXNf c2V0X3JvdXRlX2lycV9mbihiLCBwaWl4M19yb3V0ZV9pbnR4X3Bpbl90b19pcnEpOwotICAgIH0K KyAgICBwaWl4MyA9IHBpaXgzX2NyZWF0ZShiLCBpc2FfYnVzKTsKICAgICBwaWl4My0+cGljID0g cGljOwotICAgICppc2FfYnVzID0gSVNBX0JVUyhxZGV2X2dldF9jaGlsZF9idXMoREVWSUNFKHBp aXgzKSwgImlzYS4wIikpOwotCiAgICAgKnBpaXgzX2RldmZuID0gcGlpeDMtPmRldi5kZXZmbjsK IAogICAgIHJhbV9zaXplID0gcmFtX3NpemUgLyA4IC8gMTAyNCAvIDEwMjQ7Ci0tIAoyLjIxLjAK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 67CBDECE588 for ; Tue, 15 Oct 2019 16:32:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 47FAF20873 for ; Tue, 15 Oct 2019 16:32:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388136AbfJOQcR (ORCPT ); Tue, 15 Oct 2019 12:32:17 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33579 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729746AbfJOQcR (ORCPT ); Tue, 15 Oct 2019 12:32:17 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6BBA61DA2; Tue, 15 Oct 2019 16:32:16 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-35.brq.redhat.com [10.40.204.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0250A19C58; Tue, 15 Oct 2019 16:31:59 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Aleksandar Markovic , Aurelien Jarno , Eduardo Habkost , Thomas Huth , Igor Mammedov , Anthony Perard , Stefano Stabellini , Paul Durrant , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Aleksandar Rikalo , xen-devel@lists.xenproject.org, Laurent Vivier , "Michael S. Tsirkin" , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , kvm@vger.kernel.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 25/32] hw/pci-host/piix: Extract piix3_create() Date: Tue, 15 Oct 2019 18:26:58 +0200 Message-Id: <20191015162705.28087-26-philmd@redhat.com> In-Reply-To: <20191015162705.28087-1-philmd@redhat.com> References: <20191015162705.28087-1-philmd@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.71]); Tue, 15 Oct 2019 16:32:16 +0000 (UTC) Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Extract the PIIX3 creation code from the i440fx_init() function. Signed-off-by: Philippe Mathieu-Daudé --- hw/pci-host/piix.c | 51 ++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c index 2f4cbcbfe9..3292703de7 100644 --- a/hw/pci-host/piix.c +++ b/hw/pci-host/piix.c @@ -331,6 +331,36 @@ static void i440fx_realize(PCIDevice *dev, Error **errp) } } +static PIIX3State *piix3_create(PCIBus *pci_bus, ISABus **isa_bus) +{ + PIIX3State *piix3; + PCIDevice *pci_dev; + + /* + * Xen supports additional interrupt routes from the PCI devices to + * the IOAPIC: the four pins of each PCI device on the bus are also + * connected to the IOAPIC directly. + * These additional routes can be discovered through ACPI. + */ + if (xen_enabled()) { + pci_dev = pci_create_simple_multifunction(pci_bus, -1, true, + TYPE_PIIX3_XEN_DEVICE); + piix3 = PIIX3_PCI_DEVICE(pci_dev); + pci_bus_irqs(pci_bus, xen_piix3_set_irq, xen_pci_slot_get_pirq, + piix3, XEN_PIIX_NUM_PIRQS); + } else { + pci_dev = pci_create_simple_multifunction(pci_bus, -1, true, + TYPE_PIIX3_DEVICE); + piix3 = PIIX3_PCI_DEVICE(pci_dev); + pci_bus_irqs(pci_bus, piix3_set_irq, pci_slot_get_pirq, + piix3, PIIX_NUM_PIRQS); + pci_bus_set_route_irq_fn(pci_bus, piix3_route_intx_pin_to_irq); + } + *isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(piix3), "isa.0")); + + return piix3; +} + PCIBus *i440fx_init(const char *host_type, const char *pci_type, PCII440FXState **pi440fx_state, int *piix3_devfn, @@ -400,27 +430,8 @@ PCIBus *i440fx_init(const char *host_type, const char *pci_type, PAM_EXPAN_SIZE); } - /* Xen supports additional interrupt routes from the PCI devices to - * the IOAPIC: the four pins of each PCI device on the bus are also - * connected to the IOAPIC directly. - * These additional routes can be discovered through ACPI. */ - if (xen_enabled()) { - PCIDevice *pci_dev = pci_create_simple_multifunction(b, - -1, true, TYPE_PIIX3_XEN_DEVICE); - piix3 = PIIX3_PCI_DEVICE(pci_dev); - pci_bus_irqs(b, xen_piix3_set_irq, xen_pci_slot_get_pirq, - piix3, XEN_PIIX_NUM_PIRQS); - } else { - PCIDevice *pci_dev = pci_create_simple_multifunction(b, - -1, true, TYPE_PIIX3_DEVICE); - piix3 = PIIX3_PCI_DEVICE(pci_dev); - pci_bus_irqs(b, piix3_set_irq, pci_slot_get_pirq, piix3, - PIIX_NUM_PIRQS); - pci_bus_set_route_irq_fn(b, piix3_route_intx_pin_to_irq); - } + piix3 = piix3_create(b, isa_bus); piix3->pic = pic; - *isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(piix3), "isa.0")); - *piix3_devfn = piix3->dev.devfn; ram_size = ram_size / 8 / 1024 / 1024; -- 2.21.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D28CDC10F14 for ; Tue, 15 Oct 2019 16:50:13 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A3F6A20650 for ; Tue, 15 Oct 2019 16:50:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A3F6A20650 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52960 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iKQ1U-0000vb-9u for qemu-devel@archiver.kernel.org; Tue, 15 Oct 2019 12:50:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41960) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iKPkC-0004jw-Ct for qemu-devel@nongnu.org; Tue, 15 Oct 2019 12:32:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iKPkA-00074L-JT for qemu-devel@nongnu.org; Tue, 15 Oct 2019 12:32:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41696) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iKPkA-00073L-1Q for qemu-devel@nongnu.org; Tue, 15 Oct 2019 12:32:18 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6BBA61DA2; Tue, 15 Oct 2019 16:32:16 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-35.brq.redhat.com [10.40.204.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0250A19C58; Tue, 15 Oct 2019 16:31:59 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 25/32] hw/pci-host/piix: Extract piix3_create() Date: Tue, 15 Oct 2019 18:26:58 +0200 Message-Id: <20191015162705.28087-26-philmd@redhat.com> In-Reply-To: <20191015162705.28087-1-philmd@redhat.com> References: <20191015162705.28087-1-philmd@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.71]); Tue, 15 Oct 2019 16:32:16 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Thomas Huth , Stefano Stabellini , Eduardo Habkost , kvm@vger.kernel.org, Paul Durrant , "Michael S. Tsirkin" , Paolo Bonzini , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Aleksandar Markovic , xen-devel@lists.xenproject.org, Anthony Perard , Igor Mammedov , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Richard Henderson Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Extract the PIIX3 creation code from the i440fx_init() function. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/pci-host/piix.c | 51 ++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c index 2f4cbcbfe9..3292703de7 100644 --- a/hw/pci-host/piix.c +++ b/hw/pci-host/piix.c @@ -331,6 +331,36 @@ static void i440fx_realize(PCIDevice *dev, Error **e= rrp) } } =20 +static PIIX3State *piix3_create(PCIBus *pci_bus, ISABus **isa_bus) +{ + PIIX3State *piix3; + PCIDevice *pci_dev; + + /* + * Xen supports additional interrupt routes from the PCI devices to + * the IOAPIC: the four pins of each PCI device on the bus are also + * connected to the IOAPIC directly. + * These additional routes can be discovered through ACPI. + */ + if (xen_enabled()) { + pci_dev =3D pci_create_simple_multifunction(pci_bus, -1, true, + TYPE_PIIX3_XEN_DEVICE)= ; + piix3 =3D PIIX3_PCI_DEVICE(pci_dev); + pci_bus_irqs(pci_bus, xen_piix3_set_irq, xen_pci_slot_get_pirq, + piix3, XEN_PIIX_NUM_PIRQS); + } else { + pci_dev =3D pci_create_simple_multifunction(pci_bus, -1, true, + TYPE_PIIX3_DEVICE); + piix3 =3D PIIX3_PCI_DEVICE(pci_dev); + pci_bus_irqs(pci_bus, piix3_set_irq, pci_slot_get_pirq, + piix3, PIIX_NUM_PIRQS); + pci_bus_set_route_irq_fn(pci_bus, piix3_route_intx_pin_to_irq); + } + *isa_bus =3D ISA_BUS(qdev_get_child_bus(DEVICE(piix3), "isa.0")); + + return piix3; +} + PCIBus *i440fx_init(const char *host_type, const char *pci_type, PCII440FXState **pi440fx_state, int *piix3_devfn, @@ -400,27 +430,8 @@ PCIBus *i440fx_init(const char *host_type, const cha= r *pci_type, PAM_EXPAN_SIZE); } =20 - /* Xen supports additional interrupt routes from the PCI devices to - * the IOAPIC: the four pins of each PCI device on the bus are also - * connected to the IOAPIC directly. - * These additional routes can be discovered through ACPI. */ - if (xen_enabled()) { - PCIDevice *pci_dev =3D pci_create_simple_multifunction(b, - -1, true, TYPE_PIIX3_XEN_DEVICE); - piix3 =3D PIIX3_PCI_DEVICE(pci_dev); - pci_bus_irqs(b, xen_piix3_set_irq, xen_pci_slot_get_pirq, - piix3, XEN_PIIX_NUM_PIRQS); - } else { - PCIDevice *pci_dev =3D pci_create_simple_multifunction(b, - -1, true, TYPE_PIIX3_DEVICE); - piix3 =3D PIIX3_PCI_DEVICE(pci_dev); - pci_bus_irqs(b, piix3_set_irq, pci_slot_get_pirq, piix3, - PIIX_NUM_PIRQS); - pci_bus_set_route_irq_fn(b, piix3_route_intx_pin_to_irq); - } + piix3 =3D piix3_create(b, isa_bus); piix3->pic =3D pic; - *isa_bus =3D ISA_BUS(qdev_get_child_bus(DEVICE(piix3), "isa.0")); - *piix3_devfn =3D piix3->dev.devfn; =20 ram_size =3D ram_size / 8 / 1024 / 1024; --=20 2.21.0