#include "lib/sd.h"
#include "mlx5_core.h"
#include "lib/mlx5.h"
#include "fs_cmd.h"
#include <linux/mlx5/vport.h>
#include <linux/debugfs.h>
#define sd_info(__dev, format, ...) …
#define sd_warn(__dev, format, ...) …
struct mlx5_sd { … };
static int mlx5_sd_get_host_buses(struct mlx5_core_dev *dev)
{ … }
static struct mlx5_core_dev *mlx5_sd_get_primary(struct mlx5_core_dev *dev)
{ … }
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)
{ … }
static bool ft_create_alias_supported(struct mlx5_core_dev *dev)
{ … }
static bool mlx5_sd_is_supported(struct mlx5_core_dev *dev, u8 host_buses)
{ … }
static int mlx5_query_sd(struct mlx5_core_dev *dev, bool *sdm,
u8 *host_buses, u8 *sd_group)
{ … }
static u32 mlx5_sd_group_id(struct mlx5_core_dev *dev, u8 sd_group)
{ … }
static int sd_init(struct mlx5_core_dev *dev)
{ … }
static void sd_cleanup(struct mlx5_core_dev *dev)
{ … }
static int sd_register(struct mlx5_core_dev *dev)
{ … }
static void sd_unregister(struct mlx5_core_dev *dev)
{ … }
static int sd_cmd_set_primary(struct mlx5_core_dev *primary, u8 *alias_key)
{ … }
static void sd_cmd_unset_primary(struct mlx5_core_dev *primary)
{ … }
static int sd_secondary_create_alias_ft(struct mlx5_core_dev *secondary,
struct mlx5_core_dev *primary,
struct mlx5_flow_table *ft,
u32 *obj_id, u8 *alias_key)
{ … }
static void sd_secondary_destroy_alias_ft(struct mlx5_core_dev *secondary)
{ … }
static int sd_cmd_set_secondary(struct mlx5_core_dev *secondary,
struct mlx5_core_dev *primary,
u8 *alias_key)
{ … }
static void sd_cmd_unset_secondary(struct mlx5_core_dev *secondary)
{ … }
static void sd_print_group(struct mlx5_core_dev *primary)
{ … }
static ssize_t dev_read(struct file *filp, char __user *buf, size_t count,
loff_t *pos)
{ … }
static const struct file_operations dev_fops = …;
int mlx5_sd_init(struct mlx5_core_dev *dev)
{ … }
void mlx5_sd_cleanup(struct mlx5_core_dev *dev)
{ … }
struct auxiliary_device *mlx5_sd_get_adev(struct mlx5_core_dev *dev,
struct auxiliary_device *adev,
int idx)
{ … }