1*2d9fd380Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause
2*2d9fd380Sjfb8856606  * Copyright 2020 Mellanox Technologies, Ltd
3*2d9fd380Sjfb8856606  */
4*2d9fd380Sjfb8856606 
5*2d9fd380Sjfb8856606 #ifndef _RTE_REGEXDEV_DRIVER_H_
6*2d9fd380Sjfb8856606 #define _RTE_REGEXDEV_DRIVER_H_
7*2d9fd380Sjfb8856606 
8*2d9fd380Sjfb8856606 /**
9*2d9fd380Sjfb8856606  * @file
10*2d9fd380Sjfb8856606  *
11*2d9fd380Sjfb8856606  * RTE RegEx Device PMD API
12*2d9fd380Sjfb8856606  *
13*2d9fd380Sjfb8856606  * APIs that are used by the RegEx drivers, to communicate with the
14*2d9fd380Sjfb8856606  * RegEx lib.
15*2d9fd380Sjfb8856606  */
16*2d9fd380Sjfb8856606 
17*2d9fd380Sjfb8856606 #include "rte_regexdev.h"
18*2d9fd380Sjfb8856606 
19*2d9fd380Sjfb8856606 #ifdef __cplusplus
20*2d9fd380Sjfb8856606 extern "C" {
21*2d9fd380Sjfb8856606 #endif
22*2d9fd380Sjfb8856606 
23*2d9fd380Sjfb8856606 /**
24*2d9fd380Sjfb8856606  * @internal
25*2d9fd380Sjfb8856606  * Register a RegEx device slot for a RegEx device and return the
26*2d9fd380Sjfb8856606  * pointer to that slot.
27*2d9fd380Sjfb8856606  *
28*2d9fd380Sjfb8856606  * @param name
29*2d9fd380Sjfb8856606  *   RegEx device name.
30*2d9fd380Sjfb8856606  *
31*2d9fd380Sjfb8856606  * @return
32*2d9fd380Sjfb8856606  *   A pointer to the RegEx device slot case of success,
33*2d9fd380Sjfb8856606  *   NULL otherwise.
34*2d9fd380Sjfb8856606  */
35*2d9fd380Sjfb8856606 struct rte_regexdev *rte_regexdev_register(const char *name);
36*2d9fd380Sjfb8856606 
37*2d9fd380Sjfb8856606 /**
38*2d9fd380Sjfb8856606  * @internal
39*2d9fd380Sjfb8856606  * Unregister the specified regexdev port.
40*2d9fd380Sjfb8856606  *
41*2d9fd380Sjfb8856606  * @param dev
42*2d9fd380Sjfb8856606  *   Device to be released.
43*2d9fd380Sjfb8856606  */
44*2d9fd380Sjfb8856606 void rte_regexdev_unregister(struct rte_regexdev *dev);
45*2d9fd380Sjfb8856606 
46*2d9fd380Sjfb8856606 /**
47*2d9fd380Sjfb8856606  * @internal
48*2d9fd380Sjfb8856606  * Return the RegEx device based on the device name.
49*2d9fd380Sjfb8856606  *
50*2d9fd380Sjfb8856606  * @param name
51*2d9fd380Sjfb8856606  *   The device name.
52*2d9fd380Sjfb8856606  */
53*2d9fd380Sjfb8856606 struct rte_regexdev *rte_regexdev_get_device_by_name(const char *name);
54*2d9fd380Sjfb8856606 
55*2d9fd380Sjfb8856606 #ifdef __cplusplus
56*2d9fd380Sjfb8856606 }
57*2d9fd380Sjfb8856606 #endif
58*2d9fd380Sjfb8856606 
59*2d9fd380Sjfb8856606 #endif /* _RTE_REGEXDEV_DRIVER_H_ */
60