This code looks like it was part of something bigger (and/or written
by a object oriented programmer).

Lots of indirection tables and most never have multiple implementations.
Function indirection is slower and risks SPECTRE type attacks.

> +struct nbl_product_core_ops {
> +     int (*hw_init)(void *p);
> +     void (*hw_remove)(void *p);
> +     int (*res_init)(void *p, struct rte_eth_dev *eth_dev);
> +     void (*res_remove)(void *p);
> +     int (*chan_init)(void *p);
> +     void (*chan_remove)(void *p);
> +};




> +struct nbl_product_dev_ops {
> +     int (*dev_init)(void *adapter);
> +     void (*dev_uninit)(void *adapter);
> +     int (*dev_start)(void *adapter);
> +     void (*dev_stop)(void *adapter);
> +};
> +
> +struct nbl_product_dispatch_ops {
> +     int (*dispatch_init)(void *mgt);
> +     int (*dispatch_uninit)(void *mgt);
> +};



> +struct nbl_product_dev_external_ops {
> +     int (*external_pf_ops_get)(struct rte_eth_dev *dev, void *arg);
> +     int (*external_rep_ops_get)(struct rte_eth_dev *dev, void *arg);
> +     int (*external_bond_ops_get)(struct rte_eth_dev *dev, void *arg);
> +};

These are defined but never used.


> +#endif

Reply via email to