common/sfc_efx/base: separate target EvQ and IRQ config
[dpdk.git] / drivers / mempool / cnxk / cnxk_mempool.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4
5 #ifndef _CNXK_MEMPOOL_H_
6 #define _CNXK_MEMPOOL_H_
7
8 #include <rte_mempool.h>
9
10 unsigned int cnxk_mempool_get_count(const struct rte_mempool *mp);
11 ssize_t cnxk_mempool_calc_mem_size(const struct rte_mempool *mp,
12                                    uint32_t obj_num, uint32_t pg_shift,
13                                    size_t *min_chunk_size, size_t *align);
14 int cnxk_mempool_populate(struct rte_mempool *mp, unsigned int max_objs,
15                           void *vaddr, rte_iova_t iova, size_t len,
16                           rte_mempool_populate_obj_cb_t *obj_cb,
17                           void *obj_cb_arg);
18 int cnxk_mempool_alloc(struct rte_mempool *mp);
19 void cnxk_mempool_free(struct rte_mempool *mp);
20
21 int __rte_hot cnxk_mempool_enq(struct rte_mempool *mp, void *const *obj_table,
22                                unsigned int n);
23 int __rte_hot cnxk_mempool_deq(struct rte_mempool *mp, void **obj_table,
24                                unsigned int n);
25
26 int cn10k_mempool_plt_init(void);
27
28 #endif