#ifndef __MLX5_LIB_SD_H__
#define __MLX5_LIB_SD_H__
#define MLX5_SD_MAX_GROUP_SZ …
struct mlx5_sd;
struct mlx5_core_dev *mlx5_sd_primary_get_peer(struct mlx5_core_dev *primary, int idx);
int mlx5_sd_ch_ix_get_dev_ix(struct mlx5_core_dev *dev, int ch_ix);
int mlx5_sd_ch_ix_get_vec_ix(struct mlx5_core_dev *dev, int ch_ix);
struct mlx5_core_dev *mlx5_sd_ch_ix_get_dev(struct mlx5_core_dev *primary, int ch_ix);
struct auxiliary_device *mlx5_sd_get_adev(struct mlx5_core_dev *dev,
struct auxiliary_device *adev,
int idx);
int mlx5_sd_init(struct mlx5_core_dev *dev);
void mlx5_sd_cleanup(struct mlx5_core_dev *dev);
#define mlx5_sd_for_each_dev_from_to(i, primary, ix_from, to, pos) …
#define mlx5_sd_for_each_dev(i, primary, pos) …
#define mlx5_sd_for_each_dev_to(i, primary, to, pos) …
#define mlx5_sd_for_each_secondary(i, primary, pos) …
#define mlx5_sd_for_each_secondary_to(i, primary, to, pos) …
#endif