From 0801f9fc5b63ad51ee6d7e015087cde5d2c7340e Mon Sep 17 00:00:00 2001 From: Tetsuya Mukawa Date: Wed, 8 Jul 2015 19:34:49 +0900 Subject: [PATCH] pci: merge mapping structures for linux and bsd This patch consolidates below structures, and defines them in common code. - struct pci_map - struct mapped_pci_resources Signed-off-by: Tetsuya Mukawa Acked-by: Bernard Iremonger Acked-by: David Marchand --- lib/librte_eal/bsdapp/eal/eal_pci.c | 24 ------------------- lib/librte_eal/common/include/rte_pci.h | 28 ++++++++++++++++++++++ lib/librte_eal/linuxapp/eal/eal_pci_init.h | 23 ------------------ 3 files changed, 28 insertions(+), 47 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c b/lib/librte_eal/bsdapp/eal/eal_pci.c index 7a1480d58f..ae3ce30ef9 100644 --- a/lib/librte_eal/bsdapp/eal/eal_pci.c +++ b/lib/librte_eal/bsdapp/eal/eal_pci.c @@ -82,30 +82,6 @@ * network card, only providing access to PCI BAR to applications, and * enabling bus master. */ - -struct pci_map { - void *addr; - char *path; - uint64_t offset; - uint64_t size; - uint64_t phaddr; -}; - -/* - * For multi-process we need to reproduce all PCI mappings in secondary - * processes, so save them in a tailq. - */ -struct mapped_pci_resource { - TAILQ_ENTRY(mapped_pci_resource) next; - - struct rte_pci_addr pci_addr; - char path[PATH_MAX]; - int nb_maps; - struct pci_map maps[PCI_MAX_RESOURCE]; -}; - -TAILQ_HEAD(mapped_pci_res_list, mapped_pci_resource); - static struct rte_tailq_elem rte_uio_tailq = { .name = "UIO_RESOURCE_LIST", }; diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 7801fa0ab9..0a2ef0991e 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -220,6 +220,34 @@ struct rte_pci_driver { /** Device driver supports detaching capability */ #define RTE_PCI_DRV_DETACHABLE 0x0010 +/** + * A structure describing a PCI mapping. + */ +struct pci_map { + void *addr; + char *path; + uint64_t offset; + uint64_t size; + uint64_t phaddr; +}; + +/** + * A structure describing a mapped PCI resource. + * For multi-process we need to reproduce all PCI mappings in secondary + * processes, so save them in a tailq. + */ +struct mapped_pci_resource { + TAILQ_ENTRY(mapped_pci_resource) next; + + struct rte_pci_addr pci_addr; + char path[PATH_MAX]; + int nb_maps; + struct pci_map maps[PCI_MAX_RESOURCE]; +}; + +/** mapped pci device list */ +TAILQ_HEAD(mapped_pci_res_list, mapped_pci_resource); + /**< Internal use only - Macro used by pci addr parsing functions **/ #define GET_PCIADDR_FIELD(in, fd, lim, dlm) \ do { \ diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_init.h b/lib/librte_eal/linuxapp/eal/eal_pci_init.h index aa7b75524f..d9d1878cea 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci_init.h +++ b/lib/librte_eal/linuxapp/eal/eal_pci_init.h @@ -36,29 +36,6 @@ #include "eal_vfio.h" -struct pci_map { - void *addr; - char *path; - uint64_t offset; - uint64_t size; - uint64_t phaddr; -}; - -/* - * For multi-process we need to reproduce all PCI mappings in secondary - * processes, so save them in a tailq. - */ -struct mapped_pci_resource { - TAILQ_ENTRY(mapped_pci_resource) next; - - struct rte_pci_addr pci_addr; - char path[PATH_MAX]; - int nb_maps; - struct pci_map maps[PCI_MAX_RESOURCE]; -}; - -TAILQ_HEAD(mapped_pci_res_list, mapped_pci_resource); - /* * Helper function to map PCI resources right after hugepages in virtual memory */ -- 2.20.1