From 5fbff5ffa7fc6b2bf4bee0b7015e02fa88ea662b Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Wed, 15 Jan 2020 17:36:36 +0100 Subject: [PATCH] abi --- lib/librte_mempool/rte_mempool.c | 32 +++++++++++++++++----- lib/librte_mempool/rte_mempool.h | 5 +--- lib/librte_mempool/rte_mempool_version.map | 6 ++++ 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 03c8d984c9..d520ef0480 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "rte_mempool.h" @@ -297,8 +298,14 @@ mempool_ops_alloc_once(struct rte_mempool *mp) * zone. Return the number of objects added, or a negative value * on error. */ -static int -__rte_mempool_populate_iova(struct rte_mempool *mp, char *vaddr, +int +rte_mempool_populate_iova_v21(struct rte_mempool *mp, char *vaddr, + rte_iova_t iova, size_t len, rte_mempool_memchunk_free_cb_t *free_cb, + void *opaque); + +VERSION_SYMBOL(rte_mempool_populate_iova, _v21, 21); +int +rte_mempool_populate_iova_v21(struct rte_mempool *mp, char *vaddr, rte_iova_t iova, size_t len, rte_mempool_memchunk_free_cb_t *free_cb, void *opaque) { @@ -355,16 +362,27 @@ fail: rte_free(memhdr); return ret; } - -/* Compat wrapper, to be removed when changing the API is allowed (v20.11). */ +MAP_STATIC_SYMBOL( + int rte_mempool_populate_iova(struct rte_mempool *mp, char *vaddr, + rte_iova_t iova, size_t len, + rte_mempool_memchunk_free_cb_t *free_cb, + void *opaque), + rte_mempool_populate_iova_v20); + +VERSION_SYMBOL(rte_mempool_populate_iova, _v20, 20); +BIND_DEFAULT_SYMBOL(rte_mempool_populate_iova, _v20, 20); +int +rte_mempool_populate_iova_v20(struct rte_mempool *mp, char *vaddr, + rte_iova_t iova, size_t len, rte_mempool_memchunk_free_cb_t *free_cb, + void *opaque); int -rte_mempool_populate_iova(struct rte_mempool *mp, char *vaddr, +rte_mempool_populate_iova_v20(struct rte_mempool *mp, char *vaddr, rte_iova_t iova, size_t len, rte_mempool_memchunk_free_cb_t *free_cb, void *opaque) { int ret; - ret = __rte_mempool_populate_iova(mp, vaddr, iova, len, free_cb, + ret = rte_mempool_populate_iova_v21(mp, vaddr, iova, len, free_cb, opaque); if (ret == -ENOBUFS) ret = -EINVAL; @@ -422,7 +440,7 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr, break; } - ret = __rte_mempool_populate_iova(mp, addr + off, iova, + ret = rte_mempool_populate_iova_v21(mp, addr + off, iova, phys_len, free_cb, opaque); if (ret == -ENOBUFS) continue; diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index c08bb444ff..f81152af96 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -1108,10 +1108,7 @@ rte_mempool_free(struct rte_mempool *mp); * @return * The number of objects added on success. * On error, the chunk is not added in the memory list of the - * mempool and a negative errno is returned: - * (-ENOBUFS): not enough room in chunk for one object. - * (-ENOSPC): mempool is already populated. - * (-ENOMEM): allocation failure. + * mempool and a negative errno is returned. */ int rte_mempool_populate_iova(struct rte_mempool *mp, char *vaddr, rte_iova_t iova, size_t len, rte_mempool_memchunk_free_cb_t *free_cb, diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map index d002dfc46f..070502a601 100644 --- a/lib/librte_mempool/rte_mempool_version.map +++ b/lib/librte_mempool/rte_mempool_version.map @@ -35,6 +35,12 @@ DPDK_20.0 { local: *; }; +DPDK_21.0 { + global: + + rte_mempool_populate_iova; +} DPDK_20.0; + EXPERIMENTAL { global: -- 2.20.1