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