Hi Zyta, 2016-06-01 09:56, zr at semihalf.com: > rte_eth_dev_get_reg_length and rte_eth_dev_get_reg callbacks > do not provide register size to the app in any way. It is > needed to allocate proper number of bytes before retrieving > registers content with rte_eth_dev_get_reg.
Yes, register size is needed. And I think it makes sense to register it in the struct rte_dev_reg_info. We already have a length field, so we could just add a width field. > @@ -1455,6 +1458,8 @@ struct eth_dev_ops { > > eth_get_reg_length_t get_reg_length; > /**< Get # of registers */ > + eth_get_reg_width_t get_reg_width; > + /**< Get # of bytes in register */ > eth_get_reg_t get_reg; > /**< Get registers */ I am not sure it is a good practice to add a new function for each parameter of a request. I would prefer having only one function rte_eth_dev_get_regs() which returns length and width if data is NULL. The first call is a parameter request before buffer allocation, and the second call fills the buffer. We can deprecate the old API and introduce this new one. Opinions?