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