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