manadv_init_obj(3)

NAME

manadv_init_obj - Initialize mana direct verbs object from ibv_xxx structures

SYNOPSIS"

    #include <infiniband/manadv.h>

    int manadv_init_obj(struct manadv_obj *obj, uint64_t obj_type);

DESCRIPTION

manadv_init_obj() This function will initialize manadv_xxx structs based on supplied type. The information for initialization is taken from ibv_xx structs supplied as part of input.

ARGUMENTS

obj The manadv_xxx structs be to returned.

    struct manadv_qp {
        void        *sq_buf;
        uint32_t    sq_count;
        uint32_t    sq_size;
        uint32_t    sq_id;
        uint32_t    tx_vp_offset;
        void        *db_page;
    };

    struct manadv_cq {
        void        *buf;
        uint32_t    count;
        uint32_t    cq_id;
    };

    struct manadv_rwq {
        void        *buf;
        uint32_t    count;
        uint32_t    size;
        uint32_t    wq_id;
        void        *db_page;
    };

    struct manadv_obj {
        struct {
            struct ibv_qp       *in;
            struct manadv_qp    *out;
        } qp;

        struct {
            struct ibv_cq       *in;
            struct manadv_cq    *out;
        } cq;

        struct {
            struct ibv_wq       *in;
            struct manadv_rwq   *out;
        } rwq;
    };

obj_type
    The types of the manadv_xxx structs to be returned.

    enum manadv_obj_type {
        MANADV_OBJ_QP   = 1 << 0,
        MANADV_OBJ_CQ   = 1 << 1,
        MANADV_OBJ_RWQ  = 1 << 2,
    };

RETURN VALUE

0 on success or the value of errno on failure (which indicates the failure reason).

AUTHORS

Long Li <longli@microsoft.com>