From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 86184A04F1; Mon, 6 Jan 2020 06:50:27 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D7D3E1D5B9; Mon, 6 Jan 2020 06:50:26 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id D8DFD1D5B7 for ; Mon, 6 Jan 2020 06:50:24 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jan 2020 21:50:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,401,1571727600"; d="scan'208";a="253238490" Received: from npg-dpdk-haiyue-1.sh.intel.com ([10.67.119.213]) by fmsmga002.fm.intel.com with ESMTP; 05 Jan 2020 21:50:22 -0800 From: Haiyue Wang To: dev@dpdk.org, xiaolong.ye@intel.com, qi.z.zhang@intel.com, qiming.yang@intel.com Cc: Haiyue Wang Date: Mon, 6 Jan 2020 13:43:37 +0800 Message-Id: <20200106054337.93775-1-haiyue.wang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200102053338.112378-1-haiyue.wang@intel.com> References: <20200102053338.112378-1-haiyue.wang@intel.com> Subject: [dpdk-dev] [PATCH v3] net/iavf/base: change the base as driver common 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" Change the iavf base code as driver common library, it is used by iavf PMD now, and it can be used by other Intel SR-IOV PMDs in the future. Signed-off-by: Haiyue Wang --- v3: update the commit message. v2: update the commit message, and rename the iavf_main.c to iavf_impl.c drivers/common/Makefile | 5 + drivers/common/iavf/Makefile | 28 +++++ drivers/{net/iavf/base => common/iavf}/README | 1 + .../iavf/base => common/iavf}/iavf_adminq.c | 0 .../iavf/base => common/iavf}/iavf_adminq.h | 0 .../base => common/iavf}/iavf_adminq_cmd.h | 0 .../iavf/base => common/iavf}/iavf_alloc.h | 0 .../iavf/base => common/iavf}/iavf_common.c | 0 .../iavf/base => common/iavf}/iavf_devids.h | 0 drivers/common/iavf/iavf_impl.c | 114 ++++++++++++++++++ .../iavf/base => common/iavf}/iavf_osdep.h | 50 ++------ .../base => common/iavf}/iavf_prototype.h | 0 .../iavf/base => common/iavf}/iavf_register.h | 0 .../iavf/base => common/iavf}/iavf_status.h | 0 .../iavf/base => common/iavf}/iavf_type.h | 0 drivers/common/iavf/meson.build | 10 ++ .../common/iavf/rte_common_iavf_version.map | 12 ++ .../{net/iavf/base => common/iavf}/virtchnl.h | 0 drivers/common/meson.build | 2 +- drivers/net/iavf/Makefile | 23 +--- drivers/net/iavf/base/meson.build | 23 ---- drivers/net/iavf/iavf.h | 6 +- drivers/net/iavf/iavf_ethdev.c | 83 ------------- drivers/net/iavf/iavf_rxtx.c | 3 - drivers/net/iavf/iavf_rxtx_vec_avx2.c | 1 - drivers/net/iavf/iavf_rxtx_vec_sse.c | 2 - drivers/net/iavf/iavf_vchnl.c | 5 - drivers/net/iavf/meson.build | 4 +- mk/rte.app.mk | 4 + 29 files changed, 192 insertions(+), 184 deletions(-) create mode 100644 drivers/common/iavf/Makefile rename drivers/{net/iavf/base => common/iavf}/README (96%) rename drivers/{net/iavf/base => common/iavf}/iavf_adminq.c (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_adminq.h (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_adminq_cmd.h (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_alloc.h (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_common.c (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_devids.h (100%) create mode 100644 drivers/common/iavf/iavf_impl.c rename drivers/{net/iavf/base => common/iavf}/iavf_osdep.h (75%) rename drivers/{net/iavf/base => common/iavf}/iavf_prototype.h (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_register.h (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_status.h (100%) rename drivers/{net/iavf/base => common/iavf}/iavf_type.h (100%) create mode 100644 drivers/common/iavf/meson.build create mode 100644 drivers/common/iavf/rte_common_iavf_version.map rename drivers/{net/iavf/base => common/iavf}/virtchnl.h (100%) delete mode 100644 drivers/net/iavf/base/meson.build diff --git a/drivers/common/Makefile b/drivers/common/Makefile index 1ff033bba..3254c5274 100644 --- a/drivers/common/Makefile +++ b/drivers/common/Makefile @@ -30,4 +30,9 @@ ifeq ($(CONFIG_RTE_LIBRTE_COMMON_DPAAX),y) DIRS-y += dpaax endif +IAVF-y := $(CONFIG_RTE_LIBRTE_IAVF_PMD) +ifneq (,$(findstring y,$(IAVF-y))) +DIRS-y += iavf +endif + include $(RTE_SDK)/mk/rte.subdir.mk diff --git a/drivers/common/iavf/Makefile b/drivers/common/iavf/Makefile new file mode 100644 index 000000000..43383e376 --- /dev/null +++ b/drivers/common/iavf/Makefile @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2019 Intel Corporation + +include $(RTE_SDK)/mk/rte.vars.mk + +# +# library name +# +LIB = librte_common_iavf.a + +CFLAGS += -DALLOW_EXPERIMENTAL_API +CFLAGS += -O3 +CFLAGS += $(WERROR_FLAGS) +CFLAGS += -Wno-pointer-arith +CFLAGS += -Wno-cast-qual + +EXPORT_MAP := rte_common_iavf_version.map + +# +# all source are stored in SRCS-y +# +SRCS-y += iavf_adminq.c +SRCS-y += iavf_common.c +SRCS-y += iavf_impl.c + +LDLIBS += -lrte_eal + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/net/iavf/base/README b/drivers/common/iavf/README similarity index 96% rename from drivers/net/iavf/base/README rename to drivers/common/iavf/README index e8c49c36f..b78e89bee 100644 --- a/drivers/net/iavf/base/README +++ b/drivers/common/iavf/README @@ -17,3 +17,4 @@ NOTE: The source code in this directory should not be modified apart from the following file(s): iavf_osdep.h + iavf_impl.c diff --git a/drivers/net/iavf/base/iavf_adminq.c b/drivers/common/iavf/iavf_adminq.c similarity index 100% rename from drivers/net/iavf/base/iavf_adminq.c rename to drivers/common/iavf/iavf_adminq.c diff --git a/drivers/net/iavf/base/iavf_adminq.h b/drivers/common/iavf/iavf_adminq.h similarity index 100% rename from drivers/net/iavf/base/iavf_adminq.h rename to drivers/common/iavf/iavf_adminq.h diff --git a/drivers/net/iavf/base/iavf_adminq_cmd.h b/drivers/common/iavf/iavf_adminq_cmd.h similarity index 100% rename from drivers/net/iavf/base/iavf_adminq_cmd.h rename to drivers/common/iavf/iavf_adminq_cmd.h diff --git a/drivers/net/iavf/base/iavf_alloc.h b/drivers/common/iavf/iavf_alloc.h similarity index 100% rename from drivers/net/iavf/base/iavf_alloc.h rename to drivers/common/iavf/iavf_alloc.h diff --git a/drivers/net/iavf/base/iavf_common.c b/drivers/common/iavf/iavf_common.c similarity index 100% rename from drivers/net/iavf/base/iavf_common.c rename to drivers/common/iavf/iavf_common.c diff --git a/drivers/net/iavf/base/iavf_devids.h b/drivers/common/iavf/iavf_devids.h similarity index 100% rename from drivers/net/iavf/base/iavf_devids.h rename to drivers/common/iavf/iavf_devids.h diff --git a/drivers/common/iavf/iavf_impl.c b/drivers/common/iavf/iavf_impl.c new file mode 100644 index 000000000..d33ee0071 --- /dev/null +++ b/drivers/common/iavf/iavf_impl.c @@ -0,0 +1,114 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2019 Intel Corporation + */ + +#include +#include + +#include +#include +#include +#include + +#include "iavf_type.h" +#include "iavf_prototype.h" + +int iavf_common_logger; + +void +iavf_init_spinlock(struct iavf_spinlock *sp) +{ + rte_spinlock_init(&sp->spinlock); +} + +void +iavf_acquire_spinlock(struct iavf_spinlock *sp) +{ + rte_spinlock_lock(&sp->spinlock); +} + +void +iavf_release_spinlock(struct iavf_spinlock *sp) +{ + rte_spinlock_unlock(&sp->spinlock); +} + +void +iavf_destroy_spinlock(__rte_unused struct iavf_spinlock *sp) +{ +} + +enum iavf_status +iavf_allocate_dma_mem(__rte_unused struct iavf_hw *hw, struct iavf_dma_mem *mem, + __rte_unused enum iavf_memory_type type, + u64 size, u32 alignment) +{ + const struct rte_memzone *mz = NULL; + char z_name[RTE_MEMZONE_NAMESIZE]; + + if (!mem) + return IAVF_ERR_PARAM; + + snprintf(z_name, sizeof(z_name), "iavf_dma_%"PRIu64, rte_rand()); + mz = rte_memzone_reserve_bounded(z_name, size, SOCKET_ID_ANY, + RTE_MEMZONE_IOVA_CONTIG, alignment, + RTE_PGSIZE_2M); + if (!mz) + return IAVF_ERR_NO_MEMORY; + + mem->size = size; + mem->va = mz->addr; + mem->pa = mz->iova; + mem->zone = mz; + + return IAVF_SUCCESS; +} + +enum iavf_status +iavf_free_dma_mem(__rte_unused struct iavf_hw *hw, struct iavf_dma_mem *mem) +{ + if (!mem) + return IAVF_ERR_PARAM; + + rte_memzone_free(mem->zone); + mem->zone = NULL; + mem->va = NULL; + mem->pa = (u64)0; + + return IAVF_SUCCESS; +} + +enum iavf_status +iavf_allocate_virt_mem(__rte_unused struct iavf_hw *hw, + struct iavf_virt_mem *mem, u32 size) +{ + if (!mem) + return IAVF_ERR_PARAM; + + mem->size = size; + mem->va = rte_zmalloc("iavf", size, 0); + + if (mem->va) + return IAVF_SUCCESS; + else + return IAVF_ERR_NO_MEMORY; +} + +enum iavf_status +iavf_free_virt_mem(__rte_unused struct iavf_hw *hw, struct iavf_virt_mem *mem) +{ + if (!mem) + return IAVF_ERR_PARAM; + + rte_free(mem->va); + mem->va = NULL; + + return IAVF_SUCCESS; +} + +RTE_INIT(iavf_common_init_log) +{ + iavf_common_logger = rte_log_register("pmd.common.iavf"); + if (iavf_common_logger >= 0) + rte_log_set_level(iavf_common_logger, RTE_LOG_NOTICE); +} diff --git a/drivers/net/iavf/base/iavf_osdep.h b/drivers/common/iavf/iavf_osdep.h similarity index 75% rename from drivers/net/iavf/base/iavf_osdep.h rename to drivers/common/iavf/iavf_osdep.h index 1b22f9fbc..b5aaee5b0 100644 --- a/drivers/net/iavf/base/iavf_osdep.h +++ b/drivers/common/iavf/iavf_osdep.h @@ -21,8 +21,6 @@ #include #include -#include "../iavf_log.h" - #define INLINE inline #define STATIC static @@ -72,10 +70,6 @@ typedef uint64_t u64; #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f)) #define ASSERT(x) if(!(x)) rte_panic("IAVF: x") -#define DEBUGOUT(S) PMD_DRV_LOG_RAW(DEBUG, S) -#define DEBUGOUT2(S, A...) PMD_DRV_LOG_RAW(DEBUG, S, ##A) -#define DEBUGFUNC(F) DEBUGOUT(F "\n") - #define CPU_TO_LE16(o) rte_cpu_to_le_16(o) #define CPU_TO_LE32(s) rte_cpu_to_le_32(s) #define CPU_TO_LE64(h) rte_cpu_to_le_64(h) @@ -123,10 +117,17 @@ uint32_t iavf_read_addr(volatile void *addr) #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0])) +extern int iavf_common_logger; + +#define DEBUGOUT(S) rte_log(RTE_LOG_DEBUG, iavf_common_logger, S) +#define DEBUGOUT2(S, A...) rte_log(RTE_LOG_DEBUG, iavf_common_logger, S, ##A) +#define DEBUGFUNC(F) DEBUGOUT(F "\n") + #define iavf_debug(h, m, s, ...) \ do { \ if (((m) & (h)->debug_mask)) \ - PMD_DRV_LOG_RAW(DEBUG, "iavf %02x.%x " s, \ + rte_log(RTE_LOG_DEBUG, iavf_common_logger, \ + "iavf %02x.%x " s, \ (h)->bus.device, (h)->bus.func, \ ##__VA_ARGS__); \ } while (0) @@ -149,39 +150,4 @@ struct iavf_spinlock { rte_spinlock_t spinlock; }; -#define iavf_allocate_dma_mem(h, m, unused, s, a) \ - iavf_allocate_dma_mem_d(h, m, s, a) -#define iavf_free_dma_mem(h, m) iavf_free_dma_mem_d(h, m) - -#define iavf_allocate_virt_mem(h, m, s) iavf_allocate_virt_mem_d(h, m, s) -#define iavf_free_virt_mem(h, m) iavf_free_virt_mem_d(h, m) - -static inline void -iavf_init_spinlock_d(struct iavf_spinlock *sp) -{ - rte_spinlock_init(&sp->spinlock); -} - -static inline void -iavf_acquire_spinlock_d(struct iavf_spinlock *sp) -{ - rte_spinlock_lock(&sp->spinlock); -} - -static inline void -iavf_release_spinlock_d(struct iavf_spinlock *sp) -{ - rte_spinlock_unlock(&sp->spinlock); -} - -static inline void -iavf_destroy_spinlock_d(__rte_unused struct iavf_spinlock *sp) -{ -} - -#define iavf_init_spinlock(_sp) iavf_init_spinlock_d(_sp) -#define iavf_acquire_spinlock(_sp) iavf_acquire_spinlock_d(_sp) -#define iavf_release_spinlock(_sp) iavf_release_spinlock_d(_sp) -#define iavf_destroy_spinlock(_sp) iavf_destroy_spinlock_d(_sp) - #endif /* _IAVF_OSDEP_H_ */ diff --git a/drivers/net/iavf/base/iavf_prototype.h b/drivers/common/iavf/iavf_prototype.h similarity index 100% rename from drivers/net/iavf/base/iavf_prototype.h rename to drivers/common/iavf/iavf_prototype.h diff --git a/drivers/net/iavf/base/iavf_register.h b/drivers/common/iavf/iavf_register.h similarity index 100% rename from drivers/net/iavf/base/iavf_register.h rename to drivers/common/iavf/iavf_register.h diff --git a/drivers/net/iavf/base/iavf_status.h b/drivers/common/iavf/iavf_status.h similarity index 100% rename from drivers/net/iavf/base/iavf_status.h rename to drivers/common/iavf/iavf_status.h diff --git a/drivers/net/iavf/base/iavf_type.h b/drivers/common/iavf/iavf_type.h similarity index 100% rename from drivers/net/iavf/base/iavf_type.h rename to drivers/common/iavf/iavf_type.h diff --git a/drivers/common/iavf/meson.build b/drivers/common/iavf/meson.build new file mode 100644 index 000000000..7b68ef27f --- /dev/null +++ b/drivers/common/iavf/meson.build @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2019 Intel Corporation + +allow_experimental_apis = true + +sources = files('iavf_adminq.c', 'iavf_common.c', 'iavf_impl.c') + +if cc.has_argument('-Wno-pointer-to-int-cast') + cflags += '-Wno-pointer-to-int-cast' +endif diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map new file mode 100644 index 000000000..1a0839262 --- /dev/null +++ b/drivers/common/iavf/rte_common_iavf_version.map @@ -0,0 +1,12 @@ +DPDK_20.0 { + global: + + iavf_init_adminq; + iavf_shutdown_adminq; + iavf_aq_send_msg_to_pf; + iavf_clean_arq_element; + iavf_set_mac_type; + iavf_vf_parse_hw_config; + + local: *; +}; diff --git a/drivers/net/iavf/base/virtchnl.h b/drivers/common/iavf/virtchnl.h similarity index 100% rename from drivers/net/iavf/base/virtchnl.h rename to drivers/common/iavf/virtchnl.h diff --git a/drivers/common/meson.build b/drivers/common/meson.build index 7b5e566f3..fc620f741 100644 --- a/drivers/common/meson.build +++ b/drivers/common/meson.build @@ -2,6 +2,6 @@ # Copyright(c) 2018 Cavium, Inc std_deps = ['eal'] -drivers = ['cpt', 'dpaax', 'mvep', 'octeontx', 'octeontx2', 'qat'] +drivers = ['cpt', 'dpaax', 'iavf', 'mvep', 'octeontx', 'octeontx2', 'qat'] config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON' driver_name_fmt = 'rte_common_@0@' diff --git a/drivers/net/iavf/Makefile b/drivers/net/iavf/Makefile index 81c9a0dbf..514073d76 100644 --- a/drivers/net/iavf/Makefile +++ b/drivers/net/iavf/Makefile @@ -8,37 +8,18 @@ include $(RTE_SDK)/mk/rte.vars.mk # LIB = librte_pmd_iavf.a +CFLAGS += -I$(RTE_SDK)/drivers/common/iavf CFLAGS += -O3 $(WERROR_FLAGS) -Wno-strict-aliasing -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash LDLIBS += -lrte_bus_pci +LDLIBS += -lrte_common_iavf EXPORT_MAP := rte_pmd_iavf_version.map -# -# Add extra flags for base driver files (also known as shared code) -# to disable warnings -# -ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y) -CFLAGS_BASE_DRIVER = -else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y) -CFLAGS_BASE_DRIVER = -Wno-pointer-to-int-cast -else -CFLAGS_BASE_DRIVER = -Wno-pointer-to-int-cast - -endif -OBJS_BASE_DRIVER=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c)))) -$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER))) - - -VPATH += $(SRCDIR)/base - # # all source are stored in SRCS-y # -SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_adminq.c -SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_common.c - SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_ethdev.c SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_vchnl.c SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_rxtx.c diff --git a/drivers/net/iavf/base/meson.build b/drivers/net/iavf/base/meson.build deleted file mode 100644 index bcb24b739..000000000 --- a/drivers/net/iavf/base/meson.build +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause -# Copyright(c) 2018 Luca Boccassi - -sources = [ - 'iavf_adminq.c', - 'iavf_common.c', -] - -error_cflags = ['-Wno-pointer-to-int-cast'] -c_args = cflags -if allow_experimental_apis - c_args += '-DALLOW_EXPERIMENTAL_API' -endif -foreach flag: error_cflags - if cc.has_argument(flag) - c_args += flag - endif -endforeach - -base_lib = static_library('iavf_base', sources, - dependencies: static_rte_eal, - c_args: c_args) -base_objs = base_lib.extract_all_objects() diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h index 946680891..fe25d807c 100644 --- a/drivers/net/iavf/iavf.h +++ b/drivers/net/iavf/iavf.h @@ -6,7 +6,11 @@ #define _IAVF_ETHDEV_H_ #include -#include "base/iavf_type.h" +#include +#include +#include + +#include "iavf_log.h" #define IAVF_AQ_LEN 32 #define IAVF_AQ_BUF_SZ 4096 diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 233f2fb3a..f69c50df5 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -25,11 +25,6 @@ #include #include -#include "iavf_log.h" -#include "base/iavf_prototype.h" -#include "base/iavf_adminq_cmd.h" -#include "base/iavf_type.h" - #include "iavf.h" #include "iavf_rxtx.h" @@ -1470,81 +1465,3 @@ RTE_INIT(iavf_init_log) rte_log_set_level(iavf_logtype_tx_free, RTE_LOG_DEBUG); #endif } - -/* memory func for base code */ -enum iavf_status -iavf_allocate_dma_mem_d(__rte_unused struct iavf_hw *hw, - struct iavf_dma_mem *mem, - u64 size, - u32 alignment) -{ - const struct rte_memzone *mz = NULL; - char z_name[RTE_MEMZONE_NAMESIZE]; - - if (!mem) - return IAVF_ERR_PARAM; - - snprintf(z_name, sizeof(z_name), "iavf_dma_%"PRIu64, rte_rand()); - mz = rte_memzone_reserve_bounded(z_name, size, SOCKET_ID_ANY, - RTE_MEMZONE_IOVA_CONTIG, alignment, RTE_PGSIZE_2M); - if (!mz) - return IAVF_ERR_NO_MEMORY; - - mem->size = size; - mem->va = mz->addr; - mem->pa = mz->phys_addr; - mem->zone = (const void *)mz; - PMD_DRV_LOG(DEBUG, - "memzone %s allocated with physical address: %"PRIu64, - mz->name, mem->pa); - - return IAVF_SUCCESS; -} - -enum iavf_status -iavf_free_dma_mem_d(__rte_unused struct iavf_hw *hw, - struct iavf_dma_mem *mem) -{ - if (!mem) - return IAVF_ERR_PARAM; - - PMD_DRV_LOG(DEBUG, - "memzone %s to be freed with physical address: %"PRIu64, - ((const struct rte_memzone *)mem->zone)->name, mem->pa); - rte_memzone_free((const struct rte_memzone *)mem->zone); - mem->zone = NULL; - mem->va = NULL; - mem->pa = (u64)0; - - return IAVF_SUCCESS; -} - -enum iavf_status -iavf_allocate_virt_mem_d(__rte_unused struct iavf_hw *hw, - struct iavf_virt_mem *mem, - u32 size) -{ - if (!mem) - return IAVF_ERR_PARAM; - - mem->size = size; - mem->va = rte_zmalloc("iavf", size, 0); - - if (mem->va) - return IAVF_SUCCESS; - else - return IAVF_ERR_NO_MEMORY; -} - -enum iavf_status -iavf_free_virt_mem_d(__rte_unused struct iavf_hw *hw, - struct iavf_virt_mem *mem) -{ - if (!mem) - return IAVF_ERR_PARAM; - - rte_free(mem->va); - mem->va = NULL; - - return IAVF_SUCCESS; -} diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c index 88f79ba37..067290db4 100644 --- a/drivers/net/iavf/iavf_rxtx.c +++ b/drivers/net/iavf/iavf_rxtx.c @@ -24,9 +24,6 @@ #include #include -#include "iavf_log.h" -#include "base/iavf_prototype.h" -#include "base/iavf_type.h" #include "iavf.h" #include "iavf_rxtx.h" diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c index a5133d8d8..7c5d23fd0 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c +++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c @@ -2,7 +2,6 @@ * Copyright(c) 2019 Intel Corporation */ -#include "base/iavf_prototype.h" #include "iavf_rxtx_vec_common.h" #include diff --git a/drivers/net/iavf/iavf_rxtx_vec_sse.c b/drivers/net/iavf/iavf_rxtx_vec_sse.c index 2b16dc1b5..b978cc6e0 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_sse.c +++ b/drivers/net/iavf/iavf_rxtx_vec_sse.c @@ -6,8 +6,6 @@ #include #include -#include "base/iavf_prototype.h" -#include "base/iavf_type.h" #include "iavf.h" #include "iavf_rxtx.h" #include "iavf_rxtx_vec_common.h" diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c index 303b51538..fa4da3a6d 100644 --- a/drivers/net/iavf/iavf_vchnl.c +++ b/drivers/net/iavf/iavf_vchnl.c @@ -19,11 +19,6 @@ #include #include -#include "iavf_log.h" -#include "base/iavf_prototype.h" -#include "base/iavf_adminq_cmd.h" -#include "base/iavf_type.h" - #include "iavf.h" #include "iavf_rxtx.h" diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build index ce820573b..dbd0b01db 100644 --- a/drivers/net/iavf/meson.build +++ b/drivers/net/iavf/meson.build @@ -5,8 +5,8 @@ cflags += ['-Wno-strict-aliasing'] allow_experimental_apis = true -subdir('base') -objs = [base_objs] +includes += include_directories('../../common/iavf') +deps += ['common_iavf'] sources = files( 'iavf_ethdev.c', diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 05ea034b9..597d6f6e9 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -183,6 +183,10 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += -lrte_pmd_hns3 _LDLIBS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += -lrte_pmd_i40e _LDLIBS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += -lrte_pmd_iavf _LDLIBS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += -lrte_pmd_ice +IAVF-y := $(CONFIG_RTE_LIBRTE_IAVF_PMD) +ifeq ($(findstring y,$(IAVF-y)),y) +_LDLIBS-y += -lrte_common_iavf +endif _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe ifeq ($(CONFIG_RTE_LIBRTE_KNI),y) _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += -lrte_pmd_kni -- 2.17.1