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