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