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