get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/46203/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 46203,
    "url": "https://patches.dpdk.org/api/patches/46203/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20181007093244.20659-4-thomas@monjalon.net/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20181007093244.20659-4-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20181007093244.20659-4-thomas@monjalon.net",
    "date": "2018-10-07T09:32:42",
    "name": "[v6,3/5] eal: add bus pointer in device structure",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "cc93704225c06a1a24f03708bf90efdd1f3d46b8",
    "submitter": {
        "id": 685,
        "url": "https://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20181007093244.20659-4-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 1734,
            "url": "https://patches.dpdk.org/api/series/1734/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1734",
            "date": "2018-10-07T09:32:39",
            "name": "eal: simplify devargs and hotplug functions",
            "version": 6,
            "mbox": "https://patches.dpdk.org/series/1734/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/46203/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/46203/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 51B6E4C8F;\n\tSun,  7 Oct 2018 11:33:02 +0200 (CEST)",
            "from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com\n\t[66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 6B8572C38\n\tfor <dev@dpdk.org>; Sun,  7 Oct 2018 11:32:55 +0200 (CEST)",
            "from compute1.internal (compute1.nyi.internal [10.202.2.41])\n\tby mailout.nyi.internal (Postfix) with ESMTP id 1595221EF8;\n\tSun,  7 Oct 2018 05:32:55 -0400 (EDT)",
            "from mailfrontend2 ([10.202.2.163])\n\tby compute1.internal (MEProxy); Sun, 07 Oct 2018 05:32:55 -0400",
            "from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])\n\tby mail.messagingengine.com (Postfix) with ESMTPA id D35CE102EB;\n\tSun,  7 Oct 2018 05:32:53 -0400 (EDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n\tfrom:to:cc:subject:date:message-id:in-reply-to:references\n\t:mime-version:content-transfer-encoding; s=mesmtp; bh=JY+o+Nh04w\n\tkl88TnVivQzFAqOQwuxcxgzdT3ApdVd6M=; b=XsErw1spZLJQW70CuA9qRBJFAH\n\tCq2ZSHk/iIaSzQYUwrilKNFfOmJeDZwlRU515ufRbcR0zejrNvWsvt/2oKPueZ80\n\tLLUh3AztEllle7/2/eA2ndpE4iZYOffgNYi5h7UV8VtI+lFqwr234sG6JosMkPOs\n\tOzL6/O5RIrjcAzMSI=",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmessagingengine.com; h=cc:content-transfer-encoding:date:from\n\t:in-reply-to:message-id:mime-version:references:subject:to\n\t:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=\n\tfm3; bh=JY+o+Nh04wkl88TnVivQzFAqOQwuxcxgzdT3ApdVd6M=; b=iMf2/7XL\n\tRMzBTFAD97ELQFkufLVrAIMLHKifGa3CvmvROv21RPySYlK8u/YjEkE974DuTDZo\n\tQsYTzOSAVoSGTiWDucFSxqUEK+4DX82QTv/hYqSTw9d0BUe7p97M5nto2QUMjuIt\n\tNIflP8+N1dhUIzeQ4Dgoe1R2cj0ogMrSM50Ikqk6vXBkxQNcgJkErxWh3/pq/MjY\n\tzJvZq42nHYxWEkf7MDF76cPY8iQEMCHL4PsqYsTsyc+T0VSmIPgWJu0/ifoypOIp\n\tRKe1IYSRkBY2pv3PThO1MTK1FWPMjn7S6S6CFZ6yJ81vLqm8bWPoQHLb1KfIEAEJ\n\t49lyDbbJU3bg3A=="
        ],
        "X-ME-Sender": "<xms:xtK5WwKC_gL_aiDsyRMu1ULddk-kaadeUuuoSzn8cwgveZCB2pn0oQ>",
        "X-ME-Proxy": "<xmx:xtK5W-x-a_FoHw4uV_Hq152yO--HY-5U_COLpGNRUKRAGDmUa8pDCA>\n\t<xmx:xtK5WzOQI_LRILNFMS9l8oLyngH4sRedjOuoho1Hvq2Qz5pv8KRY6w>\n\t<xmx:xtK5WyQjTtNIzXJkmVn_2ZirGnyP53gj5SZTLjxwbll0dqgn4llNXQ>\n\t<xmx:xtK5WxYBnKTeame8TcwfdYOfunt9mZh_x7mnFEDtNhf8D7cN0o2egQ>\n\t<xmx:xtK5W_0xgAX3gdl2ZUhWx6xqVb8Sv8BRUJmDO1mPyLJXSQVK_Or3VQ>\n\t<xmx:x9K5WxhefP5bo311rzEY6JE00R6cq3JNodYwWDlXOnhwxwshpaZJnw>",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "gaetan.rivet@6wind.com, ophirmu@mellanox.com, qi.z.zhang@intel.com,\n\tferruh.yigit@intel.com, ktraynor@redhat.com",
        "Date": "Sun,  7 Oct 2018 11:32:42 +0200",
        "Message-Id": "<20181007093244.20659-4-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.19.0",
        "In-Reply-To": "<20181007093244.20659-1-thomas@monjalon.net>",
        "References": "<20180907222727.20521-1-thomas@monjalon.net>\n\t<20181007093244.20659-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v6 3/5] eal: add bus pointer in device structure",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "When a device is added with a devargs (hotplug or whitelist),\nthe bus pointer can be retrieved via its devargs.\nBut there is no such devargs.bus in case of standard scan.\n\nA pointer to the rte_bus handle is added to rte_device.\nWhen a device is allocated (during a scan),\nthe pointer to its bus is assigned.\n\nIt will make possible to remove a rte_device,\nusing the function pointer from its bus.\n\nThe function rte_bus_find_by_device() becomes useless,\nand may be removed later.\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\nAcked-by: Gaetan Rivet <gaetan.rivet@6wind.com>\n---\n doc/guides/rel_notes/release_18_11.rst  | 15 ++++++++++-----\n drivers/bus/dpaa/Makefile               |  2 +-\n drivers/bus/dpaa/dpaa_bus.c             |  2 ++\n drivers/bus/dpaa/meson.build            |  2 ++\n drivers/bus/fslmc/Makefile              |  2 +-\n drivers/bus/fslmc/fslmc_bus.c           |  2 ++\n drivers/bus/fslmc/meson.build           |  2 ++\n drivers/bus/ifpga/Makefile              |  2 +-\n drivers/bus/ifpga/ifpga_bus.c           |  1 +\n drivers/bus/ifpga/meson.build           |  2 ++\n drivers/bus/pci/Makefile                |  2 +-\n drivers/bus/pci/bsd/pci.c               |  2 ++\n drivers/bus/pci/linux/pci.c             |  1 +\n drivers/bus/pci/meson.build             |  2 ++\n drivers/bus/pci/private.h               |  2 ++\n drivers/bus/vdev/Makefile               |  2 +-\n drivers/bus/vdev/meson.build            |  2 ++\n drivers/bus/vdev/vdev.c                 |  1 +\n drivers/bus/vmbus/Makefile              |  2 +-\n drivers/bus/vmbus/linux/vmbus_bus.c     |  1 +\n drivers/bus/vmbus/meson.build           |  2 ++\n drivers/bus/vmbus/private.h             |  3 +++\n lib/librte_eal/common/include/rte_dev.h |  1 +\n 23 files changed, 44 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst\nindex d534bb71c..c87522f27 100644\n--- a/doc/guides/rel_notes/release_18_11.rst\n+++ b/doc/guides/rel_notes/release_18_11.rst\n@@ -164,6 +164,10 @@ ABI Changes\n        ``rte_config`` structure on account of improving DPDK usability when\n        using either ``--legacy-mem`` or ``--single-file-segments`` flags.\n \n+* eal: The structure ``rte_device`` got a new field to reference a ``rte_bus``.\n+  It is changing the size of the ``struct rte_device`` and the inherited\n+  device structures of all buses.\n+\n \n Removed Items\n -------------\n@@ -199,11 +203,12 @@ The libraries prepended with a plus sign were incremented in this version.\n      librte_bbdev.so.1\n      librte_bitratestats.so.2\n      librte_bpf.so.1\n-     librte_bus_dpaa.so.1\n-     librte_bus_fslmc.so.1\n-     librte_bus_pci.so.1\n-     librte_bus_vdev.so.1\n-   + librte_bus_vmbus.so.1\n+   + librte_bus_dpaa.so.2\n+   + librte_bus_fslmc.so.2\n+   + librte_bus_ifpga.so.2\n+   + librte_bus_pci.so.2\n+   + librte_bus_vdev.so.2\n+   + librte_bus_vmbus.so.2\n      librte_cfgfile.so.2\n      librte_cmdline.so.2\n      librte_common_octeontx.so.1\ndiff --git a/drivers/bus/dpaa/Makefile b/drivers/bus/dpaa/Makefile\nindex bffaa9d92..9337b5f92 100644\n--- a/drivers/bus/dpaa/Makefile\n+++ b/drivers/bus/dpaa/Makefile\n@@ -24,7 +24,7 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include\n # versioning export map\n EXPORT_MAP := rte_bus_dpaa_version.map\n \n-LIBABIVER := 1\n+LIBABIVER := 2\n \n # all source are stored in SRCS-y\n #\ndiff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c\nindex 49cd04dbb..138e0f98d 100644\n--- a/drivers/bus/dpaa/dpaa_bus.c\n+++ b/drivers/bus/dpaa/dpaa_bus.c\n@@ -165,6 +165,8 @@ dpaa_create_device_list(void)\n \t\t\tgoto cleanup;\n \t\t}\n \n+\t\tdev->device.bus = &rte_dpaa_bus.bus;\n+\n \t\tcfg = &dpaa_netcfg->port_cfg[i];\n \t\tfman_intf = cfg->fman_if;\n \ndiff --git a/drivers/bus/dpaa/meson.build b/drivers/bus/dpaa/meson.build\nindex d10b62c03..5e7705571 100644\n--- a/drivers/bus/dpaa/meson.build\n+++ b/drivers/bus/dpaa/meson.build\n@@ -1,6 +1,8 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright 2018 NXP\n \n+version = 2\n+\n if host_machine.system() != 'linux'\n         build = false\n endif\ndiff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile\nindex 515d0f534..e95551980 100644\n--- a/drivers/bus/fslmc/Makefile\n+++ b/drivers/bus/fslmc/Makefile\n@@ -24,7 +24,7 @@ LDLIBS += -lrte_ethdev\n EXPORT_MAP := rte_bus_fslmc_version.map\n \n # library version\n-LIBABIVER := 1\n+LIBABIVER := 2\n \n SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += \\\n         qbman/qbman_portal.c \\\ndiff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c\nindex bfe81e236..960f55071 100644\n--- a/drivers/bus/fslmc/fslmc_bus.c\n+++ b/drivers/bus/fslmc/fslmc_bus.c\n@@ -161,6 +161,8 @@ scan_one_fslmc_device(char *dev_name)\n \t\treturn -ENOMEM;\n \t}\n \n+\tdev->device.bus = &rte_fslmc_bus.bus;\n+\n \t/* Parse the device name and ID */\n \tt_ptr = strtok(dup_dev_name, \".\");\n \tif (!t_ptr) {\ndiff --git a/drivers/bus/fslmc/meson.build b/drivers/bus/fslmc/meson.build\nindex 22a56a6fc..54ca92d0c 100644\n--- a/drivers/bus/fslmc/meson.build\n+++ b/drivers/bus/fslmc/meson.build\n@@ -1,6 +1,8 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright 2018 NXP\n \n+version = 2\n+\n if host_machine.system() != 'linux'\n         build = false\n endif\ndiff --git a/drivers/bus/ifpga/Makefile b/drivers/bus/ifpga/Makefile\nindex 3ff3bdb81..514452b39 100644\n--- a/drivers/bus/ifpga/Makefile\n+++ b/drivers/bus/ifpga/Makefile\n@@ -19,7 +19,7 @@ LDLIBS += -lrte_kvargs\n EXPORT_MAP := rte_bus_ifpga_version.map\n \n # library version\n-LIBABIVER := 1\n+LIBABIVER := 2\n \n SRCS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga_bus.c\n SRCS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga_common.c\ndiff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c\nindex 3ef035b7e..80663328a 100644\n--- a/drivers/bus/ifpga/ifpga_bus.c\n+++ b/drivers/bus/ifpga/ifpga_bus.c\n@@ -142,6 +142,7 @@ ifpga_scan_one(struct rte_rawdev *rawdev,\n \tif (!afu_dev)\n \t\tgoto end;\n \n+\tafu_dev->device.bus = &rte_ifpga_bus;\n \tafu_dev->device.devargs = devargs;\n \tafu_dev->device.numa_node = SOCKET_ID_ANY;\n \tafu_dev->device.name = devargs->name;\ndiff --git a/drivers/bus/ifpga/meson.build b/drivers/bus/ifpga/meson.build\nindex c9b08c862..0b5c38d54 100644\n--- a/drivers/bus/ifpga/meson.build\n+++ b/drivers/bus/ifpga/meson.build\n@@ -1,6 +1,8 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2010-2018 Intel Corporation\n \n+version = 2\n+\n deps += ['pci', 'kvargs', 'rawdev']\n install_headers('rte_bus_ifpga.h')\n sources = files('ifpga_common.c', 'ifpga_bus.c')\ndiff --git a/drivers/bus/pci/Makefile b/drivers/bus/pci/Makefile\nindex 4de953f8f..f33e0120f 100644\n--- a/drivers/bus/pci/Makefile\n+++ b/drivers/bus/pci/Makefile\n@@ -4,7 +4,7 @@\n include $(RTE_SDK)/mk/rte.vars.mk\n \n LIB = librte_bus_pci.a\n-LIBABIVER := 1\n+LIBABIVER := 2\n EXPORT_MAP := rte_bus_pci_version.map\n \n CFLAGS := -I$(SRCDIR) $(CFLAGS)\ndiff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c\nindex 655b34b7e..40641cad4 100644\n--- a/drivers/bus/pci/bsd/pci.c\n+++ b/drivers/bus/pci/bsd/pci.c\n@@ -223,6 +223,8 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf)\n \t}\n \n \tmemset(dev, 0, sizeof(*dev));\n+\tdev->device.bus = &rte_pci_bus.bus;\n+\n \tdev->addr.domain = conf->pc_sel.pc_domain;\n \tdev->addr.bus = conf->pc_sel.pc_bus;\n \tdev->addr.devid = conf->pc_sel.pc_dev;\ndiff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c\nindex 04648ac93..e31bbb370 100644\n--- a/drivers/bus/pci/linux/pci.c\n+++ b/drivers/bus/pci/linux/pci.c\n@@ -228,6 +228,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr)\n \t\treturn -1;\n \n \tmemset(dev, 0, sizeof(*dev));\n+\tdev->device.bus = &rte_pci_bus.bus;\n \tdev->addr = *addr;\n \n \t/* get vendor id */\ndiff --git a/drivers/bus/pci/meson.build b/drivers/bus/pci/meson.build\nindex 23d6a5fec..ef9492bb8 100644\n--- a/drivers/bus/pci/meson.build\n+++ b/drivers/bus/pci/meson.build\n@@ -1,6 +1,8 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2017 Intel Corporation\n \n+version = 2\n+\n deps += ['pci']\n install_headers('rte_bus_pci.h')\n sources = files('pci_common.c',\ndiff --git a/drivers/bus/pci/private.h b/drivers/bus/pci/private.h\nindex 0e689fa74..04bffa6e7 100644\n--- a/drivers/bus/pci/private.h\n+++ b/drivers/bus/pci/private.h\n@@ -15,6 +15,8 @@ extern struct rte_pci_bus rte_pci_bus;\n struct rte_pci_driver;\n struct rte_pci_device;\n \n+extern struct rte_pci_bus rte_pci_bus;\n+\n /**\n  * Probe the PCI bus\n  *\ndiff --git a/drivers/bus/vdev/Makefile b/drivers/bus/vdev/Makefile\nindex 1f9cd7ebe..803b8ea7b 100644\n--- a/drivers/bus/vdev/Makefile\n+++ b/drivers/bus/vdev/Makefile\n@@ -16,7 +16,7 @@ CFLAGS += -DALLOW_EXPERIMENTAL_API\n EXPORT_MAP := rte_bus_vdev_version.map\n \n # library version\n-LIBABIVER := 1\n+LIBABIVER := 2\n \n SRCS-y += vdev.c\n SRCS-y += vdev_params.c\ndiff --git a/drivers/bus/vdev/meson.build b/drivers/bus/vdev/meson.build\nindex 12605e5c7..803785f10 100644\n--- a/drivers/bus/vdev/meson.build\n+++ b/drivers/bus/vdev/meson.build\n@@ -1,6 +1,8 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2017 Intel Corporation\n \n+version = 2\n+\n sources = files('vdev.c',\n \t'vdev_params.c')\n install_headers('rte_bus_vdev.h')\ndiff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c\nindex efca962f7..0142fb2c8 100644\n--- a/drivers/bus/vdev/vdev.c\n+++ b/drivers/bus/vdev/vdev.c\n@@ -456,6 +456,7 @@ vdev_scan(void)\n \t\t\tcontinue;\n \t\t}\n \n+\t\tdev->device.bus = &rte_vdev_bus;\n \t\tdev->device.devargs = devargs;\n \t\tdev->device.numa_node = SOCKET_ID_ANY;\n \t\tdev->device.name = devargs->name;\ndiff --git a/drivers/bus/vmbus/Makefile b/drivers/bus/vmbus/Makefile\nindex deee9dd10..e54c557c6 100644\n--- a/drivers/bus/vmbus/Makefile\n+++ b/drivers/bus/vmbus/Makefile\n@@ -3,7 +3,7 @@\n include $(RTE_SDK)/mk/rte.vars.mk\n \n LIB = librte_bus_vmbus.a\n-LIBABIVER := 1\n+LIBABIVER := 2\n EXPORT_MAP := rte_bus_vmbus_version.map\n \n CFLAGS += -I$(SRCDIR)\ndiff --git a/drivers/bus/vmbus/linux/vmbus_bus.c b/drivers/bus/vmbus/linux/vmbus_bus.c\nindex 527a6a39f..a4755a387 100644\n--- a/drivers/bus/vmbus/linux/vmbus_bus.c\n+++ b/drivers/bus/vmbus/linux/vmbus_bus.c\n@@ -229,6 +229,7 @@ vmbus_scan_one(const char *name)\n \tif (dev == NULL)\n \t\treturn -1;\n \n+\tdev->device.bus = &rte_vmbus_bus.bus;\n \tdev->device.name = strdup(name);\n \tif (!dev->device.name)\n \t\tgoto error;\ndiff --git a/drivers/bus/vmbus/meson.build b/drivers/bus/vmbus/meson.build\nindex 18daabecc..0e4d058ee 100644\n--- a/drivers/bus/vmbus/meson.build\n+++ b/drivers/bus/vmbus/meson.build\n@@ -1,5 +1,7 @@\n # SPDX-License-Identifier: BSD-3-Clause\n \n+version = 2\n+\n allow_experimental_apis = true\n \n install_headers('rte_bus_vmbus.h','rte_vmbus_reg.h')\ndiff --git a/drivers/bus/vmbus/private.h b/drivers/bus/vmbus/private.h\nindex f2022a68c..211127dd8 100644\n--- a/drivers/bus/vmbus/private.h\n+++ b/drivers/bus/vmbus/private.h\n@@ -10,11 +10,14 @@\n #include <sys/uio.h>\n #include <rte_log.h>\n #include <rte_vmbus_reg.h>\n+#include <rte_bus_vmbus.h>\n \n #ifndef PAGE_SIZE\n #define PAGE_SIZE\t4096\n #endif\n \n+extern struct rte_vmbus_bus rte_vmbus_bus;\n+\n extern int vmbus_logtype_bus;\n #define VMBUS_LOG(level, fmt, args...) \\\n \trte_log(RTE_LOG_ ## level, vmbus_logtype_bus, \"%s(): \" fmt \"\\n\", \\\ndiff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h\nindex b80a80598..d82cba847 100644\n--- a/lib/librte_eal/common/include/rte_dev.h\n+++ b/lib/librte_eal/common/include/rte_dev.h\n@@ -157,6 +157,7 @@ struct rte_device {\n \tTAILQ_ENTRY(rte_device) next; /**< Next device */\n \tconst char *name;             /**< Device name */\n \tconst struct rte_driver *driver;/**< Associated driver */\n+\tconst struct rte_bus *bus;    /**< Bus handle assigned on scan */\n \tint numa_node;                /**< NUMA node connection */\n \tstruct rte_devargs *devargs;  /**< Device user arguments */\n };\n",
    "prefixes": [
        "v6",
        "3/5"
    ]
}