mlx5_vdpa_dev
int mlx5_vdpa_create_tis(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tisn);
void mlx5_vdpa_destroy_tis(struct mlx5_vdpa_dev *mvdev, u32 tisn);
int mlx5_vdpa_create_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 *rqtn);
int mlx5_vdpa_modify_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 rqtn);
void mlx5_vdpa_destroy_rqt(struct mlx5_vdpa_dev *mvdev, u32 rqtn);
int mlx5_vdpa_create_tir(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tirn);
void mlx5_vdpa_destroy_tir(struct mlx5_vdpa_dev *mvdev, u32 tirn);
int mlx5_vdpa_alloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 *tdn);
void mlx5_vdpa_dealloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 tdn);
int mlx5_vdpa_alloc_resources(struct mlx5_vdpa_dev *mvdev);
void mlx5_vdpa_free_resources(struct mlx5_vdpa_dev *mvdev);
int mlx5_vdpa_create_mkey(struct mlx5_vdpa_dev *mvdev, u32 *mkey, u32 *in,
int mlx5_vdpa_destroy_mkey(struct mlx5_vdpa_dev *mvdev, u32 mkey);
struct mlx5_vdpa_mr *mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev,
int mlx5_vdpa_init_mr_resources(struct mlx5_vdpa_dev *mvdev);
void mlx5_vdpa_destroy_mr_resources(struct mlx5_vdpa_dev *mvdev);
void mlx5_vdpa_clean_mrs(struct mlx5_vdpa_dev *mvdev);
void mlx5_vdpa_get_mr(struct mlx5_vdpa_dev *mvdev,
void mlx5_vdpa_put_mr(struct mlx5_vdpa_dev *mvdev,
void mlx5_vdpa_update_mr(struct mlx5_vdpa_dev *mvdev,
int mlx5_vdpa_update_cvq_iotlb(struct mlx5_vdpa_dev *mvdev,
int mlx5_vdpa_create_dma_mr(struct mlx5_vdpa_dev *mvdev);
int mlx5_vdpa_reset_mr(struct mlx5_vdpa_dev *mvdev, unsigned int asid);
int mlx5_vdpa_exec_async_cmds(struct mlx5_vdpa_dev *mvdev,
struct mlx5_vdpa_dev *mvdev;
static void destroy_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr *mr)
static void fill_indir(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mkey, void *in)
static int create_direct_keys(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr)
static int destroy_direct_keys(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr)
static int create_indirect_key(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr)
static void destroy_indirect_key(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mkey)
static int map_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr *mr,
static void unmap_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr *mr)
static int add_direct_chain(struct mlx5_vdpa_dev *mvdev,
static int create_user_mr(struct mlx5_vdpa_dev *mvdev,
static int create_dma_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr)
static void destroy_dma_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr)
static void destroy_user_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr)
static void fill_create_direct_mr(struct mlx5_vdpa_dev *mvdev,
static void _mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr)
struct mlx5_vdpa_dev *mvdev;
mvdev = container_of(mres, struct mlx5_vdpa_dev, mres);
static void _mlx5_vdpa_put_mr(struct mlx5_vdpa_dev *mvdev,
void mlx5_vdpa_put_mr(struct mlx5_vdpa_dev *mvdev,
static void _mlx5_vdpa_get_mr(struct mlx5_vdpa_dev *mvdev,
void mlx5_vdpa_get_mr(struct mlx5_vdpa_dev *mvdev,
void mlx5_vdpa_update_mr(struct mlx5_vdpa_dev *mvdev,
static void mlx5_vdpa_show_mr_leaks(struct mlx5_vdpa_dev *mvdev)
void mlx5_vdpa_clean_mrs(struct mlx5_vdpa_dev *mvdev)
static int _mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev,
struct mlx5_vdpa_mr *mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev,
int mlx5_vdpa_update_cvq_iotlb(struct mlx5_vdpa_dev *mvdev,
int mlx5_vdpa_create_dma_mr(struct mlx5_vdpa_dev *mvdev)
int mlx5_vdpa_reset_mr(struct mlx5_vdpa_dev *mvdev, unsigned int asid)
int mlx5_vdpa_init_mr_resources(struct mlx5_vdpa_dev *mvdev)
static void create_direct_mr_end(struct mlx5_vdpa_dev *mvdev,
void mlx5_vdpa_destroy_mr_resources(struct mlx5_vdpa_dev *mvdev)
static void fill_destroy_direct_mr(struct mlx5_vdpa_dev *mvdev,
void mlx5_vdpa_destroy_tis(struct mlx5_vdpa_dev *mvdev, u32 tisn)
int mlx5_vdpa_create_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 *rqtn)
int mlx5_vdpa_modify_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 rqtn)
void mlx5_vdpa_destroy_rqt(struct mlx5_vdpa_dev *mvdev, u32 rqtn)
int mlx5_vdpa_create_tir(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tirn)
void mlx5_vdpa_destroy_tir(struct mlx5_vdpa_dev *mvdev, u32 tirn)
int mlx5_vdpa_alloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 *tdn)
void mlx5_vdpa_dealloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 tdn)
int mlx5_vdpa_create_mkey(struct mlx5_vdpa_dev *mvdev, u32 *mkey, u32 *in,
int mlx5_vdpa_destroy_mkey(struct mlx5_vdpa_dev *mvdev, u32 mkey)
static int init_ctrl_vq(struct mlx5_vdpa_dev *mvdev)
static void cleanup_ctrl_vq(struct mlx5_vdpa_dev *mvdev)
int mlx5_vdpa_alloc_resources(struct mlx5_vdpa_dev *mvdev)
static int dealloc_pd(struct mlx5_vdpa_dev *dev, u32 pdn, u16 uid)
void mlx5_vdpa_free_resources(struct mlx5_vdpa_dev *mvdev)
static int issue_async_cmd(struct mlx5_vdpa_dev *mvdev,
int mlx5_vdpa_exec_async_cmds(struct mlx5_vdpa_dev *mvdev,
static int get_null_mkey(struct mlx5_vdpa_dev *dev, u32 *null_mkey)
static int create_uctx(struct mlx5_vdpa_dev *mvdev, u16 *uid)
static int alloc_pd(struct mlx5_vdpa_dev *dev, u32 *pdn, u16 uid)
static void destroy_uctx(struct mlx5_vdpa_dev *mvdev, u32 uid)
int mlx5_vdpa_create_tis(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tisn)
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
static bool is_index_valid(struct mlx5_vdpa_dev *mvdev, u16 idx)
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
static inline bool mlx5_vdpa_is_little_endian(struct mlx5_vdpa_dev *mvdev)
static u16 mlx5vdpa16_to_cpu(struct mlx5_vdpa_dev *mvdev, __virtio16 val)
static __virtio16 cpu_to_mlx5vdpa16(struct mlx5_vdpa_dev *mvdev, u16 val)
static u16 ctrl_vq_idx(struct mlx5_vdpa_dev *mvdev)
static bool is_ctrl_vq_idx(struct mlx5_vdpa_dev *mvdev, u16 idx)
static void print_status(struct mlx5_vdpa_dev *mvdev, u8 status, bool set)
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
static virtio_net_ctrl_ack handle_ctrl_mac(struct mlx5_vdpa_dev *mvdev, u8 cmd)
static int change_num_qps(struct mlx5_vdpa_dev *mvdev, int newqps)
static virtio_net_ctrl_ack handle_ctrl_mq(struct mlx5_vdpa_dev *mvdev, u8 cmd)
static void print_features(struct mlx5_vdpa_dev *mvdev, u64 features, bool set)
static virtio_net_ctrl_ack handle_ctrl_vlan(struct mlx5_vdpa_dev *mvdev, u8 cmd)
struct mlx5_vdpa_dev *mvdev;
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
static void set_cvq_ready(struct mlx5_vdpa_dev *mvdev, bool ready)
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
static int verify_driver_features(struct mlx5_vdpa_dev *mvdev, u64 features)
static int setup_virtqueues(struct mlx5_vdpa_dev *mvdev, bool filled)
static void update_cvq_info(struct mlx5_vdpa_dev *mvdev)
static bool get_link_state(struct mlx5_vdpa_dev *mvdev)
struct mlx5_vdpa_dev *mvdev;
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
static int mlx5_vdpa_change_map(struct mlx5_vdpa_dev *mvdev,
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
static int setup_cvq_vring(struct mlx5_vdpa_dev *mvdev)
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
static void init_group_to_asid_map(struct mlx5_vdpa_dev *mvdev)
static bool needs_vqs_reset(const struct mlx5_vdpa_dev *mvdev)
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
static int set_map_data(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb,
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
static void mlx5_vdpa_cvq_suspend(struct mlx5_vdpa_dev *mvdev)
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
struct mlx5_vdpa_dev *mvdev;
struct mlx5_vdpa_dev *mvdev = to_mvdev(dev);
struct mlx5_vdpa_dev *mvdev;
static bool counters_supported(const struct mlx5_vdpa_dev *mvdev)
static bool msix_mode_supported(struct mlx5_vdpa_dev *mvdev)
struct mlx5_vdpa_dev *mvdev = &ndev->mvdev;
#define to_mvdev(__vdev) container_of((__vdev), struct mlx5_vdpa_dev, vdev)
struct mlx5_vdpa_dev mvdev;