xref: /dpdk/examples/ip_pipeline/mempool.h (revision 6bfe74f8c93e9d5ca5906981397aab79a59bb04e)
1*6bfe74f8SJasvinder Singh /* SPDX-License-Identifier: BSD-3-Clause
2*6bfe74f8SJasvinder Singh  * Copyright(c) 2010-2018 Intel Corporation
3*6bfe74f8SJasvinder Singh  */
4*6bfe74f8SJasvinder Singh 
5*6bfe74f8SJasvinder Singh #ifndef _INCLUDE_MEMPOOL_H_
6*6bfe74f8SJasvinder Singh #define _INCLUDE_MEMPOOL_H_
7*6bfe74f8SJasvinder Singh 
8*6bfe74f8SJasvinder Singh #include <stdint.h>
9*6bfe74f8SJasvinder Singh #include <sys/queue.h>
10*6bfe74f8SJasvinder Singh 
11*6bfe74f8SJasvinder Singh #include <rte_mempool.h>
12*6bfe74f8SJasvinder Singh 
13*6bfe74f8SJasvinder Singh #include "common.h"
14*6bfe74f8SJasvinder Singh 
15*6bfe74f8SJasvinder Singh struct mempool {
16*6bfe74f8SJasvinder Singh 	TAILQ_ENTRY(mempool) node;
17*6bfe74f8SJasvinder Singh 	char name[NAME_SIZE];
18*6bfe74f8SJasvinder Singh 	struct rte_mempool *m;
19*6bfe74f8SJasvinder Singh 	uint32_t buffer_size;
20*6bfe74f8SJasvinder Singh };
21*6bfe74f8SJasvinder Singh 
22*6bfe74f8SJasvinder Singh TAILQ_HEAD(mempool_list, mempool);
23*6bfe74f8SJasvinder Singh 
24*6bfe74f8SJasvinder Singh int
25*6bfe74f8SJasvinder Singh mempool_init(void);
26*6bfe74f8SJasvinder Singh 
27*6bfe74f8SJasvinder Singh struct mempool *
28*6bfe74f8SJasvinder Singh mempool_find(const char *name);
29*6bfe74f8SJasvinder Singh 
30*6bfe74f8SJasvinder Singh struct mempool_params {
31*6bfe74f8SJasvinder Singh 	uint32_t buffer_size;
32*6bfe74f8SJasvinder Singh 	uint32_t pool_size;
33*6bfe74f8SJasvinder Singh 	uint32_t cache_size;
34*6bfe74f8SJasvinder Singh 	uint32_t cpu_id;
35*6bfe74f8SJasvinder Singh };
36*6bfe74f8SJasvinder Singh 
37*6bfe74f8SJasvinder Singh struct mempool *
38*6bfe74f8SJasvinder Singh mempool_create(const char *name, struct mempool_params *params);
39*6bfe74f8SJasvinder Singh 
40*6bfe74f8SJasvinder Singh #endif /* _INCLUDE_MEMPOOL_H_ */
41