From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Horman Subject: [PATCH 11/19] pmd: Move rte_pmd_init_all to be non-inline Date: Thu, 10 Apr 2014 16:50:01 -0400 Message-ID: <1397163009-29950-11-git-send-email-nhorman@tuxdriver.com> References: <1397162846-28912-1-git-send-email-nhorman@tuxdriver.com> <1397163009-29950-1-git-send-email-nhorman@tuxdriver.com> Cc: Neil Horman To: dev-VfR2kkLFssw@public.gmane.org Return-path: In-Reply-To: <1397163009-29950-1-git-send-email-nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" Organizational change in support of doing dynamic init routine registration Signed-off-by: Neil Horman --- lib/librte_ether/rte_ethdev.c | 52 ++++++++++++++++++++++++++++++++++++++++++ lib/librte_ether/rte_ethdev.h | 53 +------------------------------------------ 2 files changed, 53 insertions(+), 52 deletions(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index a5727dd..dd378f0 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -112,6 +112,58 @@ static uint8_t nb_ports = 0; /* spinlock for eth device callbacks */ static rte_spinlock_t rte_eth_dev_cb_lock = RTE_SPINLOCK_INITIALIZER; +int rte_pmd_init_all(void) +{ + int ret = -ENODEV; + +#ifdef RTE_LIBRTE_IGB_PMD + if ((ret = rte_igb_pmd_init()) != 0) { + RTE_LOG(ERR, PMD, "Cannot init igb PMD\n"); + return (ret); + } + if ((ret = rte_igbvf_pmd_init()) != 0) { + RTE_LOG(ERR, PMD, "Cannot init igbvf PMD\n"); + return (ret); + } +#endif /* RTE_LIBRTE_IGB_PMD */ + +#ifdef RTE_LIBRTE_EM_PMD + if ((ret = rte_em_pmd_init()) != 0) { + RTE_LOG(ERR, PMD, "Cannot init em PMD\n"); + return (ret); + } +#endif /* RTE_LIBRTE_EM_PMD */ + +#ifdef RTE_LIBRTE_IXGBE_PMD + if ((ret = rte_ixgbe_pmd_init()) != 0) { + RTE_LOG(ERR, PMD, "Cannot init ixgbe PMD\n"); + return (ret); + } + if ((ret = rte_ixgbevf_pmd_init()) != 0) { + RTE_LOG(ERR, PMD, "Cannot init ixgbevf PMD\n"); + return (ret); + } +#endif /* RTE_LIBRTE_IXGBE_PMD */ + +#ifdef RTE_LIBRTE_VIRTIO_PMD + if ((ret = rte_virtio_pmd_init()) != 0) { + RTE_LOG(ERR, PMD, "Cannot init virtio PMD\n"); + return (ret); + } +#endif /* RTE_LIBRTE_VIRTIO_PMD */ + +#ifdef RTE_LIBRTE_VMXNET3_PMD + if ((ret = rte_vmxnet3_pmd_init()) != 0) { + RTE_LOG(ERR, PMD, "Cannot init vmxnet3 PMD\n"); + return (ret); + } +#endif /* RTE_LIBRTE_VMXNET3_PMD */ + + if (ret == -ENODEV) + RTE_LOG(ERR, PMD, "No PMD(s) are configured\n"); + return (ret); +} + /** * The user application callback description. * diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index dea7471..bf2ded4 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -1396,58 +1396,7 @@ extern int rte_vmxnet3_pmd_init(void); * -ENODEV if there are no drivers available * (e.g. if all driver config options are = n). */ -static inline -int rte_pmd_init_all(void) -{ - int ret = -ENODEV; - -#ifdef RTE_LIBRTE_IGB_PMD - if ((ret = rte_igb_pmd_init()) != 0) { - RTE_LOG(ERR, PMD, "Cannot init igb PMD\n"); - return (ret); - } - if ((ret = rte_igbvf_pmd_init()) != 0) { - RTE_LOG(ERR, PMD, "Cannot init igbvf PMD\n"); - return (ret); - } -#endif /* RTE_LIBRTE_IGB_PMD */ - -#ifdef RTE_LIBRTE_EM_PMD - if ((ret = rte_em_pmd_init()) != 0) { - RTE_LOG(ERR, PMD, "Cannot init em PMD\n"); - return (ret); - } -#endif /* RTE_LIBRTE_EM_PMD */ - -#ifdef RTE_LIBRTE_IXGBE_PMD - if ((ret = rte_ixgbe_pmd_init()) != 0) { - RTE_LOG(ERR, PMD, "Cannot init ixgbe PMD\n"); - return (ret); - } - if ((ret = rte_ixgbevf_pmd_init()) != 0) { - RTE_LOG(ERR, PMD, "Cannot init ixgbevf PMD\n"); - return (ret); - } -#endif /* RTE_LIBRTE_IXGBE_PMD */ - -#ifdef RTE_LIBRTE_VIRTIO_PMD - if ((ret = rte_virtio_pmd_init()) != 0) { - RTE_LOG(ERR, PMD, "Cannot init virtio PMD\n"); - return (ret); - } -#endif /* RTE_LIBRTE_VIRTIO_PMD */ - -#ifdef RTE_LIBRTE_VMXNET3_PMD - if ((ret = rte_vmxnet3_pmd_init()) != 0) { - RTE_LOG(ERR, PMD, "Cannot init vmxnet3 PMD\n"); - return (ret); - } -#endif /* RTE_LIBRTE_VMXNET3_PMD */ - - if (ret == -ENODEV) - RTE_LOG(ERR, PMD, "No PMD(s) are configured\n"); - return (ret); -} +extern int rte_pmd_init_all(void); /** * Configure an Ethernet device. -- 1.8.3.1