#include <rte_string_fns.h>
#include <rte_spinlock.h>
#include <rte_tailq.h>
+#include <rte_function_versioning.h>
#include "rte_mempool.h"
* 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)
{
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;
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;
* @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,