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?

Reply via email to