regexdev_dump_t dev_dump;
};
+/**
+ * Possible states of a RegEx device.
+ */
+enum rte_regexdev_state {
+ RTE_REGEXDEV_UNUSED = 0, /**< Device is unused. */
+ RTE_REGEXDEV_REGISTERED,
+ /**< Device is registered, but not ready to be used. */
+ RTE_REGEXDEV_READY,
+ /**< Device is ready for use. This is set by the PMD. */
+};
+
/**
* @internal
* The data part, with no function pointers, associated with each RegEx device.
*/
struct rte_regexdev_data {
void *dev_private; /**< PMD-specific private data. */
+ char dev_name[RTE_REGEXDEV_NAME_MAX_LEN]; /**< Unique identifier name */
+ uint16_t dev_id; /**< Device [external] identifier. */
+ struct rte_regexdev_config dev_conf; /**< RegEx configuration. */
+ uint8_t dev_started : 1; /**< Device started to work. */
} __rte_cache_aligned;
/**
const struct rte_regexdev_ops *dev_ops;
/**< Functions exported by PMD */
struct rte_device *device; /**< Backing device */
+ enum rte_regexdev_state state; /**< The device state. */
struct rte_regexdev_data *data; /**< Pointer to device data. */
} __rte_cache_aligned;
+/**
+ * @internal
+ * The pool of *rte_regexdev* structures. The size of the pool
+ * is configured at compile-time in the <rte_regexdev.c> file.
+ */
+extern struct rte_regexdev rte_regex_devices[];
+
#endif /* _RTE_REGEX_CORE_H_ */