From patchwork Fri Dec 29 18:04:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiao Wang X-Patchwork-Id: 32792 X-Patchwork-Delegate: maxime.coquelin@redhat.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 976A33250; Fri, 29 Dec 2017 10:29:11 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 2DFD923D for ; Fri, 29 Dec 2017 10:29:08 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Dec 2017 01:29:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,475,1508828400"; d="scan'208";a="15934398" Received: from dpdk-xiao-1.sh.intel.com ([10.67.110.153]) by orsmga003.jf.intel.com with ESMTP; 29 Dec 2017 01:29:05 -0800 From: Xiao Wang To: dev@dpdk.org Cc: zhihong.wang@intel.com, jianfeng.tan@intel.com, tiwei.bie@intel.com, maxime.coquelin@redhat.com, yliu@fridaylinux.org, cunming.liang@intel.com, dan.daly@intel.com, remy.horton@intel.com, mohammad.abdul.awal@intel.com, Xiao Wang Date: Fri, 29 Dec 2017 10:04:59 -0800 Message-Id: <1514570702-154906-2-git-send-email-xiao.w.wang@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1514570702-154906-1-git-send-email-xiao.w.wang@intel.com> References: <1514570702-154906-1-git-send-email-xiao.w.wang@intel.com> Subject: [dpdk-dev] [PATCH RFC 1/4] bus/pci: expose PCI API to app X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The vDPA device driver in later patch can use the existing pci api to set up device. Signed-off-by: Xiao Wang --- drivers/bus/pci/linux/pci.c | 4 ++-- drivers/bus/pci/linux/pci_init.h | 8 ++++++++ drivers/bus/pci/linux/pci_vfio.c | 6 +++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index 5da6728..6fe35bb 100644 --- a/drivers/bus/pci/linux/pci.c +++ b/drivers/bus/pci/linux/pci.c @@ -61,7 +61,7 @@ extern struct rte_pci_bus rte_pci_bus; -static int +int pci_get_kernel_driver_by_path(const char *filename, char *dri_name) { int count; @@ -198,7 +198,7 @@ } /* parse the "resource" sysfs file */ -static int +int pci_parse_sysfs_resource(const char *filename, struct rte_pci_device *dev) { FILE *f; diff --git a/drivers/bus/pci/linux/pci_init.h b/drivers/bus/pci/linux/pci_init.h index f342c47..dbca3dd 100644 --- a/drivers/bus/pci/linux/pci_init.h +++ b/drivers/bus/pci/linux/pci_init.h @@ -35,6 +35,7 @@ #define EAL_PCI_INIT_H_ #include +#include #include @@ -106,6 +107,13 @@ void pci_vfio_ioport_write(struct rte_pci_ioport *p, int pci_vfio_is_enabled(void); +int pci_get_kernel_driver_by_path(const char *filename, char *dri_name); +int pci_parse_sysfs_resource(const char *filename, struct rte_pci_device *dev); + +int pci_vfio_get_msix_bar(int fd, struct pci_msix_table *msix_table); +int pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd); +int pci_vfio_set_bus_master(int dev_fd, bool op); + #endif #endif /* EAL_PCI_INIT_H_ */ diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c index 1f93fa4..f1a47b7 100644 --- a/drivers/bus/pci/linux/pci_vfio.c +++ b/drivers/bus/pci/linux/pci_vfio.c @@ -89,7 +89,7 @@ } /* get PCI BAR number where MSI-X interrupts are */ -static int +int pci_vfio_get_msix_bar(int fd, struct pci_msix_table *msix_table) { int ret; @@ -174,7 +174,7 @@ } /* set PCI bus mastering */ -static int +int pci_vfio_set_bus_master(int dev_fd, bool op) { uint16_t reg; @@ -207,7 +207,7 @@ } /* set up interrupt support (but not enable interrupts) */ -static int +int pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd) { int i, ret, intr_idx;