ucx1-sys 0.1.0

Rust FFI bindings to UCX.
Documentation
/**
 * Copyright (C) Mellanox Technologies Ltd. 2001-2016.  ALL RIGHTS RESERVED.
 *
 * See file LICENSE for terms.
 */

#ifndef UD_MLX5_COMMON_H_
#define UD_MLX5_COMMON_H_

#include <uct/ib/mlx5/ib_mlx5.h>


typedef struct uct_ud_mlx5_iface_common_config {
    int                          enable_compact_av;
} uct_ud_mlx5_iface_common_config_t;


typedef struct uct_ud_mlx5_iface_common {
    struct {
        int                      compact_av;
    } config;
} uct_ud_mlx5_iface_common_t;


extern ucs_config_field_t uct_ud_mlx5_iface_common_config_table[];


static UCS_F_ALWAYS_INLINE size_t
uct_ib_mlx5_wqe_av_size(uct_ib_mlx5_base_av_t *av)
{
    return (av->dqp_dct & UCT_IB_MLX5_EXTENDED_UD_AV) ?
                    UCT_IB_MLX5_AV_FULL_SIZE :
                    UCT_IB_MLX5_AV_BASE_SIZE;
}


ucs_status_t uct_ud_mlx5_iface_common_init(uct_ib_iface_t *ib_iface,
                                           uct_ud_mlx5_iface_common_t *iface,
                                           uct_ud_mlx5_iface_common_config_t *config);


ucs_status_t
uct_ud_mlx5_iface_get_av(uct_ib_iface_t *iface,
                         uct_ud_mlx5_iface_common_t *ud_common_iface,
                         const uct_ib_address_t *ib_addr, unsigned path_index,
                         const char *usage, uct_ib_mlx5_base_av_t *base_av,
                         struct mlx5_grh_av *grh_av, int *is_global);

#endif