xref: /dpdk/examples/ip_pipeline/cryptodev.h (revision 261bbff75e34dbbefcbf13d672b902eb0a917c5e)
1bd9b67a1SFan Zhang /* SPDX-License-Identifier: BSD-3-Clause
2bd9b67a1SFan Zhang  * Copyright(c) 2018 Intel Corporation
3bd9b67a1SFan Zhang  */
4bd9b67a1SFan Zhang 
5bd9b67a1SFan Zhang #ifndef _INCLUDE_SYM_C_H_
6bd9b67a1SFan Zhang #define _INCLUDE_SYM_C_H_
7bd9b67a1SFan Zhang 
8bd9b67a1SFan Zhang #include <stdint.h>
9bd9b67a1SFan Zhang #include <sys/queue.h>
10bd9b67a1SFan Zhang 
11bd9b67a1SFan Zhang #include <rte_cryptodev.h>
12bd9b67a1SFan Zhang 
13bd9b67a1SFan Zhang #include "common.h"
14bd9b67a1SFan Zhang 
15bd9b67a1SFan Zhang struct cryptodev {
16bd9b67a1SFan Zhang 	TAILQ_ENTRY(cryptodev) node;
17bd9b67a1SFan Zhang 	char name[NAME_SIZE];
18bd9b67a1SFan Zhang 	uint16_t dev_id;
19bd9b67a1SFan Zhang 	uint32_t n_queues;
20*261bbff7SFan Zhang 	struct rte_mempool *mp_create;
21*261bbff7SFan Zhang 	struct rte_mempool *mp_init;
22bd9b67a1SFan Zhang };
23bd9b67a1SFan Zhang 
24bd9b67a1SFan Zhang TAILQ_HEAD(cryptodev_list, cryptodev);
25bd9b67a1SFan Zhang 
26bd9b67a1SFan Zhang int
27bd9b67a1SFan Zhang cryptodev_init(void);
28bd9b67a1SFan Zhang 
29bd9b67a1SFan Zhang struct cryptodev *
30bd9b67a1SFan Zhang cryptodev_find(const char *name);
31bd9b67a1SFan Zhang 
32bd9b67a1SFan Zhang struct cryptodev *
33bd9b67a1SFan Zhang cryptodev_next(struct cryptodev *cryptodev);
34bd9b67a1SFan Zhang 
35bd9b67a1SFan Zhang struct cryptodev_params {
36bd9b67a1SFan Zhang 	const char *dev_name;
37bd9b67a1SFan Zhang 	uint32_t dev_id; /**< Valid only when *dev_name* is NULL. */
38bd9b67a1SFan Zhang 	uint32_t n_queues;
39bd9b67a1SFan Zhang 	uint32_t queue_size;
40*261bbff7SFan Zhang 	uint32_t session_pool_size;
41bd9b67a1SFan Zhang };
42bd9b67a1SFan Zhang 
43bd9b67a1SFan Zhang struct cryptodev *
44bd9b67a1SFan Zhang cryptodev_create(const char *name, struct cryptodev_params *params);
45bd9b67a1SFan Zhang 
46bd9b67a1SFan Zhang #endif
47