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