manadv_init_obj - Man Page

Initialize mana direct verbs object from ibv_xxx structures


#include <infiniband/manadv.h>

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


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.



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;

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).


Long Li <>