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