c
#include <stdio.h>
#include <stdint.h>
#include <rte_mempool.h>
#define MAX_NUM_BUFS 1024
#define BUF_SIZE 2048
int main() {
struct rte_mempool *mp;
const char *mp_name = "my_mempool";
unsigned int num_bufs = MAX_NUM_BUFS;
unsigned int buf_size = BUF_SIZE;
int socket_id = SOCKET_ID_ANY;
// 创建内存池
mp = rte_mempool_create(mp_name, num_bufs, buf_size, 0, 0, NULL, NULL, NULL, NULL, socket_id, 0);
if (mp == NULL) {
printf("Failed to create mempool\n");
return -1;
}
printf("Mempool created successfully\n");
// 使用内存池
void *buf;
buf = rte_mempool_get(mp);
if (buf == NULL) {
printf("Failed to get buffer from mempool\n");
return -1;
}
// 使用分配的内存
// ...
// 释放内存池中的内存
rte_mempool_put(mp, buf);
// 销毁内存池
rte_mempool_free(mp);
return 0;
}