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