1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Gaëtan Rivet
3  */
4 
5 #ifndef _RTE_ETH_PRIVATE_H_
6 #define _RTE_ETH_PRIVATE_H_
7 
8 #include "rte_ethdev.h"
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 /*
15  * Convert rte_eth_dev pointer to port id.
16  * NULL will be translated to RTE_MAX_ETHPORTS.
17  */
18 uint16_t eth_dev_to_id(const struct rte_eth_dev *dev);
19 
20 /* Generic rte_eth_dev comparison function. */
21 typedef int (*rte_eth_cmp_t)(const struct rte_eth_dev *, const void *);
22 
23 /* Generic rte_eth_dev iterator. */
24 struct rte_eth_dev *
25 eth_find_device(const struct rte_eth_dev *_start, rte_eth_cmp_t cmp,
26 		const void *data);
27 
28 /* Parse devargs value for representor parameter. */
29 typedef int (*rte_eth_devargs_callback_t)(char *str, void *data);
30 int rte_eth_devargs_parse_list(char *str, rte_eth_devargs_callback_t callback,
31 	void *data);
32 int rte_eth_devargs_parse_representor_ports(char *str, void *data);
33 
34 #ifdef __cplusplus
35 }
36 #endif
37 
38 #endif /* _RTE_ETH_PRIVATE_H_ */
39