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