xref: /dpdk/drivers/regex/cn9k/cn9k_regexdev.h (revision 27595cd83053b2d39634a159d6709b3ce3cdf3b0)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (C) 2020 Marvell International Ltd.
3  */
4 
5 #ifndef _CN9K_REGEXDEV_H_
6 #define _CN9K_REGEXDEV_H_
7 
8 #include <rte_common.h>
9 #include <rte_regexdev.h>
10 
11 #include "roc_api.h"
12 
13 #define cn9k_ree_dbg plt_ree_dbg
14 #define cn9k_err plt_err
15 
16 #define ree_func_trace cn9k_ree_dbg
17 
18 /* Marvell CN9K Regex PMD device name */
19 #define REGEXDEV_NAME_CN9K_PMD	regex_cn9k
20 
21 /**
22  * Device private data
23  */
24 struct __rte_cache_aligned cn9k_ree_data {
25 	uint32_t regexdev_capa;
26 	uint64_t rule_flags;
27 	/**< Feature flags exposes HW/SW features for the given device */
28 	uint16_t max_rules_per_group;
29 	/**< Maximum rules supported per subset by this device */
30 	uint16_t max_groups;
31 	/**< Maximum subset supported by this device */
32 	void **queue_pairs;
33 	/**< Array of pointers to queue pairs. */
34 	uint16_t nb_queue_pairs;
35 	/**< Number of device queue pairs. */
36 	struct roc_ree_vf vf;
37 	/**< vf data */
38 	struct rte_regexdev_rule *rules;
39 	/**< rules to be compiled */
40 	uint16_t nb_rules;
41 	/**< number of rules */
42 };
43 
44 #endif /* _CN9K_REGEXDEV_H_ */
45