diff --git a/0030-libhns-Add-support-for-the-thread-domain-and-the-par.patch b/0001-libhns-Add-support-for-the-thread-domain-and-the-par.patch similarity index 80% rename from 0030-libhns-Add-support-for-the-thread-domain-and-the-par.patch rename to 0001-libhns-Add-support-for-the-thread-domain-and-the-par.patch index 57262073f12e69ff1db61e9d1e7314cf5b1be5d3..8d583fd389bf5adabca7351f4039897ca8deaf87 100644 --- a/0030-libhns-Add-support-for-the-thread-domain-and-the-par.patch +++ b/0001-libhns-Add-support-for-the-thread-domain-and-the-par.patch @@ -1,7 +1,8 @@ -From 812372fadc96c6c59d460d84cdc72d60014f220d Mon Sep 17 00:00:00 2001 +From 3696d0242591cdd17b8354dbb4e3b94bef8e3b5b Mon Sep 17 00:00:00 2001 From: Yixing Liu Date: Mon, 27 Jun 2022 14:52:04 +0800 -Subject: [PATCH rdma-core] libhns: Add support for the thread domain and the parent domain +Subject: [PATCH 01/34] libhns: Add support for the thread domain and the + parent domain Internal locks will be disabled for queues under the thread domain with the parent domain. @@ -16,10 +17,10 @@ Signed-off-by: Yixing Liu Reviewed-by: Yangyang Li --- providers/hns/hns_roce_u.c | 5 +- - providers/hns/hns_roce_u.h | 75 ++++++++- - providers/hns/hns_roce_u_hw_v2.c | 77 ++++----- - providers/hns/hns_roce_u_verbs.c | 267 ++++++++++++++++++++++++++++--- - 4 files changed, 357 insertions(+), 67 deletions(-) + providers/hns/hns_roce_u.h | 75 +++++++- + providers/hns/hns_roce_u_hw_v2.c | 78 ++++---- + providers/hns/hns_roce_u_verbs.c | 299 ++++++++++++++++++++++++++++--- + 4 files changed, 385 insertions(+), 72 deletions(-) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c index 266e73e..e3c72bb 100644 @@ -45,10 +46,10 @@ index 266e73e..e3c72bb 100644 static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 8c1cb1e..8181da7 100644 +index afb68fe..d20aa1e 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -188,6 +188,11 @@ struct hns_roce_db_page { +@@ -190,6 +190,11 @@ struct hns_roce_db_page { unsigned long *bitmap; }; @@ -60,7 +61,7 @@ index 8c1cb1e..8181da7 100644 struct hns_roce_context { struct verbs_context ibv_ctx; void *uar; -@@ -222,15 +227,27 @@ struct hns_roce_context { +@@ -224,15 +229,27 @@ struct hns_roce_context { unsigned int max_inline_data; }; @@ -89,7 +90,7 @@ index 8c1cb1e..8181da7 100644 unsigned int cqn; unsigned int cq_depth; unsigned int cons_index; -@@ -266,7 +283,7 @@ struct hns_roce_srq { +@@ -268,7 +285,7 @@ struct hns_roce_srq { struct hns_roce_idx_que idx_que; struct hns_roce_buf wqe_buf; struct hns_roce_rinl_buf srq_rinl_buf; @@ -98,7 +99,7 @@ index 8c1cb1e..8181da7 100644 unsigned long *wrid; unsigned int srqn; unsigned int wqe_cnt; -@@ -279,7 +296,7 @@ struct hns_roce_srq { +@@ -282,7 +299,7 @@ struct hns_roce_srq { struct hns_roce_wq { unsigned long *wrid; @@ -107,7 +108,7 @@ index 8c1cb1e..8181da7 100644 unsigned int wqe_cnt; int max_post; unsigned int head; -@@ -397,9 +414,35 @@ static inline struct hns_roce_context *to_hr_ctx(struct ibv_context *ibv_ctx) +@@ -398,9 +415,35 @@ static inline struct hns_roce_context *to_hr_ctx(struct ibv_context *ibv_ctx) return container_of(ibv_ctx, struct hns_roce_context, ibv_ctx.context); } @@ -144,7 +145,7 @@ index 8c1cb1e..8181da7 100644 } static inline struct hns_roce_cq *to_hr_cq(struct ibv_cq *ibv_cq) -@@ -422,14 +465,35 @@ static inline struct hns_roce_ah *to_hr_ah(struct ibv_ah *ibv_ah) +@@ -423,14 +466,35 @@ static inline struct hns_roce_ah *to_hr_ah(struct ibv_ah *ibv_ah) return container_of(ibv_ah, struct hns_roce_ah, ibv_ah); } @@ -181,7 +182,7 @@ index 8c1cb1e..8181da7 100644 struct ibv_mr *hns_roce_u_reg_mr(struct ibv_pd *pd, void *addr, size_t length, uint64_t hca_va, int access); -@@ -488,6 +552,7 @@ int hns_roce_u_close_xrcd(struct ibv_xrcd *ibv_xrcd); +@@ -489,6 +553,7 @@ int hns_roce_u_close_xrcd(struct ibv_xrcd *ibv_xrcd); int hns_roce_alloc_buf(struct hns_roce_buf *buf, unsigned int size, int page_size); void hns_roce_free_buf(struct hns_roce_buf *buf); @@ -190,10 +191,10 @@ index 8c1cb1e..8181da7 100644 void hns_roce_free_qp_buf(struct hns_roce_qp *qp, struct hns_roce_context *ctx); diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index c652eea..80e836d 100644 +index daef17a..7086242 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -227,14 +227,14 @@ static void hns_roce_free_srq_wqe(struct hns_roce_srq *srq, uint16_t ind) +@@ -229,14 +229,14 @@ static void hns_roce_free_srq_wqe(struct hns_roce_srq *srq, uint16_t ind) uint32_t bitmap_num; int bit_num; @@ -210,7 +211,7 @@ index c652eea..80e836d 100644 } static int get_srq_from_cqe(struct hns_roce_v2_cqe *cqe, -@@ -266,9 +266,9 @@ static int hns_roce_v2_wq_overflow(struct hns_roce_wq *wq, unsigned int nreq, +@@ -268,9 +268,9 @@ static int hns_roce_v2_wq_overflow(struct hns_roce_wq *wq, unsigned int nreq, if (cur + nreq < wq->max_post) return 0; @@ -222,7 +223,7 @@ index c652eea..80e836d 100644 return cur + nreq >= wq->max_post; } -@@ -721,7 +721,7 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, +@@ -724,7 +724,7 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, int err = V2_CQ_OK; int npolled; @@ -231,7 +232,7 @@ index c652eea..80e836d 100644 for (npolled = 0; npolled < ne; ++npolled) { err = hns_roce_poll_one(ctx, &qp, cq, wc + npolled); -@@ -736,7 +736,7 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, +@@ -739,7 +739,7 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, update_cq_db(ctx, cq); } @@ -240,7 +241,7 @@ index c652eea..80e836d 100644 return err == V2_CQ_POLL_ERR ? err : npolled; } -@@ -1273,7 +1273,7 @@ int hns_roce_u_v2_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr, +@@ -1270,7 +1270,7 @@ int hns_roce_u_v2_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr, return ret; } @@ -249,7 +250,7 @@ index c652eea..80e836d 100644 sge_info.start_idx = qp->next_sge; /* start index of extend sge */ -@@ -1333,7 +1333,7 @@ out: +@@ -1331,7 +1331,7 @@ out: *(qp->sdb) = qp->sq.head & 0xffff; } @@ -258,7 +259,7 @@ index c652eea..80e836d 100644 if (ibvqp->state == IBV_QPS_ERR) { attr.qp_state = IBV_QPS_ERR; -@@ -1426,7 +1426,7 @@ static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, +@@ -1420,7 +1420,7 @@ static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, return ret; } @@ -267,7 +268,7 @@ index c652eea..80e836d 100644 max_sge = qp->rq.max_gs - qp->rq.rsv_sge; for (nreq = 0; wr; ++nreq, wr = wr->next) { -@@ -1460,7 +1460,7 @@ out: +@@ -1454,7 +1454,7 @@ out: hns_roce_update_rq_db(ctx, ibvqp->qp_num, qp->rq.head); } @@ -276,7 +277,7 @@ index c652eea..80e836d 100644 if (ibvqp->state == IBV_QPS_ERR) { attr.qp_state = IBV_QPS_ERR; -@@ -1515,9 +1515,9 @@ static void __hns_roce_v2_cq_clean(struct hns_roce_cq *cq, uint32_t qpn, +@@ -1510,9 +1510,9 @@ static void __hns_roce_v2_cq_clean(struct hns_roce_cq *cq, uint32_t qpn, static void hns_roce_v2_cq_clean(struct hns_roce_cq *cq, unsigned int qpn, struct hns_roce_srq *srq) { @@ -288,8 +289,8 @@ index c652eea..80e836d 100644 } static void record_qp_attr(struct ibv_qp *qp, struct ibv_qp_attr *attr, -@@ -1550,8 +1550,8 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, - int ret; +@@ -1544,8 +1544,8 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, + bool flag = false; /* modify qp to error */ if ((attr_mask & IBV_QP_STATE) && (attr->qp_state == IBV_QPS_ERR)) { - pthread_spin_lock(&hr_qp->sq.lock); @@ -299,10 +300,10 @@ index c652eea..80e836d 100644 flag = true; } -@@ -1560,8 +1560,8 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, - sizeof(resp_ex)); - +@@ -1554,8 +1554,8 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, if (flag) { + if (!ret) + qp->state = IBV_QPS_ERR; - pthread_spin_unlock(&hr_qp->rq.lock); - pthread_spin_unlock(&hr_qp->sq.lock); + hns_roce_spin_unlock(&hr_qp->sq.hr_lock); @@ -310,7 +311,7 @@ index c652eea..80e836d 100644 } if (ret) -@@ -1602,18 +1602,18 @@ static void hns_roce_lock_cqs(struct ibv_qp *qp) +@@ -1588,18 +1588,18 @@ static void hns_roce_lock_cqs(struct ibv_qp *qp) if (send_cq && recv_cq) { if (send_cq == recv_cq) { @@ -336,7 +337,7 @@ index c652eea..80e836d 100644 } } -@@ -1624,18 +1624,18 @@ static void hns_roce_unlock_cqs(struct ibv_qp *qp) +@@ -1610,18 +1610,18 @@ static void hns_roce_unlock_cqs(struct ibv_qp *qp) if (send_cq && recv_cq) { if (send_cq == recv_cq) { @@ -362,7 +363,15 @@ index c652eea..80e836d 100644 } } -@@ -1750,7 +1750,7 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, +@@ -1653,6 +1653,7 @@ static int hns_roce_u_v2_destroy_qp(struct ibv_qp *ibqp) + hns_roce_unlock_cqs(ibqp); + + hns_roce_free_qp_buf(qp, ctx); ++ hns_roce_qp_spinlock_destroy(qp); + + free(qp); + +@@ -1740,7 +1741,7 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, int ret = 0; void *wqe; @@ -371,8 +380,8 @@ index c652eea..80e836d 100644 max_sge = srq->max_gs - srq->rsv_sge; for (nreq = 0; wr; ++nreq, wr = wr->next) { -@@ -1789,7 +1789,7 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, - (__le32 *)&srq_db); +@@ -1779,7 +1780,7 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, + update_srq_db(ctx, &srq_db, srq); } - pthread_spin_unlock(&srq->lock); @@ -380,7 +389,7 @@ index c652eea..80e836d 100644 return ret; } -@@ -1805,11 +1805,11 @@ static int wc_start_poll_cq(struct ibv_cq_ex *current, +@@ -1795,11 +1796,11 @@ static int wc_start_poll_cq(struct ibv_cq_ex *current, if (attr->comp_mask) return EINVAL; @@ -394,7 +403,7 @@ index c652eea..80e836d 100644 return err; } -@@ -1843,7 +1843,7 @@ static void wc_end_poll_cq(struct ibv_cq_ex *current) +@@ -1833,7 +1834,7 @@ static void wc_end_poll_cq(struct ibv_cq_ex *current) else update_cq_db(ctx, cq); @@ -403,7 +412,7 @@ index c652eea..80e836d 100644 } static enum ibv_wc_opcode wc_read_opcode(struct ibv_cq_ex *current) -@@ -2558,7 +2558,7 @@ static void wr_start(struct ibv_qp_ex *ibv_qp) +@@ -2543,7 +2544,7 @@ static void wr_start(struct ibv_qp_ex *ibv_qp) return; } @@ -412,7 +421,7 @@ index c652eea..80e836d 100644 qp->sge_info.start_idx = qp->next_sge; qp->rb_sq_head = qp->sq.head; qp->err = 0; -@@ -2591,7 +2591,8 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) +@@ -2576,7 +2577,8 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) } out: @@ -422,7 +431,7 @@ index c652eea..80e836d 100644 if (ibv_qp->qp_base.state == IBV_QPS_ERR) { attr.qp_state = IBV_QPS_ERR; hns_roce_u_v2_modify_qp(&ibv_qp->qp_base, &attr, IBV_QP_STATE); -@@ -2606,7 +2607,7 @@ static void wr_abort(struct ibv_qp_ex *ibv_qp) +@@ -2591,7 +2593,7 @@ static void wr_abort(struct ibv_qp_ex *ibv_qp) qp->sq.head = qp->rb_sq_head; @@ -432,7 +441,7 @@ index c652eea..80e836d 100644 enum { diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 3b7a67d..f6c7423 100644 +index 34f7ee4..2dc4d4b 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -33,6 +33,7 @@ @@ -562,9 +571,8 @@ index 3b7a67d..f6c7423 100644 + free(pd); + errno = abs(ret); + return NULL; - } - --int hns_roce_u_free_pd(struct ibv_pd *pd) ++} ++ +struct ibv_pd *hns_roce_u_alloc_pad(struct ibv_context *context, + struct ibv_parent_domain_init_attr *attr) +{ @@ -574,7 +582,7 @@ index 3b7a67d..f6c7423 100644 + return NULL; + + if (attr->comp_mask) { -+ errno = EINVAL; ++ errno = EOPNOTSUPP; + return NULL; + } + @@ -596,8 +604,9 @@ index 3b7a67d..f6c7423 100644 + &pad->pd.protection_domain->ibv_pd); + + return &pad->pd.ibv_pd; -+} -+ + } + +-int hns_roce_u_free_pd(struct ibv_pd *pd) +static void hns_roce_free_pad(struct hns_roce_pad *pad) +{ + atomic_fetch_sub(&pad->pd.protection_domain->refcount, 1); @@ -622,10 +631,10 @@ index 3b7a67d..f6c7423 100644 if (ret) - return ret; + goto err; ++ ++ free(pd); - free(to_hr_pd(pd)); -+ free(pd); -+ +err: + errno = abs(ret); @@ -662,18 +671,17 @@ index 3b7a67d..f6c7423 100644 IBV_WC_EX_WITH_CVLAN, @@ -286,12 +437,22 @@ static int verify_cq_create_attr(struct ibv_cq_init_attr_ex *attr, if (!attr->cqe || attr->cqe > context->max_cqe) - return -EINVAL; + return EINVAL; - if (attr->comp_mask) -- return -EOPNOTSUPP; + if (!check_comp_mask(attr->comp_mask, CREATE_CQ_SUPPORTED_COMP_MASK)) { + verbs_err(&context->ibv_ctx, "unsupported cq comps 0x%x\n", + attr->comp_mask); -+ return EOPNOTSUPP; + return EOPNOTSUPP; + } if (!check_comp_mask(attr->wc_flags, CREATE_CQ_SUPPORTED_WC_FLAGS)) - return -EOPNOTSUPP; + return EOPNOTSUPP; + if (attr->comp_mask & IBV_CQ_INIT_ATTR_MASK_PD) { + if (!to_hr_pad(attr->parent_domain)) { @@ -685,21 +693,17 @@ index 3b7a67d..f6c7423 100644 attr->cqe = max_t(uint32_t, HNS_ROCE_MIN_CQE_NUM, roundup_pow_of_two(attr->cqe)); -@@ -341,7 +502,9 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, - struct ibv_cq_init_attr_ex *attr) - { - struct hns_roce_context *hr_ctx = to_hr_ctx(context); +@@ -337,6 +498,36 @@ static int exec_cq_create_cmd(struct ibv_context *context, + return 0; + } + ++static int hns_roce_cq_spinlock_init(struct ibv_context *context, ++ struct hns_roce_cq *cq, ++ struct ibv_cq_init_attr_ex *attr) ++{ + struct hns_roce_pad *pad = NULL; - struct hns_roce_cq *cq; + int need_lock; - int ret; - - ret = verify_cq_create_attr(attr, hr_ctx); -@@ -354,7 +517,14 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, - goto err; - } - -- ret = pthread_spin_init(&cq->lock, PTHREAD_PROCESS_PRIVATE); ++ + if (attr->comp_mask & IBV_CQ_INIT_ATTR_MASK_PD) + pad = to_hr_pad(attr->parent_domain); + @@ -707,11 +711,35 @@ index 3b7a67d..f6c7423 100644 + if (!need_lock) + verbs_info(verbs_get_ctx(context), "configure cq as no lock.\n"); + -+ ret = hns_roce_spinlock_init(&cq->hr_lock, need_lock); ++ return hns_roce_spinlock_init(&cq->hr_lock, need_lock); ++} ++ ++static int hns_roce_srq_spinlock_init(struct ibv_context *context, ++ struct hns_roce_srq *srq, ++ struct ibv_srq_init_attr_ex *attr) ++{ ++ int need_lock; ++ ++ need_lock = hns_roce_whether_need_lock(attr->pd); ++ if (!need_lock) ++ verbs_info(verbs_get_ctx(context), "configure srq as no lock.\n"); ++ ++ return hns_roce_spinlock_init(&srq->hr_lock, need_lock); ++} ++ + static struct ibv_cq_ex *create_cq(struct ibv_context *context, + struct ibv_cq_init_attr_ex *attr) + { +@@ -354,7 +545,7 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, + goto err; + } + +- ret = pthread_spin_init(&cq->lock, PTHREAD_PROCESS_PRIVATE); ++ ret = hns_roce_cq_spinlock_init(context, cq, attr); if (ret) goto err_lock; -@@ -385,14 +555,12 @@ err_cmd: +@@ -385,14 +576,12 @@ err_cmd: hns_roce_free_db(hr_ctx, cq->db, HNS_ROCE_CQ_TYPE_DB); err_db: hns_roce_free_buf(&cq->buf); @@ -729,28 +757,66 @@ index 3b7a67d..f6c7423 100644 return NULL; } -@@ -655,6 +823,7 @@ static struct ibv_srq *create_srq(struct ibv_context *context, +@@ -437,16 +626,21 @@ int hns_roce_u_modify_cq(struct ibv_cq *cq, struct ibv_modify_cq_attr *attr) + + int hns_roce_u_destroy_cq(struct ibv_cq *cq) { - struct hns_roce_context *hr_ctx = to_hr_ctx(context); - struct hns_roce_srq *srq; -+ int need_lock; ++ struct hns_roce_cq *hr_cq = to_hr_cq(cq); int ret; - ret = verify_srq_create_attr(hr_ctx, init_attr); -@@ -667,7 +836,11 @@ static struct ibv_srq *create_srq(struct ibv_context *context, + ret = ibv_cmd_destroy_cq(cq); + if (ret) + return ret; + +- hns_roce_free_db(to_hr_ctx(cq->context), to_hr_cq(cq)->db, ++ hns_roce_free_db(to_hr_ctx(cq->context), hr_cq->db, + HNS_ROCE_CQ_TYPE_DB); +- hns_roce_free_buf(&to_hr_cq(cq)->buf); +- free(to_hr_cq(cq)); ++ ++ hns_roce_free_buf(&hr_cq->buf); ++ ++ hns_roce_spinlock_destroy(&hr_cq->hr_lock); ++ ++ free(hr_cq); + + return ret; + } +@@ -669,12 +863,12 @@ static struct ibv_srq *create_srq(struct ibv_context *context, goto err; } - if (pthread_spin_init(&srq->lock, PTHREAD_PROCESS_PRIVATE)) -+ need_lock = hns_roce_whether_need_lock(init_attr->pd); -+ if (!need_lock) -+ verbs_info(verbs_get_ctx(context), "configure srq as no lock.\n"); -+ -+ if (hns_roce_spinlock_init(&srq->hr_lock, need_lock)) ++ if (hns_roce_srq_spinlock_init(context, srq, init_attr)) goto err_free_srq; set_srq_param(context, srq, init_attr); -@@ -875,6 +1048,48 @@ static int verify_qp_create_attr(struct hns_roce_context *ctx, + if (alloc_srq_buf(srq)) +- goto err_free_srq; ++ goto err_destroy_lock; + + srq->rdb = hns_roce_alloc_db(hr_ctx, HNS_ROCE_SRQ_TYPE_DB); + if (!srq->rdb) +@@ -705,6 +899,9 @@ err_srq_db: + err_srq_buf: + free_srq_buf(srq); + ++err_destroy_lock: ++ hns_roce_spinlock_destroy(&srq->hr_lock); ++ + err_free_srq: + free(srq); + +@@ -780,6 +977,8 @@ int hns_roce_u_destroy_srq(struct ibv_srq *ibv_srq) + + hns_roce_free_db(ctx, srq->rdb, HNS_ROCE_SRQ_TYPE_DB); + free_srq_buf(srq); ++ ++ hns_roce_spinlock_destroy(&srq->hr_lock); + free(srq); + + return 0; +@@ -877,6 +1076,48 @@ static int verify_qp_create_attr(struct hns_roce_context *ctx, return verify_qp_create_cap(ctx, attr); } @@ -797,20 +863,20 @@ index 3b7a67d..f6c7423 100644 +} + static int alloc_recv_rinl_buf(uint32_t max_sge, - struct hns_roce_rinl_buf *rinl_buf) + struct hns_roce_rinl_buf *rinl_buf) { -@@ -1248,8 +1463,8 @@ static int hns_roce_alloc_qp_buf(struct ibv_qp_init_attr_ex *attr, +@@ -1247,10 +1488,6 @@ static int hns_roce_alloc_qp_buf(struct ibv_qp_init_attr_ex *attr, { int ret; - if (pthread_spin_init(&qp->sq.lock, PTHREAD_PROCESS_PRIVATE) || - pthread_spin_init(&qp->rq.lock, PTHREAD_PROCESS_PRIVATE)) -+ if (pthread_spin_init(&qp->sq.hr_lock.lock, PTHREAD_PROCESS_PRIVATE) || -+ pthread_spin_init(&qp->rq.hr_lock.lock, PTHREAD_PROCESS_PRIVATE)) - return -ENOMEM; - +- return -ENOMEM; +- ret = qp_alloc_wqe(&attr->cap, qp, ctx); -@@ -1294,6 +1509,10 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, + if (ret) + return ret; +@@ -1293,6 +1530,10 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, hns_roce_set_qp_params(attr, qp, context); @@ -821,7 +887,7 @@ index 3b7a67d..f6c7423 100644 ret = hns_roce_alloc_qp_buf(attr, qp, context); if (ret) goto err_buf; -@@ -1327,6 +1546,8 @@ err_ops: +@@ -1326,6 +1567,8 @@ err_ops: err_cmd: hns_roce_free_qp_buf(qp, context); err_buf: diff --git a/0001-libhns-Use-a-constant-instead-of-sizeof-operation.patch b/0001-libhns-Use-a-constant-instead-of-sizeof-operation.patch deleted file mode 100644 index 1c34c3be5f3896809cbe03a4e05c9fb4318db78e..0000000000000000000000000000000000000000 --- a/0001-libhns-Use-a-constant-instead-of-sizeof-operation.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0de1678211e710c2cd33e3aea98b1271cae9bd98 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Tue, 20 Sep 2022 11:47:45 +0800 -Subject: [PATCH v4 01/10] libhns: Use a constant instead of sizeof operation - -The sge size is known to be constant, so it's unnecessary to use sizeof to -calculate. - -Signed-off-by: Luoyouming -Reviewed-by: Yangyang Li ---- - providers/hns/hns_roce_u_hw_v2.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 0169250..d9ea18e 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -847,13 +847,12 @@ static int fill_ext_sge_inl_data(struct hns_roce_qp *qp, - uint32_t num_buf, - enum hns_roce_wr_buf_type buf_type) - { -- unsigned int sge_sz = sizeof(struct hns_roce_v2_wqe_data_seg); - unsigned int sge_mask = qp->ex_sge.sge_cnt - 1; - void *dst_addr, *src_addr, *tail_bound_addr; - uint32_t src_len, tail_len; - int i; - -- if (sge_info->total_len > qp->sq.max_gs * sge_sz) -+ if (sge_info->total_len > qp->sq.max_gs * HNS_ROCE_SGE_SIZE) - return EINVAL; - - dst_addr = get_send_sge_ex(qp, sge_info->start_idx & sge_mask); -@@ -880,7 +879,7 @@ static int fill_ext_sge_inl_data(struct hns_roce_qp *qp, - } - } - -- sge_info->valid_num = DIV_ROUND_UP(sge_info->total_len, sge_sz); -+ sge_info->valid_num = DIV_ROUND_UP(sge_info->total_len, HNS_ROCE_SGE_SIZE); - sge_info->start_idx += sge_info->valid_num; - - return 0; --- -2.30.0 - diff --git a/0027-libhns-Add-RoH-device-IDs.patch b/0002-libhns-Add-RoH-device-IDs.patch similarity index 88% rename from 0027-libhns-Add-RoH-device-IDs.patch rename to 0002-libhns-Add-RoH-device-IDs.patch index fe5956aff058fb7f14302cc5ccb123ed8889081c..c54754f6d3d7e38f922e611995dbc9af526ab9ca 100644 --- a/0027-libhns-Add-RoH-device-IDs.patch +++ b/0002-libhns-Add-RoH-device-IDs.patch @@ -1,7 +1,7 @@ -From 0fcebb18e318cb0af02afa055f4357ba3002280b Mon Sep 17 00:00:00 2001 +From 76ed1efc50ba2a760639c5e1f3f2fc09a6df2a41 Mon Sep 17 00:00:00 2001 From: Lang Cheng Date: Fri, 9 Oct 2020 11:14:39 +0800 -Subject: libhns: Add RoH device IDs +Subject: [PATCH 02/34] libhns: Add RoH device IDs Add RoH device IDs. 0xA227 is a 100Gb/s RoH device, and it was mistakenly added before. @@ -16,7 +16,7 @@ Signed-off-by: Lang Cheng 1 file changed, 2 insertions(+) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 266e73e..60b3fe1 100644 +index e3c72bb..c45c9dd 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c @@ -53,6 +53,8 @@ static const struct verbs_match_ent hca_table[] = { diff --git a/0002-libhns-Fix-ext_sge-num-error-when-post-send.patch b/0002-libhns-Fix-ext_sge-num-error-when-post-send.patch deleted file mode 100644 index a7ca2c8af2955078c527ef76ef7e2380f754a431..0000000000000000000000000000000000000000 --- a/0002-libhns-Fix-ext_sge-num-error-when-post-send.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a57d5dfbc2701b9d0c47eb70a1bb82b16170a7d2 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Tue, 20 Sep 2022 11:53:18 +0800 -Subject: [PATCH v4 02/10] libhns: Fix ext_sge num error when post send - -The max_gs is the sum of extended sge and standard sge. In function -fill_ext_sge_inl_data, max_gs does not subtract the number of extended -sges, but is directly used to calculate the size of extended sges. - -Fixes:b7814b7b9715("libhns: Support inline data in extented sge space for RC") - -Signed-off-by: Luoyouming -Reviewed-by: Yangyang Li ---- - providers/hns/hns_roce_u_hw_v2.c | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index d9ea18e..bb4298f 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -841,6 +841,14 @@ static void get_src_buf_info(void **src_addr, uint32_t *src_len, - } - } - -+static unsigned int get_std_sge_num(struct hns_roce_qp *qp) -+{ -+ if (qp->verbs_qp.qp.qp_type == IBV_QPT_UD) -+ return 0; -+ -+ return HNS_ROCE_SGE_IN_WQE; -+} -+ - static int fill_ext_sge_inl_data(struct hns_roce_qp *qp, - struct hns_roce_sge_info *sge_info, - const void *buf_list, -@@ -850,9 +858,12 @@ static int fill_ext_sge_inl_data(struct hns_roce_qp *qp, - unsigned int sge_mask = qp->ex_sge.sge_cnt - 1; - void *dst_addr, *src_addr, *tail_bound_addr; - uint32_t src_len, tail_len; -+ unsigned int std_sge_num; - int i; - -- if (sge_info->total_len > qp->sq.max_gs * HNS_ROCE_SGE_SIZE) -+ std_sge_num = get_std_sge_num(qp); -+ if (sge_info->total_len > -+ (qp->sq.max_gs - std_sge_num) * HNS_ROCE_SGE_SIZE) - return EINVAL; - - dst_addr = get_send_sge_ex(qp, sge_info->start_idx & sge_mask); --- -2.30.0 - diff --git a/0003-Update-kernel-headers.patch b/0003-Update-kernel-headers.patch deleted file mode 100644 index 616b58c528661a028c35063145a36822f1dddee2..0000000000000000000000000000000000000000 --- a/0003-Update-kernel-headers.patch +++ /dev/null @@ -1,46 +0,0 @@ -From f20816984da80e2fe9a82b3b330f85150763243e Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Mon, 26 Sep 2022 11:14:05 +0800 -Subject: [PATCH v4 03/10] Update kernel headers - -To commit ?? ("RDMA/hns: Fix the problem of sge nums"). - -Signed-off-by: Luoyouming ---- - kernel-headers/rdma/hns-abi.h | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index f6fde06..fc83dfb 100644 ---- a/kernel-headers/rdma/hns-abi.h -+++ b/kernel-headers/rdma/hns-abi.h -@@ -85,11 +85,26 @@ struct hns_roce_ib_create_qp_resp { - __aligned_u64 dwqe_mmap_key; - }; - -+enum { -+ HNS_ROCE_EXSGE_FLAGS = 1 << 0, -+}; -+ -+enum { -+ HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0, -+}; -+ - struct hns_roce_ib_alloc_ucontext_resp { - __u32 qp_tab_size; - __u32 cqe_size; - __u32 srq_tab_size; - __u32 reserved; -+ __u32 config; -+ __u32 max_inline_data; -+}; -+ -+struct hns_roce_ib_alloc_ucontext { -+ __u32 config; -+ __u32 reserved; - }; - - struct hns_roce_ib_alloc_pd_resp { --- -2.30.0 - diff --git a/0029-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch b/0003-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch similarity index 45% rename from 0029-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch rename to 0003-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch index 4c82033a2a5fdc57848a7cef6b56ac8aec0b56e5..1a057bd0d55cb5f742ab32f60e42da9247ab853e 100644 --- a/0029-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch +++ b/0003-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch @@ -1,7 +1,7 @@ -From f4626313eea2c78a8fac4b007b08533371ce1501 Mon Sep 17 00:00:00 2001 +From c0f166cf12a440cb2bd05341b9654e30874edd86 Mon Sep 17 00:00:00 2001 From: Guofeng Yue Date: Tue, 13 Sep 2022 20:09:27 +0800 -Subject: libhns: Add the parsing of mac type in RoH mode +Subject: [PATCH 03/34] libhns: Add the parsing of mac type in RoH mode After parsing the mac type as RoH mode, the user driver needs to set the dmac field of ud wqe to 0xFF, the hardware @@ -12,35 +12,75 @@ building function in user mode. Signed-off-by: Yangyang Li Signed-off-by: Guofeng Yue --- - providers/hns/hns_roce_u.c | 2 ++ - providers/hns/hns_roce_u.h | 6 ++++++ - providers/hns/hns_roce_u_hw_v2.c | 4 ++++ - 3 files changed, 12 insertions(+) + providers/hns/hns_roce_u.c | 35 ++++++++++++++++++++++++++++++++ + providers/hns/hns_roce_u.h | 6 ++++++ + providers/hns/hns_roce_u_hw_v2.c | 4 ++++ + 3 files changed, 45 insertions(+) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 60b3fe1..20e3698 100644 +index c45c9dd..589c8f7 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c -@@ -121,6 +121,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - &resp.ibv_resp, sizeof(resp))) +@@ -95,6 +95,38 @@ static const struct verbs_context_ops hns_common_ops = { + .alloc_parent_domain = hns_roce_u_alloc_pad, + }; + ++static struct { ++ uint32_t device_id; ++ enum hns_device_link_type link_type; ++} device_link_types[] = { ++ {0xA222, HNS_DEV_LINK_TYPE_ETH}, ++ {0xA223, HNS_DEV_LINK_TYPE_ETH}, ++ {0xA224, HNS_DEV_LINK_TYPE_ETH}, ++ {0xA225, HNS_DEV_LINK_TYPE_ETH}, ++ {0xA226, HNS_DEV_LINK_TYPE_ETH}, ++ {0xA228, HNS_DEV_LINK_TYPE_ETH}, ++ {0xA22F, HNS_DEV_LINK_TYPE_ETH}, ++ {0xA227, HNS_DEV_LINK_TYPE_HCCS}, ++ {0xA22C, HNS_DEV_LINK_TYPE_HCCS}, ++ {0xA22D, HNS_DEV_LINK_TYPE_HCCS} ++}; ++ ++static int get_link_type(uint32_t device_id, ++ enum hns_device_link_type *link_type) ++{ ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(device_link_types); i++) { ++ if (device_id == device_link_types[i].device_id) { ++ *link_type = device_link_types[i].link_type; ++ return 0; ++ } ++ } ++ ++ return ENOENT; ++} ++ ++ + static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) + { + uint32_t count_shift = hr_ilog32(entry_count); +@@ -157,6 +189,9 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, goto err_free; -+ hr_dev->mac_type = resp.mac_type; + hr_dev->hw_version = dev_attrs.hw_ver; ++ if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) ++ goto err_free; + - if (!resp.cqe_size) - context->cqe_size = HNS_ROCE_CQE_SIZE; - else if (resp.cqe_size <= HNS_ROCE_V3_CQE_SIZE) + context->max_qp_wr = dev_attrs.max_qp_wr; + context->max_sge = dev_attrs.max_sge; + context->max_cqe = dev_attrs.max_cqe; diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 8c1cb1e..623be79 100644 +index d20aa1e..6f7944e 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h @@ -153,11 +153,17 @@ #define HNS_ROCE_SRQ_TABLE_BITS 8 #define HNS_ROCE_SRQ_TABLE_SIZE BIT(HNS_ROCE_SRQ_TABLE_BITS) -+enum { -+ HNAE3_MAC_ETH, -+ HNAE3_MAC_ROH, ++enum hns_device_link_type { ++ HNS_DEV_LINK_TYPE_ETH, ++ HNS_DEV_LINK_TYPE_HCCS, +}; + struct hns_roce_device { @@ -48,15 +88,15 @@ index 8c1cb1e..623be79 100644 int page_size; const struct hns_roce_u_hw *u_hw; int hw_version; -+ uint8_t mac_type; ++ enum hns_device_link_type link_type; }; struct hns_roce_buf { diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index c652eea..b0c3109 100644 +index 7086242..c0afc5d 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1068,6 +1068,7 @@ static inline void enable_wqe(struct hns_roce_qp *qp, void *sq_wqe, +@@ -1069,6 +1069,7 @@ static inline void enable_wqe(struct hns_roce_qp *qp, void *sq_wqe, static int set_ud_wqe(void *wqe, struct hns_roce_qp *qp, struct ibv_send_wr *wr, unsigned int nreq, struct hns_roce_sge_info *sge_info) { @@ -64,11 +104,11 @@ index c652eea..b0c3109 100644 struct hns_roce_ah *ah = to_hr_ah(wr->wr.ud.ah); struct hns_roce_ud_sq_wqe *ud_sq_wqe = wqe; int ret = 0; -@@ -1092,6 +1093,9 @@ static int set_ud_wqe(void *wqe, struct hns_roce_qp *qp, struct ibv_send_wr *wr, +@@ -1093,6 +1094,9 @@ static int set_ud_wqe(void *wqe, struct hns_roce_qp *qp, struct ibv_send_wr *wr, if (ret) return ret; -+ if (hr_dev->mac_type == HNAE3_MAC_ROH) ++ if (hr_dev->link_type == HNS_DEV_LINK_TYPE_HCCS) + ud_sq_wqe->dmac[0] = 0xFF; + ret = fill_ud_data_seg(ud_sq_wqe, qp, wr, sge_info); diff --git a/0011-Update-kernel-headers.patch b/0004-Update-kernel-headers.patch similarity index 55% rename from 0011-Update-kernel-headers.patch rename to 0004-Update-kernel-headers.patch index ee5e2b1d66e3aa6499c833faedc45fb5506e056e..247e2acb4476e7b1e2a2f0dfaf4f75b43b00ad5f 100644 --- a/0011-Update-kernel-headers.patch +++ b/0004-Update-kernel-headers.patch @@ -1,29 +1,23 @@ -From 12d2a17d404e3d5ba76863f64307ea52a7d15d15 Mon Sep 17 00:00:00 2001 +From 1514cdb3cf002cf60ffc6981e2f3a000c5a9028a Mon Sep 17 00:00:00 2001 From: Yixing Liu Date: Sat, 29 Oct 2022 10:44:17 +0800 -Subject: [PATCH 11/12] Update kernel headers +Subject: [PATCH 04/34] Update kernel headers To commit ?? ("RDMA/hns: Support DSCP of userspace"). Signed-off-by: Yixing Liu --- - kernel-headers/rdma/hns-abi.h | 12 ++++++++++++ - 1 file changed, 12 insertions(+) + kernel-headers/rdma/hns-abi.h | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 41738b8..542be5e 100644 +index c996e15..a18d955 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h -@@ -85,6 +85,18 @@ struct hns_roce_ib_create_qp_resp { +@@ -95,6 +95,12 @@ struct hns_roce_ib_create_qp_resp { __aligned_u64 dwqe_mmap_key; }; -+struct hns_roce_ib_create_ah_resp { -+ __u8 priority; -+ __u8 tc_mode; -+ __u8 reserved[6]; -+}; -+ +struct hns_roce_ib_modify_qp_resp { + __u8 tc_mode; + __u8 priority; @@ -33,6 +27,18 @@ index 41738b8..542be5e 100644 enum { HNS_ROCE_EXSGE_FLAGS = 1 << 0, HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1, +@@ -126,8 +132,9 @@ struct hns_roce_ib_alloc_pd_resp { + }; + + struct hns_roce_ib_create_ah_resp { +- __u8 dmac[6]; +- __u8 reserved[2]; ++ __u8 priority; ++ __u8 tc_mode; ++ __u8 dmac[6]; + }; + + #endif /* HNS_ABI_USER_H */ -- 2.30.0 diff --git a/0004-libhns-Fix-the-problem-of-sge-nums.patch b/0004-libhns-Fix-the-problem-of-sge-nums.patch deleted file mode 100644 index ada5774864aaafcc117ca10bddabf84ccb59dd68..0000000000000000000000000000000000000000 --- a/0004-libhns-Fix-the-problem-of-sge-nums.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 448d82b2c62f09f1dd9c8045d34623dedef1c111 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Fri, 19 Nov 2021 20:21:21 +0800 -Subject: [PATCH v4 04/10] libhns: Fix the problem of sge nums - -Currently, the driver only uses max_send_sge to initialize sge num -when creating_qp. So, in the sq inline scenario, the driver may not -has enough sge to send data. For example, if max_send_sge is 16 and -max_inline_data is 1024, the driver needs 1024/16=64 sge to send data. -Therefore, the calculation method of sge num is modified to take the -maximum value of max_send_sge and max_inline_data/16 to solve this -problem. - -Fixes:11c81d0e3a98("libhns: Refactor process of setting extended sge") -Fixes:b7814b7b9715("libhns: Support inline data in extented sge space for RC") - -Signed-off-by: Luoyouming -Reviewed-by: Yangyang Li ---- - providers/hns/hns_roce_u.c | 9 +++- - providers/hns/hns_roce_u.h | 3 ++ - providers/hns/hns_roce_u_abi.h | 2 +- - providers/hns/hns_roce_u_hw_v2.c | 13 +---- - providers/hns/hns_roce_u_verbs.c | 84 ++++++++++++++++++++++++-------- - 5 files changed, 77 insertions(+), 34 deletions(-) - -diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index a46ceb9..1bd5bb1 100644 ---- a/providers/hns/hns_roce_u.c -+++ b/providers/hns/hns_roce_u.c -@@ -103,9 +103,9 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - { - struct hns_roce_device *hr_dev = to_hr_dev(ibdev); - struct hns_roce_alloc_ucontext_resp resp = {}; -+ struct hns_roce_alloc_ucontext cmd = {}; - struct ibv_device_attr dev_attrs; - struct hns_roce_context *context; -- struct ibv_get_context cmd; - int i; - - context = verbs_init_and_alloc_context(ibdev, cmd_fd, context, ibv_ctx, -@@ -113,7 +113,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - if (!context) - return NULL; - -- if (ibv_cmd_get_context(&context->ibv_ctx, &cmd, sizeof(cmd), -+ cmd.config |= HNS_ROCE_EXSGE_FLAGS; -+ if (ibv_cmd_get_context(&context->ibv_ctx, &cmd.ibv_cmd, sizeof(cmd), - &resp.ibv_resp, sizeof(resp))) - goto err_free; - -@@ -124,6 +125,10 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - else - context->cqe_size = HNS_ROCE_V3_CQE_SIZE; - -+ context->config = resp.config; -+ if (resp.config & HNS_ROCE_RSP_EXSGE_FLAGS) -+ context->max_inline_data = resp.max_inline_data; -+ - context->qp_table_shift = calc_table_shift(resp.qp_tab_size, - HNS_ROCE_QP_TABLE_BITS); - context->qp_table_mask = (1 << context->qp_table_shift) - 1; -diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 5d90634..5388f9c 100644 ---- a/providers/hns/hns_roce_u.h -+++ b/providers/hns/hns_roce_u.h -@@ -213,6 +213,8 @@ struct hns_roce_context { - unsigned int max_srq_sge; - int max_cqe; - unsigned int cqe_size; -+ uint32_t config; -+ unsigned int max_inline_data; - }; - - struct hns_roce_pd { -@@ -267,6 +269,7 @@ struct hns_roce_wq { - unsigned int head; - unsigned int tail; - unsigned int max_gs; -+ unsigned int ext_sge_cnt; - unsigned int rsv_sge; - unsigned int wqe_shift; - unsigned int shift; /* wq size is 2^shift */ -diff --git a/providers/hns/hns_roce_u_abi.h b/providers/hns/hns_roce_u_abi.h -index 333f977..2753d30 100644 ---- a/providers/hns/hns_roce_u_abi.h -+++ b/providers/hns/hns_roce_u_abi.h -@@ -47,7 +47,7 @@ DECLARE_DRV_CMD(hns_roce_create_cq_ex, IB_USER_VERBS_EX_CMD_CREATE_CQ, - hns_roce_ib_create_cq, hns_roce_ib_create_cq_resp); - - DECLARE_DRV_CMD(hns_roce_alloc_ucontext, IB_USER_VERBS_CMD_GET_CONTEXT, -- empty, hns_roce_ib_alloc_ucontext_resp); -+ hns_roce_ib_alloc_ucontext, hns_roce_ib_alloc_ucontext_resp); - - DECLARE_DRV_CMD(hns_roce_create_qp, IB_USER_VERBS_CMD_CREATE_QP, - hns_roce_ib_create_qp, hns_roce_ib_create_qp_resp); -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index bb4298f..ebe68bc 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -841,14 +841,6 @@ static void get_src_buf_info(void **src_addr, uint32_t *src_len, - } - } - --static unsigned int get_std_sge_num(struct hns_roce_qp *qp) --{ -- if (qp->verbs_qp.qp.qp_type == IBV_QPT_UD) -- return 0; -- -- return HNS_ROCE_SGE_IN_WQE; --} -- - static int fill_ext_sge_inl_data(struct hns_roce_qp *qp, - struct hns_roce_sge_info *sge_info, - const void *buf_list, -@@ -858,12 +850,9 @@ static int fill_ext_sge_inl_data(struct hns_roce_qp *qp, - unsigned int sge_mask = qp->ex_sge.sge_cnt - 1; - void *dst_addr, *src_addr, *tail_bound_addr; - uint32_t src_len, tail_len; -- unsigned int std_sge_num; - int i; - -- std_sge_num = get_std_sge_num(qp); -- if (sge_info->total_len > -- (qp->sq.max_gs - std_sge_num) * HNS_ROCE_SGE_SIZE) -+ if (sge_info->total_len > qp->sq.ext_sge_cnt * HNS_ROCE_SGE_SIZE) - return EINVAL; - - dst_addr = get_send_sge_ex(qp, sge_info->start_idx & sge_mask); -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index ba7f2ae..851b145 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -978,41 +978,88 @@ err_alloc: - return -ENOMEM; - } - --static unsigned int get_wqe_ext_sge_cnt(struct hns_roce_qp *qp) -+/** -+ * Calculated sge num according to attr's max_send_sge -+ */ -+static unsigned int get_sge_num_from_max_send_sge(bool is_ud, -+ uint32_t max_send_sge) - { -- if (qp->verbs_qp.qp.qp_type == IBV_QPT_UD) -- return qp->sq.max_gs; -+ unsigned int std_sge_num; -+ unsigned int min_sge; - -- if (qp->sq.max_gs > HNS_ROCE_SGE_IN_WQE) -- return qp->sq.max_gs - HNS_ROCE_SGE_IN_WQE; -+ std_sge_num = is_ud ? 0 : HNS_ROCE_SGE_IN_WQE; -+ min_sge = is_ud ? 1 : 0; -+ return max_send_sge > std_sge_num ? (max_send_sge - std_sge_num) : -+ min_sge; -+} - -- return 0; -+/** -+ * Calculated sge num according to attr's max_inline_data -+ */ -+static unsigned int get_sge_num_from_max_inl_data(bool is_ud, -+ uint32_t max_inline_data) -+{ -+ unsigned int inline_sge = 0; -+ -+ inline_sge = max_inline_data / HNS_ROCE_SGE_SIZE; -+ /* -+ * if max_inline_data less than -+ * HNS_ROCE_SGE_IN_WQE * HNS_ROCE_SGE_SIZE, -+ * In addition to ud's mode, no need to extend sge. -+ */ -+ if (!is_ud && (inline_sge <= HNS_ROCE_SGE_IN_WQE)) -+ inline_sge = 0; -+ -+ return inline_sge; - } - --static void set_ext_sge_param(struct hns_roce_device *hr_dev, -+static void set_ext_sge_param(struct hns_roce_context *ctx, - struct ibv_qp_init_attr_ex *attr, - struct hns_roce_qp *qp, unsigned int wr_cnt) - { -+ bool is_ud = (qp->verbs_qp.qp.qp_type == IBV_QPT_UD); -+ unsigned int ext_wqe_sge_cnt; -+ unsigned int inline_ext_sge; - unsigned int total_sge_cnt; -- unsigned int wqe_sge_cnt; -+ unsigned int std_sge_num; - - qp->ex_sge.sge_shift = HNS_ROCE_SGE_SHIFT; -- -- qp->sq.max_gs = attr->cap.max_send_sge; -- -- wqe_sge_cnt = get_wqe_ext_sge_cnt(qp); -+ std_sge_num = is_ud ? 0 : HNS_ROCE_SGE_IN_WQE; -+ ext_wqe_sge_cnt = get_sge_num_from_max_send_sge(is_ud, -+ attr->cap.max_send_sge); -+ -+ if (ctx->config & HNS_ROCE_RSP_EXSGE_FLAGS) { -+ attr->cap.max_inline_data = min_t(uint32_t, roundup_pow_of_two( -+ attr->cap.max_inline_data), -+ ctx->max_inline_data); -+ -+ inline_ext_sge = max(ext_wqe_sge_cnt, -+ get_sge_num_from_max_inl_data(is_ud, -+ attr->cap.max_inline_data)); -+ qp->sq.ext_sge_cnt = inline_ext_sge ? -+ roundup_pow_of_two(inline_ext_sge) : 0; -+ qp->sq.max_gs = min((qp->sq.ext_sge_cnt + std_sge_num), -+ ctx->max_sge); -+ -+ ext_wqe_sge_cnt = qp->sq.ext_sge_cnt; -+ } else { -+ qp->sq.max_gs = max(1U, attr->cap.max_send_sge); -+ qp->sq.max_gs = min(qp->sq.max_gs, ctx->max_sge); -+ qp->sq.ext_sge_cnt = qp->sq.max_gs; -+ } - - /* If the number of extended sge is not zero, they MUST use the - * space of HNS_HW_PAGE_SIZE at least. - */ -- if (wqe_sge_cnt) { -- total_sge_cnt = roundup_pow_of_two(wr_cnt * wqe_sge_cnt); -- qp->ex_sge.sge_cnt = -- max(total_sge_cnt, -- (unsigned int)HNS_HW_PAGE_SIZE / HNS_ROCE_SGE_SIZE); -+ if (ext_wqe_sge_cnt) { -+ total_sge_cnt = roundup_pow_of_two(wr_cnt * ext_wqe_sge_cnt); -+ qp->ex_sge.sge_cnt = max(total_sge_cnt, -+ (unsigned int)HNS_HW_PAGE_SIZE / -+ HNS_ROCE_SGE_SIZE); - } - } - -+ - static void hns_roce_set_qp_params(struct ibv_qp_init_attr_ex *attr, - struct hns_roce_qp *qp, - struct hns_roce_context *ctx) -@@ -1044,10 +1091,9 @@ static void hns_roce_set_qp_params(struct ibv_qp_init_attr_ex *attr, - qp->sq.wqe_cnt = cnt; - qp->sq.shift = hr_ilog32(cnt); - -- set_ext_sge_param(hr_dev, attr, qp, cnt); -+ set_ext_sge_param(ctx, attr, qp, cnt); - - qp->sq.max_post = min(ctx->max_qp_wr, cnt); -- qp->sq.max_gs = min(ctx->max_sge, qp->sq.max_gs); - - qp->sq_signal_bits = attr->sq_sig_all ? 0 : 1; - --- -2.30.0 - diff --git a/0005-Update-kernel-headers.patch b/0005-Update-kernel-headers.patch deleted file mode 100644 index 7d68e63af12aceaee23f6a5956408394dd696a64..0000000000000000000000000000000000000000 --- a/0005-Update-kernel-headers.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 542b54285dbaebbe0b5eb3279134b02484d7329d Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Mon, 10 Oct 2022 21:21:55 +0800 -Subject: [PATCH v4 05/10] Update kernel headers - -To commit ?? ("RDMA/hns: Remove enable rq inline in kernel and add -compatibility handling"). - -Signed-off-by: Luoyouming ---- - kernel-headers/rdma/hns-abi.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index fc83dfb..c70465d 100644 ---- a/kernel-headers/rdma/hns-abi.h -+++ b/kernel-headers/rdma/hns-abi.h -@@ -87,10 +87,12 @@ struct hns_roce_ib_create_qp_resp { - - enum { - HNS_ROCE_EXSGE_FLAGS = 1 << 0, -+ HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1, - }; - - enum { - HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0, -+ HNS_ROCE_RSP_RQ_INLINE_FLAGS = 1 << 1, - }; - - struct hns_roce_ib_alloc_ucontext_resp { --- -2.30.0 - diff --git a/0012-libhns-Support-DSCP.patch b/0005-libhns-Support-DSCP.patch similarity index 56% rename from 0012-libhns-Support-DSCP.patch rename to 0005-libhns-Support-DSCP.patch index 130c89aa0f2d76632cb85dd39778fef8cbafd686..15a8f469c153cc276b9fbbe0c5adec5b31af9b03 100644 --- a/0012-libhns-Support-DSCP.patch +++ b/0005-libhns-Support-DSCP.patch @@ -1,7 +1,7 @@ -From b88e6ae3e144651092bce923123ca20361cdacab Mon Sep 17 00:00:00 2001 +From 8e20b9d0759dc43e5d1c574387ea92adbf3c3f6f Mon Sep 17 00:00:00 2001 From: Yixing Liu Date: Tue, 27 Sep 2022 19:06:00 +0800 -Subject: [PATCH 12/12] libhns: Support DSCP +Subject: [PATCH 05/34] libhns: Support DSCP This patch adds user mode DSCP function through the mapping of dscp-tc configured in kernel mode. @@ -9,17 +9,17 @@ the mapping of dscp-tc configured in kernel mode. Signed-off-by: Yixing Liu --- providers/hns/hns_roce_u.h | 7 +++++++ - providers/hns/hns_roce_u_abi.h | 6 ++++++ + providers/hns/hns_roce_u_abi.h | 3 +++ providers/hns/hns_roce_u_hw_v2.c | 19 +++++++++++++++---- - providers/hns/hns_roce_u_verbs.c | 7 +++++-- - 4 files changed, 33 insertions(+), 6 deletions(-) + providers/hns/hns_roce_u_verbs.c | 3 +++ + 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 6b64cd0..8c1cb1e 100644 +index 6f7944e..c962f44 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -175,6 +175,11 @@ enum hns_roce_db_type { - HNS_ROCE_DB_TYPE_NUM +@@ -188,6 +188,11 @@ enum hns_roce_pktype { + HNS_ROCE_PKTYPE_ROCE_V2_IPV4, }; +enum hns_roce_tc_map_mode { @@ -30,7 +30,7 @@ index 6b64cd0..8c1cb1e 100644 struct hns_roce_db_page { struct hns_roce_db_page *prev, *next; struct hns_roce_buf buf; -@@ -315,6 +320,8 @@ struct hns_roce_qp { +@@ -346,6 +351,8 @@ struct hns_roce_qp { unsigned int next_sge; int port_num; uint8_t sl; @@ -40,32 +40,22 @@ index 6b64cd0..8c1cb1e 100644 enum ibv_mtu path_mtu; diff --git a/providers/hns/hns_roce_u_abi.h b/providers/hns/hns_roce_u_abi.h -index 2753d30..0519ac7 100644 +index 3f98eb3..ec47c4b 100644 --- a/providers/hns/hns_roce_u_abi.h +++ b/providers/hns/hns_roce_u_abi.h -@@ -49,6 +49,9 @@ DECLARE_DRV_CMD(hns_roce_create_cq_ex, IB_USER_VERBS_EX_CMD_CREATE_CQ, - DECLARE_DRV_CMD(hns_roce_alloc_ucontext, IB_USER_VERBS_CMD_GET_CONTEXT, - hns_roce_ib_alloc_ucontext, hns_roce_ib_alloc_ucontext_resp); - -+DECLARE_DRV_CMD(hns_roce_create_ah, IB_USER_VERBS_CMD_CREATE_AH, empty, -+ hns_roce_ib_create_ah_resp); -+ - DECLARE_DRV_CMD(hns_roce_create_qp, IB_USER_VERBS_CMD_CREATE_QP, - hns_roce_ib_create_qp, hns_roce_ib_create_qp_resp); - -@@ -61,4 +64,7 @@ DECLARE_DRV_CMD(hns_roce_create_srq, IB_USER_VERBS_CMD_CREATE_SRQ, - DECLARE_DRV_CMD(hns_roce_create_srq_ex, IB_USER_VERBS_CMD_CREATE_XSRQ, - hns_roce_ib_create_srq, hns_roce_ib_create_srq_resp); +@@ -64,4 +64,7 @@ DECLARE_DRV_CMD(hns_roce_create_srq_ex, IB_USER_VERBS_CMD_CREATE_XSRQ, + DECLARE_DRV_CMD(hns_roce_create_ah, IB_USER_VERBS_CMD_CREATE_AH, empty, + hns_roce_ib_create_ah_resp); +DECLARE_DRV_CMD(hns_roce_modify_qp_ex, IB_USER_VERBS_EX_CMD_MODIFY_QP, + empty, hns_roce_ib_modify_qp_resp); + #endif /* _HNS_ROCE_U_ABI_H */ diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index a30d461..c652eea 100644 +index c0afc5d..2eccd50 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1543,10 +1543,11 @@ static void record_qp_attr(struct ibv_qp *qp, struct ibv_qp_attr *attr, +@@ -1542,10 +1542,11 @@ static void record_qp_attr(struct ibv_qp *qp, struct ibv_qp_attr *attr, static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, int attr_mask) { @@ -78,8 +68,8 @@ index a30d461..c652eea 100644 + int ret; if ((attr_mask & IBV_QP_STATE) && (attr->qp_state == IBV_QPS_ERR)) { - pthread_spin_lock(&hr_qp->sq.lock); -@@ -1554,7 +1555,9 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, + hns_roce_spin_lock(&hr_qp->sq.hr_lock); +@@ -1553,7 +1554,9 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, flag = true; } @@ -89,8 +79,8 @@ index a30d461..c652eea 100644 + sizeof(resp_ex)); if (flag) { - pthread_spin_unlock(&hr_qp->rq.lock); -@@ -1564,8 +1567,13 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, + if (!ret) +@@ -1565,8 +1568,13 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, if (ret) return ret; @@ -105,7 +95,7 @@ index a30d461..c652eea 100644 if ((attr_mask & IBV_QP_STATE) && attr->qp_state == IBV_QPS_RESET) { if (qp->recv_cq) -@@ -1579,6 +1587,9 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, +@@ -1580,6 +1588,9 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, hns_roce_init_qp_indices(to_hr_qp(qp)); } @@ -116,27 +106,11 @@ index a30d461..c652eea 100644 return ret; diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index cff9d1d..3b7a67d 100644 +index 2dc4d4b..e8de26e 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c -@@ -1449,7 +1449,7 @@ static int get_tclass(struct ibv_context *context, struct ibv_ah_attr *attr, - struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr) - { - struct hns_roce_device *hr_dev = to_hr_dev(pd->context->device); -- struct ib_uverbs_create_ah_resp resp = {}; -+ struct hns_roce_create_ah_resp resp = {}; - struct hns_roce_ah *ah; - - /* HIP08 don't support create ah */ -@@ -1477,12 +1477,15 @@ struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr) - memcpy(ah->av.dgid, attr->grh.dgid.raw, ARRAY_SIZE(ah->av.dgid)); - } - -- if (ibv_cmd_create_ah(pd, &ah->ibv_ah, attr, &resp, sizeof(resp))) -+ if (ibv_cmd_create_ah(pd, &ah->ibv_ah, attr, &resp.ibv_resp, sizeof(resp))) - goto err; - - if (ibv_resolve_eth_l2_from_gid(pd->context, attr, ah->av.mac, NULL)) +@@ -1729,6 +1729,9 @@ struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr) + ah->av.mac, NULL)) goto err; + if (resp.tc_mode == HNS_ROCE_TC_MAP_MODE_DSCP) diff --git a/0040-Update-kernel-headers.patch b/0006-Update-kernel-headers.patch similarity index 68% rename from 0040-Update-kernel-headers.patch rename to 0006-Update-kernel-headers.patch index 3580a3581d0015244e9a5d9c1b023d60e8cf9918..6f5f7a2299bcefdf91838b1ae756119edd889ef3 100644 --- a/0040-Update-kernel-headers.patch +++ b/0006-Update-kernel-headers.patch @@ -1,7 +1,7 @@ -From 39c7b8eaeb3a6c855a49885b6b6de877268d36a7 Mon Sep 17 00:00:00 2001 +From 273c073924320b2768003572296e0d5684714625 Mon Sep 17 00:00:00 2001 From: Yixing Liu Date: Wed, 12 Apr 2023 17:01:08 +0800 -Subject: [PATCH 1/2] Update kernel headers +Subject: [PATCH 06/34] Update kernel headers To commit ?? ("RDMA/hns: Support congestion control algorithm configuration at QP granularity"). @@ -9,15 +9,15 @@ Subject: [PATCH 1/2] Update kernel headers Signed-off-by: Yixing Liu Reviewed-by: Yangyang Li --- - kernel-headers/rdma/hns-abi.h | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) + kernel-headers/rdma/hns-abi.h | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 5988a62..bd19927 100644 +index a18d955..ccb5dac 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h -@@ -63,6 +63,18 @@ struct hns_roce_ib_create_srq_resp { - __u32 reserved; +@@ -73,6 +73,18 @@ struct hns_roce_ib_create_srq_resp { + __u32 cap_flags; /* Use enum hns_roce_srq_cap_flags */ }; +enum hns_roce_create_qp_comp_mask { @@ -35,7 +35,7 @@ index 5988a62..bd19927 100644 struct hns_roce_ib_create_qp { __aligned_u64 buf_addr; __aligned_u64 db_addr; -@@ -71,6 +83,9 @@ struct hns_roce_ib_create_qp { +@@ -81,6 +93,9 @@ struct hns_roce_ib_create_qp { __u8 sq_no_prefetch; __u8 reserved[5]; __aligned_u64 sdb_addr; @@ -45,16 +45,16 @@ index 5988a62..bd19927 100644 }; enum hns_roce_qp_cap_flags { -@@ -123,7 +138,8 @@ struct hns_roce_ib_alloc_ucontext_resp { +@@ -120,6 +135,9 @@ struct hns_roce_ib_alloc_ucontext_resp { + __u32 reserved; __u32 config; __u32 max_inline_data; - __u8 mac_type; -- __u8 rsv1[7]; ++ __u8 rsv1; + __u8 congest_type; -+ __u8 rsv1[6]; - __u32 dca_qps; - __u32 dca_mmap_size; - __aligned_u64 dca_mmap_key; ++ __u8 rsv2[6]; + }; + + struct hns_roce_ib_alloc_ucontext { -- -2.25.1 +2.30.0 diff --git a/0006-libhns-Add-compatibility-handling-for-rq-inline.patch b/0006-libhns-Add-compatibility-handling-for-rq-inline.patch deleted file mode 100644 index 9854b872a9ec05c9f8aa145aae26e9ecac758aa4..0000000000000000000000000000000000000000 --- a/0006-libhns-Add-compatibility-handling-for-rq-inline.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 996bca51e2063dc790286cbc894e2c438f499441 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Mon, 10 Oct 2022 21:49:35 +0800 -Subject: [PATCH v4 06/10] libhns: Add compatibility handling for rq inline - -Add compatibility processing between different user space -and kernel space. - -Signed-off-by: Luoyouming -Reviewed-by: Yangyang Li ---- - providers/hns/hns_roce_u.c | 2 +- - providers/hns/hns_roce_u_verbs.c | 4 +++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 1bd5bb1..6c9aefa 100644 ---- a/providers/hns/hns_roce_u.c -+++ b/providers/hns/hns_roce_u.c -@@ -113,7 +113,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - if (!context) - return NULL; - -- cmd.config |= HNS_ROCE_EXSGE_FLAGS; -+ cmd.config |= HNS_ROCE_EXSGE_FLAGS | HNS_ROCE_RQ_INLINE_FLAGS; - if (ibv_cmd_get_context(&context->ibv_ctx, &cmd.ibv_cmd, sizeof(cmd), - &resp.ibv_resp, sizeof(resp))) - goto err_free; -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 851b145..3e9a306 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -1079,7 +1079,9 @@ static void hns_roce_set_qp_params(struct ibv_qp_init_attr_ex *attr, - cnt = roundup_pow_of_two(attr->cap.max_recv_wr); - qp->rq.wqe_cnt = cnt; - qp->rq.shift = hr_ilog32(cnt); -- qp->rq_rinl_buf.wqe_cnt = cnt; -+ qp->rq_rinl_buf.wqe_cnt = 0; -+ if (ctx->config & HNS_ROCE_RSP_RQ_INLINE_FLAGS) -+ qp->rq_rinl_buf.wqe_cnt = cnt; - - attr->cap.max_recv_wr = qp->rq.wqe_cnt; - attr->cap.max_recv_sge = qp->rq.max_gs; --- -2.30.0 - diff --git a/0007-libhns-Refactor-rq-inline.patch b/0007-libhns-Refactor-rq-inline.patch deleted file mode 100644 index 00de21ff263d3017a452b9aae4482afa47e401ae..0000000000000000000000000000000000000000 --- a/0007-libhns-Refactor-rq-inline.patch +++ /dev/null @@ -1,301 +0,0 @@ -From 9e5f5d39757a5479a1a4e1170978d2e09acb995b Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Fri, 9 Sep 2022 17:42:38 +0800 -Subject: [PATCH v4 07/10] libhns: Refactor rq inline - -The ibv_sge struct is enough, there is no need to customize the -hns_roce_rinl_sge struct. Refactored structures and functions -for reuse in cqe inline (rq, srq scenarios). - -Signed-off-by: Luoyouming ---- - providers/hns/hns_roce_u.h | 7 +-- - providers/hns/hns_roce_u_hw_v2.c | 103 +++++++++++++++---------------- - providers/hns/hns_roce_u_verbs.c | 46 +++++++------- - 3 files changed, 75 insertions(+), 81 deletions(-) - -diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 5388f9c..57ebe55 100644 ---- a/providers/hns/hns_roce_u.h -+++ b/providers/hns/hns_roce_u.h -@@ -290,13 +290,8 @@ struct hns_roce_sge_ex { - unsigned int sge_shift; - }; - --struct hns_roce_rinl_sge { -- void *addr; -- unsigned int len; --}; -- - struct hns_roce_rinl_wqe { -- struct hns_roce_rinl_sge *sg_list; -+ struct ibv_sge *sg_list; - unsigned int sge_cnt; - }; - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index ebe68bc..73acc9e 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - #include "hns_roce_u.h" - #include "hns_roce_u_db.h" - #include "hns_roce_u_hw_v2.h" -@@ -417,46 +418,42 @@ static void get_opcode_for_resp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, - wc->opcode = wc_rcv_op_map[opcode]; - } - --static int handle_recv_inl_wqe(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, -- struct hns_roce_qp **cur_qp, uint32_t opcode) -+static void handle_recv_inl_data(struct hns_roce_v2_cqe *cqe, -+ struct hns_roce_rinl_buf *rinl_buf, -+ uint32_t wr_cnt, uint8_t *buf) - { -- if (((*cur_qp)->verbs_qp.qp.qp_type == IBV_QPT_RC) && -- (opcode == HNS_ROCE_RECV_OP_SEND || -- opcode == HNS_ROCE_RECV_OP_SEND_WITH_IMM || -- opcode == HNS_ROCE_RECV_OP_SEND_WITH_INV) && -- hr_reg_read(cqe, CQE_RQ_INLINE)) { -- struct hns_roce_rinl_sge *sge_list; -- uint32_t wr_num, wr_cnt, sge_num, data_len; -- uint8_t *wqe_buf; -- uint32_t sge_cnt, size; -+ struct ibv_sge *sge_list; -+ uint32_t sge_num, data_len; -+ uint32_t sge_cnt, size; - -- wr_num = hr_reg_read(cqe, CQE_WQE_IDX); -- wr_cnt = wr_num & ((*cur_qp)->rq.wqe_cnt - 1); -+ sge_list = rinl_buf->wqe_list[wr_cnt].sg_list; -+ sge_num = rinl_buf->wqe_list[wr_cnt].sge_cnt; - -- sge_list = (*cur_qp)->rq_rinl_buf.wqe_list[wr_cnt].sg_list; -- sge_num = (*cur_qp)->rq_rinl_buf.wqe_list[wr_cnt].sge_cnt; -- wqe_buf = (uint8_t *)get_recv_wqe_v2(*cur_qp, wr_cnt); -+ data_len = le32toh(cqe->byte_cnt); - -- data_len = wc->byte_len; -+ for (sge_cnt = 0; (sge_cnt < sge_num) && (data_len); sge_cnt++) { -+ size = min(sge_list[sge_cnt].length, data_len); - -- for (sge_cnt = 0; (sge_cnt < sge_num) && (data_len); -- sge_cnt++) { -- size = sge_list[sge_cnt].len < data_len ? -- sge_list[sge_cnt].len : data_len; -+ memcpy((void *)(uintptr_t)sge_list[sge_cnt].addr, (void *)buf, size); -+ data_len -= size; -+ buf += size; -+ } - -- memcpy((void *)sge_list[sge_cnt].addr, -- (void *)wqe_buf, size); -- data_len -= size; -- wqe_buf += size; -- } -+ if (data_len) -+ hr_reg_write(cqe, CQE_STATUS, HNS_ROCE_V2_CQE_LOCAL_LENGTH_ERR); - -- if (data_len) { -- wc->status = IBV_WC_LOC_LEN_ERR; -- return V2_CQ_POLL_ERR; -- } -- } -+} - -- return V2_CQ_OK; -+static void handle_recv_rq_inl(struct hns_roce_v2_cqe *cqe, -+ struct hns_roce_qp *cur_qp) -+{ -+ uint8_t *wqe_buf; -+ uint32_t wr_num; -+ -+ wr_num = hr_reg_read(cqe, CQE_WQE_IDX) & (cur_qp->rq.wqe_cnt - 1); -+ -+ wqe_buf = (uint8_t *)get_recv_wqe_v2(cur_qp, wr_num); -+ handle_recv_inl_data(cqe, &(cur_qp->rq_rinl_buf), wr_num, wqe_buf); - } - - static void parse_for_ud_qp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc) -@@ -479,10 +476,9 @@ static void parse_cqe_for_srq(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, - } - - static int parse_cqe_for_resp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, -- struct hns_roce_qp *hr_qp, uint8_t opcode) -+ struct hns_roce_qp *hr_qp) - { - struct hns_roce_wq *wq; -- int ret; - - wq = &hr_qp->rq; - wc->wr_id = wq->wrid[wq->tail & (wq->wqe_cnt - 1)]; -@@ -491,12 +487,8 @@ static int parse_cqe_for_resp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, - if (hr_qp->verbs_qp.qp.qp_type == IBV_QPT_UD) - parse_for_ud_qp(cqe, wc); - -- ret = handle_recv_inl_wqe(cqe, wc, &hr_qp, opcode); -- if (ret) { -- verbs_err(verbs_get_ctx(hr_qp->verbs_qp.qp.context), -- PFX "failed to handle recv inline wqe!\n"); -- return ret; -- } -+ if (hr_reg_read(cqe, CQE_RQ_INLINE)) -+ handle_recv_rq_inl(cqe, hr_qp); - - return 0; - } -@@ -626,7 +618,7 @@ static int parse_cqe_for_cq(struct hns_roce_context *ctx, struct hns_roce_cq *cq - if (srq) - parse_cqe_for_srq(cqe, wc, srq); - else -- parse_cqe_for_resp(cqe, wc, cur_qp, opcode); -+ parse_cqe_for_resp(cqe, wc, cur_qp); - } - - return 0; -@@ -1355,26 +1347,31 @@ static void fill_recv_sge_to_wqe(struct ibv_recv_wr *wr, void *wqe, - } - } - -+static void fill_recv_inl_buf(struct hns_roce_rinl_buf *rinl_buf, -+ unsigned int wqe_idx, struct ibv_recv_wr *wr) -+{ -+ struct ibv_sge *sge_list; -+ unsigned int i; -+ -+ if (!rinl_buf->wqe_cnt) -+ return; -+ -+ sge_list = rinl_buf->wqe_list[wqe_idx].sg_list; -+ rinl_buf->wqe_list[wqe_idx].sge_cnt = (unsigned int)wr->num_sge; -+ for (i = 0; i < wr->num_sge; i++) -+ memcpy((void *)&sge_list[i], (void *)&wr->sg_list[i], -+ sizeof(struct ibv_sge)); -+} -+ - static void fill_rq_wqe(struct hns_roce_qp *qp, struct ibv_recv_wr *wr, - unsigned int wqe_idx, unsigned int max_sge) - { -- struct hns_roce_rinl_sge *sge_list; -- unsigned int i; - void *wqe; - - wqe = get_recv_wqe_v2(qp, wqe_idx); - fill_recv_sge_to_wqe(wr, wqe, max_sge, qp->rq.rsv_sge); - -- if (!qp->rq_rinl_buf.wqe_cnt) -- return; -- -- /* QP support receive inline wqe */ -- sge_list = qp->rq_rinl_buf.wqe_list[wqe_idx].sg_list; -- qp->rq_rinl_buf.wqe_list[wqe_idx].sge_cnt = (unsigned int)wr->num_sge; -- for (i = 0; i < wr->num_sge; i++) { -- sge_list[i].addr = (void *)(uintptr_t)wr->sg_list[i].addr; -- sge_list[i].len = wr->sg_list[i].length; -- } -+ fill_recv_inl_buf(&qp->rq_rinl_buf, wqe_idx, wr); - } - - static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 3e9a306..1d661dd 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -855,43 +855,45 @@ static int verify_qp_create_attr(struct hns_roce_context *ctx, - return verify_qp_create_cap(ctx, attr); - } - --static int qp_alloc_recv_inl_buf(struct ibv_qp_cap *cap, -- struct hns_roce_qp *qp) -+static int alloc_recv_rinl_buf(uint32_t max_sge, -+ struct hns_roce_rinl_buf *rinl_buf) - { - unsigned int cnt; - int i; - -- cnt = qp->rq_rinl_buf.wqe_cnt; -- qp->rq_rinl_buf.wqe_list = calloc(cnt, -- sizeof(struct hns_roce_rinl_wqe)); -- if (!qp->rq_rinl_buf.wqe_list) -+ cnt = rinl_buf->wqe_cnt; -+ rinl_buf->wqe_list = calloc(cnt, -+ sizeof(struct hns_roce_rinl_wqe)); -+ if (!rinl_buf->wqe_list) - return ENOMEM; - -- qp->rq_rinl_buf.wqe_list[0].sg_list = calloc(cnt * cap->max_recv_sge, -- sizeof(struct hns_roce_rinl_sge)); -- if (!qp->rq_rinl_buf.wqe_list[0].sg_list) -+ rinl_buf->wqe_list[0].sg_list = calloc(cnt * max_sge, -+ sizeof(struct ibv_sge)); -+ if (!rinl_buf->wqe_list[0].sg_list) { -+ free(rinl_buf->wqe_list); - return ENOMEM; -+ } - - for (i = 0; i < cnt; i++) { -- int wqe_size = i * cap->max_recv_sge; -+ int wqe_size = i * max_sge; - -- qp->rq_rinl_buf.wqe_list[i].sg_list = -- &(qp->rq_rinl_buf.wqe_list[0].sg_list[wqe_size]); -+ rinl_buf->wqe_list[i].sg_list = -+ &(rinl_buf->wqe_list[0].sg_list[wqe_size]); - } - - return 0; - } - --static void qp_free_recv_inl_buf(struct hns_roce_qp *qp) -+static void free_recv_rinl_buf(struct hns_roce_rinl_buf *rinl_buf) - { -- if (qp->rq_rinl_buf.wqe_list) { -- if (qp->rq_rinl_buf.wqe_list[0].sg_list) { -- free(qp->rq_rinl_buf.wqe_list[0].sg_list); -- qp->rq_rinl_buf.wqe_list[0].sg_list = NULL; -+ if (rinl_buf->wqe_list) { -+ if (rinl_buf->wqe_list[0].sg_list) { -+ free(rinl_buf->wqe_list[0].sg_list); -+ rinl_buf->wqe_list[0].sg_list = NULL; - } - -- free(qp->rq_rinl_buf.wqe_list); -- qp->rq_rinl_buf.wqe_list = NULL; -+ free(rinl_buf->wqe_list); -+ rinl_buf->wqe_list = NULL; - } - } - -@@ -930,7 +932,7 @@ static int calc_qp_buff_size(struct hns_roce_device *hr_dev, - - static void qp_free_wqe(struct hns_roce_qp *qp) - { -- qp_free_recv_inl_buf(qp); -+ free_recv_rinl_buf(&qp->rq_rinl_buf); - if (qp->sq.wqe_cnt) - free(qp->sq.wrid); - -@@ -958,7 +960,7 @@ static int qp_alloc_wqe(struct ibv_qp_cap *cap, struct hns_roce_qp *qp, - } - - if (qp->rq_rinl_buf.wqe_cnt) { -- if (qp_alloc_recv_inl_buf(cap, qp)) -+ if (alloc_recv_rinl_buf(cap->max_recv_sge, &qp->rq_rinl_buf)) - goto err_alloc; - } - -@@ -968,7 +970,7 @@ static int qp_alloc_wqe(struct ibv_qp_cap *cap, struct hns_roce_qp *qp, - return 0; - - err_alloc: -- qp_free_recv_inl_buf(qp); -+ free_recv_rinl_buf(&qp->rq_rinl_buf); - if (qp->rq.wrid) - free(qp->rq.wrid); - --- -2.30.0 - diff --git a/0041-libhns-Support-congestion-control-algorithm-configur.patch b/0007-libhns-Support-congestion-control-algorithm-configur.patch similarity index 56% rename from 0041-libhns-Support-congestion-control-algorithm-configur.patch rename to 0007-libhns-Support-congestion-control-algorithm-configur.patch index 8cf0a3f334e3c387930dd52c7310ed1c92669cc3..b43032ef56631cc4aab9fae4932851a89a871b59 100644 --- a/0041-libhns-Support-congestion-control-algorithm-configur.patch +++ b/0007-libhns-Support-congestion-control-algorithm-configur.patch @@ -1,7 +1,8 @@ -From 99e1e64edab954ce1895d83a3d6f4317bc12c444 Mon Sep 17 00:00:00 2001 +From 22ae23388b036d372e71b926a74956d4c0b40f85 Mon Sep 17 00:00:00 2001 From: Yixing Liu Date: Wed, 12 Apr 2023 17:01:09 +0800 -Subject: [PATCH] libhns: Support congestion control algorithm configuration +Subject: [PATCH 07/34] libhns: Support congestion control algorithm + configuration driver inclusion category: feature @@ -22,39 +23,77 @@ query the type of congestion control algorithm. Signed-off-by: Yixing Liu Reviewed-by: Yangyang Li --- - providers/hns/hns_roce_u.c | 1 + - providers/hns/hns_roce_u.h | 6 ++ - providers/hns/hns_roce_u_verbs.c | 107 +++++++++++++++++++++++++++++-- - providers/hns/hnsdv.h | 22 +++++++ - providers/hns/libhns.map | 1 + - 5 files changed, 131 insertions(+), 6 deletions(-) + providers/hns/CMakeLists.txt | 9 ++- + providers/hns/hns_roce_u.c | 9 +++ + providers/hns/hns_roce_u.h | 8 ++ + providers/hns/hns_roce_u_abi.h | 1 + + providers/hns/hns_roce_u_verbs.c | 129 ++++++++++++++++++++++++++++--- + providers/hns/hnsdv.h | 65 ++++++++++++++++ + providers/hns/libhns.map | 9 +++ + 7 files changed, 220 insertions(+), 10 deletions(-) + create mode 100644 providers/hns/hnsdv.h + create mode 100644 providers/hns/libhns.map +diff --git a/providers/hns/CMakeLists.txt b/providers/hns/CMakeLists.txt +index 7aaca75..0717b6e 100644 +--- a/providers/hns/CMakeLists.txt ++++ b/providers/hns/CMakeLists.txt +@@ -1,7 +1,14 @@ +-rdma_provider(hns ++rdma_shared_provider(hns libhns.map ++ 1 1.0.${PACKAGE_VERSION} + hns_roce_u.c + hns_roce_u_buf.c + hns_roce_u_db.c + hns_roce_u_hw_v2.c + hns_roce_u_verbs.c + ) ++ ++publish_headers(infiniband ++ hnsdv.h ++) ++ ++rdma_pkg_config("hns" "libibverbs" "${CMAKE_THREAD_LIBS_INIT}") +\ No newline at end of file diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 3d29838..87f9ed8 100644 +index 589c8f7..960b3d1 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c -@@ -299,6 +299,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, +@@ -156,6 +156,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + &resp.ibv_resp, sizeof(resp))) goto err_free; - hr_dev->mac_type = resp.mac_type; + hr_dev->congest_type = resp.congest_type; - ++ if (!resp.cqe_size) context->cqe_size = HNS_ROCE_CQE_SIZE; + else if (resp.cqe_size <= HNS_ROCE_V3_CQE_SIZE) +@@ -256,4 +258,11 @@ static const struct verbs_device_ops hns_roce_dev_ops = { + .uninit_device = hns_uninit_device, + .alloc_context = hns_roce_alloc_context, + }; ++ ++bool is_hns_dev(struct ibv_device *device) ++{ ++ struct verbs_device *verbs_device = verbs_get_device(device); ++ ++ return verbs_device->ops == &hns_roce_dev_ops; ++} + PROVIDER_DRIVER(hns, hns_roce_dev_ops); diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 76c7adb..41e9599 100644 +index c962f44..d4d560f 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -172,6 +172,7 @@ struct hns_roce_device { +@@ -164,6 +164,7 @@ struct hns_roce_device { const struct hns_roce_u_hw *u_hw; int hw_version; - uint8_t mac_type; + enum hns_device_link_type link_type; + uint8_t congest_type; }; struct hns_roce_buf { -@@ -230,6 +231,11 @@ struct hns_roce_v2_reset_state { - uint32_t is_reset; +@@ -206,6 +207,11 @@ struct hns_roce_spinlock { + int need_lock; }; +struct hns_roce_cmd_flag { @@ -65,8 +104,29 @@ index 76c7adb..41e9599 100644 struct hns_roce_context { struct verbs_context ibv_ctx; void *uar; +@@ -495,6 +501,8 @@ static inline int hns_roce_spin_unlock(struct hns_roce_spinlock *hr_lock) + return 0; + } + ++bool is_hns_dev(struct ibv_device *device); ++ + int hns_roce_u_query_device(struct ibv_context *context, + const struct ibv_query_device_ex_input *input, + struct ibv_device_attr_ex *attr, size_t attr_size); +diff --git a/providers/hns/hns_roce_u_abi.h b/providers/hns/hns_roce_u_abi.h +index ec47c4b..7e9bbc1 100644 +--- a/providers/hns/hns_roce_u_abi.h ++++ b/providers/hns/hns_roce_u_abi.h +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include "hnsdv.h" + + DECLARE_DRV_CMD(hns_roce_alloc_pd, IB_USER_VERBS_CMD_ALLOC_PD, + empty, hns_roce_ib_alloc_pd_resp); diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 282ab74..499735c 100644 +index e8de26e..80e2ec5 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -89,10 +89,10 @@ int hns_roce_u_query_device(struct ibv_context *context, @@ -110,7 +170,7 @@ index 282ab74..499735c 100644 int hns_roce_u_query_port(struct ibv_context *context, uint8_t port, struct ibv_port_attr *attr) { -@@ -956,6 +977,67 @@ int hns_roce_u_destroy_srq(struct ibv_srq *ibv_srq) +@@ -984,6 +1005,70 @@ int hns_roce_u_destroy_srq(struct ibv_srq *ibv_srq) return 0; } @@ -125,10 +185,13 @@ index 282ab74..499735c 100644 +{ + struct hns_roce_device *hr_dev = to_hr_dev(ctx->ibv_ctx.context.device); + ++ if (!(hns_attr->comp_mask & HNSDV_QP_INIT_ATTR_MASK_QP_CONGEST_TYPE)) ++ return 0; ++ + if (!check_comp_mask(hns_attr->congest_type, hr_dev->congest_type)) { + verbs_err(&ctx->ibv_ctx, "unsupported congest type 0x%x.\n", + hns_attr->congest_type); -+ return -EOPNOTSUPP; ++ return EOPNOTSUPP; + } + + switch (hns_attr->congest_type) { @@ -147,7 +210,7 @@ index 282ab74..499735c 100644 + default: + verbs_err(&ctx->ibv_ctx, + "unsupported congestion control algorithm configuration.\n"); -+ return -EOPNOTSUPP; ++ return EOPNOTSUPP; + } + + return 0; @@ -165,7 +228,7 @@ index 282ab74..499735c 100644 + if (!check_comp_mask(hns_attr->comp_mask, HNSDV_QP_SUP_COMP_MASK)) { + verbs_err(&ctx->ibv_ctx, "invalid hnsdv comp_mask 0x%x.\n", + hns_attr->comp_mask); -+ return -EINVAL; ++ return EINVAL; + } + + ret = check_qp_congest_type(ctx, hns_attr, cmd_flag); @@ -178,7 +241,7 @@ index 282ab74..499735c 100644 enum { CREATE_QP_SUP_COMP_MASK = IBV_QP_INIT_ATTR_PD | IBV_QP_INIT_ATTR_XRCD | IBV_QP_INIT_ATTR_SEND_OPS_FLAGS, -@@ -1050,7 +1132,9 @@ static int verify_qp_create_cap(struct hns_roce_context *ctx, +@@ -1065,7 +1150,9 @@ static int verify_qp_create_cap(struct hns_roce_context *ctx, } static int verify_qp_create_attr(struct hns_roce_context *ctx, @@ -189,7 +252,7 @@ index 282ab74..499735c 100644 { int ret; -@@ -1058,6 +1142,10 @@ static int verify_qp_create_attr(struct hns_roce_context *ctx, +@@ -1073,6 +1160,10 @@ static int verify_qp_create_attr(struct hns_roce_context *ctx, if (ret) return ret; @@ -200,7 +263,7 @@ index 282ab74..499735c 100644 return verify_qp_create_cap(ctx, attr); } -@@ -1452,7 +1540,8 @@ static int hns_roce_store_qp(struct hns_roce_context *ctx, +@@ -1429,7 +1520,8 @@ static int hns_roce_store_qp(struct hns_roce_context *ctx, static int qp_exec_create_cmd(struct ibv_qp_init_attr_ex *attr, struct hns_roce_qp *qp, struct hns_roce_context *ctx, @@ -210,7 +273,7 @@ index 282ab74..499735c 100644 { struct hns_roce_create_qp_ex_resp resp_ex = {}; struct hns_roce_create_qp_ex cmd_ex = {}; -@@ -1464,6 +1553,11 @@ static int qp_exec_create_cmd(struct ibv_qp_init_attr_ex *attr, +@@ -1441,6 +1533,11 @@ static int qp_exec_create_cmd(struct ibv_qp_init_attr_ex *attr, cmd_ex.log_sq_stride = qp->sq.wqe_shift; cmd_ex.log_sq_bb_count = hr_ilog32(qp->sq.wqe_cnt); @@ -222,8 +285,13 @@ index 282ab74..499735c 100644 ret = ibv_cmd_create_qp_ex2(&ctx->ibv_ctx.context, &qp->verbs_qp, attr, &cmd_ex.ibv_cmd, sizeof(cmd_ex), &resp_ex.ibv_resp, sizeof(resp_ex)); -@@ -1543,11 +1637,12 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, - struct hnsdv_qp_init_attr *hns_attr) +@@ -1511,14 +1608,16 @@ static int mmap_dwqe(struct ibv_context *ibv_ctx, struct hns_roce_qp *qp, + } + + static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, +- struct ibv_qp_init_attr_ex *attr) ++ struct ibv_qp_init_attr_ex *attr, ++ struct hnsdv_qp_init_attr *hns_attr) { struct hns_roce_context *context = to_hr_ctx(ibv_ctx); + struct hns_roce_cmd_flag cmd_flag = {}; @@ -236,7 +304,7 @@ index 282ab74..499735c 100644 if (ret) goto err; -@@ -1567,7 +1662,7 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, +@@ -1538,7 +1637,7 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, if (ret) goto err_buf; @@ -245,14 +313,67 @@ index 282ab74..499735c 100644 if (ret) goto err_cmd; +@@ -1588,7 +1687,7 @@ struct ibv_qp *hns_roce_u_create_qp(struct ibv_pd *pd, + attrx.comp_mask = IBV_QP_INIT_ATTR_PD; + attrx.pd = pd; + +- qp = create_qp(pd->context, &attrx); ++ qp = create_qp(pd->context, &attrx, NULL); + if (qp) + memcpy(attr, &attrx, sizeof(*attr)); + +@@ -1598,7 +1697,19 @@ struct ibv_qp *hns_roce_u_create_qp(struct ibv_pd *pd, + struct ibv_qp *hns_roce_u_create_qp_ex(struct ibv_context *context, + struct ibv_qp_init_attr_ex *attr) + { +- return create_qp(context, attr); ++ return create_qp(context, attr, NULL); ++} ++ ++struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, ++ struct ibv_qp_init_attr_ex *qp_attr, ++ struct hnsdv_qp_init_attr *hns_attr) ++{ ++ if (!is_hns_dev(context->device)) { ++ errno = EOPNOTSUPP; ++ return NULL; ++ } ++ ++ return create_qp(context, qp_attr, hns_attr); + } + + struct ibv_qp *hns_roce_u_open_qp(struct ibv_context *context, diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h -index cfe1611..e15b428 100644 ---- a/providers/hns/hnsdv.h +new file mode 100644 +index 0000000..afd57b8 +--- /dev/null +++ b/providers/hns/hnsdv.h -@@ -45,19 +45,41 @@ enum hnsdv_qp_create_flags { - HNSDV_QP_CREATE_ENABLE_DCA_MODE = 1 << 0, - }; - +@@ -0,0 +1,65 @@ ++/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ ++/* ++ * Copyright (c) 2024 HiSilicon Limited. ++ */ ++ ++#ifndef __HNSDV_H__ ++#define __HNSDV_H__ ++ ++#include ++#include ++ ++#include ++ ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++struct hnsdv_context_attr { ++ uint64_t flags; /* Use enum hnsdv_context_attr_flags */ ++ uint64_t comp_mask; /* Use enum hnsdv_context_comp_mask */ ++}; ++ ++bool hnsdv_is_supported(struct ibv_device *device); ++ +enum hnsdv_qp_congest_ctrl_type { + HNSDV_QP_CREATE_ENABLE_DCQCN = 1 << 0, + HNSDV_QP_CREATE_ENABLE_LDCP = 1 << 1, @@ -260,21 +381,21 @@ index cfe1611..e15b428 100644 + HNSDV_QP_CREATE_ENABLE_DIP = 1 << 3, +}; + - enum hnsdv_qp_init_attr_mask { - HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS = 1 << 0, ++enum hnsdv_qp_init_attr_mask { ++ HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS = 1 << 0, + HNSDV_QP_INIT_ATTR_MASK_QP_CONGEST_TYPE = 1 << 1, - }; - - struct hnsdv_qp_init_attr { - uint64_t comp_mask; /* Use enum hnsdv_qp_init_attr_mask */ - uint32_t create_flags; /* Use enum hnsdv_qp_create_flags */ ++}; ++ ++struct hnsdv_qp_init_attr { ++ uint64_t comp_mask; /* Use enum hnsdv_qp_init_attr_mask */ ++ uint32_t create_flags; + uint8_t congest_type; /* Use enum hnsdv_qp_congest_ctrl_type */ - }; - - struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, - struct ibv_qp_init_attr_ex *qp_attr, - struct hnsdv_qp_init_attr *hns_qp_attr); - ++}; ++ ++struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, ++ struct ibv_qp_init_attr_ex *qp_attr, ++ struct hnsdv_qp_init_attr *hns_qp_attr); ++ +enum hnsdv_query_context_comp_mask { + HNSDV_CONTEXT_MASK_CONGEST_TYPE = 1 << 0, +}; @@ -288,20 +409,26 @@ index cfe1611..e15b428 100644 +int hnsdv_query_device(struct ibv_context *ctx_in, + struct hnsdv_context *attrs_out); + - #ifdef __cplusplus - } - #endif ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* __HNSDV_H__ */ diff --git a/providers/hns/libhns.map b/providers/hns/libhns.map -index aed491c..ebf28eb 100644 ---- a/providers/hns/libhns.map +new file mode 100644 +index 0000000..768c8ef +--- /dev/null +++ b/providers/hns/libhns.map -@@ -5,5 +5,6 @@ HNS_1.0 { - hnsdv_is_supported; - hnsdv_open_device; - hnsdv_create_qp; +@@ -0,0 +1,9 @@ ++/* Export symbols should be added below according to ++ Documentation/versioning.md document. */ ++HNS_1.0 { ++ global: ++ hnsdv_open_device; ++ hnsdv_create_qp; + hnsdv_query_device; - local: *; - }; ++ local: *; ++}; -- -2.25.1 +2.30.0 diff --git a/0080-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch b/0008-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch similarity index 82% rename from 0080-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch rename to 0008-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch index c7769b35ae1ef30c3f2fc3bc1db1515c06f3ff64..67feba2ca797aa5421af4f735357d4e32b03faf5 100644 --- a/0080-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch +++ b/0008-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch @@ -1,7 +1,7 @@ -From 96d30f16bc03167c7c52e663785192382688f542 Mon Sep 17 00:00:00 2001 +From d6d1093a219869287e50080a2dfe9c6c07c4c8e2 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Thu, 7 Dec 2023 09:48:02 +0800 -Subject: [PATCH 80/80] libhns: Fix owner bit when SQ wraps around in new IO +Subject: [PATCH 08/34] libhns: Fix owner bit when SQ wraps around in new IO driver inclusion category: bugfix @@ -38,10 +38,10 @@ Signed-off-by: Chengchang Tang 1 file changed, 7 deletions(-) diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index b2a8858..acbc854 100644 +index 2eccd50..4b6ede5 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -2544,8 +2544,6 @@ static void wr_set_sge_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_sge, +@@ -2112,8 +2112,6 @@ static void wr_set_sge_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_sge, wqe->msg_len = htole32(qp->sge_info.total_len); hr_reg_write(wqe, RCWQE_SGE_NUM, qp->sge_info.valid_num); @@ -50,7 +50,7 @@ index b2a8858..acbc854 100644 } static void wr_send_rc(struct ibv_qp_ex *ibv_qp) -@@ -2737,7 +2735,6 @@ static void wr_set_inline_data_rc(struct ibv_qp_ex *ibv_qp, void *addr, +@@ -2305,7 +2303,6 @@ static void wr_set_inline_data_rc(struct ibv_qp_ex *ibv_qp, void *addr, qp->sge_info.total_len = length; set_inline_data_list_rc(qp, wqe, 1, &buff); @@ -58,7 +58,7 @@ index b2a8858..acbc854 100644 } static void wr_set_inline_data_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_buf, -@@ -2755,7 +2752,6 @@ static void wr_set_inline_data_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_buf, +@@ -2323,7 +2320,6 @@ static void wr_set_inline_data_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_buf, qp->sge_info.total_len += buf_list[i].length; set_inline_data_list_rc(qp, wqe, num_buf, buf_list); @@ -66,7 +66,7 @@ index b2a8858..acbc854 100644 } static struct hns_roce_ud_sq_wqe * -@@ -2892,7 +2888,6 @@ static void wr_set_sge_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_sge, +@@ -2460,7 +2456,6 @@ static void wr_set_sge_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_sge, hr_reg_write(wqe, UDWQE_SGE_NUM, cnt); qp->sge_info.start_idx += cnt; @@ -74,7 +74,7 @@ index b2a8858..acbc854 100644 } static void set_inline_data_list_ud(struct hns_roce_qp *qp, -@@ -2958,7 +2953,6 @@ static void wr_set_inline_data_ud(struct ibv_qp_ex *ibv_qp, void *addr, +@@ -2526,7 +2521,6 @@ static void wr_set_inline_data_ud(struct ibv_qp_ex *ibv_qp, void *addr, qp->sge_info.total_len = length; set_inline_data_list_ud(qp, wqe, 1, &buff); @@ -82,7 +82,7 @@ index b2a8858..acbc854 100644 } static void wr_set_inline_data_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_buf, -@@ -2976,7 +2970,6 @@ static void wr_set_inline_data_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_buf, +@@ -2544,7 +2538,6 @@ static void wr_set_inline_data_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_buf, qp->sge_info.total_len += buf_list[i].length; set_inline_data_list_ud(qp, wqe, num_buf, buf_list); @@ -91,5 +91,5 @@ index b2a8858..acbc854 100644 static void wr_start(struct ibv_qp_ex *ibv_qp) -- -2.25.1 +2.30.0 diff --git a/0008-libhns-RQ-inline-support-wc_x_poll_cq-interface.patch b/0008-libhns-RQ-inline-support-wc_x_poll_cq-interface.patch deleted file mode 100644 index aa9e57eb79b45cdf724a2b5b97fecb58582be9fb..0000000000000000000000000000000000000000 --- a/0008-libhns-RQ-inline-support-wc_x_poll_cq-interface.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 22beeec9a0d8272fc4db60275ee4eee890068102 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Tue, 11 Oct 2022 10:21:24 +0800 -Subject: [PATCH v4 08/10] libhns: RQ inline support wc_x_poll_cq interface - -RQ inline support user use wc_x_poll_cq get data. - -Signed-off-by: Luoyouming -Reviewed-by: Yangyang Li ---- - providers/hns/hns_roce_u_hw_v2.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index b37ea92..25d8861 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -561,10 +561,15 @@ static void cqe_proc_srq(struct hns_roce_srq *srq, uint32_t wqe_idx, - hns_roce_free_srq_wqe(srq, wqe_idx); - } - --static void cqe_proc_rq(struct hns_roce_wq *wq, struct hns_roce_cq *cq) -+static void cqe_proc_rq(struct hns_roce_qp *hr_qp, struct hns_roce_cq *cq) - { -+ struct hns_roce_wq *wq = &hr_qp->rq; -+ - cq->verbs_cq.cq_ex.wr_id = wq->wrid[wq->tail & (wq->wqe_cnt - 1)]; - ++wq->tail; -+ -+ if (hr_reg_read(cq->cqe, CQE_RQ_INLINE)) -+ handle_recv_rq_inl(cq->cqe, hr_qp); - } - - static int cqe_proc_wq(struct hns_roce_context *ctx, struct hns_roce_qp *qp, -@@ -584,7 +589,7 @@ static int cqe_proc_wq(struct hns_roce_context *ctx, struct hns_roce_qp *qp, - if (srq) - cqe_proc_srq(srq, wqe_idx, cq); - else -- cqe_proc_rq(&qp->rq, cq); -+ cqe_proc_rq(qp, cq); - } - - return 0; --- -2.30.0 - diff --git a/0009-Update-kernel-headers.patch b/0009-Update-kernel-headers.patch index 0f02221a6e2d4080a232de8e633e5e22f7459705..4b95458dc7e2e844a0a56a5738a0ca4931581210 100644 --- a/0009-Update-kernel-headers.patch +++ b/0009-Update-kernel-headers.patch @@ -1,33 +1,28 @@ -From 14cee9bd8ab06104b9f9a0326b8d17a5bf8ee647 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Tue, 11 Oct 2022 10:50:36 +0800 -Subject: [PATCH v4 09/10] Update kernel headers +From ead9871175902ed401418b46036b6106ed6f8081 Mon Sep 17 00:00:00 2001 +From: Yixing Liu +Date: Mon, 17 Apr 2023 09:48:09 +0800 +Subject: [PATCH 09/34] Update kernel headers -To commit ?? ("RDMA/hns: Support cqe inline in user space"). + To commit ?? ("RDMA/hns: Add SVE DIRECT WQE flag to support libhns"). -Signed-off-by: Luoyouming +Signed-off-by: Yixing Liu +Reviewed-by: Yangyang Li --- - kernel-headers/rdma/hns-abi.h | 2 ++ - 1 file changed, 2 insertions(+) + kernel-headers/rdma/hns-abi.h | 1 + + 1 file changed, 1 insertion(+) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index c70465d..41738b8 100644 +index ccb5dac..3ff9252 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h -@@ -88,11 +88,13 @@ struct hns_roce_ib_create_qp_resp { - enum { - HNS_ROCE_EXSGE_FLAGS = 1 << 0, - HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1, -+ HNS_ROCE_CQE_INLINE_FLAGS = 1 << 2, +@@ -102,6 +102,7 @@ enum hns_roce_qp_cap_flags { + HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0, + HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1, + HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2, ++ HNS_ROCE_QP_CAP_SVE_DIRECT_WQE = 1 << 3, + HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5, }; - enum { - HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0, - HNS_ROCE_RSP_RQ_INLINE_FLAGS = 1 << 1, -+ HNS_ROCE_RSP_CQE_INLINE_FLAGS = 1 << 2, - }; - - struct hns_roce_ib_alloc_ucontext_resp { -- 2.30.0 diff --git a/0043-libhns-Add-support-for-SVE-Direct-WQE.patch b/0010-libhns-Add-support-for-SVE-Direct-WQE.patch similarity index 73% rename from 0043-libhns-Add-support-for-SVE-Direct-WQE.patch rename to 0010-libhns-Add-support-for-SVE-Direct-WQE.patch index 93c27457391d2c9d3c17d30f5eb770bc0f5532e1..596d803f2c92b5bd59906fbff738f980dc5c8e56 100644 --- a/0043-libhns-Add-support-for-SVE-Direct-WQE.patch +++ b/0010-libhns-Add-support-for-SVE-Direct-WQE.patch @@ -1,7 +1,7 @@ -From 6f08530cae5de66fabfae4cb29729a18b0e86365 Mon Sep 17 00:00:00 2001 +From 9c025c8abba7841cfe87f642459c925bc28075a1 Mon Sep 17 00:00:00 2001 From: Yixing Liu Date: Mon, 17 Apr 2023 09:48:10 +0800 -Subject: [PATCH 2/2] libhns: Add support for SVE Direct WQE +Subject: [PATCH 10/34] libhns: Add support for SVE Direct WQE driver inclusion category: bugfix @@ -26,14 +26,14 @@ Reviewed-by: Yangyang Li CMakeLists.txt | 1 + buildlib/RDMA_EnableCStd.cmake | 17 +++++++++++++++++ providers/hns/CMakeLists.txt | 5 +++++ - providers/hns/hns_roce_u_hw_v2.c | 21 ++++++++++++++++++++- - 4 files changed, 43 insertions(+), 1 deletion(-) + providers/hns/hns_roce_u_hw_v2.c | 16 ++++++++++++++-- + 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 787c8be..bc4437b 100644 +index 98985e7..26697b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -399,6 +399,7 @@ if (NOT HAVE_SPARSE) +@@ -427,6 +427,7 @@ if (NOT HAVE_SPARSE) endif() RDMA_Check_SSE(HAVE_TARGET_SSE) @@ -68,7 +68,7 @@ index 3c42824..2b56f42 100644 +endFunction() \ No newline at end of file diff --git a/providers/hns/CMakeLists.txt b/providers/hns/CMakeLists.txt -index 160e1ff..ef031a8 100644 +index 0717b6e..5634f99 100644 --- a/providers/hns/CMakeLists.txt +++ b/providers/hns/CMakeLists.txt @@ -11,4 +11,9 @@ publish_headers(infiniband @@ -81,45 +81,42 @@ index 160e1ff..ef031a8 100644 +endif() + rdma_pkg_config("hns" "libibverbs" "${CMAKE_THREAD_LIBS_INIT}") +\ No newline at end of file diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index d0067d3..a49b50d 100644 +index 4b6ede5..cb18110 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -321,6 +321,22 @@ static void hns_roce_write512(uint64_t *dest, uint64_t *val) - mmio_memcpy_x64(dest, val, sizeof(struct hns_roce_rc_sq_wqe)); +@@ -301,8 +301,20 @@ static void hns_roce_update_sq_db(struct hns_roce_context *ctx, + hns_roce_write64(qp->sq.db_reg, (__le32 *)&sq_db); } +-static void hns_roce_write512(uint64_t *dest, uint64_t *val) ++static void hns_roce_qp_write512(struct hns_roce_qp *qp, uint64_t *val) + { ++ uint64_t *dest = qp->sq.db_reg; ++ +#if defined(HNS_SVE) -+static void hns_roce_sve_write512(uint64_t *dest, uint64_t *val) -+{ -+ asm volatile( -+ "ldr z0, [%0]\n" -+ "str z0, [%1]\n" -+ ::"r" (val), "r"(dest):"cc", "memory" -+ ); -+} -+#else -+static void hns_roce_sve_write512(uint64_t *dest, uint64_t *val) -+{ -+ return; -+} ++ if (qp->flags & HNS_ROCE_QP_CAP_SVE_DIRECT_WQE) { ++ asm volatile( ++ "ldr z0, [%0]\n" ++ "str z0, [%1]\n" ++ ::"r" (val), "r"(dest):"cc", "memory" ++ ); ++ return; ++ } +#endif -+ - static void hns_roce_write_dwqe(struct hns_roce_qp *qp, void *wqe) - { - struct hns_roce_rc_sq_wqe *rc_sq_wqe = wqe; -@@ -337,7 +353,10 @@ static void hns_roce_write_dwqe(struct hns_roce_qp *qp, void *wqe) + mmio_memcpy_x64(dest, val, sizeof(struct hns_roce_rc_sq_wqe)); + } + +@@ -316,7 +328,7 @@ static void hns_roce_write_dwqe(struct hns_roce_qp *qp, void *wqe) hr_reg_write(rc_sq_wqe, RCWQE_DB_SL_H, qp->sl >> HNS_ROCE_SL_SHIFT); hr_reg_write(rc_sq_wqe, RCWQE_WQE_IDX, qp->sq.head); - hns_roce_write512(qp->sq.db_reg, wqe); -+ if (qp->flags & HNS_ROCE_QP_CAP_SVE_DIRECT_WQE) -+ hns_roce_sve_write512(qp->sq.db_reg, wqe); -+ else -+ hns_roce_write512(qp->sq.db_reg, wqe); ++ hns_roce_qp_write512(qp, wqe); } static void update_cq_db(struct hns_roce_context *ctx, struct hns_roce_cq *cq) -- -2.25.1 +2.30.0 diff --git a/0010-libhns-Support-cqe-inline.patch b/0010-libhns-Support-cqe-inline.patch deleted file mode 100644 index 56982340e48d316f574b8ca5fb1a25eb5b25adf8..0000000000000000000000000000000000000000 --- a/0010-libhns-Support-cqe-inline.patch +++ /dev/null @@ -1,263 +0,0 @@ -From 71eb90581a338242a26123790e5f24df90327465 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Thu, 11 Aug 2022 20:50:54 +0800 -Subject: [PATCH v4 10/10] libhns: Support cqe inline - -When rq or srq recv data less than or equal to 32 byte in size, roce driver -support get data from cqe. - -Signed-off-by: Luoyouming -Reviewed-by: Yangyang Li ---- - providers/hns/hns_roce_u.c | 3 ++- - providers/hns/hns_roce_u.h | 21 +++++++++-------- - providers/hns/hns_roce_u_hw_v2.c | 39 ++++++++++++++++++++++++++++++-- - providers/hns/hns_roce_u_hw_v2.h | 4 ++-- - providers/hns/hns_roce_u_verbs.c | 25 ++++++++++++++++++-- - 5 files changed, 75 insertions(+), 17 deletions(-) - -diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 6c9aefa..266e73e 100644 ---- a/providers/hns/hns_roce_u.c -+++ b/providers/hns/hns_roce_u.c -@@ -113,7 +113,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - if (!context) - return NULL; - -- cmd.config |= HNS_ROCE_EXSGE_FLAGS | HNS_ROCE_RQ_INLINE_FLAGS; -+ cmd.config |= HNS_ROCE_EXSGE_FLAGS | HNS_ROCE_RQ_INLINE_FLAGS | -+ HNS_ROCE_CQE_INLINE_FLAGS; - if (ibv_cmd_get_context(&context->ibv_ctx, &cmd.ibv_cmd, sizeof(cmd), - &resp.ibv_resp, sizeof(resp))) - goto err_free; -diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 57ebe55..6b64cd0 100644 ---- a/providers/hns/hns_roce_u.h -+++ b/providers/hns/hns_roce_u.h -@@ -246,10 +246,21 @@ struct hns_roce_idx_que { - unsigned int tail; - }; - -+struct hns_roce_rinl_wqe { -+ struct ibv_sge *sg_list; -+ unsigned int sge_cnt; -+}; -+ -+struct hns_roce_rinl_buf { -+ struct hns_roce_rinl_wqe *wqe_list; -+ unsigned int wqe_cnt; -+}; -+ - struct hns_roce_srq { - struct verbs_srq verbs_srq; - struct hns_roce_idx_que idx_que; - struct hns_roce_buf wqe_buf; -+ struct hns_roce_rinl_buf srq_rinl_buf; - pthread_spinlock_t lock; - unsigned long *wrid; - unsigned int srqn; -@@ -290,16 +301,6 @@ struct hns_roce_sge_ex { - unsigned int sge_shift; - }; - --struct hns_roce_rinl_wqe { -- struct ibv_sge *sg_list; -- unsigned int sge_cnt; --}; -- --struct hns_roce_rinl_buf { -- struct hns_roce_rinl_wqe *wqe_list; -- unsigned int wqe_cnt; --}; -- - struct hns_roce_qp { - struct verbs_qp verbs_qp; - struct hns_roce_buf buf; -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 25d8861..7063b26 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -444,6 +444,28 @@ static void handle_recv_inl_data(struct hns_roce_v2_cqe *cqe, - - } - -+static void handle_recv_cqe_inl_from_rq(struct hns_roce_v2_cqe *cqe, -+ struct hns_roce_qp *cur_qp) -+{ -+ uint32_t wr_num; -+ -+ wr_num = hr_reg_read(cqe, CQE_WQE_IDX) & (cur_qp->rq.wqe_cnt - 1); -+ -+ handle_recv_inl_data(cqe, &(cur_qp->rq_rinl_buf), wr_num, -+ (uint8_t *)cqe->payload); -+} -+ -+static void handle_recv_cqe_inl_from_srq(struct hns_roce_v2_cqe *cqe, -+ struct hns_roce_srq *srq) -+{ -+ uint32_t wr_num; -+ -+ wr_num = hr_reg_read(cqe, CQE_WQE_IDX) & (srq->wqe_cnt - 1); -+ -+ handle_recv_inl_data(cqe, &(srq->srq_rinl_buf), wr_num, -+ (uint8_t *)cqe->payload); -+} -+ - static void handle_recv_rq_inl(struct hns_roce_v2_cqe *cqe, - struct hns_roce_qp *cur_qp) - { -@@ -473,6 +495,9 @@ static void parse_cqe_for_srq(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, - wqe_idx = hr_reg_read(cqe, CQE_WQE_IDX); - wc->wr_id = srq->wrid[wqe_idx & (srq->wqe_cnt - 1)]; - hns_roce_free_srq_wqe(srq, wqe_idx); -+ -+ if (hr_reg_read(cqe, CQE_CQE_INLINE)) -+ handle_recv_cqe_inl_from_srq(cqe, srq); - } - - static int parse_cqe_for_resp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, -@@ -487,7 +512,9 @@ static int parse_cqe_for_resp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, - if (hr_qp->verbs_qp.qp.qp_type == IBV_QPT_UD) - parse_for_ud_qp(cqe, wc); - -- if (hr_reg_read(cqe, CQE_RQ_INLINE)) -+ if (hr_reg_read(cqe, CQE_CQE_INLINE)) -+ handle_recv_cqe_inl_from_rq(cqe, hr_qp); -+ else if (hr_reg_read(cqe, CQE_RQ_INLINE)) - handle_recv_rq_inl(cqe, hr_qp); - - return 0; -@@ -559,6 +586,9 @@ static void cqe_proc_srq(struct hns_roce_srq *srq, uint32_t wqe_idx, - { - cq->verbs_cq.cq_ex.wr_id = srq->wrid[wqe_idx & (srq->wqe_cnt - 1)]; - hns_roce_free_srq_wqe(srq, wqe_idx); -+ -+ if (hr_reg_read(cq->cqe, CQE_CQE_INLINE)) -+ handle_recv_cqe_inl_from_srq(cq->cqe, srq); - } - - static void cqe_proc_rq(struct hns_roce_qp *hr_qp, struct hns_roce_cq *cq) -@@ -568,7 +598,9 @@ static void cqe_proc_rq(struct hns_roce_qp *hr_qp, struct hns_roce_cq *cq) - cq->verbs_cq.cq_ex.wr_id = wq->wrid[wq->tail & (wq->wqe_cnt - 1)]; - ++wq->tail; - -- if (hr_reg_read(cq->cqe, CQE_RQ_INLINE)) -+ if (hr_reg_read(cq->cqe, CQE_CQE_INLINE)) -+ handle_recv_cqe_inl_from_rq(cq->cqe, hr_qp); -+ else if (hr_reg_read(cq->cqe, CQE_RQ_INLINE)) - handle_recv_rq_inl(cq->cqe, hr_qp); - } - -@@ -1725,6 +1757,9 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, - - wqe = get_srq_wqe(srq, wqe_idx); - fill_recv_sge_to_wqe(wr, wqe, max_sge, srq->rsv_sge); -+ -+ fill_recv_inl_buf(&srq->srq_rinl_buf, wqe_idx, wr); -+ - fill_wqe_idx(srq, wqe_idx); - - srq->wrid[wqe_idx] = wr->wr_id; -diff --git a/providers/hns/hns_roce_u_hw_v2.h b/providers/hns/hns_roce_u_hw_v2.h -index 098dbdf..d71c695 100644 ---- a/providers/hns/hns_roce_u_hw_v2.h -+++ b/providers/hns/hns_roce_u_hw_v2.h -@@ -157,7 +157,7 @@ struct hns_roce_v2_cqe { - __le32 smac; - __le32 byte_28; - __le32 byte_32; -- __le32 rsv[8]; -+ __le32 payload[8]; - }; - - #define CQE_FIELD_LOC(h, l) FIELD_LOC(struct hns_roce_v2_cqe, h, l) -@@ -170,7 +170,7 @@ struct hns_roce_v2_cqe { - #define CQE_WQE_IDX CQE_FIELD_LOC(31, 16) - #define CQE_RKEY_IMMTDATA CQE_FIELD_LOC(63, 32) - #define CQE_XRC_SRQN CQE_FIELD_LOC(87, 64) --#define CQE_RSV0 CQE_FIELD_LOC(95, 88) -+#define CQE_CQE_INLINE CQE_FIELD_LOC(89, 88) - #define CQE_LCL_QPN CQE_FIELD_LOC(119, 96) - #define CQE_SUB_STATUS CQE_FIELD_LOC(127, 120) - #define CQE_BYTE_CNT CQE_FIELD_LOC(159, 128) -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 1d661dd..cff9d1d 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -522,6 +522,8 @@ static int verify_srq_create_attr(struct hns_roce_context *context, - static void set_srq_param(struct ibv_context *context, struct hns_roce_srq *srq, - struct ibv_srq_init_attr_ex *attr) - { -+ struct hns_roce_context *ctx = to_hr_ctx(context); -+ - if (to_hr_dev(context->device)->hw_version == HNS_ROCE_HW_VER2) - srq->rsv_sge = 1; - -@@ -531,6 +533,10 @@ static void set_srq_param(struct ibv_context *context, struct hns_roce_srq *srq, - srq->max_gs)); - attr->attr.max_sge = srq->max_gs; - attr->attr.srq_limit = 0; -+ -+ srq->srq_rinl_buf.wqe_cnt = 0; -+ if (ctx->config & HNS_ROCE_RSP_CQE_INLINE_FLAGS) -+ srq->srq_rinl_buf.wqe_cnt = srq->wqe_cnt; - } - - static int alloc_srq_idx_que(struct hns_roce_srq *srq) -@@ -570,6 +576,11 @@ static int alloc_srq_wqe_buf(struct hns_roce_srq *srq) - return hns_roce_alloc_buf(&srq->wqe_buf, buf_size, HNS_HW_PAGE_SIZE); - } - -+static int alloc_recv_rinl_buf(uint32_t max_sge, -+ struct hns_roce_rinl_buf *rinl_buf); -+ -+static void free_recv_rinl_buf(struct hns_roce_rinl_buf *rinl_buf); -+ - static int alloc_srq_buf(struct hns_roce_srq *srq) - { - int ret; -@@ -582,14 +593,22 @@ static int alloc_srq_buf(struct hns_roce_srq *srq) - if (ret) - goto err_idx_que; - -+ if (srq->srq_rinl_buf.wqe_cnt) { -+ ret = alloc_recv_rinl_buf(srq->max_gs, &srq->srq_rinl_buf); -+ if (ret) -+ goto err_wqe_buf; -+ } -+ - srq->wrid = calloc(srq->wqe_cnt, sizeof(*srq->wrid)); - if (!srq->wrid) { - ret = -ENOMEM; -- goto err_wqe_buf; -+ goto err_inl_buf; - } - - return 0; - -+err_inl_buf: -+ free_recv_rinl_buf(&srq->srq_rinl_buf); - err_wqe_buf: - hns_roce_free_buf(&srq->wqe_buf); - err_idx_que: -@@ -603,6 +622,7 @@ static void free_srq_buf(struct hns_roce_srq *srq) - { - free(srq->wrid); - hns_roce_free_buf(&srq->wqe_buf); -+ free_recv_rinl_buf(&srq->srq_rinl_buf); - hns_roce_free_buf(&srq->idx_que.buf); - free(srq->idx_que.bitmap); - } -@@ -1082,7 +1102,8 @@ static void hns_roce_set_qp_params(struct ibv_qp_init_attr_ex *attr, - qp->rq.wqe_cnt = cnt; - qp->rq.shift = hr_ilog32(cnt); - qp->rq_rinl_buf.wqe_cnt = 0; -- if (ctx->config & HNS_ROCE_RSP_RQ_INLINE_FLAGS) -+ if (ctx->config & (HNS_ROCE_RSP_RQ_INLINE_FLAGS | -+ HNS_ROCE_RSP_CQE_INLINE_FLAGS)) - qp->rq_rinl_buf.wqe_cnt = cnt; - - attr->cap.max_recv_wr = qp->rq.wqe_cnt; --- -2.30.0 - diff --git a/0058-libhns-Support-flexible-WQE-buffer-page-size.patch b/0011-libhns-Support-flexible-WQE-buffer-page-size.patch similarity index 63% rename from 0058-libhns-Support-flexible-WQE-buffer-page-size.patch rename to 0011-libhns-Support-flexible-WQE-buffer-page-size.patch index f4f4dfac2cb6ece43d8e7b2dd0607a94a567fe50..ba2e41a3fa09e089cfc7650022846c5e412df6d0 100644 --- a/0058-libhns-Support-flexible-WQE-buffer-page-size.patch +++ b/0011-libhns-Support-flexible-WQE-buffer-page-size.patch @@ -1,7 +1,7 @@ -From d628c51d25b972a7d26e53ea400b3a0679d51f91 Mon Sep 17 00:00:00 2001 +From a6b4b8a0a6c5dc84639c3e2f38e29896da872554 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 23 Oct 2023 21:13:03 +0800 -Subject: [PATCH] libhns: Support flexible WQE buffer page size +Subject: [PATCH 11/34] libhns: Support flexible WQE buffer page size driver inclusion category: feature @@ -31,60 +31,46 @@ fixed 4K pagesize to allocate WQE buffer. Signed-off-by: Chengchang Tang --- - kernel-headers/rdma/hns-abi.h | 5 ++- - providers/hns/hns_roce_u.c | 2 +- + kernel-headers/rdma/hns-abi.h | 6 +++- providers/hns/hns_roce_u.h | 1 + - providers/hns/hns_roce_u_verbs.c | 65 ++++++++++++++++++++++++++------ - 4 files changed, 59 insertions(+), 14 deletions(-) + providers/hns/hns_roce_u_verbs.c | 51 ++++++++++++++++++++++++++++---- + 3 files changed, 51 insertions(+), 7 deletions(-) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index cab941f..157dc9d 100644 +index 3ff9252..c7d5111 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h -@@ -81,7 +81,8 @@ struct hns_roce_ib_create_qp { +@@ -91,7 +91,9 @@ struct hns_roce_ib_create_qp { __u8 log_sq_bb_count; __u8 log_sq_stride; __u8 sq_no_prefetch; - __u8 reserved[5]; -+ __u8 reserved[4]; + __u8 pageshift; ++ ++ __u8 reserved[4]; __aligned_u64 sdb_addr; __aligned_u64 comp_mask; __aligned_u64 create_flags; -@@ -122,6 +123,7 @@ enum { +@@ -121,12 +123,14 @@ enum { + HNS_ROCE_EXSGE_FLAGS = 1 << 0, HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1, HNS_ROCE_CQE_INLINE_FLAGS = 1 << 2, - HNS_ROCE_UCTX_CONFIG_DCA = 1 << 3, + HNS_ROCE_UCTX_DYN_QP_PGSZ = 1 << 4, }; enum { -@@ -129,6 +131,7 @@ enum { + HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0, HNS_ROCE_RSP_RQ_INLINE_FLAGS = 1 << 1, HNS_ROCE_RSP_CQE_INLINE_FLAGS = 1 << 2, - HNS_ROCE_UCTX_RSP_DCA_FLAGS = HNS_ROCE_UCTX_CONFIG_DCA, + HNS_ROCE_UCTX_RSP_DYN_QP_PGSZ = HNS_ROCE_UCTX_DYN_QP_PGSZ, }; struct hns_roce_ib_alloc_ucontext_resp { -diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 0660081..02ad880 100644 ---- a/providers/hns/hns_roce_u.c -+++ b/providers/hns/hns_roce_u.c -@@ -267,7 +267,7 @@ static void ucontext_set_cmd(struct hns_roce_alloc_ucontext *cmd, - struct hnsdv_context_attr *attr) - { - cmd->config |= HNS_ROCE_EXSGE_FLAGS | HNS_ROCE_RQ_INLINE_FLAGS | -- HNS_ROCE_CQE_INLINE_FLAGS; -+ HNS_ROCE_CQE_INLINE_FLAGS | HNS_ROCE_UCTX_DYN_QP_PGSZ; - - if (!attr || !(attr->flags & HNSDV_CONTEXT_FLAGS_DCA)) - return; diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 5501d8e..ae9ae51 100644 +index d4d560f..25acabf 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -409,6 +409,7 @@ struct hns_roce_qp { +@@ -359,6 +359,7 @@ struct hns_roce_qp { uint8_t sl; uint8_t tc_mode; uint8_t priority; @@ -93,23 +79,23 @@ index 5501d8e..ae9ae51 100644 enum ibv_mtu path_mtu; diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 7b58dd0..f76341c 100644 +index 80e2ec5..ebcfffd 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c -@@ -1327,31 +1327,69 @@ static void free_recv_rinl_buf(struct hns_roce_rinl_buf *rinl_buf) +@@ -1250,31 +1250,69 @@ static void free_recv_rinl_buf(struct hns_roce_rinl_buf *rinl_buf) } } +static void get_best_multi_region_pg_shift(struct hns_roce_device *hr_dev, + struct hns_roce_context *ctx, -+ struct hns_roce_qp *qp, bool dca_en) ++ struct hns_roce_qp *qp) +{ + uint32_t ext_sge_size; + uint32_t sq_size; + uint32_t rq_size; + uint8_t pg_shift; + -+ if (!(ctx->config & HNS_ROCE_UCTX_RSP_DYN_QP_PGSZ) || dca_en) { ++ if (!(ctx->config & HNS_ROCE_UCTX_RSP_DYN_QP_PGSZ)) { + qp->pageshift = HNS_HW_PAGE_SHIFT; + return; + } @@ -135,9 +121,8 @@ index 7b58dd0..f76341c 100644 +} + static int calc_qp_buff_size(struct hns_roce_device *hr_dev, -- struct hns_roce_qp *qp) + struct hns_roce_context *ctx, -+ struct hns_roce_qp *qp, bool dca_en) + struct hns_roce_qp *qp) { struct hns_roce_wq *sq = &qp->sq; struct hns_roce_wq *rq = &qp->rq; @@ -145,7 +130,7 @@ index 7b58dd0..f76341c 100644 unsigned int size; qp->buf_size = 0; -+ get_best_multi_region_pg_shift(hr_dev, ctx, qp, dca_en); ++ get_best_multi_region_pg_shift(hr_dev, ctx, qp); + page_size = 1 << qp->pageshift; /* SQ WQE */ @@ -171,54 +156,25 @@ index 7b58dd0..f76341c 100644 qp->buf_size += size; if (qp->buf_size < 1) -@@ -1375,7 +1413,7 @@ static inline bool check_qp_support_dca(struct hns_roce_dca_ctx *dca_ctx, - if (hns_attr && - (hns_attr->comp_mask & HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS) && - (hns_attr->create_flags & HNSDV_QP_CREATE_ENABLE_DCA_MODE)) -- return true; -+ return dca_ctx->max_size > 0; - - return false; - } -@@ -1396,9 +1434,12 @@ static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, - struct hns_roce_qp *qp, struct hns_roce_context *ctx) +@@ -1299,7 +1337,7 @@ static int qp_alloc_wqe(struct ibv_qp_cap *cap, struct hns_roce_qp *qp, { struct hns_roce_device *hr_dev = to_hr_dev(ctx->ibv_ctx.context.device); -+ bool dca_en = check_qp_support_dca(&ctx->dca_ctx, attr, hns_attr); -+ int ret; - if (calc_qp_buff_size(hr_dev, qp)) -- return -EINVAL; -+ ret = calc_qp_buff_size(hr_dev, ctx, qp, dca_en); -+ if (ret) -+ return ret; ++ if (calc_qp_buff_size(hr_dev, ctx, qp)) + return -EINVAL; qp->sq.wrid = malloc(qp->sq.wqe_cnt * sizeof(uint64_t)); - if (!qp->sq.wrid) -@@ -1416,19 +1457,18 @@ static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, +@@ -1317,7 +1355,7 @@ static int qp_alloc_wqe(struct ibv_qp_cap *cap, struct hns_roce_qp *qp, goto err_alloc; } -- if (check_qp_support_dca(&ctx->dca_ctx, attr, hns_attr) && -- ctx->dca_ctx.max_size > 0) { -+ if (dca_en) { - /* when DCA is enabled, use a buffer list to store page addr */ - qp->buf.buf = NULL; - qp->dca_wqe.max_cnt = hr_hw_page_count(qp->buf_size); -- qp->dca_wqe.shift = HNS_HW_PAGE_SHIFT; -+ qp->dca_wqe.shift = qp->pageshift; - qp->dca_wqe.bufs = calloc(qp->dca_wqe.max_cnt, sizeof(void *)); - if (!qp->dca_wqe.bufs) - goto err_alloc; - verbs_debug(&ctx->ibv_ctx, "alloc DCA buf.\n"); - } else { - if (hns_roce_alloc_buf(&qp->buf, qp->buf_size, -- HNS_HW_PAGE_SIZE)) -+ 1 << qp->pageshift)) - goto err_alloc; - } +- if (hns_roce_alloc_buf(&qp->buf, qp->buf_size, HNS_HW_PAGE_SIZE)) ++ if (hns_roce_alloc_buf(&qp->buf, qp->buf_size, 1 << qp->pageshift)) + goto err_alloc; -@@ -1642,6 +1682,7 @@ static int qp_exec_create_cmd(struct ibv_qp_init_attr_ex *attr, + return 0; +@@ -1532,6 +1570,7 @@ static int qp_exec_create_cmd(struct ibv_qp_init_attr_ex *attr, cmd_ex.buf_addr = (uintptr_t)qp->buf.buf; cmd_ex.log_sq_stride = qp->sq.wqe_shift; cmd_ex.log_sq_bb_count = hr_ilog32(qp->sq.wqe_cnt); @@ -227,5 +183,5 @@ index 7b58dd0..f76341c 100644 if (cmd_flag->congest_type_flags) { cmd_ex.comp_mask |= HNS_ROCE_CREATE_QP_MASK_CONGEST_TYPE; -- -2.25.1 +2.30.0 diff --git a/0038-Update-kernel-headers.patch b/0012-Update-kernel-headers.patch similarity index 62% rename from 0038-Update-kernel-headers.patch rename to 0012-Update-kernel-headers.patch index ba59cbdb863a319e4ff28e75ce5fe67f35e32cd6..80cdef390a851870a857cc0c7c6fd1d8fe789a7a 100644 --- a/0038-Update-kernel-headers.patch +++ b/0012-Update-kernel-headers.patch @@ -1,7 +1,7 @@ -From 8a5429161e6932d4031ec705b695973d67729c71 Mon Sep 17 00:00:00 2001 +From 0b62e50cf15bb5b60678ebd62c2cb00cc65ff9ca Mon Sep 17 00:00:00 2001 From: Yixing Liu Date: Wed, 14 Dec 2022 16:37:26 +0800 -Subject: [PATCH rdma-core 1/2] Update kernel headers +Subject: [PATCH 12/34] Update kernel headers To commit ?? ("RDMA/hns: Kernel notify usr space to stop ring db"). @@ -12,17 +12,17 @@ Reviewed-by: Yangyang Li 1 file changed, 1 insertion(+) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 6950841..5988a62 100644 +index c7d5111..6f3729a 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h -@@ -127,6 +127,7 @@ struct hns_roce_ib_alloc_ucontext_resp { - __u32 dca_qps; - __u32 dca_mmap_size; - __aligned_u64 dca_mmap_key; +@@ -143,6 +143,7 @@ struct hns_roce_ib_alloc_ucontext_resp { + __u8 rsv1; + __u8 congest_type; + __u8 rsv2[6]; + __aligned_u64 reset_mmap_key; }; - enum hns_roce_uctx_comp_mask { + struct hns_roce_ib_alloc_ucontext { -- 2.30.0 diff --git a/0013-cma-Release-allocated-port-array.patch b/0013-cma-Release-allocated-port-array.patch deleted file mode 100644 index dcbc3d5ea051864bb13042e1bd8d209e0fe77c72..0000000000000000000000000000000000000000 --- a/0013-cma-Release-allocated-port-array.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 6be317e9e2b894d460c4f3422f349895d475ef8d Mon Sep 17 00:00:00 2001 -From: Kirill Martynov -Date: Mon, 20 Jun 2022 16:29:09 +0300 -Subject: cma: Release allocated port array - -Fix mem leak for allocated port array - -Fixes: 1b9125689fec ("cma: Workaround for rdma_ucm kernel bug") -Signed-off-by: Kirill Martynov ---- - librdmacm/cma.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/librdmacm/cma.c b/librdmacm/cma.c -index 2bde34a..7b924bd 100644 ---- a/librdmacm/cma.c -+++ b/librdmacm/cma.c -@@ -304,6 +304,7 @@ static void remove_cma_dev(struct cma_device *cma_dev) - ibv_dealloc_pd(cma_dev->pd); - if (cma_dev->verbs) - ibv_close_device(cma_dev->verbs); -+ free(cma_dev->port); - list_del_from(&cma_dev_list, &cma_dev->entry); - free(cma_dev); - } --- -2.34.1 - diff --git a/0039-libhns-Add-reset-stop-flow-mechanism.patch b/0013-libhns-Add-reset-stop-flow-mechanism.patch similarity index 59% rename from 0039-libhns-Add-reset-stop-flow-mechanism.patch rename to 0013-libhns-Add-reset-stop-flow-mechanism.patch index 4178c393ee57f5a341986600372cf17fa648680b..636771bcc3f9604a6adaf93f0a48672b4f15e5d7 100644 --- a/0039-libhns-Add-reset-stop-flow-mechanism.patch +++ b/0013-libhns-Add-reset-stop-flow-mechanism.patch @@ -1,7 +1,7 @@ -From c3ee7375c80c7a8f0a943679566c87f17f87aa17 Mon Sep 17 00:00:00 2001 +From bae03e55c991e5f158330d6f2275f9701dc6460c Mon Sep 17 00:00:00 2001 From: Guofeng Yue Date: Mon, 9 May 2022 16:03:38 +0800 -Subject: [PATCH rdma-core 2/2] libhns: Add reset stop flow mechanism +Subject: [PATCH 13/34] libhns: Add reset stop flow mechanism driver inclusion category: bugfix @@ -17,19 +17,19 @@ Signed-off-by: Yixing Liu Signed-off-by: Guofeng Yue Reviewed-by: Yangyang Li --- - providers/hns/hns_roce_u.c | 30 ++++++++++++++++++++++++++++-- - providers/hns/hns_roce_u.h | 5 +++++ - providers/hns/hns_roce_u_db.h | 8 +++++++- - providers/hns/hns_roce_u_hw_v2.c | 19 ++++++++++++++----- - 4 files changed, 54 insertions(+), 8 deletions(-) + providers/hns/hns_roce_u.c | 52 +++++++++++++++++++++++++++----- + providers/hns/hns_roce_u.h | 5 +++ + providers/hns/hns_roce_u_db.h | 8 ++++- + providers/hns/hns_roce_u_hw_v2.c | 19 +++++++++--- + 4 files changed, 71 insertions(+), 13 deletions(-) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 0cf6d4b..3d29838 100644 +index 960b3d1..66b64a9 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c -@@ -221,6 +221,24 @@ static void uninit_dca_context(struct hns_roce_context *ctx) - pthread_spin_destroy(&dca_ctx->lock); - } +@@ -95,6 +95,39 @@ static const struct verbs_context_ops hns_common_ops = { + .alloc_parent_domain = hns_roce_u_alloc_pad, + }; +static int init_reset_context(struct hns_roce_context *ctx, int cmd_fd, + struct hns_roce_alloc_ucontext_resp *resp, @@ -49,49 +49,79 @@ index 0cf6d4b..3d29838 100644 + return 0; +} + - static int hns_roce_mmap(struct hns_roce_device *hr_dev, - struct hns_roce_context *context, int cmd_fd) ++static int hns_roce_mmap(struct hns_roce_device *hr_dev, ++ struct hns_roce_context *context, int cmd_fd) ++{ ++ int page_size = hr_dev->page_size; ++ ++ context->uar = mmap(NULL, page_size, PROT_READ | PROT_WRITE, ++ MAP_SHARED, cmd_fd, 0); ++ if (context->uar == MAP_FAILED) { ++ verbs_err(&context->ibv_ctx, "error: failed to mmap() uar page.\n"); ++ return -ENOMEM; ++ } ++ ++ return 0; ++} ++ + static struct { + uint32_t device_id; + enum hns_device_link_type link_type; +@@ -126,7 +159,6 @@ static int get_link_type(uint32_t device_id, + return ENOENT; + } + +- + static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) { -@@ -325,8 +343,11 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - &resp, ctx_attr, hr_dev->page_size)) + uint32_t count_shift = hr_ilog32(entry_count); +@@ -156,6 +188,12 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + &resp.ibv_resp, sizeof(resp))) goto err_free; + if (init_reset_context(context, cmd_fd, &resp, hr_dev->page_size)) -+ goto reset_free; ++ goto err_free; + - if (hns_roce_mmap(hr_dev, context, cmd_fd)) -- goto dca_free; ++ if (hns_roce_mmap(hr_dev, context, cmd_fd)) + goto uar_free; ++ + hr_dev->congest_type = resp.congest_type; - pthread_spin_init(&context->uar_lock, PTHREAD_PROCESS_PRIVATE); + if (!resp.cqe_size) +@@ -194,12 +232,6 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) + goto err_free; -@@ -335,7 +356,10 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, +- context->max_qp_wr = dev_attrs.max_qp_wr; +- context->max_sge = dev_attrs.max_sge; +- context->max_cqe = dev_attrs.max_cqe; +- context->max_srq_wr = dev_attrs.max_srq_wr; +- context->max_srq_sge = dev_attrs.max_srq_sge; +- + context->uar = mmap(NULL, hr_dev->page_size, PROT_READ | PROT_WRITE, + MAP_SHARED, cmd_fd, 0); + if (context->uar == MAP_FAILED) +@@ -212,8 +244,14 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, return &context->ibv_ctx; --dca_free: +uar_free: + if (context->reset_state) + munmap(context->reset_state, hr_dev->page_size); -+reset_free: - uninit_dca_context(context); ++ err_free: verbs_uninit_context(&context->ibv_ctx); -@@ -349,6 +373,8 @@ static void hns_roce_free_context(struct ibv_context *ibctx) - struct hns_roce_context *context = to_hr_ctx(ibctx); - - munmap(context->uar, hr_dev->page_size); + if (context->reset_state) + munmap(context->reset_state, hr_dev->page_size); - uninit_dca_context(context); - verbs_uninit_context(&context->ibv_ctx); free(context); + return NULL; + } diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 71c35c5..76c7adb 100644 +index 25acabf..00dce26 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -226,9 +226,14 @@ struct hns_roce_dca_ctx { - atomic_bitmap_t *sync_status; +@@ -212,9 +212,14 @@ struct hns_roce_cmd_flag { + uint32_t congest_type_flags; }; +struct hns_roce_v2_reset_state { @@ -126,10 +156,10 @@ index 8c47a53..de288de 100644 } diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 7661863..d0067d3 100644 +index cb18110..a96ac82 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -298,7 +298,8 @@ static void hns_roce_update_rq_db(struct hns_roce_context *ctx, +@@ -284,7 +284,8 @@ static void hns_roce_update_rq_db(struct hns_roce_context *ctx, hr_reg_write(&rq_db, DB_CMD, HNS_ROCE_V2_RQ_DB); hr_reg_write(&rq_db, DB_PI, rq_head); @@ -139,7 +169,7 @@ index 7661863..d0067d3 100644 } static void hns_roce_update_sq_db(struct hns_roce_context *ctx, -@@ -312,7 +313,7 @@ static void hns_roce_update_sq_db(struct hns_roce_context *ctx, +@@ -298,7 +299,7 @@ static void hns_roce_update_sq_db(struct hns_roce_context *ctx, hr_reg_write(&sq_db, DB_PI, qp->sq.head); hr_reg_write(&sq_db, DB_SL, qp->sl); @@ -147,8 +177,8 @@ index 7661863..d0067d3 100644 + hns_roce_write64(ctx, qp->sq.db_reg, (__le32 *)&sq_db); } - static void hns_roce_write512(uint64_t *dest, uint64_t *val) -@@ -323,6 +324,12 @@ static void hns_roce_write512(uint64_t *dest, uint64_t *val) + static void hns_roce_qp_write512(struct hns_roce_qp *qp, uint64_t *val) +@@ -321,6 +322,12 @@ static void hns_roce_qp_write512(struct hns_roce_qp *qp, uint64_t *val) static void hns_roce_write_dwqe(struct hns_roce_qp *qp, void *wqe) { struct hns_roce_rc_sq_wqe *rc_sq_wqe = wqe; @@ -161,7 +191,7 @@ index 7661863..d0067d3 100644 /* All kinds of DirectWQE have the same header field layout */ hr_reg_enable(rc_sq_wqe, RCWQE_FLAG); -@@ -342,7 +349,8 @@ static void update_cq_db(struct hns_roce_context *ctx, struct hns_roce_cq *cq) +@@ -340,7 +347,8 @@ static void update_cq_db(struct hns_roce_context *ctx, struct hns_roce_cq *cq) hr_reg_write(&cq_db, DB_CQ_CI, cq->cons_index); hr_reg_write(&cq_db, DB_CQ_CMD_SN, 1); @@ -171,7 +201,7 @@ index 7661863..d0067d3 100644 } static struct hns_roce_qp *hns_roce_v2_find_qp(struct hns_roce_context *ctx, -@@ -857,7 +865,8 @@ static int hns_roce_u_v2_arm_cq(struct ibv_cq *ibvcq, int solicited) +@@ -774,7 +782,8 @@ static int hns_roce_u_v2_arm_cq(struct ibv_cq *ibvcq, int solicited) hr_reg_write(&cq_db, DB_CQ_CMD_SN, cq->arm_sn); hr_reg_write(&cq_db, DB_CQ_NOTIFY, solicited_flag); @@ -181,14 +211,14 @@ index 7661863..d0067d3 100644 return 0; } -@@ -1934,7 +1943,7 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, - - update_srq_db(&srq_db, srq); +@@ -1753,7 +1762,7 @@ static void update_srq_db(struct hns_roce_context *ctx, struct hns_roce_db *db, + hr_reg_write(db, DB_CMD, HNS_ROCE_V2_SRQ_DB); + hr_reg_write(db, DB_PI, srq->idx_que.head); -- hns_roce_write64(ctx->uar + ROCEE_VF_DB_CFG0_OFFSET, -+ hns_roce_write64(ctx, ctx->uar + ROCEE_VF_DB_CFG0_OFFSET, - (__le32 *)&srq_db); - } +- hns_roce_write64(ctx->uar + ROCEE_VF_DB_CFG0_OFFSET, ++ hns_roce_write64(ctx, ctx->uar + ROCEE_VF_DB_CFG0_OFFSET, + (__le32 *)db); + } -- 2.30.0 diff --git a/0054-libhns-return-error-when-post-send-in-reset-state.patch b/0014-libhns-return-error-when-post-send-in-reset-state.patch similarity index 50% rename from 0054-libhns-return-error-when-post-send-in-reset-state.patch rename to 0014-libhns-return-error-when-post-send-in-reset-state.patch index 7ed634649a88c623cba35cad7eda61103460e003..1240740cba2601c52cc392cb4813f9a61e93cd1b 100644 --- a/0054-libhns-return-error-when-post-send-in-reset-state.patch +++ b/0014-libhns-return-error-when-post-send-in-reset-state.patch @@ -1,7 +1,7 @@ -From 924086bac3b9c4c3c953a8a733b84bc3611c59e9 Mon Sep 17 00:00:00 2001 +From 84a7a313fc7b4f0a3ef4ecbdc28cdc25a5d7699d Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Tue, 26 Sep 2023 19:19:07 +0800 -Subject: [PATCH 2/5] libhns: return error when post send in reset state +Subject: [PATCH 14/34] libhns: return error when post send in reset state driver inclusion category: feature @@ -20,49 +20,89 @@ user mode. Signed-off-by: Chengchang Tang --- - providers/hns/hns_roce_u_hw_v2.c | 53 +++++++++++++++++++++----------- - 1 file changed, 35 insertions(+), 18 deletions(-) + providers/hns/hns_roce_u_hw_v2.c | 66 ++++++++++++++++++++++++-------- + 1 file changed, 51 insertions(+), 15 deletions(-) diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 4e92397..29b6268 100644 +index a96ac82..2e6c889 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1090,8 +1090,15 @@ static int check_qp_send(struct hns_roce_qp *qp, struct hns_roce_context *ctx) +@@ -788,14 +788,24 @@ static int hns_roce_u_v2_arm_cq(struct ibv_cq *ibvcq, int solicited) + return 0; + } - if (unlikely(ibvqp->state == IBV_QPS_RESET || - ibvqp->state == IBV_QPS_INIT || -- ibvqp->state == IBV_QPS_RTR)) -+ ibvqp->state == IBV_QPS_RTR)) { +-static inline int check_qp_send(struct ibv_qp *qp) ++static int check_qp_send(struct hns_roce_qp *qp, struct hns_roce_context *ctx) + { +- if (unlikely(qp->state == IBV_QPS_RESET || +- qp->state == IBV_QPS_INIT || +- qp->state == IBV_QPS_RTR)) ++ struct ibv_qp *ibvqp = &qp->verbs_qp.qp; ++ int ret = 0; ++ ++ if (unlikely(ibvqp->state == IBV_QPS_RESET || ++ ibvqp->state == IBV_QPS_INIT || ++ ibvqp->state == IBV_QPS_RTR)){ + verbs_err(verbs_get_ctx(qp->verbs_qp.qp.context), + "unsupported qp state, state = %d.\n", ibvqp->state); - return -EINVAL; + return EINVAL; + } else if (unlikely(hns_roce_reseted(ctx))) { + verbs_err_datapath(&ctx->ibv_ctx, + "failed to send, device has been reseted!\n"); -+ return -EIO; ++ return EIO; + } - if (check_dca_attach_enable(qp)) { - ret = dca_attach_qp_buf(ctx, qp); -@@ -1691,8 +1698,15 @@ static int check_qp_recv(struct hns_roce_qp *qp, struct hns_roce_context *ctx) - struct ibv_qp *ibvqp = &qp->verbs_qp.qp; - int ret = 0; +- return 0; ++ return ret; + } + + static void set_rc_sge(struct hns_roce_v2_wqe_data_seg *dseg, +@@ -1289,7 +1299,7 @@ int hns_roce_u_v2_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr, + unsigned int wqe_idx, nreq; + int ret; + +- ret = check_qp_send(ibvqp); ++ ret = check_qp_send(qp, ctx); + if (unlikely(ret)) { + *bad_wr = wr; + return ret; +@@ -1367,12 +1377,22 @@ out: + return ret; + } -- if (ibvqp->state == IBV_QPS_RESET) +-static inline int check_qp_recv(struct ibv_qp *qp) ++static int check_qp_recv(struct hns_roce_qp *qp, struct hns_roce_context *ctx) + { +- if (qp->state == IBV_QPS_RESET) ++ struct ibv_qp *ibvqp = &qp->verbs_qp.qp; ++ int ret = 0; ++ + if (ibvqp->state == IBV_QPS_RESET) { + verbs_err(verbs_get_ctx(qp->verbs_qp.qp.context), + "unsupported qp state, state = %d.\n", ibvqp->state); - return -EINVAL; + return EINVAL; + } else if (unlikely(hns_roce_reseted(ctx))) { + verbs_err_datapath(&ctx->ibv_ctx, + "fail to recv, device has been reseted!\n"); -+ return -EIO; ++ return EIO; + } - if (check_dca_attach_enable(qp)) { - ret = dca_attach_qp_buf(ctx, qp); -@@ -2099,6 +2113,16 @@ static void update_srq_db(struct hns_roce_db *db, struct hns_roce_srq *srq) - hr_reg_write(db, DB_PI, srq->idx_que.head); +- return 0; ++ return ret; + } + + static void fill_recv_sge_to_wqe(struct ibv_recv_wr *wr, void *wqe, +@@ -1439,7 +1459,7 @@ static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, + struct ibv_qp_attr attr = {}; + int ret; + +- ret = check_qp_recv(ibvqp); ++ ret = check_qp_recv(qp, ctx); + if (unlikely(ret)) { + *bad_wr = wr; + return ret; +@@ -1766,6 +1786,16 @@ static void update_srq_db(struct hns_roce_context *ctx, struct hns_roce_db *db, + (__le32 *)db); } +static int check_srq_recv(struct hns_roce_context *ctx) @@ -70,7 +110,7 @@ index 4e92397..29b6268 100644 + if (hns_roce_reseted(ctx)) { + verbs_err_datapath(&ctx->ibv_ctx, + "srq failed to recv, device has been reseted!\n"); -+ return -EIO; ++ return EIO; + } + return 0; +} @@ -78,7 +118,7 @@ index 4e92397..29b6268 100644 static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, struct ibv_recv_wr *wr, struct ibv_recv_wr **bad_wr) -@@ -2110,6 +2134,12 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, +@@ -1777,6 +1807,12 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, int ret = 0; void *wqe; @@ -91,12 +131,14 @@ index 4e92397..29b6268 100644 hns_roce_spin_lock(&srq->hr_lock); max_sge = srq->max_gs - srq->rsv_sge; -@@ -2934,27 +2964,14 @@ static void wr_start(struct ibv_qp_ex *ibv_qp) +@@ -2563,13 +2599,13 @@ static void wr_set_inline_data_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_buf, + + static void wr_start(struct ibv_qp_ex *ibv_qp) { - struct hns_roce_context *ctx = to_hr_ctx(ibv_qp->qp_base.context); ++ struct hns_roce_context *ctx = to_hr_ctx(ibv_qp->qp_base.context); struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); - enum ibv_qp_state state = ibv_qp->qp_base.state; - int ret; ++ int ret; - if (state == IBV_QPS_RESET || - state == IBV_QPS_INIT || @@ -108,20 +150,6 @@ index 4e92397..29b6268 100644 return; } -- if (check_qp_dca_enable(qp)) { -- ret = dca_attach_qp_buf(ctx, qp); -- if (ret) { -- verbs_err_datapath(&ctx->ibv_ctx, -- "failed to attach QP-%u send, ret = %d.\n", -- qp->verbs_qp.qp.qp_num, ret); -- qp->err = ret; -- return; -- } -- } -- - hns_roce_spin_lock(&qp->sq.hr_lock); - qp->sge_info.start_idx = qp->next_sge; - qp->rb_sq_head = qp->sq.head; -- -2.25.1 +2.30.0 diff --git a/0014-rsockets-Fix-allocation-size-There-is-memory-allocat.patch b/0014-rsockets-Fix-allocation-size-There-is-memory-allocat.patch deleted file mode 100644 index 0e0d7610531a77ff014fa335196c9dd9ee48d657..0000000000000000000000000000000000000000 --- a/0014-rsockets-Fix-allocation-size-There-is-memory-allocat.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 3704db8f8496ffd967ef8d8840eef2c04b7f4b06 Mon Sep 17 00:00:00 2001 -From: Mikhail Sokolovskiy -Date: Fri, 1 Jul 2022 17:34:24 +0300 -Subject: rsockets: Fix allocation size There is memory allocation for (nfds + - 1) elements, but actually less space is allocated (1 byte for new element - instead of sizeof(pollfd)). This is caused by operators precedence mistake. - -Signed-off-by: Mikhail Sokolovskiy ---- - librdmacm/rsocket.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/librdmacm/rsocket.c b/librdmacm/rsocket.c -index 8c81096..e26a053 100644 ---- a/librdmacm/rsocket.c -+++ b/librdmacm/rsocket.c -@@ -3173,7 +3173,7 @@ static struct pollfd *rs_fds_alloc(nfds_t nfds) - else if (rs_pollinit()) - return NULL; - -- rfds = malloc(sizeof(*rfds) * nfds + 1); -+ rfds = malloc(sizeof(*rfds) * (nfds + 1)); - rnfds = rfds ? nfds + 1 : 0; - } - --- -2.34.1 - diff --git a/0053-libhns-Support-reporting-wc-as-software-mode.patch b/0015-libhns-Support-reporting-wc-as-software-mode.patch similarity index 84% rename from 0053-libhns-Support-reporting-wc-as-software-mode.patch rename to 0015-libhns-Support-reporting-wc-as-software-mode.patch index d4361ebe05f16d1231388dd93ece0f6ccd220c87..2ef3d0a68be98bb46ed2957961896e4aa7d600e6 100644 --- a/0053-libhns-Support-reporting-wc-as-software-mode.patch +++ b/0015-libhns-Support-reporting-wc-as-software-mode.patch @@ -1,7 +1,7 @@ -From 456072a07831ca19f81b591e3c259932ece8dcae Mon Sep 17 00:00:00 2001 +From a61ee3ea8df0822469188be0bdb3e0040df6af95 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Tue, 26 Sep 2023 19:19:06 +0800 -Subject: [PATCH 1/5] libhns: Support reporting wc as software mode +Subject: [PATCH 15/34] libhns: Support reporting wc as software mode driver inclusion category: feature @@ -18,26 +18,25 @@ poll cq from hardware again. Signed-off-by: Chengchang Tang --- - providers/hns/hns_roce_u.h | 12 ++ - providers/hns/hns_roce_u_hw_v2.c | 216 +++++++++++++++++++++++++++++-- + providers/hns/hns_roce_u.h | 11 ++ + providers/hns/hns_roce_u_hw_v2.c | 217 +++++++++++++++++++++++++++++-- providers/hns/hns_roce_u_hw_v2.h | 2 + providers/hns/hns_roce_u_verbs.c | 91 +++++++++++++ 4 files changed, 309 insertions(+), 12 deletions(-) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index e3012e1..b3f21ba 100644 +index 00dce26..c99fd78 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -277,6 +277,8 @@ struct hns_roce_context { +@@ -249,6 +249,7 @@ struct hns_roce_context { + unsigned int cqe_size; + uint32_t config; unsigned int max_inline_data; - - struct hns_roce_dca_ctx dca_ctx; -+ + bool reseted; }; struct hns_roce_td { -@@ -309,6 +311,11 @@ struct hns_roce_cq { +@@ -281,6 +282,11 @@ struct hns_roce_cq { unsigned long flags; unsigned int cqe_size; struct hns_roce_v2_cqe *cqe; @@ -49,30 +48,30 @@ index e3012e1..b3f21ba 100644 }; struct hns_roce_idx_que { -@@ -344,6 +351,7 @@ struct hns_roce_srq { - unsigned int wqe_shift; - unsigned int *db; +@@ -317,6 +323,7 @@ struct hns_roce_srq { + unsigned int *rdb; + unsigned int cap_flags; unsigned short counter; + struct list_node xrc_srcq_node; }; struct hns_roce_wq { -@@ -413,6 +421,10 @@ struct hns_roce_qp { +@@ -378,6 +385,10 @@ struct hns_roce_qp { + void *cur_wqe; unsigned int rb_sq_head; /* roll back sq head */ struct hns_roce_sge_info sge_info; - ++ + struct list_node rcq_node; + struct list_node scq_node; + struct list_node srcq_node; -+ - /* Just for UD. If not enabled, 'sl' in ibv_wc - * will be filled with 'port_type' in cqe. - */ + }; + + struct hns_roce_av { diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 9238fe5..4e92397 100644 +index 2e6c889..db18c08 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -843,6 +843,180 @@ static int hns_roce_poll_one(struct hns_roce_context *ctx, +@@ -735,6 +735,180 @@ static int hns_roce_poll_one(struct hns_roce_context *ctx, return hns_roce_flush_cqe(*cur_qp, status); } @@ -253,7 +252,7 @@ index 9238fe5..4e92397 100644 static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, struct ibv_wc *wc) { -@@ -854,6 +1028,12 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, +@@ -746,6 +920,12 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, hns_roce_spin_lock(&cq->hr_lock); @@ -265,8 +264,8 @@ index 9238fe5..4e92397 100644 + for (npolled = 0; npolled < ne; ++npolled) { err = hns_roce_poll_one(ctx, &qp, cq, wc + npolled); - if (qp && check_dca_detach_enable(qp)) -@@ -1773,11 +1953,8 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, + if (err != V2_CQ_OK) +@@ -1637,11 +1817,8 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, return ret; } @@ -279,7 +278,7 @@ index 9238fe5..4e92397 100644 if (send_cq && recv_cq) { if (send_cq == recv_cq) { hns_roce_spin_lock(&send_cq->hr_lock); -@@ -1795,11 +1972,8 @@ static void hns_roce_lock_cqs(struct ibv_qp *qp) +@@ -1659,11 +1836,8 @@ static void hns_roce_lock_cqs(struct ibv_qp *qp) } } @@ -292,7 +291,7 @@ index 9238fe5..4e92397 100644 if (send_cq && recv_cq) { if (send_cq == recv_cq) { hns_roce_spin_unlock(&send_cq->hr_lock); -@@ -1832,17 +2006,22 @@ static int hns_roce_u_v2_destroy_qp(struct ibv_qp *ibqp) +@@ -1696,17 +1870,22 @@ static int hns_roce_u_v2_destroy_qp(struct ibv_qp *ibqp) hns_roce_v2_clear_qp(ctx, qp); @@ -318,8 +317,8 @@ index 9238fe5..4e92397 100644 + hns_roce_unlock_cqs(to_hr_cq(ibqp->send_cq), to_hr_cq(ibqp->recv_cq)); hns_roce_free_qp_buf(qp, ctx); - -@@ -1988,10 +2167,16 @@ static int wc_start_poll_cq(struct ibv_cq_ex *current, + hns_roce_qp_spinlock_destroy(qp); +@@ -1870,7 +2049,14 @@ static int wc_start_poll_cq(struct ibv_cq_ex *current, hns_roce_spin_lock(&cq->hr_lock); @@ -329,14 +328,12 @@ index 9238fe5..4e92397 100644 + } + err = hns_roce_poll_one(ctx, &qp, cq, NULL); - if (qp && check_dca_detach_enable(qp)) - dca_detach_qp_buf(ctx, qp); - ++ +start_poll_done: if (err != V2_CQ_OK) hns_roce_spin_unlock(&cq->hr_lock); -@@ -2005,6 +2190,9 @@ static int wc_next_poll_cq(struct ibv_cq_ex *current) +@@ -1884,6 +2070,9 @@ static int wc_next_poll_cq(struct ibv_cq_ex *current) struct hns_roce_qp *qp = NULL; int err; @@ -344,9 +341,9 @@ index 9238fe5..4e92397 100644 + return hns_roce_poll_one_swc(cq, NULL); + err = hns_roce_poll_one(ctx, &qp, cq, NULL); - if (qp && check_dca_detach_enable(qp)) - dca_detach_qp_buf(ctx, qp); -@@ -2024,11 +2212,15 @@ static void wc_end_poll_cq(struct ibv_cq_ex *current) + if (err != V2_CQ_OK) + return err; +@@ -1901,11 +2090,15 @@ static void wc_end_poll_cq(struct ibv_cq_ex *current) struct hns_roce_cq *cq = to_hr_cq(ibv_cq_ex_to_cq(current)); struct hns_roce_context *ctx = to_hr_ctx(current->context); @@ -363,10 +360,10 @@ index 9238fe5..4e92397 100644 } diff --git a/providers/hns/hns_roce_u_hw_v2.h b/providers/hns/hns_roce_u_hw_v2.h -index d628d76..50a920f 100644 +index abf9467..1a7b828 100644 --- a/providers/hns/hns_roce_u_hw_v2.h +++ b/providers/hns/hns_roce_u_hw_v2.h -@@ -346,5 +346,7 @@ void hns_roce_v2_clear_qp(struct hns_roce_context *ctx, struct hns_roce_qp *qp); +@@ -344,5 +344,7 @@ void hns_roce_v2_clear_qp(struct hns_roce_context *ctx, struct hns_roce_qp *qp); void hns_roce_attach_cq_ex_ops(struct ibv_cq_ex *cq_ex, uint64_t wc_flags); int hns_roce_attach_qp_ex_ops(struct ibv_qp_init_attr_ex *attr, struct hns_roce_qp *qp); @@ -375,7 +372,7 @@ index d628d76..50a920f 100644 #endif /* _HNS_ROCE_U_HW_V2_H */ diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 4b641ea..8fb415b 100644 +index ebcfffd..6b63f0d 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -519,6 +519,32 @@ static int exec_cq_create_cmd(struct ibv_context *context, @@ -408,10 +405,10 @@ index 4b641ea..8fb415b 100644 + } +} + - static struct ibv_cq_ex *create_cq(struct ibv_context *context, - struct ibv_cq_init_attr_ex *attr) - { -@@ -564,6 +590,10 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, + static int hns_roce_cq_spinlock_init(struct ibv_context *context, + struct hns_roce_cq *cq, + struct ibv_cq_init_attr_ex *attr) +@@ -585,6 +611,10 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, *cq->db = 0; @@ -422,7 +419,7 @@ index 4b641ea..8fb415b 100644 ret = exec_cq_create_cmd(context, cq, attr); if (ret) goto err_cmd; -@@ -573,6 +603,8 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, +@@ -594,6 +624,8 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, return &cq->verbs_cq.cq_ex; err_cmd: @@ -431,16 +428,16 @@ index 4b641ea..8fb415b 100644 hns_roce_free_db(hr_ctx, cq->db, HNS_ROCE_CQ_TYPE_DB); err_db: hns_roce_free_buf(&cq->buf); -@@ -632,6 +664,8 @@ int hns_roce_u_destroy_cq(struct ibv_cq *cq) +@@ -654,6 +686,8 @@ int hns_roce_u_destroy_cq(struct ibv_cq *cq) if (ret) return ret; -+ hns_roce_uninit_cq_swc(to_hr_cq(cq)); ++ hns_roce_uninit_cq_swc(hr_cq); + - hns_roce_free_db(to_hr_ctx(cq->context), to_hr_cq(cq)->db, + hns_roce_free_db(to_hr_ctx(cq->context), hr_cq->db, HNS_ROCE_CQ_TYPE_DB); - hns_roce_free_buf(&to_hr_cq(cq)->buf); -@@ -839,6 +873,22 @@ static int exec_srq_create_cmd(struct ibv_context *context, + +@@ -867,6 +901,22 @@ static int exec_srq_create_cmd(struct ibv_context *context, return 0; } @@ -463,7 +460,7 @@ index 4b641ea..8fb415b 100644 static struct ibv_srq *create_srq(struct ibv_context *context, struct ibv_srq_init_attr_ex *init_attr) { -@@ -886,6 +936,8 @@ static struct ibv_srq *create_srq(struct ibv_context *context, +@@ -909,6 +959,8 @@ static struct ibv_srq *create_srq(struct ibv_context *context, init_attr->attr.max_sge = min(init_attr->attr.max_sge - srq->rsv_sge, hr_ctx->max_srq_sge); @@ -472,7 +469,7 @@ index 4b641ea..8fb415b 100644 return &srq->verbs_srq.srq; err_destroy_srq: -@@ -958,12 +1010,26 @@ int hns_roce_u_query_srq(struct ibv_srq *srq, struct ibv_srq_attr *srq_attr) +@@ -984,12 +1036,26 @@ int hns_roce_u_query_srq(struct ibv_srq *srq, struct ibv_srq_attr *srq_attr) return ret; } @@ -499,7 +496,7 @@ index 4b641ea..8fb415b 100644 ret = ibv_cmd_destroy_srq(ibv_srq); if (ret) return ret; -@@ -1648,6 +1714,30 @@ static int mmap_dwqe(struct ibv_context *ibv_ctx, struct hns_roce_qp *qp, +@@ -1646,6 +1712,30 @@ static int mmap_dwqe(struct ibv_context *ibv_ctx, struct hns_roce_qp *qp, return 0; } @@ -530,14 +527,14 @@ index 4b641ea..8fb415b 100644 static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, struct ibv_qp_init_attr_ex *attr, struct hnsdv_qp_init_attr *hns_attr) -@@ -1697,6 +1787,7 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, +@@ -1695,6 +1785,7 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, } qp_setup_config(attr, qp, context); + add_qp_to_cq_list(attr, qp); - if (hns_attr && hns_attr->create_flags & HNSDV_QP_CREATE_ENABLE_UD_SL) - qp->enable_ud_sl = true; + return &qp->verbs_qp.qp; + -- -2.25.1 +2.30.0 diff --git a/0015-tests-test_mr.py-Change-the-argument-of-DmaBufMR-to-.patch b/0015-tests-test_mr.py-Change-the-argument-of-DmaBufMR-to-.patch deleted file mode 100644 index 7ebafb7518eecafba3f6cd9979c64db80c47e8ec..0000000000000000000000000000000000000000 --- a/0015-tests-test_mr.py-Change-the-argument-of-DmaBufMR-to-.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 9cad02f325f48434343970d54bff5a5e897d9be2 Mon Sep 17 00:00:00 2001 -From: Wei Xu -Date: Thu, 11 Aug 2022 02:30:56 +0000 -Subject: tests/test_mr.py: Change the argument of DmaBufMR to fix the - TypeError - -Replaced the argument 'unit' with 'gpu' to fix following error for the DmaBufMRTest: - -TypeError: __init__() got an unexpected keyword argument 'unit' - -Fixed: ffa97cb59f82 ("tests: Let PyverbsAPITestCase have one default device") -Signed-off-by: Wei Xu ---- - tests/test_mr.py | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/tests/test_mr.py b/tests/test_mr.py -index 3ec1fb3..f34b4d0 100644 ---- a/tests/test_mr.py -+++ b/tests/test_mr.py -@@ -490,7 +490,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - for f in flags: - len = u.get_mr_length() - for off in [0, len//2]: -- with DmaBufMR(pd, len, f, offset=off, unit=self.gpu, -+ with DmaBufMR(pd, len, f, offset=off, gpu=self.gpu, - gtt=self.gtt) as mr: - pass - -@@ -505,7 +505,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - for f in flags: - len = u.get_mr_length() - for off in [0, len//2]: -- with DmaBufMR(pd, len, f, offset=off, unit=self.gpu, -+ with DmaBufMR(pd, len, f, offset=off, gpu=self.gpu, - gtt=self.gtt) as mr: - mr.close() - -@@ -520,7 +520,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - for f in flags: - len = u.get_mr_length() - for off in [0, len//2]: -- with DmaBufMR(pd, len, f, offset=off, unit=self.gpu, -+ with DmaBufMR(pd, len, f, offset=off, gpu=self.gpu, - gtt=self.gtt) as mr: - # Pyverbs supports multiple destruction of objects, - # we are not expecting an exception here. -@@ -543,7 +543,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - mr_flags += i.value - try: - DmaBufMR(pd, u.get_mr_length(), mr_flags, -- unit=self.gpu, gtt=self.gtt) -+ gpu=self.gpu, gtt=self.gtt) - except PyverbsRDMAError as err: - assert 'Failed to register a dma-buf MR' in err.args[0] - else: -@@ -562,7 +562,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - for f in flags: - for mr_off in [0, mr_len//2]: - with DmaBufMR(pd, mr_len, f, offset=mr_off, -- unit=self.gpu, gtt=self.gtt) as mr: -+ gpu=self.gpu, gtt=self.gtt) as mr: - write_len = min(random.randint(1, MAX_IO_LEN), - mr_len) - mr.write('a' * write_len, write_len) -@@ -580,7 +580,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - for f in flags: - for mr_off in [0, mr_len//2]: - with DmaBufMR(pd, mr_len, f, offset=mr_off, -- unit=self.gpu, gtt=self.gtt) as mr: -+ gpu=self.gpu, gtt=self.gtt) as mr: - write_len = min(random.randint(1, MAX_IO_LEN), - mr_len) - write_str = 'a' * write_len -@@ -600,7 +600,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - length = u.get_mr_length() - flags = u.get_dmabuf_access_flags(self.ctx) - for f in flags: -- with DmaBufMR(pd, length, f, unit=self.gpu, -+ with DmaBufMR(pd, length, f, gpu=self.gpu, - gtt=self.gtt) as mr: - mr.lkey - -@@ -614,7 +614,7 @@ class DmaBufMRTest(PyverbsAPITestCase): - length = u.get_mr_length() - flags = u.get_dmabuf_access_flags(self.ctx) - for f in flags: -- with DmaBufMR(pd, length, f, unit=self.gpu, -+ with DmaBufMR(pd, length, f, gpu=self.gpu, - gtt=self.gtt) as mr: - mr.rkey - --- -2.34.1 - diff --git a/0016-ABI-Files.patch b/0016-ABI-Files.patch deleted file mode 100644 index bf4b81097a144a6c6f6b750a6452c2dfbe27a071..0000000000000000000000000000000000000000 --- a/0016-ABI-Files.patch +++ /dev/null @@ -1,56073 +0,0 @@ -From 4f3b083dc7e9e8b4ab65252ab09e61f3811c1faa Mon Sep 17 00:00:00 2001 -From: Nicolas Morey-Chaisemartin -Date: Mon, 13 Jun 2022 13:19:36 +0200 -Subject: ABI Files - -Signed-off-by: Nicolas Morey-Chaisemartin ---- - ABI/.gitignore | 0 - ABI/efa.dump | 2731 +++++++ - ABI/ibmad.dump | 7398 +++++++++++++++++ - ABI/ibnetdisc.dump | 1145 +++ - ABI/ibumad.dump | 1427 ++++ - ABI/ibverbs.dump | 18607 +++++++++++++++++++++++++++++++++++++++++++ - ABI/mlx4.dump | 3245 ++++++++ - ABI/mlx5.dump | 15572 ++++++++++++++++++++++++++++++++++++ - ABI/rdmacm.dump | 5867 ++++++++++++++ - 9 files changed, 55992 insertions(+) - create mode 100644 ABI/.gitignore - create mode 100644 ABI/efa.dump - create mode 100644 ABI/ibmad.dump - create mode 100644 ABI/ibnetdisc.dump - create mode 100644 ABI/ibumad.dump - create mode 100644 ABI/ibverbs.dump - create mode 100644 ABI/mlx4.dump - create mode 100644 ABI/mlx5.dump - create mode 100644 ABI/rdmacm.dump - -diff --git a/ABI/.gitignore b/ABI/.gitignore -new file mode 100644 -index 0000000..e69de29 -diff --git a/ABI/efa.dump b/ABI/efa.dump -new file mode 100644 -index 0000000..718115a ---- /dev/null -+++ b/ABI/efa.dump -@@ -0,0 +1,2731 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'libefa.so.1.1.41.0', -+ 'LibraryVersion' => 'efa', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'libc.so.6' => 1, -+ 'libibverbs.so.1' => 1, -+ 'libpthread.so.0' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '51330' => { -+ 'Header' => undef, -+ 'Line' => '2183', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibvah', -+ 'type' => '10368' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '51842' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '2203' -+ } -+ }, -+ 'Return' => '121', -+ 'ShortName' => 'efadv_query_ah' -+ }, -+ '65701' => { -+ 'Header' => undef, -+ 'Line' => '1394', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibvctx', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'attr_ex', -+ 'type' => '16510' -+ }, -+ '2' => { -+ 'name' => 'efa_attr', -+ 'type' => '66289' -+ }, -+ '3' => { -+ 'name' => 'inlen', -+ 'type' => '2203' -+ } -+ }, -+ 'Return' => '6244', -+ 'ShortName' => 'efadv_create_qp_ex' -+ }, -+ '66316' => { -+ 'Header' => undef, -+ 'Line' => '1361', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibvpd', -+ 'type' => '7648' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '19485' -+ }, -+ '2' => { -+ 'name' => 'driver_qp_type', -+ 'type' => '2203' -+ } -+ }, -+ 'Return' => '6244', -+ 'ShortName' => 'efadv_create_driver_qp' -+ }, -+ '82747' => { -+ 'Header' => undef, -+ 'Line' => '144', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibvctx', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '83281' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '2203' -+ } -+ }, -+ 'Return' => '121', -+ 'ShortName' => 'efadv_query_device' -+ } -+ }, -+ 'SymbolVersion' => { -+ 'efadv_create_driver_qp' => 'efadv_create_driver_qp@@EFA_1.0', -+ 'efadv_create_qp_ex' => 'efadv_create_qp_ex@@EFA_1.1', -+ 'efadv_query_ah' => 'efadv_query_ah@@EFA_1.1', -+ 'efadv_query_device' => 'efadv_query_device@@EFA_1.1' -+ }, -+ 'Symbols' => { -+ 'libefa.so.1.1.41.0' => { -+ 'efadv_create_driver_qp@@EFA_1.0' => 1, -+ 'efadv_create_qp_ex@@EFA_1.1' => 1, -+ 'efadv_query_ah@@EFA_1.1' => 1, -+ 'efadv_query_device@@EFA_1.1' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '10055' => { -+ 'Header' => undef, -+ 'Line' => '1114', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '2203' -+ }, -+ '2' => { -+ 'name' => 'lkey', -+ 'offset' => '12', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_sge', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '10117' => { -+ 'Header' => undef, -+ 'Line' => '1130', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '2316' -+ }, -+ '1' => { -+ 'name' => 'invalidate_rkey', -+ 'offset' => '0', -+ 'type' => '2203' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '10154' => { -+ 'Header' => undef, -+ 'Line' => '1135', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '2203' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '10193' => { -+ 'Header' => undef, -+ 'Line' => '1139', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'compare_add', -+ 'offset' => '8', -+ 'type' => '2215' -+ }, -+ '2' => { -+ 'name' => 'swap', -+ 'offset' => '16', -+ 'type' => '2215' -+ }, -+ '3' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '2203' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '10260' => { -+ 'Header' => undef, -+ 'Line' => '1145', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ah', -+ 'offset' => '0', -+ 'type' => '10368' -+ }, -+ '1' => { -+ 'name' => 'remote_qpn', -+ 'offset' => '8', -+ 'type' => '2203' -+ }, -+ '2' => { -+ 'name' => 'remote_qkey', -+ 'offset' => '12', -+ 'type' => '2203' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '10312' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '7648' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_ah', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '10368' => { -+ 'BaseType' => '10312', -+ 'Name' => 'struct ibv_ah*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10374' => { -+ 'Header' => undef, -+ 'Line' => '1134', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdma', -+ 'offset' => '0', -+ 'type' => '10154' -+ }, -+ '1' => { -+ 'name' => 'atomic', -+ 'offset' => '0', -+ 'type' => '10193' -+ }, -+ '2' => { -+ 'name' => 'ud', -+ 'offset' => '0', -+ 'type' => '10260' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '10423' => { -+ 'Header' => undef, -+ 'Line' => '1152', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_srqn', -+ 'offset' => '0', -+ 'type' => '2203' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '10448' => { -+ 'Header' => undef, -+ 'Line' => '1151', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'xrc', -+ 'offset' => '0', -+ 'type' => '10423' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '10472' => { -+ 'Header' => undef, -+ 'Line' => '1157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mw', -+ 'offset' => '0', -+ 'type' => '10524' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '2203' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '7269' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '10524' => { -+ 'BaseType' => '7686', -+ 'Name' => 'struct ibv_mw*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10530' => { -+ 'Header' => undef, -+ 'Line' => '1162', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '67' -+ }, -+ '1' => { -+ 'name' => 'hdr_sz', -+ 'offset' => '8', -+ 'type' => '2191' -+ }, -+ '2' => { -+ 'name' => 'mss', -+ 'offset' => '10', -+ 'type' => '2191' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '10583' => { -+ 'Header' => undef, -+ 'Line' => '1156', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'bind_mw', -+ 'offset' => '0', -+ 'type' => '10472' -+ }, -+ '1' => { -+ 'name' => 'tso', -+ 'offset' => '0', -+ 'type' => '10530' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '10620' => { -+ 'Header' => undef, -+ 'Line' => '1120', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '10758' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '10764' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '121' -+ }, -+ '4' => { -+ 'name' => 'opcode', -+ 'offset' => '28', -+ 'type' => '9915' -+ }, -+ '5' => { -+ 'name' => 'send_flags', -+ 'offset' => '32', -+ 'type' => '60' -+ }, -+ '6' => { -+ 'name' => 'unnamed0', -+ 'offset' => '36', -+ 'type' => '10117' -+ }, -+ '7' => { -+ 'name' => 'wr', -+ 'offset' => '40', -+ 'type' => '10374' -+ }, -+ '8' => { -+ 'name' => 'qp_type', -+ 'offset' => '72', -+ 'type' => '10448' -+ }, -+ '9' => { -+ 'name' => 'unnamed1', -+ 'offset' => '80', -+ 'type' => '10583' -+ } -+ }, -+ 'Name' => 'struct ibv_send_wr', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '10758' => { -+ 'BaseType' => '10620', -+ 'Name' => 'struct ibv_send_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10764' => { -+ 'BaseType' => '10055', -+ 'Name' => 'struct ibv_sge*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10770' => { -+ 'Header' => undef, -+ 'Line' => '1170', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '10841' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '10764' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '121' -+ } -+ }, -+ 'Name' => 'struct ibv_recv_wr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '10841' => { -+ 'BaseType' => '10770', -+ 'Name' => 'struct ibv_recv_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '109' => { -+ 'BaseType' => '76', -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Name' => '__uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '11109' => { -+ 'Header' => undef, -+ 'Line' => '1206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'send_flags', -+ 'offset' => '8', -+ 'type' => '60' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '7269' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '11191' => { -+ 'BaseType' => '10841', -+ 'Name' => 'struct ibv_recv_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12066' => { -+ 'Header' => undef, -+ 'Line' => '1452', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '8', -+ 'type' => '121' -+ }, -+ '2' => { -+ 'name' => 'refcnt', -+ 'offset' => '12', -+ 'type' => '121' -+ } -+ }, -+ 'Name' => 'struct ibv_comp_channel', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '121' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '12122' => { -+ 'BaseType' => '12066', -+ 'Name' => 'struct ibv_comp_channel*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '133' => { -+ 'BaseType' => '60', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '13416' => { -+ 'Header' => undef, -+ 'Line' => '1918', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_dummy1', -+ 'offset' => '0', -+ 'type' => '13605' -+ }, -+ '1' => { -+ 'name' => '_dummy2', -+ 'offset' => '8', -+ 'type' => '13622' -+ } -+ }, -+ 'Name' => 'struct _ibv_device_ops', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '13479' => { -+ 'BaseType' => '13485', -+ 'Name' => 'struct ibv_device*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '13485' => { -+ 'Header' => undef, -+ 'Line' => '1928', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_ops', -+ 'offset' => '0', -+ 'type' => '13416' -+ }, -+ '1' => { -+ 'name' => 'node_type', -+ 'offset' => '16', -+ 'type' => '3458' -+ }, -+ '2' => { -+ 'name' => 'transport_type', -+ 'offset' => '20', -+ 'type' => '3525' -+ }, -+ '3' => { -+ 'name' => 'name', -+ 'offset' => '24', -+ 'type' => '4486' -+ }, -+ '4' => { -+ 'name' => 'dev_name', -+ 'offset' => '88', -+ 'type' => '4486' -+ }, -+ '5' => { -+ 'name' => 'dev_path', -+ 'offset' => '152', -+ 'type' => '13657' -+ }, -+ '6' => { -+ 'name' => 'ibdev_path', -+ 'offset' => '408', -+ 'type' => '13657' -+ } -+ }, -+ 'Name' => 'struct ibv_device', -+ 'Size' => '664', -+ 'Type' => 'Struct' -+ }, -+ '13605' => { -+ 'Name' => 'struct ibv_context*(*)(struct ibv_device*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '13479' -+ }, -+ '1' => { -+ 'type' => '121' -+ } -+ }, -+ 'Return' => '3868', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '13622' => { -+ 'Name' => 'void(*)(struct ibv_context*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '3868' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '13657' => { -+ 'BaseType' => '200', -+ 'Name' => 'char[256]', -+ 'Size' => '256', -+ 'Type' => 'Array' -+ }, -+ '13673' => { -+ 'Header' => undef, -+ 'Line' => '1943', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_compat_query_device', -+ 'offset' => '0', -+ 'type' => '14163' -+ }, -+ '1' => { -+ 'name' => '_compat_query_port', -+ 'offset' => '8', -+ 'type' => '14205' -+ }, -+ '10' => { -+ 'name' => '_compat_create_cq', -+ 'offset' => '80', -+ 'type' => '14216' -+ }, -+ '11' => { -+ 'name' => 'poll_cq', -+ 'offset' => '88', -+ 'type' => '14337' -+ }, -+ '12' => { -+ 'name' => 'req_notify_cq', -+ 'offset' => '96', -+ 'type' => '14363' -+ }, -+ '13' => { -+ 'name' => '_compat_cq_event', -+ 'offset' => '104', -+ 'type' => '14216' -+ }, -+ '14' => { -+ 'name' => '_compat_resize_cq', -+ 'offset' => '112', -+ 'type' => '14216' -+ }, -+ '15' => { -+ 'name' => '_compat_destroy_cq', -+ 'offset' => '120', -+ 'type' => '14216' -+ }, -+ '16' => { -+ 'name' => '_compat_create_srq', -+ 'offset' => '128', -+ 'type' => '14216' -+ }, -+ '17' => { -+ 'name' => '_compat_modify_srq', -+ 'offset' => '136', -+ 'type' => '14216' -+ }, -+ '18' => { -+ 'name' => '_compat_query_srq', -+ 'offset' => '144', -+ 'type' => '14216' -+ }, -+ '19' => { -+ 'name' => '_compat_destroy_srq', -+ 'offset' => '152', -+ 'type' => '14216' -+ }, -+ '2' => { -+ 'name' => '_compat_alloc_pd', -+ 'offset' => '16', -+ 'type' => '14216' -+ }, -+ '20' => { -+ 'name' => 'post_srq_recv', -+ 'offset' => '160', -+ 'type' => '14394' -+ }, -+ '21' => { -+ 'name' => '_compat_create_qp', -+ 'offset' => '168', -+ 'type' => '14216' -+ }, -+ '22' => { -+ 'name' => '_compat_query_qp', -+ 'offset' => '176', -+ 'type' => '14216' -+ }, -+ '23' => { -+ 'name' => '_compat_modify_qp', -+ 'offset' => '184', -+ 'type' => '14216' -+ }, -+ '24' => { -+ 'name' => '_compat_destroy_qp', -+ 'offset' => '192', -+ 'type' => '14216' -+ }, -+ '25' => { -+ 'name' => 'post_send', -+ 'offset' => '200', -+ 'type' => '14431' -+ }, -+ '26' => { -+ 'name' => 'post_recv', -+ 'offset' => '208', -+ 'type' => '14462' -+ }, -+ '27' => { -+ 'name' => '_compat_create_ah', -+ 'offset' => '216', -+ 'type' => '14216' -+ }, -+ '28' => { -+ 'name' => '_compat_destroy_ah', -+ 'offset' => '224', -+ 'type' => '14216' -+ }, -+ '29' => { -+ 'name' => '_compat_attach_mcast', -+ 'offset' => '232', -+ 'type' => '14216' -+ }, -+ '3' => { -+ 'name' => '_compat_dealloc_pd', -+ 'offset' => '24', -+ 'type' => '14216' -+ }, -+ '30' => { -+ 'name' => '_compat_detach_mcast', -+ 'offset' => '240', -+ 'type' => '14216' -+ }, -+ '31' => { -+ 'name' => '_compat_async_event', -+ 'offset' => '248', -+ 'type' => '14216' -+ }, -+ '4' => { -+ 'name' => '_compat_reg_mr', -+ 'offset' => '32', -+ 'type' => '14216' -+ }, -+ '5' => { -+ 'name' => '_compat_rereg_mr', -+ 'offset' => '40', -+ 'type' => '14216' -+ }, -+ '6' => { -+ 'name' => '_compat_dereg_mr', -+ 'offset' => '48', -+ 'type' => '14216' -+ }, -+ '7' => { -+ 'name' => 'alloc_mw', -+ 'offset' => '56', -+ 'type' => '14242' -+ }, -+ '8' => { -+ 'name' => 'bind_mw', -+ 'offset' => '64', -+ 'type' => '14279' -+ }, -+ '9' => { -+ 'name' => 'dealloc_mw', -+ 'offset' => '72', -+ 'type' => '14300' -+ } -+ }, -+ 'Name' => 'struct ibv_context_ops', -+ 'Size' => '256', -+ 'Type' => 'Struct' -+ }, -+ '14157' => { -+ 'BaseType' => '3952', -+ 'Name' => 'struct ibv_device_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14163' => { -+ 'Name' => 'int(*)(struct ibv_context*, struct ibv_device_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'type' => '14157' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14194' => { -+ 'BaseType' => '14200', -+ 'Name' => 'struct _compat_ibv_port_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14200' => { -+ 'Name' => 'struct _compat_ibv_port_attr', -+ 'Type' => 'Struct' -+ }, -+ '14205' => { -+ 'Name' => 'int(*)(struct ibv_context*, uint8_t, struct _compat_ibv_port_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'type' => '2179' -+ }, -+ '2' => { -+ 'type' => '14194' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14216' => { -+ 'Name' => 'void*(*)()', -+ 'Return' => '67', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14242' => { -+ 'Name' => 'struct ibv_mw*(*)(struct ibv_pd*, enum ibv_mw_type)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7648' -+ }, -+ '1' => { -+ 'type' => '7654' -+ } -+ }, -+ 'Return' => '10524', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14273' => { -+ 'BaseType' => '11109', -+ 'Name' => 'struct ibv_mw_bind*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14279' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_mw*, struct ibv_mw_bind*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6244' -+ }, -+ '1' => { -+ 'type' => '10524' -+ }, -+ '2' => { -+ 'type' => '14273' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14300' => { -+ 'Name' => 'int(*)(struct ibv_mw*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10524' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14331' => { -+ 'BaseType' => '7081', -+ 'Name' => 'struct ibv_wc*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14337' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int, struct ibv_wc*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6042' -+ }, -+ '1' => { -+ 'type' => '121' -+ }, -+ '2' => { -+ 'type' => '14331' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14363' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6042' -+ }, -+ '1' => { -+ 'type' => '121' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14394' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6362' -+ }, -+ '1' => { -+ 'type' => '10841' -+ }, -+ '2' => { -+ 'type' => '11191' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14425' => { -+ 'BaseType' => '10758', -+ 'Name' => 'struct ibv_send_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14431' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_send_wr*, struct ibv_send_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6244' -+ }, -+ '1' => { -+ 'type' => '10758' -+ }, -+ '2' => { -+ 'type' => '14425' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14462' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6244' -+ }, -+ '1' => { -+ 'type' => '10841' -+ }, -+ '2' => { -+ 'type' => '11191' -+ } -+ }, -+ 'Return' => '121', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '152' => { -+ 'BaseType' => '53', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '16510' => { -+ 'BaseType' => '9030', -+ 'Name' => 'struct ibv_qp_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19485' => { -+ 'BaseType' => '8840', -+ 'Name' => 'struct ibv_qp_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '200' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '2179' => { -+ 'BaseType' => '90', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '2191' => { -+ 'BaseType' => '109', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => 'uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '2203' => { -+ 'BaseType' => '133', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '2215' => { -+ 'BaseType' => '152', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '2292' => { -+ 'BaseType' => '60', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__u32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '2304' => { -+ 'BaseType' => '523', -+ 'Header' => undef, -+ 'Line' => '31', -+ 'Name' => '__u64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '2316' => { -+ 'BaseType' => '2292', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__be32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '2328' => { -+ 'BaseType' => '2304', -+ 'Header' => undef, -+ 'Line' => '29', -+ 'Name' => '__be64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '3458' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_NODE_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_NODE_CA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_NODE_SWITCH', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_NODE_ROUTER', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_NODE_RNIC', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_NODE_USNIC', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_NODE_USNIC_UDP', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_NODE_UNSPECIFIED', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_node_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '3525' => { -+ 'Header' => undef, -+ 'Line' => '106', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_TRANSPORT_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_TRANSPORT_IB', -+ 'value' => '0' -+ }, -+ '2' => { -+ 'name' => 'IBV_TRANSPORT_IWARP', -+ 'value' => '1' -+ }, -+ '3' => { -+ 'name' => 'IBV_TRANSPORT_USNIC', -+ 'value' => '2' -+ }, -+ '4' => { -+ 'name' => 'IBV_TRANSPORT_USNIC_UDP', -+ 'value' => '3' -+ }, -+ '5' => { -+ 'name' => 'IBV_TRANSPORT_UNSPECIFIED', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum ibv_transport_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '3580' => { -+ 'Header' => undef, -+ 'Line' => '155', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_ATOMIC_NONE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_ATOMIC_HCA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_ATOMIC_GLOB', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_atomic_cap', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '3749' => { -+ 'Header' => undef, -+ 'Line' => '1986', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'device', -+ 'offset' => '0', -+ 'type' => '13479' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'offset' => '8', -+ 'type' => '13673' -+ }, -+ '2' => { -+ 'name' => 'cmd_fd', -+ 'offset' => '264', -+ 'type' => '121' -+ }, -+ '3' => { -+ 'name' => 'async_fd', -+ 'offset' => '268', -+ 'type' => '121' -+ }, -+ '4' => { -+ 'name' => 'num_comp_vectors', -+ 'offset' => '272', -+ 'type' => '121' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '280', -+ 'type' => '769' -+ }, -+ '6' => { -+ 'name' => 'abi_compat', -+ 'offset' => '320', -+ 'type' => '67' -+ } -+ }, -+ 'Name' => 'struct ibv_context', -+ 'Size' => '328', -+ 'Type' => 'Struct' -+ }, -+ '3868' => { -+ 'BaseType' => '3749', -+ 'Name' => 'struct ibv_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '38762' => { -+ 'BaseType' => '2179', -+ 'Name' => 'uint8_t[6]', -+ 'Size' => '6', -+ 'Type' => 'Array' -+ }, -+ '3952' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fw_ver', -+ 'offset' => '0', -+ 'type' => '4486' -+ }, -+ '1' => { -+ 'name' => 'node_guid', -+ 'offset' => '64', -+ 'type' => '2328' -+ }, -+ '10' => { -+ 'name' => 'device_cap_flags', -+ 'offset' => '116', -+ 'type' => '60' -+ }, -+ '11' => { -+ 'name' => 'max_sge', -+ 'offset' => '120', -+ 'type' => '121' -+ }, -+ '12' => { -+ 'name' => 'max_sge_rd', -+ 'offset' => '124', -+ 'type' => '121' -+ }, -+ '13' => { -+ 'name' => 'max_cq', -+ 'offset' => '128', -+ 'type' => '121' -+ }, -+ '14' => { -+ 'name' => 'max_cqe', -+ 'offset' => '132', -+ 'type' => '121' -+ }, -+ '15' => { -+ 'name' => 'max_mr', -+ 'offset' => '136', -+ 'type' => '121' -+ }, -+ '16' => { -+ 'name' => 'max_pd', -+ 'offset' => '140', -+ 'type' => '121' -+ }, -+ '17' => { -+ 'name' => 'max_qp_rd_atom', -+ 'offset' => '144', -+ 'type' => '121' -+ }, -+ '18' => { -+ 'name' => 'max_ee_rd_atom', -+ 'offset' => '148', -+ 'type' => '121' -+ }, -+ '19' => { -+ 'name' => 'max_res_rd_atom', -+ 'offset' => '152', -+ 'type' => '121' -+ }, -+ '2' => { -+ 'name' => 'sys_image_guid', -+ 'offset' => '72', -+ 'type' => '2328' -+ }, -+ '20' => { -+ 'name' => 'max_qp_init_rd_atom', -+ 'offset' => '156', -+ 'type' => '121' -+ }, -+ '21' => { -+ 'name' => 'max_ee_init_rd_atom', -+ 'offset' => '160', -+ 'type' => '121' -+ }, -+ '22' => { -+ 'name' => 'atomic_cap', -+ 'offset' => '164', -+ 'type' => '3580' -+ }, -+ '23' => { -+ 'name' => 'max_ee', -+ 'offset' => '168', -+ 'type' => '121' -+ }, -+ '24' => { -+ 'name' => 'max_rdd', -+ 'offset' => '172', -+ 'type' => '121' -+ }, -+ '25' => { -+ 'name' => 'max_mw', -+ 'offset' => '176', -+ 'type' => '121' -+ }, -+ '26' => { -+ 'name' => 'max_raw_ipv6_qp', -+ 'offset' => '180', -+ 'type' => '121' -+ }, -+ '27' => { -+ 'name' => 'max_raw_ethy_qp', -+ 'offset' => '184', -+ 'type' => '121' -+ }, -+ '28' => { -+ 'name' => 'max_mcast_grp', -+ 'offset' => '188', -+ 'type' => '121' -+ }, -+ '29' => { -+ 'name' => 'max_mcast_qp_attach', -+ 'offset' => '192', -+ 'type' => '121' -+ }, -+ '3' => { -+ 'name' => 'max_mr_size', -+ 'offset' => '80', -+ 'type' => '2215' -+ }, -+ '30' => { -+ 'name' => 'max_total_mcast_qp_attach', -+ 'offset' => '196', -+ 'type' => '121' -+ }, -+ '31' => { -+ 'name' => 'max_ah', -+ 'offset' => '200', -+ 'type' => '121' -+ }, -+ '32' => { -+ 'name' => 'max_fmr', -+ 'offset' => '204', -+ 'type' => '121' -+ }, -+ '33' => { -+ 'name' => 'max_map_per_fmr', -+ 'offset' => '208', -+ 'type' => '121' -+ }, -+ '34' => { -+ 'name' => 'max_srq', -+ 'offset' => '212', -+ 'type' => '121' -+ }, -+ '35' => { -+ 'name' => 'max_srq_wr', -+ 'offset' => '216', -+ 'type' => '121' -+ }, -+ '36' => { -+ 'name' => 'max_srq_sge', -+ 'offset' => '220', -+ 'type' => '121' -+ }, -+ '37' => { -+ 'name' => 'max_pkeys', -+ 'offset' => '224', -+ 'type' => '2191' -+ }, -+ '38' => { -+ 'name' => 'local_ca_ack_delay', -+ 'offset' => '226', -+ 'type' => '2179' -+ }, -+ '39' => { -+ 'name' => 'phys_port_cnt', -+ 'offset' => '227', -+ 'type' => '2179' -+ }, -+ '4' => { -+ 'name' => 'page_size_cap', -+ 'offset' => '88', -+ 'type' => '2215' -+ }, -+ '5' => { -+ 'name' => 'vendor_id', -+ 'offset' => '96', -+ 'type' => '2203' -+ }, -+ '6' => { -+ 'name' => 'vendor_part_id', -+ 'offset' => '100', -+ 'type' => '2203' -+ }, -+ '7' => { -+ 'name' => 'hw_ver', -+ 'offset' => '104', -+ 'type' => '2203' -+ }, -+ '8' => { -+ 'name' => 'max_qp', -+ 'offset' => '108', -+ 'type' => '121' -+ }, -+ '9' => { -+ 'name' => 'max_qp_wr', -+ 'offset' => '112', -+ 'type' => '121' -+ } -+ }, -+ 'Name' => 'struct ibv_device_attr', -+ 'Size' => '232', -+ 'Type' => 'Struct' -+ }, -+ '41' => { -+ 'BaseType' => '53', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '4486' => { -+ 'BaseType' => '200', -+ 'Name' => 'char[64]', -+ 'Size' => '64', -+ 'Type' => 'Array' -+ }, -+ '49201' => { -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'driver_qp_type', -+ 'offset' => '8', -+ 'type' => '2203' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '12', -+ 'type' => '49254' -+ } -+ }, -+ 'Name' => 'struct efadv_qp_init_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '49254' => { -+ 'BaseType' => '2179', -+ 'Name' => 'uint8_t[4]', -+ 'Size' => '4', -+ 'Type' => 'Array' -+ }, -+ '49297' => { -+ 'Header' => undef, -+ 'Line' => '43', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'max_sq_wr', -+ 'offset' => '8', -+ 'type' => '2203' -+ }, -+ '2' => { -+ 'name' => 'max_rq_wr', -+ 'offset' => '12', -+ 'type' => '2203' -+ }, -+ '3' => { -+ 'name' => 'max_sq_sge', -+ 'offset' => '16', -+ 'type' => '2191' -+ }, -+ '4' => { -+ 'name' => 'max_rq_sge', -+ 'offset' => '18', -+ 'type' => '2191' -+ }, -+ '5' => { -+ 'name' => 'inline_buf_size', -+ 'offset' => '20', -+ 'type' => '2191' -+ }, -+ '6' => { -+ 'name' => 'reserved', -+ 'offset' => '22', -+ 'type' => '49428' -+ }, -+ '7' => { -+ 'name' => 'device_caps', -+ 'offset' => '24', -+ 'type' => '2203' -+ }, -+ '8' => { -+ 'name' => 'max_rdma_size', -+ 'offset' => '28', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct efadv_device_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '49428' => { -+ 'BaseType' => '2179', -+ 'Name' => 'uint8_t[2]', -+ 'Size' => '2', -+ 'Type' => 'Array' -+ }, -+ '49444' => { -+ 'Header' => undef, -+ 'Line' => '59', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'ahn', -+ 'offset' => '8', -+ 'type' => '2191' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '10', -+ 'type' => '38762' -+ } -+ }, -+ 'Name' => 'struct efadv_ah_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '51842' => { -+ 'BaseType' => '49444', -+ 'Name' => 'struct efadv_ah_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '523' => { -+ 'Name' => 'unsigned long long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '53' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '5901' => { -+ 'Header' => undef, -+ 'Line' => '1458', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '12122' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'offset' => '16', -+ 'type' => '67' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '2203' -+ }, -+ '4' => { -+ 'name' => 'cqe', -+ 'offset' => '28', -+ 'type' => '121' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '769' -+ }, -+ '6' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '843' -+ }, -+ '7' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '120', -+ 'type' => '2203' -+ }, -+ '8' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '124', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_cq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '60' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '6042' => { -+ 'BaseType' => '5901', -+ 'Name' => 'struct ibv_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6048' => { -+ 'Header' => undef, -+ 'Line' => '1252', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'qp_context', -+ 'offset' => '8', -+ 'type' => '67' -+ }, -+ '10' => { -+ 'name' => 'mutex', -+ 'offset' => '64', -+ 'type' => '769' -+ }, -+ '11' => { -+ 'name' => 'cond', -+ 'offset' => '104', -+ 'type' => '843' -+ }, -+ '12' => { -+ 'name' => 'events_completed', -+ 'offset' => '152', -+ 'type' => '2203' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '7648' -+ }, -+ '3' => { -+ 'name' => 'send_cq', -+ 'offset' => '24', -+ 'type' => '6042' -+ }, -+ '4' => { -+ 'name' => 'recv_cq', -+ 'offset' => '32', -+ 'type' => '6042' -+ }, -+ '5' => { -+ 'name' => 'srq', -+ 'offset' => '40', -+ 'type' => '6362' -+ }, -+ '6' => { -+ 'name' => 'handle', -+ 'offset' => '48', -+ 'type' => '2203' -+ }, -+ '7' => { -+ 'name' => 'qp_num', -+ 'offset' => '52', -+ 'type' => '2203' -+ }, -+ '8' => { -+ 'name' => 'state', -+ 'offset' => '56', -+ 'type' => '9359' -+ }, -+ '9' => { -+ 'name' => 'qp_type', -+ 'offset' => '60', -+ 'type' => '8693' -+ } -+ }, -+ 'Name' => 'struct ibv_qp', -+ 'Size' => '160', -+ 'Type' => 'Struct' -+ }, -+ '6244' => { -+ 'BaseType' => '6048', -+ 'Name' => 'struct ibv_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6250' => { -+ 'Header' => undef, -+ 'Line' => '1212', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'srq_context', -+ 'offset' => '8', -+ 'type' => '67' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '7648' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '2203' -+ }, -+ '4' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '769' -+ }, -+ '5' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '843' -+ }, -+ '6' => { -+ 'name' => 'events_completed', -+ 'offset' => '120', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_srq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '6362' => { -+ 'BaseType' => '6250', -+ 'Name' => 'struct ibv_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6612' => { -+ 'Header' => undef, -+ 'Line' => '483', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SUCCESS', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_LOC_LEN_ERR', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_REM_ACCESS_ERR', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_REM_OP_ERR', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_RETRY_EXC_ERR', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_RNR_RETRY_EXC_ERR', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_LOC_RDD_VIOL_ERR', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_REM_INV_RD_REQ_ERR', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_REM_ABORT_ERR', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_INV_EECN_ERR', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'IBV_WC_INV_EEC_STATE_ERR', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'IBV_WC_FATAL_ERR', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_LOC_QP_OP_ERR', -+ 'value' => '2' -+ }, -+ '20' => { -+ 'name' => 'IBV_WC_RESP_TIMEOUT_ERR', -+ 'value' => '20' -+ }, -+ '21' => { -+ 'name' => 'IBV_WC_GENERAL_ERR', -+ 'value' => '21' -+ }, -+ '22' => { -+ 'name' => 'IBV_WC_TM_ERR', -+ 'value' => '22' -+ }, -+ '23' => { -+ 'name' => 'IBV_WC_TM_RNDV_INCOMPLETE', -+ 'value' => '23' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_LOC_EEC_OP_ERR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_LOC_PROT_ERR', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_WR_FLUSH_ERR', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_MW_BIND_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_BAD_RESP_ERR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_LOC_ACCESS_ERR', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_REM_INV_REQ_ERR', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_status', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '66289' => { -+ 'BaseType' => '49201', -+ 'Name' => 'struct efadv_qp_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '67' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6776' => { -+ 'Header' => undef, -+ 'Line' => '511', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SEND', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_RDMA_WRITE', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_TM_ADD', -+ 'value' => '130' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_TM_DEL', -+ 'value' => '131' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_TM_SYNC', -+ 'value' => '132' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_TM_RECV', -+ 'value' => '133' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_TM_NO_TAG', -+ 'value' => '134' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_DRIVER1', -+ 'value' => '135' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_DRIVER2', -+ 'value' => '136' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_DRIVER3', -+ 'value' => '137' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_RDMA_READ', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_COMP_SWAP', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_FETCH_ADD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_BIND_MW', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_LOCAL_INV', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_TSO', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_RECV', -+ 'value' => '128' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_RECV_RDMA_WITH_IMM', -+ 'value' => '129' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '69' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '7044' => { -+ 'Header' => undef, -+ 'Line' => '594', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '2316' -+ }, -+ '1' => { -+ 'name' => 'invalidated_rkey', -+ 'offset' => '0', -+ 'type' => '2203' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '7081' => { -+ 'Header' => undef, -+ 'Line' => '585', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2215' -+ }, -+ '1' => { -+ 'name' => 'status', -+ 'offset' => '8', -+ 'type' => '6612' -+ }, -+ '10' => { -+ 'name' => 'slid', -+ 'offset' => '42', -+ 'type' => '2191' -+ }, -+ '11' => { -+ 'name' => 'sl', -+ 'offset' => '44', -+ 'type' => '2179' -+ }, -+ '12' => { -+ 'name' => 'dlid_path_bits', -+ 'offset' => '45', -+ 'type' => '2179' -+ }, -+ '2' => { -+ 'name' => 'opcode', -+ 'offset' => '12', -+ 'type' => '6776' -+ }, -+ '3' => { -+ 'name' => 'vendor_err', -+ 'offset' => '16', -+ 'type' => '2203' -+ }, -+ '4' => { -+ 'name' => 'byte_len', -+ 'offset' => '20', -+ 'type' => '2203' -+ }, -+ '5' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '7044' -+ }, -+ '6' => { -+ 'name' => 'qp_num', -+ 'offset' => '28', -+ 'type' => '2203' -+ }, -+ '7' => { -+ 'name' => 'src_qp', -+ 'offset' => '32', -+ 'type' => '2203' -+ }, -+ '8' => { -+ 'name' => 'wc_flags', -+ 'offset' => '36', -+ 'type' => '60' -+ }, -+ '9' => { -+ 'name' => 'pkey_index', -+ 'offset' => '40', -+ 'type' => '2191' -+ } -+ }, -+ 'Name' => 'struct ibv_wc', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '7269' => { -+ 'Header' => undef, -+ 'Line' => '619', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mr', -+ 'offset' => '0', -+ 'type' => '7456' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'offset' => '8', -+ 'type' => '2215' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'offset' => '16', -+ 'type' => '2215' -+ }, -+ '3' => { -+ 'name' => 'mw_access_flags', -+ 'offset' => '24', -+ 'type' => '60' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind_info', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '7344' => { -+ 'Header' => undef, -+ 'Line' => '662', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '7648' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'offset' => '16', -+ 'type' => '67' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'offset' => '24', -+ 'type' => '41' -+ }, -+ '4' => { -+ 'name' => 'handle', -+ 'offset' => '32', -+ 'type' => '2203' -+ }, -+ '5' => { -+ 'name' => 'lkey', -+ 'offset' => '36', -+ 'type' => '2203' -+ }, -+ '6' => { -+ 'name' => 'rkey', -+ 'offset' => '40', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_mr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '7456' => { -+ 'BaseType' => '7344', -+ 'Name' => 'struct ibv_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7462' => { -+ 'Header' => undef, -+ 'Line' => '626', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_pd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '76' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '7619' => { -+ 'Header' => undef, -+ 'Line' => '651', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ } -+ }, -+ 'Name' => 'struct ibv_xrcd', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '7648' => { -+ 'BaseType' => '7462', -+ 'Name' => 'struct ibv_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7654' => { -+ 'Header' => undef, -+ 'Line' => '672', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MW_TYPE_1', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'IBV_MW_TYPE_2', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_mw_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '7686' => { -+ 'Header' => undef, -+ 'Line' => '677', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '7648' -+ }, -+ '2' => { -+ 'name' => 'rkey', -+ 'offset' => '16', -+ 'type' => '2203' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '20', -+ 'type' => '2203' -+ }, -+ '4' => { -+ 'name' => 'type', -+ 'offset' => '24', -+ 'type' => '7654' -+ } -+ }, -+ 'Name' => 'struct ibv_mw', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '8273' => { -+ 'BaseType' => '7619', -+ 'Name' => 'struct ibv_xrcd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '83281' => { -+ 'BaseType' => '49297', -+ 'Name' => 'struct efadv_device_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8559' => { -+ 'Header' => undef, -+ 'Line' => '874', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '3868' -+ }, -+ '1' => { -+ 'name' => 'ind_tbl_handle', -+ 'offset' => '8', -+ 'type' => '121' -+ }, -+ '2' => { -+ 'name' => 'ind_tbl_num', -+ 'offset' => '12', -+ 'type' => '121' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_rwq_ind_table', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '8693' => { -+ 'Header' => undef, -+ 'Line' => '895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPT_RC', -+ 'value' => '2' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPT_UC', -+ 'value' => '3' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPT_UD', -+ 'value' => '4' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPT_RAW_PACKET', -+ 'value' => '8' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPT_XRC_SEND', -+ 'value' => '9' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPT_XRC_RECV', -+ 'value' => '10' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPT_DRIVER', -+ 'value' => '255' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '8755' => { -+ 'Header' => undef, -+ 'Line' => '905', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '0', -+ 'type' => '2203' -+ }, -+ '1' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '4', -+ 'type' => '2203' -+ }, -+ '2' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '8', -+ 'type' => '2203' -+ }, -+ '3' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '12', -+ 'type' => '2203' -+ }, -+ '4' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '16', -+ 'type' => '2203' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_cap', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '8840' => { -+ 'Header' => undef, -+ 'Line' => '913', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '67' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '6042' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '6042' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '6362' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '8755' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '8693' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '121' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '8953' => { -+ 'Header' => undef, -+ 'Line' => '955', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rx_hash_function', -+ 'offset' => '0', -+ 'type' => '2179' -+ }, -+ '1' => { -+ 'name' => 'rx_hash_key_len', -+ 'offset' => '1', -+ 'type' => '2179' -+ }, -+ '2' => { -+ 'name' => 'rx_hash_key', -+ 'offset' => '8', -+ 'type' => '9024' -+ }, -+ '3' => { -+ 'name' => 'rx_hash_fields_mask', -+ 'offset' => '16', -+ 'type' => '2215' -+ } -+ }, -+ 'Name' => 'struct ibv_rx_hash_conf', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '90' => { -+ 'BaseType' => '69', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '9024' => { -+ 'BaseType' => '2179', -+ 'Name' => 'uint8_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9030' => { -+ 'Header' => undef, -+ 'Line' => '964', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '67' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '6042' -+ }, -+ '10' => { -+ 'name' => 'create_flags', -+ 'offset' => '80', -+ 'type' => '2203' -+ }, -+ '11' => { -+ 'name' => 'max_tso_header', -+ 'offset' => '84', -+ 'type' => '2191' -+ }, -+ '12' => { -+ 'name' => 'rwq_ind_tbl', -+ 'offset' => '88', -+ 'type' => '9268' -+ }, -+ '13' => { -+ 'name' => 'rx_hash_conf', -+ 'offset' => '96', -+ 'type' => '8953' -+ }, -+ '14' => { -+ 'name' => 'source_qpn', -+ 'offset' => '120', -+ 'type' => '2203' -+ }, -+ '15' => { -+ 'name' => 'send_ops_flags', -+ 'offset' => '128', -+ 'type' => '2215' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '6042' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '6362' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '8755' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '8693' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '121' -+ }, -+ '7' => { -+ 'name' => 'comp_mask', -+ 'offset' => '60', -+ 'type' => '2203' -+ }, -+ '8' => { -+ 'name' => 'pd', -+ 'offset' => '64', -+ 'type' => '7648' -+ }, -+ '9' => { -+ 'name' => 'xrcd', -+ 'offset' => '72', -+ 'type' => '8273' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr_ex', -+ 'Size' => '136', -+ 'Type' => 'Struct' -+ }, -+ '9268' => { -+ 'BaseType' => '8559', -+ 'Name' => 'struct ibv_rwq_ind_table*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9359' => { -+ 'Header' => undef, -+ 'Line' => '1033', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPS_INIT', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPS_RTR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPS_RTS', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPS_SQD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPS_SQE', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPS_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_QPS_UNKNOWN', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '9915' => { -+ 'Header' => undef, -+ 'Line' => '1086', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WR_RDMA_WRITE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WR_RDMA_WRITE_WITH_IMM', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WR_TSO', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WR_DRIVER1', -+ 'value' => '11' -+ }, -+ '2' => { -+ 'name' => 'IBV_WR_SEND', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WR_SEND_WITH_IMM', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WR_RDMA_READ', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WR_ATOMIC_CMP_AND_SWP', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WR_ATOMIC_FETCH_AND_ADD', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WR_LOCAL_INV', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WR_BIND_MW', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WR_SEND_WITH_INV', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wr_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'libefa.so.1.1.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__gmon_start__' => 0, -+ '__snprintf_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ '__verbs_log@IBVERBS_PRIVATE_34' => 0, -+ '_verbs_init_and_alloc_context@IBVERBS_PRIVATE_34' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'ibv_cmd_alloc_pd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_ah@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_cq_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_qp_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dealloc_pd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dereg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_ah@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_get_context@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_device_any@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_port@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_reg_dmabuf_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_reg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'malloc@GLIBC_2.2.5' => 0, -+ 'memcpy@GLIBC_2.14' => 0, -+ 'memset@GLIBC_2.2.5' => 0, -+ 'mmap@GLIBC_2.2.5' => 0, -+ 'munmap@GLIBC_2.2.5' => 0, -+ 'pthread_spin_destroy@GLIBC_2.2.5' => 0, -+ 'pthread_spin_init@GLIBC_2.2.5' => 0, -+ 'pthread_spin_lock@GLIBC_2.2.5' => 0, -+ 'pthread_spin_unlock@GLIBC_2.2.5' => 0, -+ 'sysconf@GLIBC_2.2.5' => 0, -+ 'verbs_register_driver_34@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_set_ops@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_uninit_context@IBVERBS_PRIVATE_34' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; -diff --git a/ABI/ibmad.dump b/ABI/ibmad.dump -new file mode 100644 -index 0000000..f49a090 ---- /dev/null -+++ b/ABI/ibmad.dump -@@ -0,0 +1,7398 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'libibmad.so.5.3.41.0', -+ 'LibraryVersion' => 'ibmad', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'libc.so.6' => 1, -+ 'libibumad.so.3' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '103861' => { -+ 'Header' => undef, -+ 'Line' => '112', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port', -+ 'type' => '1912' -+ }, -+ '1' => { -+ 'name' => 'class', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_rpc_class_agent' -+ }, -+ '103973' => { -+ 'Header' => undef, -+ 'Line' => '102', -+ 'Return' => '71', -+ 'ShortName' => 'madrpc_portid' -+ }, -+ '104003' => { -+ 'Header' => undef, -+ 'Line' => '97', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port', -+ 'type' => '1912' -+ }, -+ '1' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_rpc_set_timeout' -+ }, -+ '104062' => { -+ 'Header' => undef, -+ 'Line' => '92', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port', -+ 'type' => '1912' -+ }, -+ '1' => { -+ 'name' => 'retries', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_rpc_set_retries' -+ }, -+ '104121' => { -+ 'Header' => undef, -+ 'Line' => '86', -+ 'Param' => { -+ '0' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'madrpc_set_timeout' -+ }, -+ '104170' => { -+ 'Header' => undef, -+ 'Line' => '79', -+ 'Param' => { -+ '0' => { -+ 'name' => 'retries', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'madrpc_set_retries' -+ }, -+ '104219' => { -+ 'Header' => undef, -+ 'Line' => '73', -+ 'Param' => { -+ '0' => { -+ 'name' => 'madbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'len', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'madrpc_save_mad' -+ }, -+ '104278' => { -+ 'Header' => undef, -+ 'Line' => '68', -+ 'Param' => { -+ '0' => { -+ 'name' => 'set', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'madrpc_show_errors' -+ }, -+ '111530' => { -+ 'Header' => undef, -+ 'Line' => '164', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ }, -+ '1' => { -+ 'name' => 'guid', -+ 'type' => '269' -+ }, -+ '2' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_node_query_via' -+ }, -+ '112070' => { -+ 'Header' => undef, -+ 'Line' => '139', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcgid', -+ 'type' => '2937' -+ }, -+ '1' => { -+ 'name' => 'destgid', -+ 'type' => '2937' -+ }, -+ '2' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_path_query' -+ }, -+ '112847' => { -+ 'Header' => undef, -+ 'Line' => '79', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'sa', -+ 'type' => '113003' -+ }, -+ '3' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'sa_call' -+ }, -+ '113009' => { -+ 'Header' => undef, -+ 'Line' => '44', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibmad_port', -+ 'type' => '1971' -+ }, -+ '1' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '2' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'sa', -+ 'type' => '113003' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'sa_rpc_call' -+ }, -+ '11931' => { -+ 'Header' => undef, -+ 'Line' => '1258', -+ 'Param' => { -+ '0' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '2' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'val', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '227', -+ 'ShortName' => 'mad_dump_field' -+ }, -+ '11969' => { -+ 'Header' => undef, -+ 'Line' => '1459', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '2937' -+ }, -+ '1' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_decode_field' -+ }, -+ '12078' => { -+ 'Header' => undef, -+ 'Line' => '1714', -+ 'Param' => { -+ '0' => { -+ 'name' => 'file', -+ 'type' => '795' -+ }, -+ '1' => { -+ 'name' => 'msg', -+ 'type' => '78' -+ }, -+ '2' => { -+ 'name' => 'p', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'size', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'xdump' -+ }, -+ '121056' => { -+ 'Header' => undef, -+ 'Line' => '193', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_free' -+ }, -+ '121175' => { -+ 'Header' => undef, -+ 'Line' => '188', -+ 'Return' => '220', -+ 'ShortName' => 'mad_alloc' -+ }, -+ '121287' => { -+ 'Header' => undef, -+ 'Line' => '171', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'mad_receive_via' -+ }, -+ '121907' => { -+ 'Header' => undef, -+ 'Line' => '166', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'mad_receive' -+ }, -+ '122010' => { -+ 'Header' => undef, -+ 'Line' => '87', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'rstatus', -+ 'type' => '257' -+ }, -+ '3' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_respond_via' -+ }, -+ '123366' => { -+ 'Header' => undef, -+ 'Line' => '82', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'rstatus', -+ 'type' => '257' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_respond' -+ }, -+ '123831' => { -+ 'Header' => undef, -+ 'Line' => '47', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rpc', -+ 'type' => '121019' -+ }, -+ '1' => { -+ 'name' => 'dport', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'rmpp', -+ 'type' => '121025' -+ }, -+ '3' => { -+ 'name' => 'data', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_send' -+ }, -+ '12437' => { -+ 'Header' => undef, -+ 'Line' => '1195', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portinfo_ext' -+ }, -+ '126035' => { -+ 'Header' => undef, -+ 'Line' => '141', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'smp_query' -+ }, -+ '126434' => { -+ 'Header' => undef, -+ 'Line' => '101', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'rstatus', -+ 'type' => '5723' -+ }, -+ '6' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'smp_query_status_via' -+ }, -+ '126882' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Param' => { -+ '0' => { -+ 'name' => 'data', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'smp_set' -+ }, -+ '127066' => { -+ 'Header' => undef, -+ 'Line' => '87', -+ 'Param' => { -+ '0' => { -+ 'name' => 'data', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'smp_set_via' -+ }, -+ '127275' => { -+ 'Header' => undef, -+ 'Line' => '55', -+ 'Param' => { -+ '0' => { -+ 'name' => 'data', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'rstatus', -+ 'type' => '5723' -+ }, -+ '6' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'smp_set_status_via' -+ }, -+ '12740' => { -+ 'Header' => undef, -+ 'Line' => '1189', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_classportinfo' -+ }, -+ '127717' => { -+ 'Header' => undef, -+ 'Line' => '50', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '269', -+ 'ShortName' => 'smp_mkey_get' -+ }, -+ '127766' => { -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ }, -+ '1' => { -+ 'name' => 'mkey', -+ 'type' => '269' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'smp_mkey_set' -+ }, -+ '12903' => { -+ 'Header' => undef, -+ 'Line' => '1183', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_timestamp' -+ }, -+ '130135' => { -+ 'Header' => undef, -+ 'Line' => '58', -+ 'Param' => { -+ '0' => { -+ 'name' => 'data', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'call', -+ 'type' => '130891' -+ }, -+ '3' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'ib_vendor_call_via' -+ }, -+ '13068' => { -+ 'Header' => undef, -+ 'Line' => '1177', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestioncontroltableentry' -+ }, -+ '130918' => { -+ 'Header' => undef, -+ 'Line' => '52', -+ 'Param' => { -+ '0' => { -+ 'name' => 'data', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'call', -+ 'type' => '130891' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'ib_vendor_call' -+ }, -+ '13233' => { -+ 'Header' => undef, -+ 'Line' => '1171', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestioncontroltable' -+ }, -+ '13398' => { -+ 'Header' => undef, -+ 'Line' => '1165', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_cacongestionentry' -+ }, -+ '13563' => { -+ 'Header' => undef, -+ 'Line' => '1159', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_cacongestionsetting' -+ }, -+ '13728' => { -+ 'Header' => undef, -+ 'Line' => '1153', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_switchportcongestionsettingelement' -+ }, -+ '13893' => { -+ 'Header' => undef, -+ 'Line' => '1147', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_switchcongestionsetting' -+ }, -+ '14058' => { -+ 'Header' => undef, -+ 'Line' => '1141', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestionlogentryca' -+ }, -+ '14223' => { -+ 'Header' => undef, -+ 'Line' => '1135', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestionlogca' -+ }, -+ '14388' => { -+ 'Header' => undef, -+ 'Line' => '1129', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestionlogentryswitch' -+ }, -+ '14553' => { -+ 'Header' => undef, -+ 'Line' => '1123', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestionlogswitch' -+ }, -+ '14718' => { -+ 'Header' => undef, -+ 'Line' => '1117', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestionlog' -+ }, -+ '14883' => { -+ 'Header' => undef, -+ 'Line' => '1111', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestionkeyinfo' -+ }, -+ '15048' => { -+ 'Header' => undef, -+ 'Line' => '1105', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_cc_congestioninfo' -+ }, -+ '15213' => { -+ 'Header' => undef, -+ 'Line' => '1099', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_mlnx_ext_port_info' -+ }, -+ '15378' => { -+ 'Header' => undef, -+ 'Line' => '1086', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_vl_xmit_time_cong' -+ }, -+ '15598' => { -+ 'Header' => undef, -+ 'Line' => '1073', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_xmit_con_ctrl' -+ }, -+ '15818' => { -+ 'Header' => undef, -+ 'Line' => '1060', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_sl_rcv_becn' -+ }, -+ '16038' => { -+ 'Header' => undef, -+ 'Line' => '1047', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_sl_rcv_fecn' -+ }, -+ '16258' => { -+ 'Header' => undef, -+ 'Line' => '1033', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_rcv_con_ctrl' -+ }, -+ '16478' => { -+ 'Header' => undef, -+ 'Line' => '1020', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_sw_port_vl_congestion' -+ }, -+ '16698' => { -+ 'Header' => undef, -+ 'Line' => '1007', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_port_vl_xmit_wait_counters' -+ }, -+ '16918' => { -+ 'Header' => undef, -+ 'Line' => '994', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_port_vl_xmit_flow_ctl_update_errors' -+ }, -+ '17138' => { -+ 'Header' => undef, -+ 'Line' => '981', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_port_vl_op_data' -+ }, -+ '17358' => { -+ 'Header' => undef, -+ 'Line' => '968', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_port_vl_op_packet' -+ }, -+ '17578' => { -+ 'Header' => undef, -+ 'Line' => '955', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_port_flow_ctl_counters' -+ }, -+ '17798' => { -+ 'Header' => undef, -+ 'Line' => '942', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_port_op_rcv_counters' -+ }, -+ '18018' => { -+ 'Header' => undef, -+ 'Line' => '937', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_port_ext_speeds_counters' -+ }, -+ '1805' => { -+ 'Data' => 1, -+ 'Header' => undef, -+ 'Line' => '1676', -+ 'Return' => '71', -+ 'ShortName' => 'ibdebug' -+ }, -+ '18183' => { -+ 'Header' => undef, -+ 'Line' => '930', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_port_ext_speeds_counters_rsfec_active' -+ }, -+ '18348' => { -+ 'Header' => undef, -+ 'Line' => '925', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portsamples_result' -+ }, -+ '1851' => { -+ 'Header' => undef, -+ 'Line' => '1521', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rpc', -+ 'type' => '121019' -+ }, -+ '1' => { -+ 'name' => 'dport', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'rmpp', -+ 'type' => '121025' -+ }, -+ '3' => { -+ 'name' => 'data', -+ 'type' => '220' -+ }, -+ '4' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_send_via' -+ }, -+ '18513' => { -+ 'Header' => undef, -+ 'Line' => '920', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portsamples_control' -+ }, -+ '18678' => { -+ 'Header' => undef, -+ 'Line' => '907', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_rcv_err' -+ }, -+ '18898' => { -+ 'Header' => undef, -+ 'Line' => '894', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_xmt_disc' -+ }, -+ '19118' => { -+ 'Header' => undef, -+ 'Line' => '881', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_rcv_sl' -+ }, -+ '1928' => { -+ 'Header' => undef, -+ 'Line' => '1485', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port', -+ 'type' => '1971' -+ }, -+ '1' => { -+ 'name' => 'rpc', -+ 'type' => '96745' -+ }, -+ '2' => { -+ 'name' => 'dport', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'payload', -+ 'type' => '220' -+ }, -+ '4' => { -+ 'name' => 'rcvdata', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'mad_rpc' -+ }, -+ '19337' => { -+ 'Header' => undef, -+ 'Line' => '868', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_xmt_sl' -+ }, -+ '19555' => { -+ 'Header' => undef, -+ 'Line' => '856', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters_ext' -+ }, -+ '19775' => { -+ 'Header' => undef, -+ 'Line' => '838', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_perfcounters' -+ }, -+ '1990' => { -+ 'Header' => undef, -+ 'Line' => '1434', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ } -+ }, -+ 'Return' => '227', -+ 'ShortName' => 'portid2str' -+ }, -+ '20067' => { -+ 'Header' => undef, -+ 'Line' => '833', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_switchinfo' -+ }, -+ '2013' => { -+ 'Header' => undef, -+ 'Line' => '47', -+ 'Param' => { -+ '0' => { -+ 'name' => 'data', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'call', -+ 'type' => '2943' -+ }, -+ '3' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'bm_call_via' -+ }, -+ '20230' => { -+ 'Header' => undef, -+ 'Line' => '828', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portstates' -+ }, -+ '20393' => { -+ 'Header' => undef, -+ 'Line' => '816', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portinfo' -+ }, -+ '20612' => { -+ 'Header' => undef, -+ 'Line' => '811', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_nodeinfo' -+ }, -+ '20775' => { -+ 'Header' => undef, -+ 'Line' => '803', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_nodedesc' -+ }, -+ '20994' => { -+ 'Header' => undef, -+ 'Line' => '797', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'start', -+ 'type' => '71' -+ }, -+ '5' => { -+ 'name' => 'end', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_fields' -+ }, -+ '21549' => { -+ 'Header' => undef, -+ 'Line' => '745', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'num', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_vlarbitration' -+ }, -+ '22448' => { -+ 'Header' => undef, -+ 'Line' => '730', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_sltovl' -+ }, -+ '23134' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_node_type' -+ }, -+ '23746' => { -+ 'Header' => undef, -+ 'Line' => '1639', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_string' -+ }, -+ '24014' => { -+ 'Header' => undef, -+ 'Line' => '1639', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_array' -+ }, -+ '24274' => { -+ 'Header' => undef, -+ 'Line' => '659', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_bitfield' -+ }, -+ '24514' => { -+ 'Header' => undef, -+ 'Line' => '1644', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portcapmask2' -+ }, -+ '25364' => { -+ 'Header' => undef, -+ 'Line' => '1644', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portcapmask' -+ }, -+ '27240' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_opervls' -+ }, -+ '28178' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_vlcap' -+ }, -+ '29003' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_mtu' -+ }, -+ '29828' => { -+ 'Header' => undef, -+ 'Line' => '1644', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_physportstate' -+ }, -+ '30992' => { -+ 'Header' => undef, -+ 'Line' => '1640', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkdowndefstate' -+ }, -+ '31604' => { -+ 'Header' => undef, -+ 'Line' => '1643', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_portstate' -+ }, -+ '32429' => { -+ 'Header' => undef, -+ 'Line' => '1643', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkspeedexten' -+ }, -+ '32648' => { -+ 'Header' => undef, -+ 'Line' => '1642', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkspeedextsup' -+ }, -+ '33608' => { -+ 'Header' => undef, -+ 'Line' => '1642', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkspeedext' -+ }, -+ '34433' => { -+ 'Header' => undef, -+ 'Line' => '1641', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkspeeden' -+ }, -+ '34512' => { -+ 'Header' => undef, -+ 'Line' => '1641', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkspeedsup' -+ }, -+ '35345' => { -+ 'Header' => undef, -+ 'Line' => '1641', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkspeed' -+ }, -+ '36063' => { -+ 'Header' => undef, -+ 'Line' => '1640', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkwidthen' -+ }, -+ '36222' => { -+ 'Header' => undef, -+ 'Line' => '1640', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkwidthsup' -+ }, -+ '37323' => { -+ 'Header' => undef, -+ 'Line' => '1639', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_linkwidth' -+ }, -+ '38150' => { -+ 'Header' => undef, -+ 'Line' => '1638', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_rhex' -+ }, -+ '39010' => { -+ 'Header' => undef, -+ 'Line' => '1638', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_hex' -+ }, -+ '39870' => { -+ 'Header' => undef, -+ 'Line' => '1638', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_uint' -+ }, -+ '40496' => { -+ 'Header' => undef, -+ 'Line' => '43', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'valsz', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_dump_int' -+ }, -+ '48872' => { -+ 'Header' => undef, -+ 'Line' => '1272', -+ 'Param' => { -+ '0' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ } -+ }, -+ 'Return' => '78', -+ 'ShortName' => 'mad_field_name' -+ }, -+ '48923' => { -+ 'Header' => undef, -+ 'Line' => '1265', -+ 'Param' => { -+ '0' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '227' -+ }, -+ '2' => { -+ 'name' => 'bufsz', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'val', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '227', -+ 'ShortName' => 'mad_dump_val' -+ }, -+ '49339' => { -+ 'Header' => undef, -+ 'Line' => '1251', -+ 'Param' => { -+ '0' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '1' => { -+ 'name' => 'name', -+ 'type' => '78' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_print_field' -+ }, -+ '50615' => { -+ 'Header' => undef, -+ 'Line' => '1460', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '2937' -+ }, -+ '1' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '2' => { -+ 'name' => 'val', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_encode_field' -+ }, -+ '51647' => { -+ 'Header' => undef, -+ 'Line' => '1153', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'base_offs', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '3' => { -+ 'name' => 'val', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_get_array' -+ }, -+ '51951' => { -+ 'Header' => undef, -+ 'Line' => '1457', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'base_offs', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '3' => { -+ 'name' => 'val', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_set_array' -+ }, -+ '52255' => { -+ 'Header' => undef, -+ 'Line' => '1455', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'base_offs', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '3' => { -+ 'name' => 'val', -+ 'type' => '269' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_set_field64' -+ }, -+ '52558' => { -+ 'Header' => undef, -+ 'Line' => '1454', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'base_offs', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ } -+ }, -+ 'Return' => '269', -+ 'ShortName' => 'mad_get_field64' -+ }, -+ '5272' => { -+ 'Header' => undef, -+ 'Line' => '79', -+ 'Param' => { -+ '0' => { -+ 'name' => 'payload', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '2' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '6' => { -+ 'name' => 'rstatus', -+ 'type' => '5723' -+ }, -+ '7' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ }, -+ '8' => { -+ 'name' => 'cckey', -+ 'type' => '269' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'cc_config_status_via' -+ }, -+ '52760' => { -+ 'Header' => undef, -+ 'Line' => '1451', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'base_offs', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ }, -+ '3' => { -+ 'name' => 'val', -+ 'type' => '257' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_set_field' -+ }, -+ '52938' => { -+ 'Header' => undef, -+ 'Line' => '1450', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'base_offs', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'field', -+ 'type' => '7042' -+ } -+ }, -+ 'Return' => '257', -+ 'ShortName' => 'mad_get_field' -+ }, -+ '5750' => { -+ 'Header' => undef, -+ 'Line' => '44', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'rstatus', -+ 'type' => '5723' -+ }, -+ '6' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ }, -+ '7' => { -+ 'name' => 'cckey', -+ 'type' => '269' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'cc_query_status_via' -+ }, -+ '60930' => { -+ 'Header' => undef, -+ 'Line' => '83', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'dest', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'port', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'mask', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'id', -+ 'type' => '108' -+ }, -+ '6' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'performance_reset_via' -+ }, -+ '61751' => { -+ 'Header' => undef, -+ 'Line' => '46', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'dest', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'port', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'id', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'pma_query_via' -+ }, -+ '69975' => { -+ 'Header' => undef, -+ 'Line' => '1469', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'rpc', -+ 'type' => '70758' -+ }, -+ '2' => { -+ 'name' => 'dport', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'rmpp', -+ 'type' => '70770' -+ }, -+ '4' => { -+ 'name' => 'data', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_build_pkt' -+ }, -+ '70782' => { -+ 'Header' => undef, -+ 'Line' => '82', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'rpc', -+ 'type' => '70758' -+ }, -+ '2' => { -+ 'name' => 'drpath', -+ 'type' => '72191' -+ }, -+ '3' => { -+ 'name' => 'data', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'mad_encode' -+ }, -+ '72224' => { -+ 'Header' => undef, -+ 'Line' => '1496', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_get_retries' -+ }, -+ '72279' => { -+ 'Header' => undef, -+ 'Line' => '1495', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ }, -+ '1' => { -+ 'name' => 'override_ms', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_get_timeout' -+ }, -+ '72342' => { -+ 'Header' => undef, -+ 'Line' => '1468', -+ 'Return' => '269', -+ 'ShortName' => 'mad_trid' -+ }, -+ '73926' => { -+ 'Header' => undef, -+ 'Line' => '110', -+ 'Param' => { -+ '0' => { -+ 'name' => 'path', -+ 'type' => '74295' -+ }, -+ '1' => { -+ 'name' => 'dstr', -+ 'type' => '227' -+ }, -+ '2' => { -+ 'name' => 'dstr_size', -+ 'type' => '45' -+ } -+ }, -+ 'Return' => '227', -+ 'ShortName' => 'drpath2str' -+ }, -+ '74301' => { -+ 'Header' => undef, -+ 'Line' => '1436', -+ 'Param' => { -+ '0' => { -+ 'name' => 'path', -+ 'type' => '74295' -+ }, -+ '1' => { -+ 'name' => 'routepath', -+ 'type' => '227' -+ }, -+ '2' => { -+ 'name' => 'drslid', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'drdlid', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'str2drpath' -+ }, -+ '75356' => { -+ 'Header' => undef, -+ 'Line' => '44', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'portid2portnum' -+ }, -+ '76704' => { -+ 'Header' => undef, -+ 'Line' => '107', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_rpc_portid' -+ }, -+ '76815' => { -+ 'Header' => undef, -+ 'Line' => '126', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'rmpp_version', -+ 'type' => '233' -+ }, -+ '2' => { -+ 'name' => 'method_mask', -+ 'type' => '76698' -+ }, -+ '3' => { -+ 'name' => 'class_oui', -+ 'type' => '257' -+ }, -+ '4' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_register_server_via' -+ }, -+ '77621' => { -+ 'Header' => undef, -+ 'Line' => '119', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'rmpp_version', -+ 'type' => '233' -+ }, -+ '2' => { -+ 'name' => 'method_mask', -+ 'type' => '76698' -+ }, -+ '3' => { -+ 'name' => 'class_oui', -+ 'type' => '257' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_register_server' -+ }, -+ '77781' => { -+ 'Header' => undef, -+ 'Line' => '1506', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'rmpp_version', -+ 'type' => '233' -+ }, -+ '2' => { -+ 'name' => 'srcport', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_register_client_via' -+ }, -+ '77949' => { -+ 'Header' => undef, -+ 'Line' => '97', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'rmpp_version', -+ 'type' => '233' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_register_client' -+ }, -+ '78436' => { -+ 'Header' => undef, -+ 'Line' => '74', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'mad_class_agent' -+ }, -+ '85050' => { -+ 'Header' => undef, -+ 'Line' => '111', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ }, -+ '1' => { -+ 'name' => 'srcgid', -+ 'type' => '2937' -+ }, -+ '2' => { -+ 'name' => 'destgid', -+ 'type' => '2937' -+ }, -+ '3' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '4' => { -+ 'name' => 'buf', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_path_query_via' -+ }, -+ '85152' => { -+ 'Header' => undef, -+ 'Line' => '133', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rcvbuf', -+ 'type' => '220' -+ }, -+ '1' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '108' -+ }, -+ '5' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '2937', -+ 'ShortName' => 'smp_query_via' -+ }, -+ '85200' => { -+ 'Header' => undef, -+ 'Line' => '241', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'portnum', -+ 'type' => '5723' -+ }, -+ '2' => { -+ 'name' => 'gid', -+ 'type' => '85330' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_self' -+ }, -+ '85336' => { -+ 'Header' => undef, -+ 'Line' => '213', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'portnum', -+ 'type' => '5723' -+ }, -+ '2' => { -+ 'name' => 'gid', -+ 'type' => '85330' -+ }, -+ '3' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_self_via' -+ }, -+ '85907' => { -+ 'Header' => undef, -+ 'Line' => '206', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'addr_str', -+ 'type' => '227' -+ }, -+ '2' => { -+ 'name' => 'dest_type', -+ 'type' => '84623' -+ }, -+ '3' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_portid_str' -+ }, -+ '86064' => { -+ 'Header' => undef, -+ 'Line' => '137', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'addr_str', -+ 'type' => '227' -+ }, -+ '2' => { -+ 'name' => 'dest_type', -+ 'type' => '84623' -+ }, -+ '3' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '4' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_portid_str_via' -+ }, -+ '87052' => { -+ 'Header' => undef, -+ 'Line' => '97', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'guid', -+ 'type' => '87671' -+ }, -+ '2' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_guid_via' -+ }, -+ '87693' => { -+ 'Header' => undef, -+ 'Line' => '75', -+ 'Param' => { -+ '0' => { -+ 'name' => 'portid', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'gid', -+ 'type' => '2937' -+ }, -+ '2' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_gid_via' -+ }, -+ '87968' => { -+ 'Header' => undef, -+ 'Line' => '70', -+ 'Param' => { -+ '0' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_smlid' -+ }, -+ '88071' => { -+ 'Header' => undef, -+ 'Line' => '48', -+ 'Param' => { -+ '0' => { -+ 'name' => 'sm_id', -+ 'type' => '1900' -+ }, -+ '1' => { -+ 'name' => 'timeout', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'srcport', -+ 'type' => '1971' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => 'ib_resolve_smlid_via' -+ }, -+ '96769' => { -+ 'Header' => undef, -+ 'Line' => '434', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port', -+ 'type' => '1912' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mad_rpc_close_port' -+ }, -+ '96856' => { -+ 'Header' => undef, -+ 'Line' => '373', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dev_name', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'dev_port', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'mgmt_classes', -+ 'type' => '5723' -+ }, -+ '3' => { -+ 'name' => 'num_classes', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1912', -+ 'ShortName' => 'mad_rpc_open_port' -+ }, -+ '97973' => { -+ 'Header' => undef, -+ 'Line' => '345', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dev_name', -+ 'type' => '227' -+ }, -+ '1' => { -+ 'name' => 'dev_port', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'mgmt_classes', -+ 'type' => '5723' -+ }, -+ '3' => { -+ 'name' => 'num_classes', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'madrpc_init' -+ }, -+ '98777' => { -+ 'Header' => undef, -+ 'Line' => '338', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rpc', -+ 'type' => '96745' -+ }, -+ '1' => { -+ 'name' => 'dport', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'rmpp', -+ 'type' => '96751' -+ }, -+ '3' => { -+ 'name' => 'data', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'madrpc_rmpp' -+ }, -+ '98939' => { -+ 'Header' => undef, -+ 'Line' => '333', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rpc', -+ 'type' => '96745' -+ }, -+ '1' => { -+ 'name' => 'dport', -+ 'type' => '1900' -+ }, -+ '2' => { -+ 'name' => 'payload', -+ 'type' => '220' -+ }, -+ '3' => { -+ 'name' => 'rcvdata', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'madrpc' -+ }, -+ '99101' => { -+ 'Header' => undef, -+ 'Line' => '1488', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port', -+ 'type' => '1971' -+ }, -+ '1' => { -+ 'name' => 'rpc', -+ 'type' => '96745' -+ }, -+ '2' => { -+ 'name' => 'dport', -+ 'type' => '1900' -+ }, -+ '3' => { -+ 'name' => 'rmpp', -+ 'type' => '96751' -+ }, -+ '4' => { -+ 'name' => 'data', -+ 'type' => '220' -+ } -+ }, -+ 'Return' => '220', -+ 'ShortName' => 'mad_rpc_rmpp' -+ } -+ }, -+ 'SymbolVersion' => { -+ 'bm_call_via' => 'bm_call_via@@IBMAD_1.3', -+ 'cc_config_status_via' => 'cc_config_status_via@@IBMAD_1.3', -+ 'cc_query_status_via' => 'cc_query_status_via@@IBMAD_1.3', -+ 'drpath2str' => 'drpath2str@@IBMAD_1.3', -+ 'ib_node_query_via' => 'ib_node_query_via@@IBMAD_1.3', -+ 'ib_path_query' => 'ib_path_query@@IBMAD_1.3', -+ 'ib_path_query_via' => 'ib_path_query_via@@IBMAD_1.3', -+ 'ib_resolve_gid_via' => 'ib_resolve_gid_via@@IBMAD_1.3', -+ 'ib_resolve_guid_via' => 'ib_resolve_guid_via@@IBMAD_1.3', -+ 'ib_resolve_portid_str' => 'ib_resolve_portid_str@@IBMAD_1.3', -+ 'ib_resolve_portid_str_via' => 'ib_resolve_portid_str_via@@IBMAD_1.3', -+ 'ib_resolve_self' => 'ib_resolve_self@@IBMAD_1.3', -+ 'ib_resolve_self_via' => 'ib_resolve_self_via@@IBMAD_1.3', -+ 'ib_resolve_smlid' => 'ib_resolve_smlid@@IBMAD_1.3', -+ 'ib_resolve_smlid_via' => 'ib_resolve_smlid_via@@IBMAD_1.3', -+ 'ib_vendor_call' => 'ib_vendor_call@@IBMAD_1.3', -+ 'ib_vendor_call_via' => 'ib_vendor_call_via@@IBMAD_1.3', -+ 'ibdebug' => 'ibdebug@@IBMAD_1.3', -+ 'mad_alloc' => 'mad_alloc@@IBMAD_1.3', -+ 'mad_build_pkt' => 'mad_build_pkt@@IBMAD_1.3', -+ 'mad_class_agent' => 'mad_class_agent@@IBMAD_1.3', -+ 'mad_decode_field' => 'mad_decode_field@@IBMAD_1.3', -+ 'mad_dump_array' => 'mad_dump_array@@IBMAD_1.3', -+ 'mad_dump_bitfield' => 'mad_dump_bitfield@@IBMAD_1.3', -+ 'mad_dump_cc_cacongestionentry' => 'mad_dump_cc_cacongestionentry@@IBMAD_1.3', -+ 'mad_dump_cc_cacongestionsetting' => 'mad_dump_cc_cacongestionsetting@@IBMAD_1.3', -+ 'mad_dump_cc_congestioncontroltable' => 'mad_dump_cc_congestioncontroltable@@IBMAD_1.3', -+ 'mad_dump_cc_congestioncontroltableentry' => 'mad_dump_cc_congestioncontroltableentry@@IBMAD_1.3', -+ 'mad_dump_cc_congestioninfo' => 'mad_dump_cc_congestioninfo@@IBMAD_1.3', -+ 'mad_dump_cc_congestionkeyinfo' => 'mad_dump_cc_congestionkeyinfo@@IBMAD_1.3', -+ 'mad_dump_cc_congestionlog' => 'mad_dump_cc_congestionlog@@IBMAD_1.3', -+ 'mad_dump_cc_congestionlogca' => 'mad_dump_cc_congestionlogca@@IBMAD_1.3', -+ 'mad_dump_cc_congestionlogentryca' => 'mad_dump_cc_congestionlogentryca@@IBMAD_1.3', -+ 'mad_dump_cc_congestionlogentryswitch' => 'mad_dump_cc_congestionlogentryswitch@@IBMAD_1.3', -+ 'mad_dump_cc_congestionlogswitch' => 'mad_dump_cc_congestionlogswitch@@IBMAD_1.3', -+ 'mad_dump_cc_switchcongestionsetting' => 'mad_dump_cc_switchcongestionsetting@@IBMAD_1.3', -+ 'mad_dump_cc_switchportcongestionsettingelement' => 'mad_dump_cc_switchportcongestionsettingelement@@IBMAD_1.3', -+ 'mad_dump_cc_timestamp' => 'mad_dump_cc_timestamp@@IBMAD_1.3', -+ 'mad_dump_classportinfo' => 'mad_dump_classportinfo@@IBMAD_1.3', -+ 'mad_dump_field' => 'mad_dump_field@@IBMAD_1.3', -+ 'mad_dump_fields' => 'mad_dump_fields@@IBMAD_1.3', -+ 'mad_dump_hex' => 'mad_dump_hex@@IBMAD_1.3', -+ 'mad_dump_int' => 'mad_dump_int@@IBMAD_1.3', -+ 'mad_dump_linkdowndefstate' => 'mad_dump_linkdowndefstate@@IBMAD_1.3', -+ 'mad_dump_linkspeed' => 'mad_dump_linkspeed@@IBMAD_1.3', -+ 'mad_dump_linkspeeden' => 'mad_dump_linkspeeden@@IBMAD_1.3', -+ 'mad_dump_linkspeedext' => 'mad_dump_linkspeedext@@IBMAD_1.3', -+ 'mad_dump_linkspeedexten' => 'mad_dump_linkspeedexten@@IBMAD_1.3', -+ 'mad_dump_linkspeedextsup' => 'mad_dump_linkspeedextsup@@IBMAD_1.3', -+ 'mad_dump_linkspeedsup' => 'mad_dump_linkspeedsup@@IBMAD_1.3', -+ 'mad_dump_linkwidth' => 'mad_dump_linkwidth@@IBMAD_1.3', -+ 'mad_dump_linkwidthen' => 'mad_dump_linkwidthen@@IBMAD_1.3', -+ 'mad_dump_linkwidthsup' => 'mad_dump_linkwidthsup@@IBMAD_1.3', -+ 'mad_dump_mlnx_ext_port_info' => 'mad_dump_mlnx_ext_port_info@@IBMAD_1.3', -+ 'mad_dump_mtu' => 'mad_dump_mtu@@IBMAD_1.3', -+ 'mad_dump_node_type' => 'mad_dump_node_type@@IBMAD_1.3', -+ 'mad_dump_nodedesc' => 'mad_dump_nodedesc@@IBMAD_1.3', -+ 'mad_dump_nodeinfo' => 'mad_dump_nodeinfo@@IBMAD_1.3', -+ 'mad_dump_opervls' => 'mad_dump_opervls@@IBMAD_1.3', -+ 'mad_dump_perfcounters' => 'mad_dump_perfcounters@@IBMAD_1.3', -+ 'mad_dump_perfcounters_ext' => 'mad_dump_perfcounters_ext@@IBMAD_1.3', -+ 'mad_dump_perfcounters_port_flow_ctl_counters' => 'mad_dump_perfcounters_port_flow_ctl_counters@@IBMAD_1.3', -+ 'mad_dump_perfcounters_port_op_rcv_counters' => 'mad_dump_perfcounters_port_op_rcv_counters@@IBMAD_1.3', -+ 'mad_dump_perfcounters_port_vl_op_data' => 'mad_dump_perfcounters_port_vl_op_data@@IBMAD_1.3', -+ 'mad_dump_perfcounters_port_vl_op_packet' => 'mad_dump_perfcounters_port_vl_op_packet@@IBMAD_1.3', -+ 'mad_dump_perfcounters_port_vl_xmit_flow_ctl_update_errors' => 'mad_dump_perfcounters_port_vl_xmit_flow_ctl_update_errors@@IBMAD_1.3', -+ 'mad_dump_perfcounters_port_vl_xmit_wait_counters' => 'mad_dump_perfcounters_port_vl_xmit_wait_counters@@IBMAD_1.3', -+ 'mad_dump_perfcounters_rcv_con_ctrl' => 'mad_dump_perfcounters_rcv_con_ctrl@@IBMAD_1.3', -+ 'mad_dump_perfcounters_rcv_err' => 'mad_dump_perfcounters_rcv_err@@IBMAD_1.3', -+ 'mad_dump_perfcounters_rcv_sl' => 'mad_dump_perfcounters_rcv_sl@@IBMAD_1.3', -+ 'mad_dump_perfcounters_sl_rcv_becn' => 'mad_dump_perfcounters_sl_rcv_becn@@IBMAD_1.3', -+ 'mad_dump_perfcounters_sl_rcv_fecn' => 'mad_dump_perfcounters_sl_rcv_fecn@@IBMAD_1.3', -+ 'mad_dump_perfcounters_sw_port_vl_congestion' => 'mad_dump_perfcounters_sw_port_vl_congestion@@IBMAD_1.3', -+ 'mad_dump_perfcounters_vl_xmit_time_cong' => 'mad_dump_perfcounters_vl_xmit_time_cong@@IBMAD_1.3', -+ 'mad_dump_perfcounters_xmit_con_ctrl' => 'mad_dump_perfcounters_xmit_con_ctrl@@IBMAD_1.3', -+ 'mad_dump_perfcounters_xmt_disc' => 'mad_dump_perfcounters_xmt_disc@@IBMAD_1.3', -+ 'mad_dump_perfcounters_xmt_sl' => 'mad_dump_perfcounters_xmt_sl@@IBMAD_1.3', -+ 'mad_dump_physportstate' => 'mad_dump_physportstate@@IBMAD_1.3', -+ 'mad_dump_port_ext_speeds_counters' => 'mad_dump_port_ext_speeds_counters@@IBMAD_1.3', -+ 'mad_dump_port_ext_speeds_counters_rsfec_active' => 'mad_dump_port_ext_speeds_counters_rsfec_active@@IBMAD_1.3', -+ 'mad_dump_portcapmask' => 'mad_dump_portcapmask@@IBMAD_1.3', -+ 'mad_dump_portcapmask2' => 'mad_dump_portcapmask2@@IBMAD_1.3', -+ 'mad_dump_portinfo' => 'mad_dump_portinfo@@IBMAD_1.3', -+ 'mad_dump_portinfo_ext' => 'mad_dump_portinfo_ext@@IBMAD_1.3', -+ 'mad_dump_portsamples_control' => 'mad_dump_portsamples_control@@IBMAD_1.3', -+ 'mad_dump_portsamples_result' => 'mad_dump_portsamples_result@@IBMAD_1.3', -+ 'mad_dump_portstate' => 'mad_dump_portstate@@IBMAD_1.3', -+ 'mad_dump_portstates' => 'mad_dump_portstates@@IBMAD_1.3', -+ 'mad_dump_rhex' => 'mad_dump_rhex@@IBMAD_1.3', -+ 'mad_dump_sltovl' => 'mad_dump_sltovl@@IBMAD_1.3', -+ 'mad_dump_string' => 'mad_dump_string@@IBMAD_1.3', -+ 'mad_dump_switchinfo' => 'mad_dump_switchinfo@@IBMAD_1.3', -+ 'mad_dump_uint' => 'mad_dump_uint@@IBMAD_1.3', -+ 'mad_dump_val' => 'mad_dump_val@@IBMAD_1.3', -+ 'mad_dump_vlarbitration' => 'mad_dump_vlarbitration@@IBMAD_1.3', -+ 'mad_dump_vlcap' => 'mad_dump_vlcap@@IBMAD_1.3', -+ 'mad_encode' => 'mad_encode@@IBMAD_1.3', -+ 'mad_encode_field' => 'mad_encode_field@@IBMAD_1.3', -+ 'mad_field_name' => 'mad_field_name@@IBMAD_1.3', -+ 'mad_free' => 'mad_free@@IBMAD_1.3', -+ 'mad_get_array' => 'mad_get_array@@IBMAD_1.3', -+ 'mad_get_field' => 'mad_get_field@@IBMAD_1.3', -+ 'mad_get_field64' => 'mad_get_field64@@IBMAD_1.3', -+ 'mad_get_retries' => 'mad_get_retries@@IBMAD_1.3', -+ 'mad_get_timeout' => 'mad_get_timeout@@IBMAD_1.3', -+ 'mad_print_field' => 'mad_print_field@@IBMAD_1.3', -+ 'mad_receive' => 'mad_receive@@IBMAD_1.3', -+ 'mad_receive_via' => 'mad_receive_via@@IBMAD_1.3', -+ 'mad_register_client' => 'mad_register_client@@IBMAD_1.3', -+ 'mad_register_client_via' => 'mad_register_client_via@@IBMAD_1.3', -+ 'mad_register_server' => 'mad_register_server@@IBMAD_1.3', -+ 'mad_register_server_via' => 'mad_register_server_via@@IBMAD_1.3', -+ 'mad_respond' => 'mad_respond@@IBMAD_1.3', -+ 'mad_respond_via' => 'mad_respond_via@@IBMAD_1.3', -+ 'mad_rpc' => 'mad_rpc@@IBMAD_1.3', -+ 'mad_rpc_class_agent' => 'mad_rpc_class_agent@@IBMAD_1.3', -+ 'mad_rpc_close_port' => 'mad_rpc_close_port@@IBMAD_1.3', -+ 'mad_rpc_open_port' => 'mad_rpc_open_port@@IBMAD_1.3', -+ 'mad_rpc_portid' => 'mad_rpc_portid@@IBMAD_1.3', -+ 'mad_rpc_rmpp' => 'mad_rpc_rmpp@@IBMAD_1.3', -+ 'mad_rpc_set_retries' => 'mad_rpc_set_retries@@IBMAD_1.3', -+ 'mad_rpc_set_timeout' => 'mad_rpc_set_timeout@@IBMAD_1.3', -+ 'mad_send' => 'mad_send@@IBMAD_1.3', -+ 'mad_send_via' => 'mad_send_via@@IBMAD_1.3', -+ 'mad_set_array' => 'mad_set_array@@IBMAD_1.3', -+ 'mad_set_field' => 'mad_set_field@@IBMAD_1.3', -+ 'mad_set_field64' => 'mad_set_field64@@IBMAD_1.3', -+ 'mad_trid' => 'mad_trid@@IBMAD_1.3', -+ 'madrpc' => 'madrpc@@IBMAD_1.3', -+ 'madrpc_init' => 'madrpc_init@@IBMAD_1.3', -+ 'madrpc_portid' => 'madrpc_portid@@IBMAD_1.3', -+ 'madrpc_rmpp' => 'madrpc_rmpp@@IBMAD_1.3', -+ 'madrpc_save_mad' => 'madrpc_save_mad@@IBMAD_1.3', -+ 'madrpc_set_retries' => 'madrpc_set_retries@@IBMAD_1.3', -+ 'madrpc_set_timeout' => 'madrpc_set_timeout@@IBMAD_1.3', -+ 'madrpc_show_errors' => 'madrpc_show_errors@@IBMAD_1.3', -+ 'performance_reset_via' => 'performance_reset_via@@IBMAD_1.3', -+ 'pma_query_via' => 'pma_query_via@@IBMAD_1.3', -+ 'portid2portnum' => 'portid2portnum@@IBMAD_1.3', -+ 'portid2str' => 'portid2str@@IBMAD_1.3', -+ 'sa_call' => 'sa_call@@IBMAD_1.3', -+ 'sa_rpc_call' => 'sa_rpc_call@@IBMAD_1.3', -+ 'smp_mkey_get' => 'smp_mkey_get@@IBMAD_1.3', -+ 'smp_mkey_set' => 'smp_mkey_set@@IBMAD_1.3', -+ 'smp_query' => 'smp_query@@IBMAD_1.3', -+ 'smp_query_status_via' => 'smp_query_status_via@@IBMAD_1.3', -+ 'smp_query_via' => 'smp_query_via@@IBMAD_1.3', -+ 'smp_set' => 'smp_set@@IBMAD_1.3', -+ 'smp_set_status_via' => 'smp_set_status_via@@IBMAD_1.3', -+ 'smp_set_via' => 'smp_set_via@@IBMAD_1.3', -+ 'str2drpath' => 'str2drpath@@IBMAD_1.3', -+ 'xdump' => 'xdump@@IBMAD_1.3' -+ }, -+ 'Symbols' => { -+ 'libibmad.so.5.3.41.0' => { -+ 'bm_call_via@@IBMAD_1.3' => 1, -+ 'cc_config_status_via@@IBMAD_1.3' => 1, -+ 'cc_query_status_via@@IBMAD_1.3' => 1, -+ 'drpath2str@@IBMAD_1.3' => 1, -+ 'ib_node_query_via@@IBMAD_1.3' => 1, -+ 'ib_path_query@@IBMAD_1.3' => 1, -+ 'ib_path_query_via@@IBMAD_1.3' => 1, -+ 'ib_resolve_gid_via@@IBMAD_1.3' => 1, -+ 'ib_resolve_guid_via@@IBMAD_1.3' => 1, -+ 'ib_resolve_portid_str@@IBMAD_1.3' => 1, -+ 'ib_resolve_portid_str_via@@IBMAD_1.3' => 1, -+ 'ib_resolve_self@@IBMAD_1.3' => 1, -+ 'ib_resolve_self_via@@IBMAD_1.3' => 1, -+ 'ib_resolve_smlid@@IBMAD_1.3' => 1, -+ 'ib_resolve_smlid_via@@IBMAD_1.3' => 1, -+ 'ib_vendor_call@@IBMAD_1.3' => 1, -+ 'ib_vendor_call_via@@IBMAD_1.3' => 1, -+ 'ibdebug@@IBMAD_1.3' => -4, -+ 'mad_alloc@@IBMAD_1.3' => 1, -+ 'mad_build_pkt@@IBMAD_1.3' => 1, -+ 'mad_class_agent@@IBMAD_1.3' => 1, -+ 'mad_decode_field@@IBMAD_1.3' => 1, -+ 'mad_dump_array@@IBMAD_1.3' => 1, -+ 'mad_dump_bitfield@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_cacongestionentry@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_cacongestionsetting@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestioncontroltable@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestioncontroltableentry@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestioninfo@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestionkeyinfo@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestionlog@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestionlogca@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestionlogentryca@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestionlogentryswitch@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_congestionlogswitch@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_switchcongestionsetting@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_switchportcongestionsettingelement@@IBMAD_1.3' => 1, -+ 'mad_dump_cc_timestamp@@IBMAD_1.3' => 1, -+ 'mad_dump_classportinfo@@IBMAD_1.3' => 1, -+ 'mad_dump_field@@IBMAD_1.3' => 1, -+ 'mad_dump_fields@@IBMAD_1.3' => 1, -+ 'mad_dump_hex@@IBMAD_1.3' => 1, -+ 'mad_dump_int@@IBMAD_1.3' => 1, -+ 'mad_dump_linkdowndefstate@@IBMAD_1.3' => 1, -+ 'mad_dump_linkspeed@@IBMAD_1.3' => 1, -+ 'mad_dump_linkspeeden@@IBMAD_1.3' => 1, -+ 'mad_dump_linkspeedext@@IBMAD_1.3' => 1, -+ 'mad_dump_linkspeedexten@@IBMAD_1.3' => 1, -+ 'mad_dump_linkspeedextsup@@IBMAD_1.3' => 1, -+ 'mad_dump_linkspeedsup@@IBMAD_1.3' => 1, -+ 'mad_dump_linkwidth@@IBMAD_1.3' => 1, -+ 'mad_dump_linkwidthen@@IBMAD_1.3' => 1, -+ 'mad_dump_linkwidthsup@@IBMAD_1.3' => 1, -+ 'mad_dump_mlnx_ext_port_info@@IBMAD_1.3' => 1, -+ 'mad_dump_mtu@@IBMAD_1.3' => 1, -+ 'mad_dump_node_type@@IBMAD_1.3' => 1, -+ 'mad_dump_nodedesc@@IBMAD_1.3' => 1, -+ 'mad_dump_nodeinfo@@IBMAD_1.3' => 1, -+ 'mad_dump_opervls@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_ext@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_port_flow_ctl_counters@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_port_op_rcv_counters@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_port_vl_op_data@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_port_vl_op_packet@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_port_vl_xmit_flow_ctl_update_errors@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_port_vl_xmit_wait_counters@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_rcv_con_ctrl@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_rcv_err@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_rcv_sl@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_sl_rcv_becn@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_sl_rcv_fecn@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_sw_port_vl_congestion@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_vl_xmit_time_cong@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_xmit_con_ctrl@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_xmt_disc@@IBMAD_1.3' => 1, -+ 'mad_dump_perfcounters_xmt_sl@@IBMAD_1.3' => 1, -+ 'mad_dump_physportstate@@IBMAD_1.3' => 1, -+ 'mad_dump_port_ext_speeds_counters@@IBMAD_1.3' => 1, -+ 'mad_dump_port_ext_speeds_counters_rsfec_active@@IBMAD_1.3' => 1, -+ 'mad_dump_portcapmask2@@IBMAD_1.3' => 1, -+ 'mad_dump_portcapmask@@IBMAD_1.3' => 1, -+ 'mad_dump_portinfo@@IBMAD_1.3' => 1, -+ 'mad_dump_portinfo_ext@@IBMAD_1.3' => 1, -+ 'mad_dump_portsamples_control@@IBMAD_1.3' => 1, -+ 'mad_dump_portsamples_result@@IBMAD_1.3' => 1, -+ 'mad_dump_portstate@@IBMAD_1.3' => 1, -+ 'mad_dump_portstates@@IBMAD_1.3' => 1, -+ 'mad_dump_rhex@@IBMAD_1.3' => 1, -+ 'mad_dump_sltovl@@IBMAD_1.3' => 1, -+ 'mad_dump_string@@IBMAD_1.3' => 1, -+ 'mad_dump_switchinfo@@IBMAD_1.3' => 1, -+ 'mad_dump_uint@@IBMAD_1.3' => 1, -+ 'mad_dump_val@@IBMAD_1.3' => 1, -+ 'mad_dump_vlarbitration@@IBMAD_1.3' => 1, -+ 'mad_dump_vlcap@@IBMAD_1.3' => 1, -+ 'mad_encode@@IBMAD_1.3' => 1, -+ 'mad_encode_field@@IBMAD_1.3' => 1, -+ 'mad_field_name@@IBMAD_1.3' => 1, -+ 'mad_free@@IBMAD_1.3' => 1, -+ 'mad_get_array@@IBMAD_1.3' => 1, -+ 'mad_get_field64@@IBMAD_1.3' => 1, -+ 'mad_get_field@@IBMAD_1.3' => 1, -+ 'mad_get_retries@@IBMAD_1.3' => 1, -+ 'mad_get_timeout@@IBMAD_1.3' => 1, -+ 'mad_print_field@@IBMAD_1.3' => 1, -+ 'mad_receive@@IBMAD_1.3' => 1, -+ 'mad_receive_via@@IBMAD_1.3' => 1, -+ 'mad_register_client@@IBMAD_1.3' => 1, -+ 'mad_register_client_via@@IBMAD_1.3' => 1, -+ 'mad_register_server@@IBMAD_1.3' => 1, -+ 'mad_register_server_via@@IBMAD_1.3' => 1, -+ 'mad_respond@@IBMAD_1.3' => 1, -+ 'mad_respond_via@@IBMAD_1.3' => 1, -+ 'mad_rpc@@IBMAD_1.3' => 1, -+ 'mad_rpc_class_agent@@IBMAD_1.3' => 1, -+ 'mad_rpc_close_port@@IBMAD_1.3' => 1, -+ 'mad_rpc_open_port@@IBMAD_1.3' => 1, -+ 'mad_rpc_portid@@IBMAD_1.3' => 1, -+ 'mad_rpc_rmpp@@IBMAD_1.3' => 1, -+ 'mad_rpc_set_retries@@IBMAD_1.3' => 1, -+ 'mad_rpc_set_timeout@@IBMAD_1.3' => 1, -+ 'mad_send@@IBMAD_1.3' => 1, -+ 'mad_send_via@@IBMAD_1.3' => 1, -+ 'mad_set_array@@IBMAD_1.3' => 1, -+ 'mad_set_field64@@IBMAD_1.3' => 1, -+ 'mad_set_field@@IBMAD_1.3' => 1, -+ 'mad_trid@@IBMAD_1.3' => 1, -+ 'madrpc@@IBMAD_1.3' => 1, -+ 'madrpc_init@@IBMAD_1.3' => 1, -+ 'madrpc_portid@@IBMAD_1.3' => 1, -+ 'madrpc_rmpp@@IBMAD_1.3' => 1, -+ 'madrpc_save_mad@@IBMAD_1.3' => 1, -+ 'madrpc_set_retries@@IBMAD_1.3' => 1, -+ 'madrpc_set_timeout@@IBMAD_1.3' => 1, -+ 'madrpc_show_errors@@IBMAD_1.3' => 1, -+ 'performance_reset_via@@IBMAD_1.3' => 1, -+ 'pma_query_via@@IBMAD_1.3' => 1, -+ 'portid2portnum@@IBMAD_1.3' => 1, -+ 'portid2str@@IBMAD_1.3' => 1, -+ 'sa_call@@IBMAD_1.3' => 1, -+ 'sa_rpc_call@@IBMAD_1.3' => 1, -+ 'smp_mkey_get@@IBMAD_1.3' => 1, -+ 'smp_mkey_set@@IBMAD_1.3' => 1, -+ 'smp_query@@IBMAD_1.3' => 1, -+ 'smp_query_status_via@@IBMAD_1.3' => 1, -+ 'smp_query_via@@IBMAD_1.3' => 1, -+ 'smp_set@@IBMAD_1.3' => 1, -+ 'smp_set_status_via@@IBMAD_1.3' => 1, -+ 'smp_set_via@@IBMAD_1.3' => 1, -+ 'str2drpath@@IBMAD_1.3' => 1, -+ 'xdump@@IBMAD_1.3' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '101' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '1052' => { -+ 'BaseType' => '818', -+ 'Header' => undef, -+ 'Line' => '243', -+ 'Name' => 'ibmad_gid_t', -+ 'Size' => '16', -+ 'Type' => 'Typedef' -+ }, -+ '108' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '111056' => { -+ 'Header' => undef, -+ 'Line' => '1374', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'attrid', -+ 'offset' => '0', -+ 'type' => '108' -+ }, -+ '1' => { -+ 'name' => 'mod', -+ 'offset' => '4', -+ 'type' => '108' -+ }, -+ '2' => { -+ 'name' => 'mask', -+ 'offset' => '8', -+ 'type' => '269' -+ }, -+ '3' => { -+ 'name' => 'method', -+ 'offset' => '16', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'trid', -+ 'offset' => '24', -+ 'type' => '269' -+ }, -+ '5' => { -+ 'name' => 'recsz', -+ 'offset' => '32', -+ 'type' => '108' -+ }, -+ '6' => { -+ 'name' => 'rmpp', -+ 'offset' => '36', -+ 'type' => '111043' -+ } -+ }, -+ 'Name' => 'struct ib_sa_call', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '111169' => { -+ 'BaseType' => '111056', -+ 'Header' => undef, -+ 'Line' => '1383', -+ 'Name' => 'ib_sa_call_t', -+ 'Size' => '56', -+ 'Type' => 'Typedef' -+ }, -+ '113003' => { -+ 'BaseType' => '111169', -+ 'Name' => 'ib_sa_call_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '115' => { -+ 'Name' => 'signed char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '122' => { -+ 'BaseType' => '101', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '129677' => { -+ 'Header' => undef, -+ 'Line' => '1385', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'method', -+ 'offset' => '0', -+ 'type' => '108' -+ }, -+ '1' => { -+ 'name' => 'mgmt_class', -+ 'offset' => '4', -+ 'type' => '108' -+ }, -+ '2' => { -+ 'name' => 'attrid', -+ 'offset' => '8', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'mod', -+ 'offset' => '12', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'oui', -+ 'offset' => '16', -+ 'type' => '257' -+ }, -+ '5' => { -+ 'name' => 'timeout', -+ 'offset' => '20', -+ 'type' => '108' -+ }, -+ '6' => { -+ 'name' => 'rmpp', -+ 'offset' => '24', -+ 'type' => '129664' -+ } -+ }, -+ 'Name' => 'struct ib_vendor_call', -+ 'Size' => '44', -+ 'Type' => 'Struct' -+ }, -+ '129790' => { -+ 'BaseType' => '129677', -+ 'Header' => undef, -+ 'Line' => '1393', -+ 'Name' => 'ib_vendor_call_t', -+ 'Size' => '44', -+ 'Type' => 'Typedef' -+ }, -+ '130891' => { -+ 'BaseType' => '129790', -+ 'Name' => 'ib_vendor_call_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1394' => { -+ 'Header' => undef, -+ 'Line' => '308', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'lid', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'drpath', -+ 'offset' => '4', -+ 'type' => '1140' -+ }, -+ '2' => { -+ 'name' => 'grh_present', -+ 'offset' => '76', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'gid', -+ 'offset' => '80', -+ 'type' => '1052' -+ }, -+ '4' => { -+ 'name' => 'qp', -+ 'offset' => '96', -+ 'type' => '257' -+ }, -+ '5' => { -+ 'name' => 'qkey', -+ 'offset' => '100', -+ 'type' => '257' -+ }, -+ '6' => { -+ 'name' => 'sl', -+ 'offset' => '104', -+ 'type' => '233' -+ }, -+ '7' => { -+ 'name' => 'pkey_idx', -+ 'offset' => '108', -+ 'type' => '108' -+ } -+ }, -+ 'Name' => 'struct portid', -+ 'Size' => '112', -+ 'Type' => 'Struct' -+ }, -+ '1519' => { -+ 'BaseType' => '1394', -+ 'Header' => undef, -+ 'Line' => '317', -+ 'Name' => 'ib_portid_t', -+ 'Size' => '112', -+ 'Type' => 'Typedef' -+ }, -+ '153' => { -+ 'BaseType' => '108', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '165' => { -+ 'Name' => 'long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '1707' => { -+ 'Header' => undef, -+ 'Line' => '1395', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'method', -+ 'offset' => '0', -+ 'type' => '108' -+ }, -+ '1' => { -+ 'name' => 'attrid', -+ 'offset' => '4', -+ 'type' => '108' -+ }, -+ '2' => { -+ 'name' => 'mod', -+ 'offset' => '8', -+ 'type' => '108' -+ }, -+ '3' => { -+ 'name' => 'timeout', -+ 'offset' => '12', -+ 'type' => '108' -+ }, -+ '4' => { -+ 'name' => 'bkey', -+ 'offset' => '16', -+ 'type' => '269' -+ } -+ }, -+ 'Name' => 'struct ib_bm_call', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '172' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1792' => { -+ 'BaseType' => '1707', -+ 'Header' => undef, -+ 'Line' => '1401', -+ 'Name' => 'ib_bm_call_t', -+ 'Size' => '24', -+ 'Type' => 'Typedef' -+ }, -+ '184' => { -+ 'BaseType' => '165', -+ 'Header' => undef, -+ 'Line' => '152', -+ 'Name' => '__off_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1900' => { -+ 'BaseType' => '1519', -+ 'Name' => 'ib_portid_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1912' => { -+ 'BaseType' => '1918', -+ 'Name' => 'struct ibmad_port*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1918' => { -+ 'Header' => undef, -+ 'Line' => '39', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'port_id', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'class_agents', -+ 'offset' => '4', -+ 'type' => '5126' -+ }, -+ '2' => { -+ 'name' => 'timeout', -+ 'offset' => '1028', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'retries', -+ 'offset' => '1032', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'smp_mkey', -+ 'offset' => '1040', -+ 'type' => '269' -+ } -+ }, -+ 'Name' => 'struct ibmad_port', -+ 'Size' => '1048', -+ 'Type' => 'Struct' -+ }, -+ '1923' => { -+ 'BaseType' => '1918', -+ 'Name' => 'struct ibmad_port const', -+ 'Type' => 'Const' -+ }, -+ '196' => { -+ 'BaseType' => '165', -+ 'Header' => undef, -+ 'Line' => '153', -+ 'Name' => '__off64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1971' => { -+ 'BaseType' => '1923', -+ 'Name' => 'struct ibmad_port const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '220' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '227' => { -+ 'BaseType' => '89', -+ 'Name' => 'char*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '233' => { -+ 'BaseType' => '122', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '257' => { -+ 'BaseType' => '153', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '269' => { -+ 'BaseType' => '172', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '2937' => { -+ 'BaseType' => '233', -+ 'Name' => 'uint8_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2943' => { -+ 'BaseType' => '1792', -+ 'Name' => 'ib_bm_call_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '307' => { -+ 'Header' => undef, -+ 'Line' => '49', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_flags', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => '_IO_read_ptr', -+ 'offset' => '8', -+ 'type' => '227' -+ }, -+ '10' => { -+ 'name' => '_IO_backup_base', -+ 'offset' => '80', -+ 'type' => '227' -+ }, -+ '11' => { -+ 'name' => '_IO_save_end', -+ 'offset' => '88', -+ 'type' => '227' -+ }, -+ '12' => { -+ 'name' => '_markers', -+ 'offset' => '96', -+ 'type' => '723' -+ }, -+ '13' => { -+ 'name' => '_chain', -+ 'offset' => '104', -+ 'type' => '729' -+ }, -+ '14' => { -+ 'name' => '_fileno', -+ 'offset' => '112', -+ 'type' => '71' -+ }, -+ '15' => { -+ 'name' => '_flags2', -+ 'offset' => '116', -+ 'type' => '71' -+ }, -+ '16' => { -+ 'name' => '_old_offset', -+ 'offset' => '120', -+ 'type' => '184' -+ }, -+ '17' => { -+ 'name' => '_cur_column', -+ 'offset' => '128', -+ 'type' => '64' -+ }, -+ '18' => { -+ 'name' => '_vtable_offset', -+ 'offset' => '130', -+ 'type' => '115' -+ }, -+ '19' => { -+ 'name' => '_shortbuf', -+ 'offset' => '131', -+ 'type' => '735' -+ }, -+ '2' => { -+ 'name' => '_IO_read_end', -+ 'offset' => '16', -+ 'type' => '227' -+ }, -+ '20' => { -+ 'name' => '_lock', -+ 'offset' => '136', -+ 'type' => '751' -+ }, -+ '21' => { -+ 'name' => '_offset', -+ 'offset' => '144', -+ 'type' => '196' -+ }, -+ '22' => { -+ 'name' => '_codecvt', -+ 'offset' => '152', -+ 'type' => '762' -+ }, -+ '23' => { -+ 'name' => '_wide_data', -+ 'offset' => '160', -+ 'type' => '773' -+ }, -+ '24' => { -+ 'name' => '_freeres_list', -+ 'offset' => '168', -+ 'type' => '729' -+ }, -+ '25' => { -+ 'name' => '_freeres_buf', -+ 'offset' => '176', -+ 'type' => '220' -+ }, -+ '26' => { -+ 'name' => '__pad5', -+ 'offset' => '184', -+ 'type' => '45' -+ }, -+ '27' => { -+ 'name' => '_mode', -+ 'offset' => '192', -+ 'type' => '71' -+ }, -+ '28' => { -+ 'name' => '_unused2', -+ 'offset' => '196', -+ 'type' => '779' -+ }, -+ '3' => { -+ 'name' => '_IO_read_base', -+ 'offset' => '24', -+ 'type' => '227' -+ }, -+ '4' => { -+ 'name' => '_IO_write_base', -+ 'offset' => '32', -+ 'type' => '227' -+ }, -+ '5' => { -+ 'name' => '_IO_write_ptr', -+ 'offset' => '40', -+ 'type' => '227' -+ }, -+ '6' => { -+ 'name' => '_IO_write_end', -+ 'offset' => '48', -+ 'type' => '227' -+ }, -+ '7' => { -+ 'name' => '_IO_buf_base', -+ 'offset' => '56', -+ 'type' => '227' -+ }, -+ '8' => { -+ 'name' => '_IO_buf_end', -+ 'offset' => '64', -+ 'type' => '227' -+ }, -+ '9' => { -+ 'name' => '_IO_save_base', -+ 'offset' => '72', -+ 'type' => '227' -+ } -+ }, -+ 'Name' => 'struct _IO_FILE', -+ 'Size' => '216', -+ 'Type' => 'Struct' -+ }, -+ '45' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '5126' => { -+ 'BaseType' => '71', -+ 'Name' => 'int[256]', -+ 'Size' => '1024', -+ 'Type' => 'Array' -+ }, -+ '57' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '5723' => { -+ 'BaseType' => '71', -+ 'Name' => 'int*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '64' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '698' => { -+ 'BaseType' => '307', -+ 'Header' => undef, -+ 'Line' => '7', -+ 'Name' => 'FILE', -+ 'Size' => '216', -+ 'Type' => 'Typedef' -+ }, -+ '7042' => { -+ 'Header' => undef, -+ 'Line' => '330', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IB_NO_FIELD', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IB_GID_PREFIX_F', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IB_DRSMP_HOPPTR_F', -+ 'value' => '10' -+ }, -+ '100' => { -+ 'name' => 'IB_SW_OPT_SLTOVL_MAPPING_F', -+ 'value' => '97' -+ }, -+ '101' => { -+ 'name' => 'IB_SW_LIDS_PER_PORT_F', -+ 'value' => '98' -+ }, -+ '102' => { -+ 'name' => 'IB_SW_PARTITION_ENFORCE_CAP_F', -+ 'value' => '99' -+ }, -+ '103' => { -+ 'name' => 'IB_SW_PARTITION_ENF_INB_F', -+ 'value' => '100' -+ }, -+ '104' => { -+ 'name' => 'IB_SW_PARTITION_ENF_OUTB_F', -+ 'value' => '101' -+ }, -+ '105' => { -+ 'name' => 'IB_SW_FILTER_RAW_INB_F', -+ 'value' => '102' -+ }, -+ '106' => { -+ 'name' => 'IB_SW_FILTER_RAW_OUTB_F', -+ 'value' => '103' -+ }, -+ '107' => { -+ 'name' => 'IB_SW_ENHANCED_PORT0_F', -+ 'value' => '104' -+ }, -+ '108' => { -+ 'name' => 'IB_SW_MCAST_FDB_TOP_F', -+ 'value' => '105' -+ }, -+ '109' => { -+ 'name' => 'IB_SW_LAST_F', -+ 'value' => '106' -+ }, -+ '11' => { -+ 'name' => 'IB_DRSMP_STATUS_F', -+ 'value' => '11' -+ }, -+ '110' => { -+ 'name' => 'IB_LINEAR_FORW_TBL_F', -+ 'value' => '107' -+ }, -+ '111' => { -+ 'name' => 'IB_MULTICAST_FORW_TBL_F', -+ 'value' => '108' -+ }, -+ '112' => { -+ 'name' => 'IB_NODE_DESC_F', -+ 'value' => '109' -+ }, -+ '113' => { -+ 'name' => 'IB_NOTICE_IS_GENERIC_F', -+ 'value' => '110' -+ }, -+ '114' => { -+ 'name' => 'IB_NOTICE_TYPE_F', -+ 'value' => '111' -+ }, -+ '115' => { -+ 'name' => 'IB_NOTICE_PRODUCER_F', -+ 'value' => '112' -+ }, -+ '116' => { -+ 'name' => 'IB_NOTICE_TRAP_NUMBER_F', -+ 'value' => '113' -+ }, -+ '117' => { -+ 'name' => 'IB_NOTICE_ISSUER_LID_F', -+ 'value' => '114' -+ }, -+ '118' => { -+ 'name' => 'IB_NOTICE_TOGGLE_F', -+ 'value' => '115' -+ }, -+ '119' => { -+ 'name' => 'IB_NOTICE_COUNT_F', -+ 'value' => '116' -+ }, -+ '12' => { -+ 'name' => 'IB_DRSMP_DIRECTION_F', -+ 'value' => '12' -+ }, -+ '120' => { -+ 'name' => 'IB_NOTICE_DATA_DETAILS_F', -+ 'value' => '117' -+ }, -+ '121' => { -+ 'name' => 'IB_NOTICE_DATA_LID_F', -+ 'value' => '118' -+ }, -+ '122' => { -+ 'name' => 'IB_NOTICE_DATA_144_LID_F', -+ 'value' => '119' -+ }, -+ '123' => { -+ 'name' => 'IB_NOTICE_DATA_144_CAPMASK_F', -+ 'value' => '120' -+ }, -+ '124' => { -+ 'name' => 'IB_PC_FIRST_F', -+ 'value' => '121' -+ }, -+ '125' => { -+ 'name' => 'IB_PC_PORT_SELECT_F', -+ 'value' => '121' -+ }, -+ '126' => { -+ 'name' => 'IB_PC_COUNTER_SELECT_F', -+ 'value' => '122' -+ }, -+ '127' => { -+ 'name' => 'IB_PC_ERR_SYM_F', -+ 'value' => '123' -+ }, -+ '128' => { -+ 'name' => 'IB_PC_LINK_RECOVERS_F', -+ 'value' => '124' -+ }, -+ '129' => { -+ 'name' => 'IB_PC_LINK_DOWNED_F', -+ 'value' => '125' -+ }, -+ '13' => { -+ 'name' => 'IB_MAD_TRID_F', -+ 'value' => '13' -+ }, -+ '130' => { -+ 'name' => 'IB_PC_ERR_RCV_F', -+ 'value' => '126' -+ }, -+ '131' => { -+ 'name' => 'IB_PC_ERR_PHYSRCV_F', -+ 'value' => '127' -+ }, -+ '132' => { -+ 'name' => 'IB_PC_ERR_SWITCH_REL_F', -+ 'value' => '128' -+ }, -+ '133' => { -+ 'name' => 'IB_PC_XMT_DISCARDS_F', -+ 'value' => '129' -+ }, -+ '134' => { -+ 'name' => 'IB_PC_ERR_XMTCONSTR_F', -+ 'value' => '130' -+ }, -+ '135' => { -+ 'name' => 'IB_PC_ERR_RCVCONSTR_F', -+ 'value' => '131' -+ }, -+ '136' => { -+ 'name' => 'IB_PC_COUNTER_SELECT2_F', -+ 'value' => '132' -+ }, -+ '137' => { -+ 'name' => 'IB_PC_ERR_LOCALINTEG_F', -+ 'value' => '133' -+ }, -+ '138' => { -+ 'name' => 'IB_PC_ERR_EXCESS_OVR_F', -+ 'value' => '134' -+ }, -+ '139' => { -+ 'name' => 'IB_PC_VL15_DROPPED_F', -+ 'value' => '135' -+ }, -+ '14' => { -+ 'name' => 'IB_MAD_ATTRID_F', -+ 'value' => '14' -+ }, -+ '140' => { -+ 'name' => 'IB_PC_XMT_BYTES_F', -+ 'value' => '136' -+ }, -+ '141' => { -+ 'name' => 'IB_PC_RCV_BYTES_F', -+ 'value' => '137' -+ }, -+ '142' => { -+ 'name' => 'IB_PC_XMT_PKTS_F', -+ 'value' => '138' -+ }, -+ '143' => { -+ 'name' => 'IB_PC_RCV_PKTS_F', -+ 'value' => '139' -+ }, -+ '144' => { -+ 'name' => 'IB_PC_XMT_WAIT_F', -+ 'value' => '140' -+ }, -+ '145' => { -+ 'name' => 'IB_PC_LAST_F', -+ 'value' => '141' -+ }, -+ '146' => { -+ 'name' => 'IB_SMINFO_GUID_F', -+ 'value' => '142' -+ }, -+ '147' => { -+ 'name' => 'IB_SMINFO_KEY_F', -+ 'value' => '143' -+ }, -+ '148' => { -+ 'name' => 'IB_SMINFO_ACT_F', -+ 'value' => '144' -+ }, -+ '149' => { -+ 'name' => 'IB_SMINFO_PRIO_F', -+ 'value' => '145' -+ }, -+ '15' => { -+ 'name' => 'IB_MAD_ATTRMOD_F', -+ 'value' => '15' -+ }, -+ '150' => { -+ 'name' => 'IB_SMINFO_STATE_F', -+ 'value' => '146' -+ }, -+ '151' => { -+ 'name' => 'IB_SA_RMPP_VERS_F', -+ 'value' => '147' -+ }, -+ '152' => { -+ 'name' => 'IB_SA_RMPP_TYPE_F', -+ 'value' => '148' -+ }, -+ '153' => { -+ 'name' => 'IB_SA_RMPP_RESP_F', -+ 'value' => '149' -+ }, -+ '154' => { -+ 'name' => 'IB_SA_RMPP_FLAGS_F', -+ 'value' => '150' -+ }, -+ '155' => { -+ 'name' => 'IB_SA_RMPP_STATUS_F', -+ 'value' => '151' -+ }, -+ '156' => { -+ 'name' => 'IB_SA_RMPP_D1_F', -+ 'value' => '152' -+ }, -+ '157' => { -+ 'name' => 'IB_SA_RMPP_SEGNUM_F', -+ 'value' => '153' -+ }, -+ '158' => { -+ 'name' => 'IB_SA_RMPP_D2_F', -+ 'value' => '154' -+ }, -+ '159' => { -+ 'name' => 'IB_SA_RMPP_LEN_F', -+ 'value' => '155' -+ }, -+ '16' => { -+ 'name' => 'IB_MAD_MKEY_F', -+ 'value' => '16' -+ }, -+ '160' => { -+ 'name' => 'IB_SA_RMPP_NEWWIN_F', -+ 'value' => '156' -+ }, -+ '161' => { -+ 'name' => 'IB_SA_MP_NPATH_F', -+ 'value' => '157' -+ }, -+ '162' => { -+ 'name' => 'IB_SA_MP_NSRC_F', -+ 'value' => '158' -+ }, -+ '163' => { -+ 'name' => 'IB_SA_MP_NDEST_F', -+ 'value' => '159' -+ }, -+ '164' => { -+ 'name' => 'IB_SA_MP_GID0_F', -+ 'value' => '160' -+ }, -+ '165' => { -+ 'name' => 'IB_SA_PR_DGID_F', -+ 'value' => '161' -+ }, -+ '166' => { -+ 'name' => 'IB_SA_PR_SGID_F', -+ 'value' => '162' -+ }, -+ '167' => { -+ 'name' => 'IB_SA_PR_DLID_F', -+ 'value' => '163' -+ }, -+ '168' => { -+ 'name' => 'IB_SA_PR_SLID_F', -+ 'value' => '164' -+ }, -+ '169' => { -+ 'name' => 'IB_SA_PR_NPATH_F', -+ 'value' => '165' -+ }, -+ '17' => { -+ 'name' => 'IB_DRSMP_DRDLID_F', -+ 'value' => '17' -+ }, -+ '170' => { -+ 'name' => 'IB_SA_PR_SL_F', -+ 'value' => '166' -+ }, -+ '171' => { -+ 'name' => 'IB_SA_MCM_MGID_F', -+ 'value' => '167' -+ }, -+ '172' => { -+ 'name' => 'IB_SA_MCM_PORTGID_F', -+ 'value' => '168' -+ }, -+ '173' => { -+ 'name' => 'IB_SA_MCM_QKEY_F', -+ 'value' => '169' -+ }, -+ '174' => { -+ 'name' => 'IB_SA_MCM_MLID_F', -+ 'value' => '170' -+ }, -+ '175' => { -+ 'name' => 'IB_SA_MCM_SL_F', -+ 'value' => '171' -+ }, -+ '176' => { -+ 'name' => 'IB_SA_MCM_MTU_F', -+ 'value' => '172' -+ }, -+ '177' => { -+ 'name' => 'IB_SA_MCM_RATE_F', -+ 'value' => '173' -+ }, -+ '178' => { -+ 'name' => 'IB_SA_MCM_TCLASS_F', -+ 'value' => '174' -+ }, -+ '179' => { -+ 'name' => 'IB_SA_MCM_PKEY_F', -+ 'value' => '175' -+ }, -+ '18' => { -+ 'name' => 'IB_DRSMP_DRSLID_F', -+ 'value' => '18' -+ }, -+ '180' => { -+ 'name' => 'IB_SA_MCM_FLOW_LABEL_F', -+ 'value' => '176' -+ }, -+ '181' => { -+ 'name' => 'IB_SA_MCM_JOIN_STATE_F', -+ 'value' => '177' -+ }, -+ '182' => { -+ 'name' => 'IB_SA_MCM_PROXY_JOIN_F', -+ 'value' => '178' -+ }, -+ '183' => { -+ 'name' => 'IB_SA_SR_ID_F', -+ 'value' => '179' -+ }, -+ '184' => { -+ 'name' => 'IB_SA_SR_GID_F', -+ 'value' => '180' -+ }, -+ '185' => { -+ 'name' => 'IB_SA_SR_PKEY_F', -+ 'value' => '181' -+ }, -+ '186' => { -+ 'name' => 'IB_SA_SR_LEASE_F', -+ 'value' => '182' -+ }, -+ '187' => { -+ 'name' => 'IB_SA_SR_KEY_F', -+ 'value' => '183' -+ }, -+ '188' => { -+ 'name' => 'IB_SA_SR_NAME_F', -+ 'value' => '184' -+ }, -+ '189' => { -+ 'name' => 'IB_SA_SR_DATA_F', -+ 'value' => '185' -+ }, -+ '19' => { -+ 'name' => 'IB_SA_MKEY_F', -+ 'value' => '19' -+ }, -+ '190' => { -+ 'name' => 'IB_ATS_SM_NODE_ADDR_F', -+ 'value' => '186' -+ }, -+ '191' => { -+ 'name' => 'IB_ATS_SM_MAGIC_KEY_F', -+ 'value' => '187' -+ }, -+ '192' => { -+ 'name' => 'IB_ATS_SM_NODE_TYPE_F', -+ 'value' => '188' -+ }, -+ '193' => { -+ 'name' => 'IB_ATS_SM_NODE_NAME_F', -+ 'value' => '189' -+ }, -+ '194' => { -+ 'name' => 'IB_SLTOVL_MAPPING_TABLE_F', -+ 'value' => '190' -+ }, -+ '195' => { -+ 'name' => 'IB_VL_ARBITRATION_TABLE_F', -+ 'value' => '191' -+ }, -+ '196' => { -+ 'name' => 'IB_VEND2_OUI_F', -+ 'value' => '192' -+ }, -+ '197' => { -+ 'name' => 'IB_VEND2_DATA_F', -+ 'value' => '193' -+ }, -+ '198' => { -+ 'name' => 'IB_PC_EXT_FIRST_F', -+ 'value' => '194' -+ }, -+ '199' => { -+ 'name' => 'IB_PC_EXT_PORT_SELECT_F', -+ 'value' => '194' -+ }, -+ '2' => { -+ 'name' => 'IB_GID_GUID_F', -+ 'value' => '2' -+ }, -+ '20' => { -+ 'name' => 'IB_SA_ATTROFFS_F', -+ 'value' => '20' -+ }, -+ '200' => { -+ 'name' => 'IB_PC_EXT_COUNTER_SELECT_F', -+ 'value' => '195' -+ }, -+ '201' => { -+ 'name' => 'IB_PC_EXT_XMT_BYTES_F', -+ 'value' => '196' -+ }, -+ '202' => { -+ 'name' => 'IB_PC_EXT_RCV_BYTES_F', -+ 'value' => '197' -+ }, -+ '203' => { -+ 'name' => 'IB_PC_EXT_XMT_PKTS_F', -+ 'value' => '198' -+ }, -+ '204' => { -+ 'name' => 'IB_PC_EXT_RCV_PKTS_F', -+ 'value' => '199' -+ }, -+ '205' => { -+ 'name' => 'IB_PC_EXT_XMT_UPKTS_F', -+ 'value' => '200' -+ }, -+ '206' => { -+ 'name' => 'IB_PC_EXT_RCV_UPKTS_F', -+ 'value' => '201' -+ }, -+ '207' => { -+ 'name' => 'IB_PC_EXT_XMT_MPKTS_F', -+ 'value' => '202' -+ }, -+ '208' => { -+ 'name' => 'IB_PC_EXT_RCV_MPKTS_F', -+ 'value' => '203' -+ }, -+ '209' => { -+ 'name' => 'IB_PC_EXT_LAST_F', -+ 'value' => '204' -+ }, -+ '21' => { -+ 'name' => 'IB_SA_COMPMASK_F', -+ 'value' => '21' -+ }, -+ '210' => { -+ 'name' => 'IB_GUID_GUID0_F', -+ 'value' => '205' -+ }, -+ '211' => { -+ 'name' => 'IB_CPI_BASEVER_F', -+ 'value' => '206' -+ }, -+ '212' => { -+ 'name' => 'IB_CPI_CLASSVER_F', -+ 'value' => '207' -+ }, -+ '213' => { -+ 'name' => 'IB_CPI_CAPMASK_F', -+ 'value' => '208' -+ }, -+ '214' => { -+ 'name' => 'IB_CPI_CAPMASK2_F', -+ 'value' => '209' -+ }, -+ '215' => { -+ 'name' => 'IB_CPI_RESP_TIME_VALUE_F', -+ 'value' => '210' -+ }, -+ '216' => { -+ 'name' => 'IB_CPI_REDIRECT_GID_F', -+ 'value' => '211' -+ }, -+ '217' => { -+ 'name' => 'IB_CPI_REDIRECT_TC_F', -+ 'value' => '212' -+ }, -+ '218' => { -+ 'name' => 'IB_CPI_REDIRECT_SL_F', -+ 'value' => '213' -+ }, -+ '219' => { -+ 'name' => 'IB_CPI_REDIRECT_FL_F', -+ 'value' => '214' -+ }, -+ '22' => { -+ 'name' => 'IB_SA_DATA_F', -+ 'value' => '22' -+ }, -+ '220' => { -+ 'name' => 'IB_CPI_REDIRECT_LID_F', -+ 'value' => '215' -+ }, -+ '221' => { -+ 'name' => 'IB_CPI_REDIRECT_PKEY_F', -+ 'value' => '216' -+ }, -+ '222' => { -+ 'name' => 'IB_CPI_REDIRECT_QP_F', -+ 'value' => '217' -+ }, -+ '223' => { -+ 'name' => 'IB_CPI_REDIRECT_QKEY_F', -+ 'value' => '218' -+ }, -+ '224' => { -+ 'name' => 'IB_CPI_TRAP_GID_F', -+ 'value' => '219' -+ }, -+ '225' => { -+ 'name' => 'IB_CPI_TRAP_TC_F', -+ 'value' => '220' -+ }, -+ '226' => { -+ 'name' => 'IB_CPI_TRAP_SL_F', -+ 'value' => '221' -+ }, -+ '227' => { -+ 'name' => 'IB_CPI_TRAP_FL_F', -+ 'value' => '222' -+ }, -+ '228' => { -+ 'name' => 'IB_CPI_TRAP_LID_F', -+ 'value' => '223' -+ }, -+ '229' => { -+ 'name' => 'IB_CPI_TRAP_PKEY_F', -+ 'value' => '224' -+ }, -+ '23' => { -+ 'name' => 'IB_SM_DATA_F', -+ 'value' => '23' -+ }, -+ '230' => { -+ 'name' => 'IB_CPI_TRAP_HL_F', -+ 'value' => '225' -+ }, -+ '231' => { -+ 'name' => 'IB_CPI_TRAP_QP_F', -+ 'value' => '226' -+ }, -+ '232' => { -+ 'name' => 'IB_CPI_TRAP_QKEY_F', -+ 'value' => '227' -+ }, -+ '233' => { -+ 'name' => 'IB_PC_XMT_DATA_SL_FIRST_F', -+ 'value' => '228' -+ }, -+ '234' => { -+ 'name' => 'IB_PC_XMT_DATA_SL0_F', -+ 'value' => '228' -+ }, -+ '235' => { -+ 'name' => 'IB_PC_XMT_DATA_SL1_F', -+ 'value' => '229' -+ }, -+ '236' => { -+ 'name' => 'IB_PC_XMT_DATA_SL2_F', -+ 'value' => '230' -+ }, -+ '237' => { -+ 'name' => 'IB_PC_XMT_DATA_SL3_F', -+ 'value' => '231' -+ }, -+ '238' => { -+ 'name' => 'IB_PC_XMT_DATA_SL4_F', -+ 'value' => '232' -+ }, -+ '239' => { -+ 'name' => 'IB_PC_XMT_DATA_SL5_F', -+ 'value' => '233' -+ }, -+ '24' => { -+ 'name' => 'IB_GS_DATA_F', -+ 'value' => '24' -+ }, -+ '240' => { -+ 'name' => 'IB_PC_XMT_DATA_SL6_F', -+ 'value' => '234' -+ }, -+ '241' => { -+ 'name' => 'IB_PC_XMT_DATA_SL7_F', -+ 'value' => '235' -+ }, -+ '242' => { -+ 'name' => 'IB_PC_XMT_DATA_SL8_F', -+ 'value' => '236' -+ }, -+ '243' => { -+ 'name' => 'IB_PC_XMT_DATA_SL9_F', -+ 'value' => '237' -+ }, -+ '244' => { -+ 'name' => 'IB_PC_XMT_DATA_SL10_F', -+ 'value' => '238' -+ }, -+ '245' => { -+ 'name' => 'IB_PC_XMT_DATA_SL11_F', -+ 'value' => '239' -+ }, -+ '246' => { -+ 'name' => 'IB_PC_XMT_DATA_SL12_F', -+ 'value' => '240' -+ }, -+ '247' => { -+ 'name' => 'IB_PC_XMT_DATA_SL13_F', -+ 'value' => '241' -+ }, -+ '248' => { -+ 'name' => 'IB_PC_XMT_DATA_SL14_F', -+ 'value' => '242' -+ }, -+ '249' => { -+ 'name' => 'IB_PC_XMT_DATA_SL15_F', -+ 'value' => '243' -+ }, -+ '25' => { -+ 'name' => 'IB_DRSMP_PATH_F', -+ 'value' => '25' -+ }, -+ '250' => { -+ 'name' => 'IB_PC_XMT_DATA_SL_LAST_F', -+ 'value' => '244' -+ }, -+ '251' => { -+ 'name' => 'IB_PC_RCV_DATA_SL_FIRST_F', -+ 'value' => '245' -+ }, -+ '252' => { -+ 'name' => 'IB_PC_RCV_DATA_SL0_F', -+ 'value' => '245' -+ }, -+ '253' => { -+ 'name' => 'IB_PC_RCV_DATA_SL1_F', -+ 'value' => '246' -+ }, -+ '254' => { -+ 'name' => 'IB_PC_RCV_DATA_SL2_F', -+ 'value' => '247' -+ }, -+ '255' => { -+ 'name' => 'IB_PC_RCV_DATA_SL3_F', -+ 'value' => '248' -+ }, -+ '256' => { -+ 'name' => 'IB_PC_RCV_DATA_SL4_F', -+ 'value' => '249' -+ }, -+ '257' => { -+ 'name' => 'IB_PC_RCV_DATA_SL5_F', -+ 'value' => '250' -+ }, -+ '258' => { -+ 'name' => 'IB_PC_RCV_DATA_SL6_F', -+ 'value' => '251' -+ }, -+ '259' => { -+ 'name' => 'IB_PC_RCV_DATA_SL7_F', -+ 'value' => '252' -+ }, -+ '26' => { -+ 'name' => 'IB_DRSMP_RPATH_F', -+ 'value' => '26' -+ }, -+ '260' => { -+ 'name' => 'IB_PC_RCV_DATA_SL8_F', -+ 'value' => '253' -+ }, -+ '261' => { -+ 'name' => 'IB_PC_RCV_DATA_SL9_F', -+ 'value' => '254' -+ }, -+ '262' => { -+ 'name' => 'IB_PC_RCV_DATA_SL10_F', -+ 'value' => '255' -+ }, -+ '263' => { -+ 'name' => 'IB_PC_RCV_DATA_SL11_F', -+ 'value' => '256' -+ }, -+ '264' => { -+ 'name' => 'IB_PC_RCV_DATA_SL12_F', -+ 'value' => '257' -+ }, -+ '265' => { -+ 'name' => 'IB_PC_RCV_DATA_SL13_F', -+ 'value' => '258' -+ }, -+ '266' => { -+ 'name' => 'IB_PC_RCV_DATA_SL14_F', -+ 'value' => '259' -+ }, -+ '267' => { -+ 'name' => 'IB_PC_RCV_DATA_SL15_F', -+ 'value' => '260' -+ }, -+ '268' => { -+ 'name' => 'IB_PC_RCV_DATA_SL_LAST_F', -+ 'value' => '261' -+ }, -+ '269' => { -+ 'name' => 'IB_PC_XMT_INACT_DISC_F', -+ 'value' => '262' -+ }, -+ '27' => { -+ 'name' => 'IB_PORT_FIRST_F', -+ 'value' => '27' -+ }, -+ '270' => { -+ 'name' => 'IB_PC_XMT_NEIGH_MTU_DISC_F', -+ 'value' => '263' -+ }, -+ '271' => { -+ 'name' => 'IB_PC_XMT_SW_LIFE_DISC_F', -+ 'value' => '264' -+ }, -+ '272' => { -+ 'name' => 'IB_PC_XMT_SW_HOL_DISC_F', -+ 'value' => '265' -+ }, -+ '273' => { -+ 'name' => 'IB_PC_XMT_DISC_LAST_F', -+ 'value' => '266' -+ }, -+ '274' => { -+ 'name' => 'IB_PC_RCV_LOCAL_PHY_ERR_F', -+ 'value' => '267' -+ }, -+ '275' => { -+ 'name' => 'IB_PC_RCV_MALFORMED_PKT_ERR_F', -+ 'value' => '268' -+ }, -+ '276' => { -+ 'name' => 'IB_PC_RCV_BUF_OVR_ERR_F', -+ 'value' => '269' -+ }, -+ '277' => { -+ 'name' => 'IB_PC_RCV_DLID_MAP_ERR_F', -+ 'value' => '270' -+ }, -+ '278' => { -+ 'name' => 'IB_PC_RCV_VL_MAP_ERR_F', -+ 'value' => '271' -+ }, -+ '279' => { -+ 'name' => 'IB_PC_RCV_LOOPING_ERR_F', -+ 'value' => '272' -+ }, -+ '28' => { -+ 'name' => 'IB_PORT_MKEY_F', -+ 'value' => '27' -+ }, -+ '280' => { -+ 'name' => 'IB_PC_RCV_ERR_LAST_F', -+ 'value' => '273' -+ }, -+ '281' => { -+ 'name' => 'IB_PSC_OPCODE_F', -+ 'value' => '274' -+ }, -+ '282' => { -+ 'name' => 'IB_PSC_PORT_SELECT_F', -+ 'value' => '275' -+ }, -+ '283' => { -+ 'name' => 'IB_PSC_TICK_F', -+ 'value' => '276' -+ }, -+ '284' => { -+ 'name' => 'IB_PSC_COUNTER_WIDTH_F', -+ 'value' => '277' -+ }, -+ '285' => { -+ 'name' => 'IB_PSC_COUNTER_MASK0_F', -+ 'value' => '278' -+ }, -+ '286' => { -+ 'name' => 'IB_PSC_COUNTER_MASKS1TO9_F', -+ 'value' => '279' -+ }, -+ '287' => { -+ 'name' => 'IB_PSC_COUNTER_MASKS10TO14_F', -+ 'value' => '280' -+ }, -+ '288' => { -+ 'name' => 'IB_PSC_SAMPLE_MECHS_F', -+ 'value' => '281' -+ }, -+ '289' => { -+ 'name' => 'IB_PSC_SAMPLE_STATUS_F', -+ 'value' => '282' -+ }, -+ '29' => { -+ 'name' => 'IB_PORT_GID_PREFIX_F', -+ 'value' => '28' -+ }, -+ '290' => { -+ 'name' => 'IB_PSC_OPTION_MASK_F', -+ 'value' => '283' -+ }, -+ '291' => { -+ 'name' => 'IB_PSC_VENDOR_MASK_F', -+ 'value' => '284' -+ }, -+ '292' => { -+ 'name' => 'IB_PSC_SAMPLE_START_F', -+ 'value' => '285' -+ }, -+ '293' => { -+ 'name' => 'IB_PSC_SAMPLE_INTVL_F', -+ 'value' => '286' -+ }, -+ '294' => { -+ 'name' => 'IB_PSC_TAG_F', -+ 'value' => '287' -+ }, -+ '295' => { -+ 'name' => 'IB_PSC_COUNTER_SEL0_F', -+ 'value' => '288' -+ }, -+ '296' => { -+ 'name' => 'IB_PSC_COUNTER_SEL1_F', -+ 'value' => '289' -+ }, -+ '297' => { -+ 'name' => 'IB_PSC_COUNTER_SEL2_F', -+ 'value' => '290' -+ }, -+ '298' => { -+ 'name' => 'IB_PSC_COUNTER_SEL3_F', -+ 'value' => '291' -+ }, -+ '299' => { -+ 'name' => 'IB_PSC_COUNTER_SEL4_F', -+ 'value' => '292' -+ }, -+ '3' => { -+ 'name' => 'IB_MAD_METHOD_F', -+ 'value' => '3' -+ }, -+ '30' => { -+ 'name' => 'IB_PORT_LID_F', -+ 'value' => '29' -+ }, -+ '300' => { -+ 'name' => 'IB_PSC_COUNTER_SEL5_F', -+ 'value' => '293' -+ }, -+ '301' => { -+ 'name' => 'IB_PSC_COUNTER_SEL6_F', -+ 'value' => '294' -+ }, -+ '302' => { -+ 'name' => 'IB_PSC_COUNTER_SEL7_F', -+ 'value' => '295' -+ }, -+ '303' => { -+ 'name' => 'IB_PSC_COUNTER_SEL8_F', -+ 'value' => '296' -+ }, -+ '304' => { -+ 'name' => 'IB_PSC_COUNTER_SEL9_F', -+ 'value' => '297' -+ }, -+ '305' => { -+ 'name' => 'IB_PSC_COUNTER_SEL10_F', -+ 'value' => '298' -+ }, -+ '306' => { -+ 'name' => 'IB_PSC_COUNTER_SEL11_F', -+ 'value' => '299' -+ }, -+ '307' => { -+ 'name' => 'IB_PSC_COUNTER_SEL12_F', -+ 'value' => '300' -+ }, -+ '308' => { -+ 'name' => 'IB_PSC_COUNTER_SEL13_F', -+ 'value' => '301' -+ }, -+ '309' => { -+ 'name' => 'IB_PSC_COUNTER_SEL14_F', -+ 'value' => '302' -+ }, -+ '31' => { -+ 'name' => 'IB_PORT_SMLID_F', -+ 'value' => '30' -+ }, -+ '310' => { -+ 'name' => 'IB_PSC_SAMPLES_ONLY_OPT_MASK_F', -+ 'value' => '303' -+ }, -+ '311' => { -+ 'name' => 'IB_PSC_LAST_F', -+ 'value' => '304' -+ }, -+ '312' => { -+ 'name' => 'IB_GI_GUID0_F', -+ 'value' => '305' -+ }, -+ '313' => { -+ 'name' => 'IB_GI_GUID1_F', -+ 'value' => '306' -+ }, -+ '314' => { -+ 'name' => 'IB_GI_GUID2_F', -+ 'value' => '307' -+ }, -+ '315' => { -+ 'name' => 'IB_GI_GUID3_F', -+ 'value' => '308' -+ }, -+ '316' => { -+ 'name' => 'IB_GI_GUID4_F', -+ 'value' => '309' -+ }, -+ '317' => { -+ 'name' => 'IB_GI_GUID5_F', -+ 'value' => '310' -+ }, -+ '318' => { -+ 'name' => 'IB_GI_GUID6_F', -+ 'value' => '311' -+ }, -+ '319' => { -+ 'name' => 'IB_GI_GUID7_F', -+ 'value' => '312' -+ }, -+ '32' => { -+ 'name' => 'IB_PORT_CAPMASK_F', -+ 'value' => '31' -+ }, -+ '320' => { -+ 'name' => 'IB_SA_GIR_LID_F', -+ 'value' => '313' -+ }, -+ '321' => { -+ 'name' => 'IB_SA_GIR_BLOCKNUM_F', -+ 'value' => '314' -+ }, -+ '322' => { -+ 'name' => 'IB_SA_GIR_GUID0_F', -+ 'value' => '315' -+ }, -+ '323' => { -+ 'name' => 'IB_SA_GIR_GUID1_F', -+ 'value' => '316' -+ }, -+ '324' => { -+ 'name' => 'IB_SA_GIR_GUID2_F', -+ 'value' => '317' -+ }, -+ '325' => { -+ 'name' => 'IB_SA_GIR_GUID3_F', -+ 'value' => '318' -+ }, -+ '326' => { -+ 'name' => 'IB_SA_GIR_GUID4_F', -+ 'value' => '319' -+ }, -+ '327' => { -+ 'name' => 'IB_SA_GIR_GUID5_F', -+ 'value' => '320' -+ }, -+ '328' => { -+ 'name' => 'IB_SA_GIR_GUID6_F', -+ 'value' => '321' -+ }, -+ '329' => { -+ 'name' => 'IB_SA_GIR_GUID7_F', -+ 'value' => '322' -+ }, -+ '33' => { -+ 'name' => 'IB_PORT_DIAG_F', -+ 'value' => '32' -+ }, -+ '330' => { -+ 'name' => 'IB_PORT_CAPMASK2_F', -+ 'value' => '323' -+ }, -+ '331' => { -+ 'name' => 'IB_PORT_LINK_SPEED_EXT_ACTIVE_F', -+ 'value' => '324' -+ }, -+ '332' => { -+ 'name' => 'IB_PORT_LINK_SPEED_EXT_SUPPORTED_F', -+ 'value' => '325' -+ }, -+ '333' => { -+ 'name' => 'IB_PORT_LINK_SPEED_EXT_ENABLED_F', -+ 'value' => '326' -+ }, -+ '334' => { -+ 'name' => 'IB_PORT_LINK_SPEED_EXT_LAST_F', -+ 'value' => '327' -+ }, -+ '335' => { -+ 'name' => 'IB_PESC_PORT_SELECT_F', -+ 'value' => '328' -+ }, -+ '336' => { -+ 'name' => 'IB_PESC_COUNTER_SELECT_F', -+ 'value' => '329' -+ }, -+ '337' => { -+ 'name' => 'IB_PESC_SYNC_HDR_ERR_CTR_F', -+ 'value' => '330' -+ }, -+ '338' => { -+ 'name' => 'IB_PESC_UNK_BLOCK_CTR_F', -+ 'value' => '331' -+ }, -+ '339' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE0_F', -+ 'value' => '332' -+ }, -+ '34' => { -+ 'name' => 'IB_PORT_MKEY_LEASE_F', -+ 'value' => '33' -+ }, -+ '340' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE1_F', -+ 'value' => '333' -+ }, -+ '341' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE2_F', -+ 'value' => '334' -+ }, -+ '342' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE3_F', -+ 'value' => '335' -+ }, -+ '343' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE4_F', -+ 'value' => '336' -+ }, -+ '344' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE5_F', -+ 'value' => '337' -+ }, -+ '345' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE6_F', -+ 'value' => '338' -+ }, -+ '346' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE7_F', -+ 'value' => '339' -+ }, -+ '347' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE8_F', -+ 'value' => '340' -+ }, -+ '348' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE9_F', -+ 'value' => '341' -+ }, -+ '349' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE10_F', -+ 'value' => '342' -+ }, -+ '35' => { -+ 'name' => 'IB_PORT_LOCAL_PORT_F', -+ 'value' => '34' -+ }, -+ '350' => { -+ 'name' => 'IB_PESC_ERR_DET_CTR_LANE11_F', -+ 'value' => '343' -+ }, -+ '351' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE0_F', -+ 'value' => '344' -+ }, -+ '352' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE1_F', -+ 'value' => '345' -+ }, -+ '353' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE2_F', -+ 'value' => '346' -+ }, -+ '354' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE3_F', -+ 'value' => '347' -+ }, -+ '355' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE4_F', -+ 'value' => '348' -+ }, -+ '356' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE5_F', -+ 'value' => '349' -+ }, -+ '357' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE6_F', -+ 'value' => '350' -+ }, -+ '358' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE7_F', -+ 'value' => '351' -+ }, -+ '359' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE8_F', -+ 'value' => '352' -+ }, -+ '36' => { -+ 'name' => 'IB_PORT_LINK_WIDTH_ENABLED_F', -+ 'value' => '35' -+ }, -+ '360' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE9_F', -+ 'value' => '353' -+ }, -+ '361' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE10_F', -+ 'value' => '354' -+ }, -+ '362' => { -+ 'name' => 'IB_PESC_FEC_CORR_BLOCK_CTR_LANE11_F', -+ 'value' => '355' -+ }, -+ '363' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE0_F', -+ 'value' => '356' -+ }, -+ '364' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE1_F', -+ 'value' => '357' -+ }, -+ '365' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE2_F', -+ 'value' => '358' -+ }, -+ '366' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE3_F', -+ 'value' => '359' -+ }, -+ '367' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE4_F', -+ 'value' => '360' -+ }, -+ '368' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE5_F', -+ 'value' => '361' -+ }, -+ '369' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE6_F', -+ 'value' => '362' -+ }, -+ '37' => { -+ 'name' => 'IB_PORT_LINK_WIDTH_SUPPORTED_F', -+ 'value' => '36' -+ }, -+ '370' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE7_F', -+ 'value' => '363' -+ }, -+ '371' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE8_F', -+ 'value' => '364' -+ }, -+ '372' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE9_F', -+ 'value' => '365' -+ }, -+ '373' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE10_F', -+ 'value' => '366' -+ }, -+ '374' => { -+ 'name' => 'IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE11_F', -+ 'value' => '367' -+ }, -+ '375' => { -+ 'name' => 'IB_PESC_LAST_F', -+ 'value' => '368' -+ }, -+ '376' => { -+ 'name' => 'IB_PC_PORT_OP_RCV_COUNTERS_FIRST_F', -+ 'value' => '369' -+ }, -+ '377' => { -+ 'name' => 'IB_PC_PORT_OP_RCV_PKTS_F', -+ 'value' => '369' -+ }, -+ '378' => { -+ 'name' => 'IB_PC_PORT_OP_RCV_DATA_F', -+ 'value' => '370' -+ }, -+ '379' => { -+ 'name' => 'IB_PC_PORT_OP_RCV_COUNTERS_LAST_F', -+ 'value' => '371' -+ }, -+ '38' => { -+ 'name' => 'IB_PORT_LINK_WIDTH_ACTIVE_F', -+ 'value' => '37' -+ }, -+ '380' => { -+ 'name' => 'IB_PC_PORT_FLOW_CTL_COUNTERS_FIRST_F', -+ 'value' => '372' -+ }, -+ '381' => { -+ 'name' => 'IB_PC_PORT_XMIT_FLOW_PKTS_F', -+ 'value' => '372' -+ }, -+ '382' => { -+ 'name' => 'IB_PC_PORT_RCV_FLOW_PKTS_F', -+ 'value' => '373' -+ }, -+ '383' => { -+ 'name' => 'IB_PC_PORT_FLOW_CTL_COUNTERS_LAST_F', -+ 'value' => '374' -+ }, -+ '384' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS_FIRST_F', -+ 'value' => '375' -+ }, -+ '385' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS0_F', -+ 'value' => '375' -+ }, -+ '386' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS1_F', -+ 'value' => '376' -+ }, -+ '387' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS2_F', -+ 'value' => '377' -+ }, -+ '388' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS3_F', -+ 'value' => '378' -+ }, -+ '389' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS4_F', -+ 'value' => '379' -+ }, -+ '39' => { -+ 'name' => 'IB_PORT_LINK_SPEED_SUPPORTED_F', -+ 'value' => '38' -+ }, -+ '390' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS5_F', -+ 'value' => '380' -+ }, -+ '391' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS6_F', -+ 'value' => '381' -+ }, -+ '392' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS7_F', -+ 'value' => '382' -+ }, -+ '393' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS8_F', -+ 'value' => '383' -+ }, -+ '394' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS9_F', -+ 'value' => '384' -+ }, -+ '395' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS10_F', -+ 'value' => '385' -+ }, -+ '396' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS11_F', -+ 'value' => '386' -+ }, -+ '397' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS12_F', -+ 'value' => '387' -+ }, -+ '398' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS13_F', -+ 'value' => '388' -+ }, -+ '399' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS14_F', -+ 'value' => '389' -+ }, -+ '4' => { -+ 'name' => 'IB_MAD_RESPONSE_F', -+ 'value' => '4' -+ }, -+ '40' => { -+ 'name' => 'IB_PORT_STATE_F', -+ 'value' => '39' -+ }, -+ '400' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS15_F', -+ 'value' => '390' -+ }, -+ '401' => { -+ 'name' => 'IB_PC_PORT_VL_OP_PACKETS_LAST_F', -+ 'value' => '391' -+ }, -+ '402' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA_FIRST_F', -+ 'value' => '392' -+ }, -+ '403' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA0_F', -+ 'value' => '392' -+ }, -+ '404' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA1_F', -+ 'value' => '393' -+ }, -+ '405' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA2_F', -+ 'value' => '394' -+ }, -+ '406' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA3_F', -+ 'value' => '395' -+ }, -+ '407' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA4_F', -+ 'value' => '396' -+ }, -+ '408' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA5_F', -+ 'value' => '397' -+ }, -+ '409' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA6_F', -+ 'value' => '398' -+ }, -+ '41' => { -+ 'name' => 'IB_PORT_PHYS_STATE_F', -+ 'value' => '40' -+ }, -+ '410' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA7_F', -+ 'value' => '399' -+ }, -+ '411' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA8_F', -+ 'value' => '400' -+ }, -+ '412' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA9_F', -+ 'value' => '401' -+ }, -+ '413' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA10_F', -+ 'value' => '402' -+ }, -+ '414' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA11_F', -+ 'value' => '403' -+ }, -+ '415' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA12_F', -+ 'value' => '404' -+ }, -+ '416' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA13_F', -+ 'value' => '405' -+ }, -+ '417' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA14_F', -+ 'value' => '406' -+ }, -+ '418' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA15_F', -+ 'value' => '407' -+ }, -+ '419' => { -+ 'name' => 'IB_PC_PORT_VL_OP_DATA_LAST_F', -+ 'value' => '408' -+ }, -+ '42' => { -+ 'name' => 'IB_PORT_LINK_DOWN_DEF_F', -+ 'value' => '41' -+ }, -+ '420' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS_FIRST_F', -+ 'value' => '409' -+ }, -+ '421' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS0_F', -+ 'value' => '409' -+ }, -+ '422' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS1_F', -+ 'value' => '410' -+ }, -+ '423' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS2_F', -+ 'value' => '411' -+ }, -+ '424' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS3_F', -+ 'value' => '412' -+ }, -+ '425' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS4_F', -+ 'value' => '413' -+ }, -+ '426' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS5_F', -+ 'value' => '414' -+ }, -+ '427' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS6_F', -+ 'value' => '415' -+ }, -+ '428' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS7_F', -+ 'value' => '416' -+ }, -+ '429' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS8_F', -+ 'value' => '417' -+ }, -+ '43' => { -+ 'name' => 'IB_PORT_MKEY_PROT_BITS_F', -+ 'value' => '42' -+ }, -+ '430' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS9_F', -+ 'value' => '418' -+ }, -+ '431' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS10_F', -+ 'value' => '419' -+ }, -+ '432' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS11_F', -+ 'value' => '420' -+ }, -+ '433' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS12_F', -+ 'value' => '421' -+ }, -+ '434' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS13_F', -+ 'value' => '422' -+ }, -+ '435' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS14_F', -+ 'value' => '423' -+ }, -+ '436' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS15_F', -+ 'value' => '424' -+ }, -+ '437' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS_LAST_F', -+ 'value' => '425' -+ }, -+ '438' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT_COUNTERS_FIRST_F', -+ 'value' => '426' -+ }, -+ '439' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT0_F', -+ 'value' => '426' -+ }, -+ '44' => { -+ 'name' => 'IB_PORT_LMC_F', -+ 'value' => '43' -+ }, -+ '440' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT1_F', -+ 'value' => '427' -+ }, -+ '441' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT2_F', -+ 'value' => '428' -+ }, -+ '442' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT3_F', -+ 'value' => '429' -+ }, -+ '443' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT4_F', -+ 'value' => '430' -+ }, -+ '444' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT5_F', -+ 'value' => '431' -+ }, -+ '445' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT6_F', -+ 'value' => '432' -+ }, -+ '446' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT7_F', -+ 'value' => '433' -+ }, -+ '447' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT8_F', -+ 'value' => '434' -+ }, -+ '448' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT9_F', -+ 'value' => '435' -+ }, -+ '449' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT10_F', -+ 'value' => '436' -+ }, -+ '45' => { -+ 'name' => 'IB_PORT_LINK_SPEED_ACTIVE_F', -+ 'value' => '44' -+ }, -+ '450' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT11_F', -+ 'value' => '437' -+ }, -+ '451' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT12_F', -+ 'value' => '438' -+ }, -+ '452' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT13_F', -+ 'value' => '439' -+ }, -+ '453' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT14_F', -+ 'value' => '440' -+ }, -+ '454' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT15_F', -+ 'value' => '441' -+ }, -+ '455' => { -+ 'name' => 'IB_PC_PORT_VL_XMIT_WAIT_COUNTERS_LAST_F', -+ 'value' => '442' -+ }, -+ '456' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION_FIRST_F', -+ 'value' => '443' -+ }, -+ '457' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION0_F', -+ 'value' => '443' -+ }, -+ '458' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION1_F', -+ 'value' => '444' -+ }, -+ '459' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION2_F', -+ 'value' => '445' -+ }, -+ '46' => { -+ 'name' => 'IB_PORT_LINK_SPEED_ENABLED_F', -+ 'value' => '45' -+ }, -+ '460' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION3_F', -+ 'value' => '446' -+ }, -+ '461' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION4_F', -+ 'value' => '447' -+ }, -+ '462' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION5_F', -+ 'value' => '448' -+ }, -+ '463' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION6_F', -+ 'value' => '449' -+ }, -+ '464' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION7_F', -+ 'value' => '450' -+ }, -+ '465' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION8_F', -+ 'value' => '451' -+ }, -+ '466' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION9_F', -+ 'value' => '452' -+ }, -+ '467' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION10_F', -+ 'value' => '453' -+ }, -+ '468' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION11_F', -+ 'value' => '454' -+ }, -+ '469' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION12_F', -+ 'value' => '455' -+ }, -+ '47' => { -+ 'name' => 'IB_PORT_NEIGHBOR_MTU_F', -+ 'value' => '46' -+ }, -+ '470' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION13_F', -+ 'value' => '456' -+ }, -+ '471' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION14_F', -+ 'value' => '457' -+ }, -+ '472' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION15_F', -+ 'value' => '458' -+ }, -+ '473' => { -+ 'name' => 'IB_PC_SW_PORT_VL_CONGESTION_LAST_F', -+ 'value' => '459' -+ }, -+ '474' => { -+ 'name' => 'IB_PC_RCV_CON_CTRL_FIRST_F', -+ 'value' => '460' -+ }, -+ '475' => { -+ 'name' => 'IB_PC_RCV_CON_CTRL_PKT_RCV_FECN_F', -+ 'value' => '460' -+ }, -+ '476' => { -+ 'name' => 'IB_PC_RCV_CON_CTRL_PKT_RCV_BECN_F', -+ 'value' => '461' -+ }, -+ '477' => { -+ 'name' => 'IB_PC_RCV_CON_CTRL_LAST_F', -+ 'value' => '462' -+ }, -+ '478' => { -+ 'name' => 'IB_PC_SL_RCV_FECN_FIRST_F', -+ 'value' => '463' -+ }, -+ '479' => { -+ 'name' => 'IB_PC_SL_RCV_FECN0_F', -+ 'value' => '463' -+ }, -+ '48' => { -+ 'name' => 'IB_PORT_SMSL_F', -+ 'value' => '47' -+ }, -+ '480' => { -+ 'name' => 'IB_PC_SL_RCV_FECN1_F', -+ 'value' => '464' -+ }, -+ '481' => { -+ 'name' => 'IB_PC_SL_RCV_FECN2_F', -+ 'value' => '465' -+ }, -+ '482' => { -+ 'name' => 'IB_PC_SL_RCV_FECN3_F', -+ 'value' => '466' -+ }, -+ '483' => { -+ 'name' => 'IB_PC_SL_RCV_FECN4_F', -+ 'value' => '467' -+ }, -+ '484' => { -+ 'name' => 'IB_PC_SL_RCV_FECN5_F', -+ 'value' => '468' -+ }, -+ '485' => { -+ 'name' => 'IB_PC_SL_RCV_FECN6_F', -+ 'value' => '469' -+ }, -+ '486' => { -+ 'name' => 'IB_PC_SL_RCV_FECN7_F', -+ 'value' => '470' -+ }, -+ '487' => { -+ 'name' => 'IB_PC_SL_RCV_FECN8_F', -+ 'value' => '471' -+ }, -+ '488' => { -+ 'name' => 'IB_PC_SL_RCV_FECN9_F', -+ 'value' => '472' -+ }, -+ '489' => { -+ 'name' => 'IB_PC_SL_RCV_FECN10_F', -+ 'value' => '473' -+ }, -+ '49' => { -+ 'name' => 'IB_PORT_VL_CAP_F', -+ 'value' => '48' -+ }, -+ '490' => { -+ 'name' => 'IB_PC_SL_RCV_FECN11_F', -+ 'value' => '474' -+ }, -+ '491' => { -+ 'name' => 'IB_PC_SL_RCV_FECN12_F', -+ 'value' => '475' -+ }, -+ '492' => { -+ 'name' => 'IB_PC_SL_RCV_FECN13_F', -+ 'value' => '476' -+ }, -+ '493' => { -+ 'name' => 'IB_PC_SL_RCV_FECN14_F', -+ 'value' => '477' -+ }, -+ '494' => { -+ 'name' => 'IB_PC_SL_RCV_FECN15_F', -+ 'value' => '478' -+ }, -+ '495' => { -+ 'name' => 'IB_PC_SL_RCV_FECN_LAST_F', -+ 'value' => '479' -+ }, -+ '496' => { -+ 'name' => 'IB_PC_SL_RCV_BECN_FIRST_F', -+ 'value' => '480' -+ }, -+ '497' => { -+ 'name' => 'IB_PC_SL_RCV_BECN0_F', -+ 'value' => '480' -+ }, -+ '498' => { -+ 'name' => 'IB_PC_SL_RCV_BECN1_F', -+ 'value' => '481' -+ }, -+ '499' => { -+ 'name' => 'IB_PC_SL_RCV_BECN2_F', -+ 'value' => '482' -+ }, -+ '5' => { -+ 'name' => 'IB_MAD_CLASSVER_F', -+ 'value' => '5' -+ }, -+ '50' => { -+ 'name' => 'IB_PORT_INIT_TYPE_F', -+ 'value' => '49' -+ }, -+ '500' => { -+ 'name' => 'IB_PC_SL_RCV_BECN3_F', -+ 'value' => '483' -+ }, -+ '501' => { -+ 'name' => 'IB_PC_SL_RCV_BECN4_F', -+ 'value' => '484' -+ }, -+ '502' => { -+ 'name' => 'IB_PC_SL_RCV_BECN5_F', -+ 'value' => '485' -+ }, -+ '503' => { -+ 'name' => 'IB_PC_SL_RCV_BECN6_F', -+ 'value' => '486' -+ }, -+ '504' => { -+ 'name' => 'IB_PC_SL_RCV_BECN7_F', -+ 'value' => '487' -+ }, -+ '505' => { -+ 'name' => 'IB_PC_SL_RCV_BECN8_F', -+ 'value' => '488' -+ }, -+ '506' => { -+ 'name' => 'IB_PC_SL_RCV_BECN9_F', -+ 'value' => '489' -+ }, -+ '507' => { -+ 'name' => 'IB_PC_SL_RCV_BECN10_F', -+ 'value' => '490' -+ }, -+ '508' => { -+ 'name' => 'IB_PC_SL_RCV_BECN11_F', -+ 'value' => '491' -+ }, -+ '509' => { -+ 'name' => 'IB_PC_SL_RCV_BECN12_F', -+ 'value' => '492' -+ }, -+ '51' => { -+ 'name' => 'IB_PORT_VL_HIGH_LIMIT_F', -+ 'value' => '50' -+ }, -+ '510' => { -+ 'name' => 'IB_PC_SL_RCV_BECN13_F', -+ 'value' => '493' -+ }, -+ '511' => { -+ 'name' => 'IB_PC_SL_RCV_BECN14_F', -+ 'value' => '494' -+ }, -+ '512' => { -+ 'name' => 'IB_PC_SL_RCV_BECN15_F', -+ 'value' => '495' -+ }, -+ '513' => { -+ 'name' => 'IB_PC_SL_RCV_BECN_LAST_F', -+ 'value' => '496' -+ }, -+ '514' => { -+ 'name' => 'IB_PC_XMIT_CON_CTRL_FIRST_F', -+ 'value' => '497' -+ }, -+ '515' => { -+ 'name' => 'IB_PC_XMIT_CON_CTRL_TIME_CONG_F', -+ 'value' => '497' -+ }, -+ '516' => { -+ 'name' => 'IB_PC_XMIT_CON_CTRL_LAST_F', -+ 'value' => '498' -+ }, -+ '517' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG_FIRST_F', -+ 'value' => '499' -+ }, -+ '518' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG0_F', -+ 'value' => '499' -+ }, -+ '519' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG1_F', -+ 'value' => '500' -+ }, -+ '52' => { -+ 'name' => 'IB_PORT_VL_ARBITRATION_HIGH_CAP_F', -+ 'value' => '51' -+ }, -+ '520' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG2_F', -+ 'value' => '501' -+ }, -+ '521' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG3_F', -+ 'value' => '502' -+ }, -+ '522' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG4_F', -+ 'value' => '503' -+ }, -+ '523' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG5_F', -+ 'value' => '504' -+ }, -+ '524' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG6_F', -+ 'value' => '505' -+ }, -+ '525' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG7_F', -+ 'value' => '506' -+ }, -+ '526' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG8_F', -+ 'value' => '507' -+ }, -+ '527' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG9_F', -+ 'value' => '508' -+ }, -+ '528' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG10_F', -+ 'value' => '509' -+ }, -+ '529' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG11_F', -+ 'value' => '510' -+ }, -+ '53' => { -+ 'name' => 'IB_PORT_VL_ARBITRATION_LOW_CAP_F', -+ 'value' => '52' -+ }, -+ '530' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG12_F', -+ 'value' => '511' -+ }, -+ '531' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG13_F', -+ 'value' => '512' -+ }, -+ '532' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG14_F', -+ 'value' => '513' -+ }, -+ '533' => { -+ 'name' => 'IB_PC_VL_XMIT_TIME_CONG_LAST_F', -+ 'value' => '514' -+ }, -+ '534' => { -+ 'name' => 'IB_MLNX_EXT_PORT_STATE_CHG_ENABLE_F', -+ 'value' => '515' -+ }, -+ '535' => { -+ 'name' => 'IB_MLNX_EXT_PORT_LINK_SPEED_SUPPORTED_F', -+ 'value' => '516' -+ }, -+ '536' => { -+ 'name' => 'IB_MLNX_EXT_PORT_LINK_SPEED_ENABLED_F', -+ 'value' => '517' -+ }, -+ '537' => { -+ 'name' => 'IB_MLNX_EXT_PORT_LINK_SPEED_ACTIVE_F', -+ 'value' => '518' -+ }, -+ '538' => { -+ 'name' => 'IB_MLNX_EXT_PORT_LAST_F', -+ 'value' => '519' -+ }, -+ '539' => { -+ 'name' => 'IB_CC_CCKEY_F', -+ 'value' => '520' -+ }, -+ '54' => { -+ 'name' => 'IB_PORT_INIT_TYPE_REPLY_F', -+ 'value' => '53' -+ }, -+ '540' => { -+ 'name' => 'IB_CC_CONGESTION_INFO_FIRST_F', -+ 'value' => '521' -+ }, -+ '541' => { -+ 'name' => 'IB_CC_CONGESTION_INFO_F', -+ 'value' => '521' -+ }, -+ '542' => { -+ 'name' => 'IB_CC_CONGESTION_INFO_CONTROL_TABLE_CAP_F', -+ 'value' => '522' -+ }, -+ '543' => { -+ 'name' => 'IB_CC_CONGESTION_INFO_LAST_F', -+ 'value' => '523' -+ }, -+ '544' => { -+ 'name' => 'IB_CC_CONGESTION_KEY_INFO_FIRST_F', -+ 'value' => '524' -+ }, -+ '545' => { -+ 'name' => 'IB_CC_CONGESTION_KEY_INFO_CC_KEY_F', -+ 'value' => '524' -+ }, -+ '546' => { -+ 'name' => 'IB_CC_CONGESTION_KEY_INFO_CC_KEY_PROTECT_BIT_F', -+ 'value' => '525' -+ }, -+ '547' => { -+ 'name' => 'IB_CC_CONGESTION_KEY_INFO_CC_KEY_LEASE_PERIOD_F', -+ 'value' => '526' -+ }, -+ '548' => { -+ 'name' => 'IB_CC_CONGESTION_KEY_INFO_CC_KEY_VIOLATIONS_F', -+ 'value' => '527' -+ }, -+ '549' => { -+ 'name' => 'IB_CC_CONGESTION_KEY_INFO_LAST_F', -+ 'value' => '528' -+ }, -+ '55' => { -+ 'name' => 'IB_PORT_MTU_CAP_F', -+ 'value' => '54' -+ }, -+ '550' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_FIRST_F', -+ 'value' => '529' -+ }, -+ '551' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_LOGTYPE_F', -+ 'value' => '529' -+ }, -+ '552' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_CONGESTION_FLAGS_F', -+ 'value' => '530' -+ }, -+ '553' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_LAST_F', -+ 'value' => '531' -+ }, -+ '554' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_SWITCH_FIRST_F', -+ 'value' => '532' -+ }, -+ '555' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_SWITCH_LOG_EVENTS_COUNTER_F', -+ 'value' => '532' -+ }, -+ '556' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_SWITCH_CURRENT_TIME_STAMP_F', -+ 'value' => '533' -+ }, -+ '557' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_SWITCH_PORTMAP_F', -+ 'value' => '534' -+ }, -+ '558' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_SWITCH_LAST_F', -+ 'value' => '535' -+ }, -+ '559' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_SWITCH_FIRST_F', -+ 'value' => '536' -+ }, -+ '56' => { -+ 'name' => 'IB_PORT_VL_STALL_COUNT_F', -+ 'value' => '55' -+ }, -+ '560' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_SWITCH_SLID_F', -+ 'value' => '536' -+ }, -+ '561' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_SWITCH_DLID_F', -+ 'value' => '537' -+ }, -+ '562' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_SWITCH_SL_F', -+ 'value' => '538' -+ }, -+ '563' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_SWITCH_TIMESTAMP_F', -+ 'value' => '539' -+ }, -+ '564' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_SWITCH_LAST_F', -+ 'value' => '540' -+ }, -+ '565' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_CA_FIRST_F', -+ 'value' => '541' -+ }, -+ '566' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_CA_THRESHOLD_EVENT_COUNTER_F', -+ 'value' => '541' -+ }, -+ '567' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_CA_THRESHOLD_CONGESTION_EVENT_MAP_F', -+ 'value' => '542' -+ }, -+ '568' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_CA_CURRENT_TIMESTAMP_F', -+ 'value' => '543' -+ }, -+ '569' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_CA_LAST_F', -+ 'value' => '544' -+ }, -+ '57' => { -+ 'name' => 'IB_PORT_HOQ_LIFE_F', -+ 'value' => '56' -+ }, -+ '570' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_FIRST_F', -+ 'value' => '545' -+ }, -+ '571' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_LOCAL_QP_CN_ENTRY_F', -+ 'value' => '545' -+ }, -+ '572' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_SL_CN_ENTRY_F', -+ 'value' => '546' -+ }, -+ '573' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_SERVICE_TYPE_CN_ENTRY_F', -+ 'value' => '547' -+ }, -+ '574' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_REMOTE_QP_NUMBER_CN_ENTRY_F', -+ 'value' => '548' -+ }, -+ '575' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_LOCAL_LID_CN_F', -+ 'value' => '549' -+ }, -+ '576' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_REMOTE_LID_CN_ENTRY_F', -+ 'value' => '550' -+ }, -+ '577' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_TIMESTAMP_CN_ENTRY_F', -+ 'value' => '551' -+ }, -+ '578' => { -+ 'name' => 'IB_CC_CONGESTION_LOG_ENTRY_CA_LAST_F', -+ 'value' => '552' -+ }, -+ '579' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_FIRST_F', -+ 'value' => '553' -+ }, -+ '58' => { -+ 'name' => 'IB_PORT_OPER_VLS_F', -+ 'value' => '57' -+ }, -+ '580' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_CONTROL_MAP_F', -+ 'value' => '553' -+ }, -+ '581' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_VICTIM_MASK_F', -+ 'value' => '554' -+ }, -+ '582' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_CREDIT_MASK_F', -+ 'value' => '555' -+ }, -+ '583' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_THRESHOLD_F', -+ 'value' => '556' -+ }, -+ '584' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_PACKET_SIZE_F', -+ 'value' => '557' -+ }, -+ '585' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_CS_THRESHOLD_F', -+ 'value' => '558' -+ }, -+ '586' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_CS_RETURN_DELAY_F', -+ 'value' => '559' -+ }, -+ '587' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_MARKING_RATE_F', -+ 'value' => '560' -+ }, -+ '588' => { -+ 'name' => 'IB_CC_SWITCH_CONGESTION_SETTING_LAST_F', -+ 'value' => '561' -+ }, -+ '589' => { -+ 'name' => 'IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_FIRST_F', -+ 'value' => '562' -+ }, -+ '59' => { -+ 'name' => 'IB_PORT_PART_EN_INB_F', -+ 'value' => '58' -+ }, -+ '590' => { -+ 'name' => 'IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_VALID_F', -+ 'value' => '562' -+ }, -+ '591' => { -+ 'name' => 'IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_CONTROL_TYPE_F', -+ 'value' => '563' -+ }, -+ '592' => { -+ 'name' => 'IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_THRESHOLD_F', -+ 'value' => '564' -+ }, -+ '593' => { -+ 'name' => 'IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_PACKET_SIZE_F', -+ 'value' => '565' -+ }, -+ '594' => { -+ 'name' => 'IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_CONG_PARM_MARKING_RATE_F', -+ 'value' => '566' -+ }, -+ '595' => { -+ 'name' => 'IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_LAST_F', -+ 'value' => '567' -+ }, -+ '596' => { -+ 'name' => 'IB_CC_CA_CONGESTION_SETTING_FIRST_F', -+ 'value' => '568' -+ }, -+ '597' => { -+ 'name' => 'IB_CC_CA_CONGESTION_SETTING_PORT_CONTROL_F', -+ 'value' => '568' -+ }, -+ '598' => { -+ 'name' => 'IB_CC_CA_CONGESTION_SETTING_CONTROL_MAP_F', -+ 'value' => '569' -+ }, -+ '599' => { -+ 'name' => 'IB_CC_CA_CONGESTION_SETTING_LAST_F', -+ 'value' => '570' -+ }, -+ '6' => { -+ 'name' => 'IB_MAD_MGMTCLASS_F', -+ 'value' => '6' -+ }, -+ '60' => { -+ 'name' => 'IB_PORT_PART_EN_OUTB_F', -+ 'value' => '59' -+ }, -+ '600' => { -+ 'name' => 'IB_CC_CA_CONGESTION_ENTRY_FIRST_F', -+ 'value' => '571' -+ }, -+ '601' => { -+ 'name' => 'IB_CC_CA_CONGESTION_ENTRY_CCTI_TIMER_F', -+ 'value' => '571' -+ }, -+ '602' => { -+ 'name' => 'IB_CC_CA_CONGESTION_ENTRY_CCTI_INCREASE_F', -+ 'value' => '572' -+ }, -+ '603' => { -+ 'name' => 'IB_CC_CA_CONGESTION_ENTRY_TRIGGER_THRESHOLD_F', -+ 'value' => '573' -+ }, -+ '604' => { -+ 'name' => 'IB_CC_CA_CONGESTION_ENTRY_CCTI_MIN_F', -+ 'value' => '574' -+ }, -+ '605' => { -+ 'name' => 'IB_CC_CA_CONGESTION_ENTRY_LAST_F', -+ 'value' => '575' -+ }, -+ '606' => { -+ 'name' => 'IB_CC_CONGESTION_CONTROL_TABLE_FIRST_F', -+ 'value' => '576' -+ }, -+ '607' => { -+ 'name' => 'IB_CC_CONGESTION_CONTROL_TABLE_CCTI_LIMIT_F', -+ 'value' => '576' -+ }, -+ '608' => { -+ 'name' => 'IB_CC_CONGESTION_CONTROL_TABLE_LAST_F', -+ 'value' => '577' -+ }, -+ '609' => { -+ 'name' => 'IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_FIRST_F', -+ 'value' => '578' -+ }, -+ '61' => { -+ 'name' => 'IB_PORT_FILTER_RAW_INB_F', -+ 'value' => '60' -+ }, -+ '610' => { -+ 'name' => 'IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_CCT_SHIFT_F', -+ 'value' => '578' -+ }, -+ '611' => { -+ 'name' => 'IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_CCT_MULTIPLIER_F', -+ 'value' => '579' -+ }, -+ '612' => { -+ 'name' => 'IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_LAST_F', -+ 'value' => '580' -+ }, -+ '613' => { -+ 'name' => 'IB_CC_TIMESTAMP_FIRST_F', -+ 'value' => '581' -+ }, -+ '614' => { -+ 'name' => 'IB_CC_TIMESTAMP_F', -+ 'value' => '581' -+ }, -+ '615' => { -+ 'name' => 'IB_CC_TIMESTAMP_LAST_F', -+ 'value' => '582' -+ }, -+ '616' => { -+ 'name' => 'IB_SA_NR_FIRST_F', -+ 'value' => '583' -+ }, -+ '617' => { -+ 'name' => 'IB_SA_NR_LID_F', -+ 'value' => '583' -+ }, -+ '618' => { -+ 'name' => 'IB_SA_NR_BASEVER_F', -+ 'value' => '584' -+ }, -+ '619' => { -+ 'name' => 'IB_SA_NR_CLASSVER_F', -+ 'value' => '585' -+ }, -+ '62' => { -+ 'name' => 'IB_PORT_FILTER_RAW_OUTB_F', -+ 'value' => '61' -+ }, -+ '620' => { -+ 'name' => 'IB_SA_NR_TYPE_F', -+ 'value' => '586' -+ }, -+ '621' => { -+ 'name' => 'IB_SA_NR_NPORTS_F', -+ 'value' => '587' -+ }, -+ '622' => { -+ 'name' => 'IB_SA_NR_SYSTEM_GUID_F', -+ 'value' => '588' -+ }, -+ '623' => { -+ 'name' => 'IB_SA_NR_GUID_F', -+ 'value' => '589' -+ }, -+ '624' => { -+ 'name' => 'IB_SA_NR_PORT_GUID_F', -+ 'value' => '590' -+ }, -+ '625' => { -+ 'name' => 'IB_SA_NR_PARTITION_CAP_F', -+ 'value' => '591' -+ }, -+ '626' => { -+ 'name' => 'IB_SA_NR_DEVID_F', -+ 'value' => '592' -+ }, -+ '627' => { -+ 'name' => 'IB_SA_NR_REVISION_F', -+ 'value' => '593' -+ }, -+ '628' => { -+ 'name' => 'IB_SA_NR_LOCAL_PORT_F', -+ 'value' => '594' -+ }, -+ '629' => { -+ 'name' => 'IB_SA_NR_VENDORID_F', -+ 'value' => '595' -+ }, -+ '63' => { -+ 'name' => 'IB_PORT_MKEY_VIOL_F', -+ 'value' => '62' -+ }, -+ '630' => { -+ 'name' => 'IB_SA_NR_NODEDESC_F', -+ 'value' => '596' -+ }, -+ '631' => { -+ 'name' => 'IB_SA_NR_LAST_F', -+ 'value' => '597' -+ }, -+ '632' => { -+ 'name' => 'IB_PSR_TAG_F', -+ 'value' => '598' -+ }, -+ '633' => { -+ 'name' => 'IB_PSR_SAMPLE_STATUS_F', -+ 'value' => '599' -+ }, -+ '634' => { -+ 'name' => 'IB_PSR_COUNTER0_F', -+ 'value' => '600' -+ }, -+ '635' => { -+ 'name' => 'IB_PSR_COUNTER1_F', -+ 'value' => '601' -+ }, -+ '636' => { -+ 'name' => 'IB_PSR_COUNTER2_F', -+ 'value' => '602' -+ }, -+ '637' => { -+ 'name' => 'IB_PSR_COUNTER3_F', -+ 'value' => '603' -+ }, -+ '638' => { -+ 'name' => 'IB_PSR_COUNTER4_F', -+ 'value' => '604' -+ }, -+ '639' => { -+ 'name' => 'IB_PSR_COUNTER5_F', -+ 'value' => '605' -+ }, -+ '64' => { -+ 'name' => 'IB_PORT_PKEY_VIOL_F', -+ 'value' => '63' -+ }, -+ '640' => { -+ 'name' => 'IB_PSR_COUNTER6_F', -+ 'value' => '606' -+ }, -+ '641' => { -+ 'name' => 'IB_PSR_COUNTER7_F', -+ 'value' => '607' -+ }, -+ '642' => { -+ 'name' => 'IB_PSR_COUNTER8_F', -+ 'value' => '608' -+ }, -+ '643' => { -+ 'name' => 'IB_PSR_COUNTER9_F', -+ 'value' => '609' -+ }, -+ '644' => { -+ 'name' => 'IB_PSR_COUNTER10_F', -+ 'value' => '610' -+ }, -+ '645' => { -+ 'name' => 'IB_PSR_COUNTER11_F', -+ 'value' => '611' -+ }, -+ '646' => { -+ 'name' => 'IB_PSR_COUNTER12_F', -+ 'value' => '612' -+ }, -+ '647' => { -+ 'name' => 'IB_PSR_COUNTER13_F', -+ 'value' => '613' -+ }, -+ '648' => { -+ 'name' => 'IB_PSR_COUNTER14_F', -+ 'value' => '614' -+ }, -+ '649' => { -+ 'name' => 'IB_PSR_LAST_F', -+ 'value' => '615' -+ }, -+ '65' => { -+ 'name' => 'IB_PORT_QKEY_VIOL_F', -+ 'value' => '64' -+ }, -+ '650' => { -+ 'name' => 'IB_PORT_EXT_FIRST_F', -+ 'value' => '616' -+ }, -+ '651' => { -+ 'name' => 'IB_PORT_EXT_CAPMASK_F', -+ 'value' => '616' -+ }, -+ '652' => { -+ 'name' => 'IB_PORT_EXT_FEC_MODE_ACTIVE_F', -+ 'value' => '617' -+ }, -+ '653' => { -+ 'name' => 'IB_PORT_EXT_FDR_FEC_MODE_SUPPORTED_F', -+ 'value' => '618' -+ }, -+ '654' => { -+ 'name' => 'IB_PORT_EXT_FDR_FEC_MODE_ENABLED_F', -+ 'value' => '619' -+ }, -+ '655' => { -+ 'name' => 'IB_PORT_EXT_EDR_FEC_MODE_SUPPORTED_F', -+ 'value' => '620' -+ }, -+ '656' => { -+ 'name' => 'IB_PORT_EXT_EDR_FEC_MODE_ENABLED_F', -+ 'value' => '621' -+ }, -+ '657' => { -+ 'name' => 'IB_PORT_EXT_LAST_F', -+ 'value' => '622' -+ }, -+ '658' => { -+ 'name' => 'IB_PESC_RSFEC_FIRST_F', -+ 'value' => '623' -+ }, -+ '659' => { -+ 'name' => 'IB_PESC_RSFEC_PORT_SELECT_F', -+ 'value' => '623' -+ }, -+ '66' => { -+ 'name' => 'IB_PORT_GUID_CAP_F', -+ 'value' => '65' -+ }, -+ '660' => { -+ 'name' => 'IB_PESC_RSFEC_COUNTER_SELECT_F', -+ 'value' => '624' -+ }, -+ '661' => { -+ 'name' => 'IB_PESC_RSFEC_SYNC_HDR_ERR_CTR_F', -+ 'value' => '625' -+ }, -+ '662' => { -+ 'name' => 'IB_PESC_RSFEC_UNK_BLOCK_CTR_F', -+ 'value' => '626' -+ }, -+ '663' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE0_F', -+ 'value' => '627' -+ }, -+ '664' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE1_F', -+ 'value' => '628' -+ }, -+ '665' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE2_F', -+ 'value' => '629' -+ }, -+ '666' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE3_F', -+ 'value' => '630' -+ }, -+ '667' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE4_F', -+ 'value' => '631' -+ }, -+ '668' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE5_F', -+ 'value' => '632' -+ }, -+ '669' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE6_F', -+ 'value' => '633' -+ }, -+ '67' => { -+ 'name' => 'IB_PORT_CLIENT_REREG_F', -+ 'value' => '66' -+ }, -+ '670' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE7_F', -+ 'value' => '634' -+ }, -+ '671' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE8_F', -+ 'value' => '635' -+ }, -+ '672' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE9_F', -+ 'value' => '636' -+ }, -+ '673' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE10_F', -+ 'value' => '637' -+ }, -+ '674' => { -+ 'name' => 'IB_PESC_RSFEC_FEC_CORR_SYMBOL_CTR_LANE11_F', -+ 'value' => '638' -+ }, -+ '675' => { -+ 'name' => 'IB_PESC_PORT_FEC_CORR_BLOCK_CTR_F', -+ 'value' => '639' -+ }, -+ '676' => { -+ 'name' => 'IB_PESC_PORT_FEC_UNCORR_BLOCK_CTR_F', -+ 'value' => '640' -+ }, -+ '677' => { -+ 'name' => 'IB_PESC_PORT_FEC_CORR_SYMBOL_CTR_F', -+ 'value' => '641' -+ }, -+ '678' => { -+ 'name' => 'IB_PESC_RSFEC_LAST_F', -+ 'value' => '642' -+ }, -+ '679' => { -+ 'name' => 'IB_PC_EXT_COUNTER_SELECT2_F', -+ 'value' => '643' -+ }, -+ '68' => { -+ 'name' => 'IB_PORT_MCAST_PKEY_SUPR_ENAB_F', -+ 'value' => '67' -+ }, -+ '680' => { -+ 'name' => 'IB_PC_EXT_ERR_SYM_F', -+ 'value' => '644' -+ }, -+ '681' => { -+ 'name' => 'IB_PC_EXT_LINK_RECOVERS_F', -+ 'value' => '645' -+ }, -+ '682' => { -+ 'name' => 'IB_PC_EXT_LINK_DOWNED_F', -+ 'value' => '646' -+ }, -+ '683' => { -+ 'name' => 'IB_PC_EXT_ERR_RCV_F', -+ 'value' => '647' -+ }, -+ '684' => { -+ 'name' => 'IB_PC_EXT_ERR_PHYSRCV_F', -+ 'value' => '648' -+ }, -+ '685' => { -+ 'name' => 'IB_PC_EXT_ERR_SWITCH_REL_F', -+ 'value' => '649' -+ }, -+ '686' => { -+ 'name' => 'IB_PC_EXT_XMT_DISCARDS_F', -+ 'value' => '650' -+ }, -+ '687' => { -+ 'name' => 'IB_PC_EXT_ERR_XMTCONSTR_F', -+ 'value' => '651' -+ }, -+ '688' => { -+ 'name' => 'IB_PC_EXT_ERR_RCVCONSTR_F', -+ 'value' => '652' -+ }, -+ '689' => { -+ 'name' => 'IB_PC_EXT_ERR_LOCALINTEG_F', -+ 'value' => '653' -+ }, -+ '69' => { -+ 'name' => 'IB_PORT_SUBN_TIMEOUT_F', -+ 'value' => '68' -+ }, -+ '690' => { -+ 'name' => 'IB_PC_EXT_ERR_EXCESS_OVR_F', -+ 'value' => '654' -+ }, -+ '691' => { -+ 'name' => 'IB_PC_EXT_VL15_DROPPED_F', -+ 'value' => '655' -+ }, -+ '692' => { -+ 'name' => 'IB_PC_EXT_XMT_WAIT_F', -+ 'value' => '656' -+ }, -+ '693' => { -+ 'name' => 'IB_PC_EXT_QP1_DROP_F', -+ 'value' => '657' -+ }, -+ '694' => { -+ 'name' => 'IB_PC_EXT_ERR_LAST_F', -+ 'value' => '658' -+ }, -+ '695' => { -+ 'name' => 'IB_PC_QP1_DROP_F', -+ 'value' => '659' -+ }, -+ '696' => { -+ 'name' => 'IB_PORT_EXT_HDR_FEC_MODE_SUPPORTED_F', -+ 'value' => '660' -+ }, -+ '697' => { -+ 'name' => 'IB_PORT_EXT_HDR_FEC_MODE_ENABLED_F', -+ 'value' => '661' -+ }, -+ '698' => { -+ 'name' => 'IB_PORT_EXT_HDR_FEC_MODE_LAST_F', -+ 'value' => '662' -+ }, -+ '699' => { -+ 'name' => 'IB_PORT_EXT_NDR_FEC_MODE_SUPPORTED_F', -+ 'value' => '663' -+ }, -+ '7' => { -+ 'name' => 'IB_MAD_BASEVER_F', -+ 'value' => '7' -+ }, -+ '70' => { -+ 'name' => 'IB_PORT_RESP_TIME_VAL_F', -+ 'value' => '69' -+ }, -+ '700' => { -+ 'name' => 'IB_PORT_EXT_NDR_FEC_MODE_ENABLED_F', -+ 'value' => '664' -+ }, -+ '701' => { -+ 'name' => 'IB_PORT_EXT_NDR_FEC_MODE_LAST_F', -+ 'value' => '665' -+ }, -+ '702' => { -+ 'name' => 'IB_FIELD_LAST_', -+ 'value' => '666' -+ }, -+ '71' => { -+ 'name' => 'IB_PORT_LOCAL_PHYS_ERR_F', -+ 'value' => '70' -+ }, -+ '72' => { -+ 'name' => 'IB_PORT_OVERRUN_ERR_F', -+ 'value' => '71' -+ }, -+ '73' => { -+ 'name' => 'IB_PORT_MAX_CREDIT_HINT_F', -+ 'value' => '72' -+ }, -+ '74' => { -+ 'name' => 'IB_PORT_LINK_ROUND_TRIP_F', -+ 'value' => '73' -+ }, -+ '75' => { -+ 'name' => 'IB_PORT_LAST_F', -+ 'value' => '74' -+ }, -+ '76' => { -+ 'name' => 'IB_NODE_FIRST_F', -+ 'value' => '75' -+ }, -+ '77' => { -+ 'name' => 'IB_NODE_BASE_VERS_F', -+ 'value' => '75' -+ }, -+ '78' => { -+ 'name' => 'IB_NODE_CLASS_VERS_F', -+ 'value' => '76' -+ }, -+ '79' => { -+ 'name' => 'IB_NODE_TYPE_F', -+ 'value' => '77' -+ }, -+ '8' => { -+ 'name' => 'IB_MAD_STATUS_F', -+ 'value' => '8' -+ }, -+ '80' => { -+ 'name' => 'IB_NODE_NPORTS_F', -+ 'value' => '78' -+ }, -+ '81' => { -+ 'name' => 'IB_NODE_SYSTEM_GUID_F', -+ 'value' => '79' -+ }, -+ '82' => { -+ 'name' => 'IB_NODE_GUID_F', -+ 'value' => '80' -+ }, -+ '83' => { -+ 'name' => 'IB_NODE_PORT_GUID_F', -+ 'value' => '81' -+ }, -+ '84' => { -+ 'name' => 'IB_NODE_PARTITION_CAP_F', -+ 'value' => '82' -+ }, -+ '85' => { -+ 'name' => 'IB_NODE_DEVID_F', -+ 'value' => '83' -+ }, -+ '86' => { -+ 'name' => 'IB_NODE_REVISION_F', -+ 'value' => '84' -+ }, -+ '87' => { -+ 'name' => 'IB_NODE_LOCAL_PORT_F', -+ 'value' => '85' -+ }, -+ '88' => { -+ 'name' => 'IB_NODE_VENDORID_F', -+ 'value' => '86' -+ }, -+ '89' => { -+ 'name' => 'IB_NODE_LAST_F', -+ 'value' => '87' -+ }, -+ '9' => { -+ 'name' => 'IB_DRSMP_HOPCNT_F', -+ 'value' => '9' -+ }, -+ '90' => { -+ 'name' => 'IB_SW_FIRST_F', -+ 'value' => '88' -+ }, -+ '91' => { -+ 'name' => 'IB_SW_LINEAR_FDB_CAP_F', -+ 'value' => '88' -+ }, -+ '92' => { -+ 'name' => 'IB_SW_RANDOM_FDB_CAP_F', -+ 'value' => '89' -+ }, -+ '93' => { -+ 'name' => 'IB_SW_MCAST_FDB_CAP_F', -+ 'value' => '90' -+ }, -+ '94' => { -+ 'name' => 'IB_SW_LINEAR_FDB_TOP_F', -+ 'value' => '91' -+ }, -+ '95' => { -+ 'name' => 'IB_SW_DEF_PORT_F', -+ 'value' => '92' -+ }, -+ '96' => { -+ 'name' => 'IB_SW_DEF_MCAST_PRIM_F', -+ 'value' => '93' -+ }, -+ '97' => { -+ 'name' => 'IB_SW_DEF_MCAST_NOT_PRIM_F', -+ 'value' => '94' -+ }, -+ '98' => { -+ 'name' => 'IB_SW_LIFE_TIME_F', -+ 'value' => '95' -+ }, -+ '99' => { -+ 'name' => 'IB_SW_STATE_CHANGE_F', -+ 'value' => '96' -+ } -+ }, -+ 'Name' => 'enum MAD_FIELDS', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '71' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '710' => { -+ 'BaseType' => '1', -+ 'Header' => undef, -+ 'Line' => '43', -+ 'Name' => '_IO_lock_t', -+ 'Type' => 'Typedef' -+ }, -+ '718' => { -+ 'Name' => 'struct _IO_marker', -+ 'Type' => 'Struct' -+ }, -+ '723' => { -+ 'BaseType' => '718', -+ 'Name' => 'struct _IO_marker*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '729' => { -+ 'BaseType' => '307', -+ 'Name' => 'struct _IO_FILE*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '735' => { -+ 'BaseType' => '89', -+ 'Name' => 'char[1]', -+ 'Size' => '1', -+ 'Type' => 'Array' -+ }, -+ '751' => { -+ 'BaseType' => '710', -+ 'Name' => '_IO_lock_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '757' => { -+ 'Name' => 'struct _IO_codecvt', -+ 'Type' => 'Struct' -+ }, -+ '762' => { -+ 'BaseType' => '757', -+ 'Name' => 'struct _IO_codecvt*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '76698' => { -+ 'BaseType' => '165', -+ 'Name' => 'long*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '768' => { -+ 'Name' => 'struct _IO_wide_data', -+ 'Type' => 'Struct' -+ }, -+ '773' => { -+ 'BaseType' => '768', -+ 'Name' => 'struct _IO_wide_data*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '779' => { -+ 'BaseType' => '89', -+ 'Name' => 'char[20]', -+ 'Size' => '20', -+ 'Type' => 'Array' -+ }, -+ '78' => { -+ 'BaseType' => '96', -+ 'Name' => 'char const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '795' => { -+ 'BaseType' => '698', -+ 'Name' => 'FILE*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '818' => { -+ 'BaseType' => '233', -+ 'Name' => 'uint8_t[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '84623' => { -+ 'Header' => undef, -+ 'Line' => '1414', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IB_DEST_LID', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IB_DEST_DRPATH', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IB_DEST_GUID', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IB_DEST_DRSLID', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IB_DEST_GID', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum MAD_DEST', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '85330' => { -+ 'BaseType' => '1052', -+ 'Name' => 'ibmad_gid_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '87671' => { -+ 'BaseType' => '269', -+ 'Name' => 'uint64_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '89' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '96' => { -+ 'BaseType' => '89', -+ 'Name' => 'char const', -+ 'Size' => '1', -+ 'Type' => 'Const' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'libibmad.so.5.3.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__fprintf_chk@GLIBC_2.3.4' => 0, -+ '__gmon_start__' => 0, -+ '__memset_chk@GLIBC_2.3.4' => 0, -+ '__printf_chk@GLIBC_2.3.4' => 0, -+ '__snprintf_chk@GLIBC_2.3.4' => 0, -+ '__sprintf_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'exit@GLIBC_2.2.5' => 0, -+ 'fputc@GLIBC_2.2.5' => 0, -+ 'fputs@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'getenv@GLIBC_2.2.5' => 0, -+ 'getpid@GLIBC_2.2.5' => 0, -+ 'inet_ntop@GLIBC_2.2.5' => 0, -+ 'inet_pton@GLIBC_2.2.5' => 0, -+ 'memcpy@GLIBC_2.14' => 0, -+ 'random@GLIBC_2.2.5' => 0, -+ 'snprintf@GLIBC_2.2.5' => 0, -+ 'srandom@GLIBC_2.2.5' => 0, -+ 'stderr@GLIBC_2.2.5' => 0, -+ 'strchr@GLIBC_2.2.5' => 0, -+ 'strdup@GLIBC_2.2.5' => 0, -+ 'strerror@GLIBC_2.2.5' => 0, -+ 'strlen@GLIBC_2.2.5' => 0, -+ 'strncpy@GLIBC_2.2.5' => 0, -+ 'strtol@GLIBC_2.2.5' => 0, -+ 'strtoull@GLIBC_2.2.5' => 0, -+ 'time@GLIBC_2.2.5' => 0, -+ 'umad_addr_dump@IBUMAD_1.0' => 0, -+ 'umad_close_port@IBUMAD_1.0' => 0, -+ 'umad_get_mad@IBUMAD_1.0' => 0, -+ 'umad_get_mad_addr@IBUMAD_1.0' => 0, -+ 'umad_init@IBUMAD_1.0' => 0, -+ 'umad_open_port@IBUMAD_1.0' => 0, -+ 'umad_recv@IBUMAD_1.0' => 0, -+ 'umad_register@IBUMAD_1.0' => 0, -+ 'umad_register_oui@IBUMAD_1.0' => 0, -+ 'umad_send@IBUMAD_1.0' => 0, -+ 'umad_set_addr@IBUMAD_1.0' => 0, -+ 'umad_set_grh@IBUMAD_1.0' => 0, -+ 'umad_set_pkey@IBUMAD_1.0' => 0, -+ 'umad_size@IBUMAD_1.0' => 0, -+ 'umad_status@IBUMAD_1.0' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; -diff --git a/ABI/ibnetdisc.dump b/ABI/ibnetdisc.dump -new file mode 100644 -index 0000000..a2086a1 ---- /dev/null -+++ b/ABI/ibnetdisc.dump -@@ -0,0 +1,1145 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'libibnetdisc.so.5.0.41.0', -+ 'LibraryVersion' => 'ibnetdisc', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'libc.so.6' => 1, -+ 'libibmad.so.5' => 1, -+ 'libibumad.so.3' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '17390' => { -+ 'Header' => undef, -+ 'Line' => '249', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'chassisnum', -+ 'type' => '92' -+ } -+ }, -+ 'Return' => '277', -+ 'ShortName' => 'ibnd_get_chassis_guid' -+ }, -+ '18351' => { -+ 'Header' => undef, -+ 'Line' => '164', -+ 'Param' => { -+ '0' => { -+ 'name' => 'guid', -+ 'type' => '277' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => 'ibnd_is_xsigo_tca' -+ }, -+ '18406' => { -+ 'Header' => undef, -+ 'Line' => '155', -+ 'Param' => { -+ '0' => { -+ 'name' => 'guid', -+ 'type' => '277' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => 'ibnd_is_xsigo_hca' -+ }, -+ '18491' => { -+ 'Header' => undef, -+ 'Line' => '139', -+ 'Param' => { -+ '0' => { -+ 'name' => 'guid', -+ 'type' => '277' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => 'ibnd_is_xsigo_guid' -+ }, -+ '18630' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Param' => { -+ '0' => { -+ 'name' => 'node', -+ 'type' => '6437' -+ }, -+ '1' => { -+ 'name' => 'str', -+ 'type' => '199' -+ }, -+ '2' => { -+ 'name' => 'size', -+ 'type' => '45' -+ } -+ }, -+ 'Return' => '199', -+ 'ShortName' => 'ibnd_get_chassis_slot_str' -+ }, -+ '18996' => { -+ 'Header' => undef, -+ 'Line' => '59', -+ 'Param' => { -+ '0' => { -+ 'name' => 'node', -+ 'type' => '6437' -+ } -+ }, -+ 'Return' => '289', -+ 'ShortName' => 'ibnd_get_chassis_type' -+ }, -+ '31117' => { -+ 'Header' => undef, -+ 'Line' => '1006', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'func', -+ 'type' => '29340' -+ }, -+ '2' => { -+ 'name' => 'user_data', -+ 'type' => '192' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibnd_iter_ports' -+ }, -+ '31481' => { -+ 'Header' => undef, -+ 'Line' => '966', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'dr_str', -+ 'type' => '199' -+ } -+ }, -+ 'Return' => '6699', -+ 'ShortName' => 'ibnd_find_port_dr' -+ }, -+ '31920' => { -+ 'Header' => undef, -+ 'Line' => '949', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'guid', -+ 'type' => '277' -+ } -+ }, -+ 'Return' => '6699', -+ 'ShortName' => 'ibnd_find_port_guid' -+ }, -+ '32144' => { -+ 'Header' => undef, -+ 'Line' => '934', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'lid', -+ 'type' => '253' -+ } -+ }, -+ 'Return' => '6699', -+ 'ShortName' => 'ibnd_find_port_lid' -+ }, -+ '32293' => { -+ 'Header' => undef, -+ 'Line' => '899', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'func', -+ 'type' => '29306' -+ }, -+ '2' => { -+ 'name' => 'node_type', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'user_data', -+ 'type' => '192' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibnd_iter_nodes_type' -+ }, -+ '32774' => { -+ 'Header' => undef, -+ 'Line' => '880', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'func', -+ 'type' => '29306' -+ }, -+ '2' => { -+ 'name' => 'user_data', -+ 'type' => '192' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibnd_iter_nodes' -+ }, -+ '33113' => { -+ 'Header' => undef, -+ 'Line' => '198', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibnd_destroy_fabric' -+ }, -+ '33439' => { -+ 'Header' => undef, -+ 'Line' => '767', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'type' => '199' -+ }, -+ '1' => { -+ 'name' => 'ca_port', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'from', -+ 'type' => '30528' -+ }, -+ '3' => { -+ 'name' => 'cfg', -+ 'type' => '29836' -+ } -+ }, -+ 'Return' => '14049', -+ 'ShortName' => 'ibnd_discover_fabric' -+ }, -+ '36127' => { -+ 'Header' => undef, -+ 'Line' => '634', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'dr_str', -+ 'type' => '199' -+ } -+ }, -+ 'Return' => '6437', -+ 'ShortName' => 'ibnd_find_node_dr' -+ }, -+ '36253' => { -+ 'Header' => undef, -+ 'Line' => '617', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'guid', -+ 'type' => '277' -+ } -+ }, -+ 'Return' => '6437', -+ 'ShortName' => 'ibnd_find_node_guid' -+ }, -+ '49776' => { -+ 'Header' => undef, -+ 'Line' => '878', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fabric', -+ 'type' => '14049' -+ }, -+ '1' => { -+ 'name' => 'file', -+ 'type' => '289' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => 'ibnd_cache_fabric' -+ }, -+ '54605' => { -+ 'Header' => undef, -+ 'Line' => '620', -+ 'Param' => { -+ '0' => { -+ 'name' => 'file', -+ 'type' => '289' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '14049', -+ 'ShortName' => 'ibnd_load_fabric' -+ } -+ }, -+ 'SymbolVersion' => { -+ 'ibnd_cache_fabric' => 'ibnd_cache_fabric@@IBNETDISC_1.0', -+ 'ibnd_destroy_fabric' => 'ibnd_destroy_fabric@@IBNETDISC_1.0', -+ 'ibnd_discover_fabric' => 'ibnd_discover_fabric@@IBNETDISC_1.0', -+ 'ibnd_find_node_dr' => 'ibnd_find_node_dr@@IBNETDISC_1.0', -+ 'ibnd_find_node_guid' => 'ibnd_find_node_guid@@IBNETDISC_1.0', -+ 'ibnd_find_port_dr' => 'ibnd_find_port_dr@@IBNETDISC_1.0', -+ 'ibnd_find_port_guid' => 'ibnd_find_port_guid@@IBNETDISC_1.0', -+ 'ibnd_find_port_lid' => 'ibnd_find_port_lid@@IBNETDISC_1.0', -+ 'ibnd_get_chassis_guid' => 'ibnd_get_chassis_guid@@IBNETDISC_1.0', -+ 'ibnd_get_chassis_slot_str' => 'ibnd_get_chassis_slot_str@@IBNETDISC_1.0', -+ 'ibnd_get_chassis_type' => 'ibnd_get_chassis_type@@IBNETDISC_1.0', -+ 'ibnd_is_xsigo_guid' => 'ibnd_is_xsigo_guid@@IBNETDISC_1.0', -+ 'ibnd_is_xsigo_hca' => 'ibnd_is_xsigo_hca@@IBNETDISC_1.0', -+ 'ibnd_is_xsigo_tca' => 'ibnd_is_xsigo_tca@@IBNETDISC_1.0', -+ 'ibnd_iter_nodes' => 'ibnd_iter_nodes@@IBNETDISC_1.0', -+ 'ibnd_iter_nodes_type' => 'ibnd_iter_nodes_type@@IBNETDISC_1.0', -+ 'ibnd_iter_ports' => 'ibnd_iter_ports@@IBNETDISC_1.0', -+ 'ibnd_load_fabric' => 'ibnd_load_fabric@@IBNETDISC_1.0' -+ }, -+ 'Symbols' => { -+ 'libibnetdisc.so.5.0.41.0' => { -+ 'ibnd_cache_fabric@@IBNETDISC_1.0' => 1, -+ 'ibnd_destroy_fabric@@IBNETDISC_1.0' => 1, -+ 'ibnd_discover_fabric@@IBNETDISC_1.0' => 1, -+ 'ibnd_find_node_dr@@IBNETDISC_1.0' => 1, -+ 'ibnd_find_node_guid@@IBNETDISC_1.0' => 1, -+ 'ibnd_find_port_dr@@IBNETDISC_1.0' => 1, -+ 'ibnd_find_port_guid@@IBNETDISC_1.0' => 1, -+ 'ibnd_find_port_lid@@IBNETDISC_1.0' => 1, -+ 'ibnd_get_chassis_guid@@IBNETDISC_1.0' => 1, -+ 'ibnd_get_chassis_slot_str@@IBNETDISC_1.0' => 1, -+ 'ibnd_get_chassis_type@@IBNETDISC_1.0' => 1, -+ 'ibnd_is_xsigo_guid@@IBNETDISC_1.0' => 1, -+ 'ibnd_is_xsigo_hca@@IBNETDISC_1.0' => 1, -+ 'ibnd_is_xsigo_tca@@IBNETDISC_1.0' => 1, -+ 'ibnd_iter_nodes@@IBNETDISC_1.0' => 1, -+ 'ibnd_iter_nodes_type@@IBNETDISC_1.0' => 1, -+ 'ibnd_iter_ports@@IBNETDISC_1.0' => 1, -+ 'ibnd_load_fabric@@IBNETDISC_1.0' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '1068' => { -+ 'BaseType' => '943', -+ 'Header' => undef, -+ 'Line' => '317', -+ 'Name' => 'ib_portid_t', -+ 'Size' => '112', -+ 'Type' => 'Typedef' -+ }, -+ '113' => { -+ 'BaseType' => '92', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '132' => { -+ 'BaseType' => '99', -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Name' => '__uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '14049' => { -+ 'BaseType' => '6705', -+ 'Name' => 'ibnd_fabric_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '144' => { -+ 'BaseType' => '71', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '156' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '192' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '199' => { -+ 'BaseType' => '210', -+ 'Name' => 'char*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '210' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '217' => { -+ 'BaseType' => '210', -+ 'Name' => 'char const', -+ 'Size' => '1', -+ 'Type' => 'Const' -+ }, -+ '241' => { -+ 'BaseType' => '113', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '253' => { -+ 'BaseType' => '132', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => 'uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '265' => { -+ 'BaseType' => '144', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '277' => { -+ 'BaseType' => '156', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '289' => { -+ 'BaseType' => '217', -+ 'Name' => 'char const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '28929' => { -+ 'Header' => undef, -+ 'Line' => '145', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_smps', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'show_progress', -+ 'offset' => '4', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'max_hops', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'debug', -+ 'offset' => '12', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'timeout_ms', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '5' => { -+ 'name' => 'retries', -+ 'offset' => '20', -+ 'type' => '71' -+ }, -+ '6' => { -+ 'name' => 'flags', -+ 'offset' => '24', -+ 'type' => '265' -+ }, -+ '7' => { -+ 'name' => 'mkey', -+ 'offset' => '32', -+ 'type' => '277' -+ }, -+ '8' => { -+ 'name' => 'pad', -+ 'offset' => '40', -+ 'type' => '29060' -+ } -+ }, -+ 'Name' => 'struct ibnd_config', -+ 'Size' => '88', -+ 'Type' => 'Struct' -+ }, -+ '29060' => { -+ 'BaseType' => '241', -+ 'Name' => 'uint8_t[44]', -+ 'Size' => '44', -+ 'Type' => 'Array' -+ }, -+ '29306' => { -+ 'BaseType' => '29318', -+ 'Header' => undef, -+ 'Line' => '214', -+ 'Name' => 'ibnd_iter_node_func_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '29318' => { -+ 'Name' => 'void(*)(ibnd_node_t*, void*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6437' -+ }, -+ '1' => { -+ 'type' => '192' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29340' => { -+ 'BaseType' => '29352', -+ 'Header' => undef, -+ 'Line' => '227', -+ 'Name' => 'ibnd_iter_port_func_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '29352' => { -+ 'Name' => 'void(*)(ibnd_port_t*, void*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6699' -+ }, -+ '1' => { -+ 'type' => '192' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29836' => { -+ 'BaseType' => '28929', -+ 'Name' => 'struct ibnd_config*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30528' => { -+ 'BaseType' => '1068', -+ 'Name' => 'ib_portid_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '45' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '57' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '5822' => { -+ 'Header' => undef, -+ 'Line' => '54', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '6135' -+ }, -+ '1' => { -+ 'name' => 'path_portid', -+ 'offset' => '8', -+ 'type' => '1068' -+ }, -+ '10' => { -+ 'name' => 'nodedesc', -+ 'offset' => '272', -+ 'type' => '6141' -+ }, -+ '11' => { -+ 'name' => 'ports', -+ 'offset' => '336', -+ 'type' => '6301' -+ }, -+ '12' => { -+ 'name' => 'next_chassis_node', -+ 'offset' => '344', -+ 'type' => '6135' -+ }, -+ '13' => { -+ 'name' => 'chassis', -+ 'offset' => '352', -+ 'type' => '6419' -+ }, -+ '14' => { -+ 'name' => 'ch_type', -+ 'offset' => '360', -+ 'type' => '92' -+ }, -+ '15' => { -+ 'name' => 'ch_type_str', -+ 'offset' => '361', -+ 'type' => '777' -+ }, -+ '16' => { -+ 'name' => 'ch_anafanum', -+ 'offset' => '381', -+ 'type' => '92' -+ }, -+ '17' => { -+ 'name' => 'ch_slotnum', -+ 'offset' => '382', -+ 'type' => '92' -+ }, -+ '18' => { -+ 'name' => 'ch_slot', -+ 'offset' => '383', -+ 'type' => '92' -+ }, -+ '19' => { -+ 'name' => 'ch_found', -+ 'offset' => '384', -+ 'type' => '92' -+ }, -+ '2' => { -+ 'name' => 'smalid', -+ 'offset' => '120', -+ 'type' => '253' -+ }, -+ '20' => { -+ 'name' => 'htnext', -+ 'offset' => '392', -+ 'type' => '6135' -+ }, -+ '21' => { -+ 'name' => 'type_next', -+ 'offset' => '400', -+ 'type' => '6135' -+ }, -+ '3' => { -+ 'name' => 'smalmc', -+ 'offset' => '122', -+ 'type' => '241' -+ }, -+ '4' => { -+ 'name' => 'smaenhsp0', -+ 'offset' => '124', -+ 'type' => '64' -+ }, -+ '5' => { -+ 'name' => 'switchinfo', -+ 'offset' => '128', -+ 'type' => '915' -+ }, -+ '6' => { -+ 'name' => 'guid', -+ 'offset' => '192', -+ 'type' => '277' -+ }, -+ '7' => { -+ 'name' => 'type', -+ 'offset' => '200', -+ 'type' => '64' -+ }, -+ '8' => { -+ 'name' => 'numports', -+ 'offset' => '204', -+ 'type' => '64' -+ }, -+ '9' => { -+ 'name' => 'info', -+ 'offset' => '208', -+ 'type' => '915' -+ } -+ }, -+ 'Name' => 'struct ibnd_node', -+ 'Size' => '408', -+ 'Type' => 'Struct' -+ }, -+ '6135' => { -+ 'BaseType' => '5822', -+ 'Name' => 'struct ibnd_node*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6141' => { -+ 'BaseType' => '210', -+ 'Name' => 'char[64]', -+ 'Size' => '64', -+ 'Type' => 'Array' -+ }, -+ '6157' => { -+ 'Header' => undef, -+ 'Line' => '104', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'guid', -+ 'offset' => '0', -+ 'type' => '277' -+ }, -+ '1' => { -+ 'name' => 'portnum', -+ 'offset' => '8', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'ext_portnum', -+ 'offset' => '12', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'node', -+ 'offset' => '16', -+ 'type' => '6437' -+ }, -+ '4' => { -+ 'name' => 'remoteport', -+ 'offset' => '24', -+ 'type' => '6307' -+ }, -+ '5' => { -+ 'name' => 'base_lid', -+ 'offset' => '32', -+ 'type' => '253' -+ }, -+ '6' => { -+ 'name' => 'lmc', -+ 'offset' => '34', -+ 'type' => '241' -+ }, -+ '7' => { -+ 'name' => 'info', -+ 'offset' => '35', -+ 'type' => '915' -+ }, -+ '8' => { -+ 'name' => 'ext_info', -+ 'offset' => '99', -+ 'type' => '915' -+ }, -+ '9' => { -+ 'name' => 'htnext', -+ 'offset' => '168', -+ 'type' => '6307' -+ } -+ }, -+ 'Name' => 'struct ibnd_port', -+ 'Size' => '176', -+ 'Type' => 'Struct' -+ }, -+ '6301' => { -+ 'BaseType' => '6307', -+ 'Name' => 'struct ibnd_port**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6307' => { -+ 'BaseType' => '6157', -+ 'Name' => 'struct ibnd_port*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6313' => { -+ 'Header' => undef, -+ 'Line' => '124', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '6419' -+ }, -+ '1' => { -+ 'name' => 'chassisguid', -+ 'offset' => '8', -+ 'type' => '277' -+ }, -+ '2' => { -+ 'name' => 'chassisnum', -+ 'offset' => '16', -+ 'type' => '92' -+ }, -+ '3' => { -+ 'name' => 'nodecount', -+ 'offset' => '17', -+ 'type' => '92' -+ }, -+ '4' => { -+ 'name' => 'nodes', -+ 'offset' => '24', -+ 'type' => '6437' -+ }, -+ '5' => { -+ 'name' => 'spinenode', -+ 'offset' => '32', -+ 'type' => '6455' -+ }, -+ '6' => { -+ 'name' => 'linenode', -+ 'offset' => '184', -+ 'type' => '6471' -+ } -+ }, -+ 'Name' => 'struct ibnd_chassis', -+ 'Size' => '480', -+ 'Type' => 'Struct' -+ }, -+ '64' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '6419' => { -+ 'BaseType' => '6313', -+ 'Name' => 'struct ibnd_chassis*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6425' => { -+ 'BaseType' => '5822', -+ 'Header' => undef, -+ 'Line' => '99', -+ 'Name' => 'ibnd_node_t', -+ 'Size' => '408', -+ 'Type' => 'Typedef' -+ }, -+ '6437' => { -+ 'BaseType' => '6425', -+ 'Name' => 'ibnd_node_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6443' => { -+ 'BaseType' => '6157', -+ 'Header' => undef, -+ 'Line' => '119', -+ 'Name' => 'ibnd_port_t', -+ 'Size' => '176', -+ 'Type' => 'Typedef' -+ }, -+ '6455' => { -+ 'BaseType' => '6437', -+ 'Name' => 'ibnd_node_t*[19]', -+ 'Size' => '152', -+ 'Type' => 'Array' -+ }, -+ '6471' => { -+ 'BaseType' => '6437', -+ 'Name' => 'ibnd_node_t*[37]', -+ 'Size' => '296', -+ 'Type' => 'Array' -+ }, -+ '6487' => { -+ 'BaseType' => '6313', -+ 'Header' => undef, -+ 'Line' => '138', -+ 'Name' => 'ibnd_chassis_t', -+ 'Size' => '480', -+ 'Type' => 'Typedef' -+ }, -+ '6499' => { -+ 'Header' => undef, -+ 'Line' => '161', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'from_node', -+ 'offset' => '0', -+ 'type' => '6437' -+ }, -+ '1' => { -+ 'name' => 'from_portnum', -+ 'offset' => '8', -+ 'type' => '64' -+ }, -+ '10' => { -+ 'name' => 'routers', -+ 'offset' => '2248', -+ 'type' => '6437' -+ }, -+ '2' => { -+ 'name' => 'nodes', -+ 'offset' => '16', -+ 'type' => '6437' -+ }, -+ '3' => { -+ 'name' => 'chassis', -+ 'offset' => '24', -+ 'type' => '6661' -+ }, -+ '4' => { -+ 'name' => 'maxhops_discovered', -+ 'offset' => '32', -+ 'type' => '71' -+ }, -+ '5' => { -+ 'name' => 'total_mads_used', -+ 'offset' => '36', -+ 'type' => '71' -+ }, -+ '6' => { -+ 'name' => 'nodestbl', -+ 'offset' => '40', -+ 'type' => '6667' -+ }, -+ '7' => { -+ 'name' => 'portstbl', -+ 'offset' => '1136', -+ 'type' => '6683' -+ }, -+ '8' => { -+ 'name' => 'switches', -+ 'offset' => '2232', -+ 'type' => '6437' -+ }, -+ '9' => { -+ 'name' => 'ch_adapters', -+ 'offset' => '2240', -+ 'type' => '6437' -+ } -+ }, -+ 'Name' => 'struct ibnd_fabric', -+ 'Size' => '2256', -+ 'Type' => 'Struct' -+ }, -+ '6661' => { -+ 'BaseType' => '6487', -+ 'Name' => 'ibnd_chassis_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6667' => { -+ 'BaseType' => '6437', -+ 'Name' => 'ibnd_node_t*[137]', -+ 'Size' => '1096', -+ 'Type' => 'Array' -+ }, -+ '6683' => { -+ 'BaseType' => '6699', -+ 'Name' => 'ibnd_port_t*[137]', -+ 'Size' => '1096', -+ 'Type' => 'Array' -+ }, -+ '6699' => { -+ 'BaseType' => '6443', -+ 'Name' => 'ibnd_port_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6705' => { -+ 'BaseType' => '6499', -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Name' => 'ibnd_fabric_t', -+ 'Size' => '2256', -+ 'Type' => 'Typedef' -+ }, -+ '71' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '777' => { -+ 'BaseType' => '210', -+ 'Name' => 'char[20]', -+ 'Size' => '20', -+ 'Type' => 'Array' -+ }, -+ '827' => { -+ 'BaseType' => '241', -+ 'Name' => 'uint8_t[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '843' => { -+ 'BaseType' => '827', -+ 'Header' => undef, -+ 'Line' => '243', -+ 'Name' => 'ibmad_gid_t', -+ 'Size' => '16', -+ 'Type' => 'Typedef' -+ }, -+ '915' => { -+ 'BaseType' => '241', -+ 'Name' => 'uint8_t[64]', -+ 'Size' => '64', -+ 'Type' => 'Array' -+ }, -+ '92' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '943' => { -+ 'Header' => undef, -+ 'Line' => '308', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'lid', -+ 'offset' => '0', -+ 'type' => '64' -+ }, -+ '1' => { -+ 'name' => 'drpath', -+ 'offset' => '4', -+ 'type' => '931' -+ }, -+ '2' => { -+ 'name' => 'grh_present', -+ 'offset' => '76', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'gid', -+ 'offset' => '80', -+ 'type' => '843' -+ }, -+ '4' => { -+ 'name' => 'qp', -+ 'offset' => '96', -+ 'type' => '265' -+ }, -+ '5' => { -+ 'name' => 'qkey', -+ 'offset' => '100', -+ 'type' => '265' -+ }, -+ '6' => { -+ 'name' => 'sl', -+ 'offset' => '104', -+ 'type' => '241' -+ }, -+ '7' => { -+ 'name' => 'pkey_idx', -+ 'offset' => '108', -+ 'type' => '71' -+ } -+ }, -+ 'Name' => 'struct portid', -+ 'Size' => '112', -+ 'Type' => 'Struct' -+ }, -+ '99' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'libibnetdisc.so.5.0.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__fprintf_chk@GLIBC_2.3.4' => 0, -+ '__gmon_start__' => 0, -+ '__memset_chk@GLIBC_2.3.4' => 0, -+ '__printf_chk@GLIBC_2.3.4' => 0, -+ '__snprintf_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ '__xstat@GLIBC_2.2.5' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'close@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'ib_resolve_self_via@IBMAD_1.3' => 0, -+ 'ibdebug@IBMAD_1.3' => 0, -+ 'lseek@GLIBC_2.2.5' => 0, -+ 'mad_build_pkt@IBMAD_1.3' => 0, -+ 'mad_decode_field@IBMAD_1.3' => 0, -+ 'mad_dump_node_type@IBMAD_1.3' => 0, -+ 'mad_dump_val@IBMAD_1.3' => 0, -+ 'mad_get_field64@IBMAD_1.3' => 0, -+ 'mad_get_field@IBMAD_1.3' => 0, -+ 'mad_rpc_close_port@IBMAD_1.3' => 0, -+ 'mad_rpc_open_port@IBMAD_1.3' => 0, -+ 'mad_rpc_set_retries@IBMAD_1.3' => 0, -+ 'mad_rpc_set_timeout@IBMAD_1.3' => 0, -+ 'mad_trid@IBMAD_1.3' => 0, -+ 'malloc@GLIBC_2.2.5' => 0, -+ 'open@GLIBC_2.2.5' => 0, -+ 'portid2str@IBMAD_1.3' => 0, -+ 'read@GLIBC_2.2.5' => 0, -+ 'smp_mkey_set@IBMAD_1.3' => 0, -+ 'stderr@GLIBC_2.2.5' => 0, -+ 'str2drpath@IBMAD_1.3' => 0, -+ 'strerror@GLIBC_2.2.5' => 0, -+ 'strncpy@GLIBC_2.2.5' => 0, -+ 'strtol@GLIBC_2.2.5' => 0, -+ 'umad_close_port@IBUMAD_1.0' => 0, -+ 'umad_get_mad@IBUMAD_1.0' => 0, -+ 'umad_init@IBUMAD_1.0' => 0, -+ 'umad_open_port@IBUMAD_1.0' => 0, -+ 'umad_recv@IBUMAD_1.0' => 0, -+ 'umad_register@IBUMAD_1.0' => 0, -+ 'umad_send@IBUMAD_1.0' => 0, -+ 'umad_size@IBUMAD_1.0' => 0, -+ 'umad_status@IBUMAD_1.0' => 0, -+ 'unlink@GLIBC_2.2.5' => 0, -+ 'write@GLIBC_2.2.5' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; -diff --git a/ABI/ibumad.dump b/ABI/ibumad.dump -new file mode 100644 -index 0000000..21ba5bb ---- /dev/null -+++ b/ABI/ibumad.dump -@@ -0,0 +1,1427 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'libibumad.so.3.2.41.0', -+ 'LibraryVersion' => 'ibumad', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'libc.so.6' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '10514' => { -+ 'Header' => undef, -+ 'Line' => '1044', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ }, -+ '1' => { -+ 'name' => 'mgmt_class', -+ 'type' => '111' -+ }, -+ '2' => { -+ 'name' => 'mgmt_version', -+ 'type' => '111' -+ }, -+ '3' => { -+ 'name' => 'rmpp_version', -+ 'type' => '174' -+ }, -+ '4' => { -+ 'name' => 'method_mask', -+ 'type' => '11327' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_register' -+ }, -+ '11354' => { -+ 'Header' => undef, -+ 'Line' => '1005', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ }, -+ '1' => { -+ 'name' => 'mgmt_class', -+ 'type' => '111' -+ }, -+ '2' => { -+ 'name' => 'rmpp_version', -+ 'type' => '174' -+ }, -+ '3' => { -+ 'name' => 'oui', -+ 'type' => '12251' -+ }, -+ '4' => { -+ 'name' => 'method_mask', -+ 'type' => '11327' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_register_oui' -+ }, -+ '12278' => { -+ 'Header' => undef, -+ 'Line' => '999', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_get_fd' -+ }, -+ '12491' => { -+ 'Header' => undef, -+ 'Line' => '993', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ }, -+ '1' => { -+ 'name' => 'timeout_ms', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_poll' -+ }, -+ '12896' => { -+ 'Header' => undef, -+ 'Line' => '946', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ }, -+ '1' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '784' -+ }, -+ '3' => { -+ 'name' => 'timeout_ms', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_recv' -+ }, -+ '13934' => { -+ 'Header' => undef, -+ 'Line' => '901', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ }, -+ '1' => { -+ 'name' => 'agentid', -+ 'type' => '111' -+ }, -+ '2' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'type' => '111' -+ }, -+ '4' => { -+ 'name' => 'timeout_ms', -+ 'type' => '111' -+ }, -+ '5' => { -+ 'name' => 'retries', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_send' -+ }, -+ '14510' => { -+ 'Header' => undef, -+ 'Line' => '887', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ }, -+ '1' => { -+ 'name' => 'dlid', -+ 'type' => '298' -+ }, -+ '2' => { -+ 'name' => 'dqp', -+ 'type' => '4339' -+ }, -+ '3' => { -+ 'name' => 'sl', -+ 'type' => '111' -+ }, -+ '4' => { -+ 'name' => 'qkey', -+ 'type' => '4339' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_set_addr_net' -+ }, -+ '14954' => { -+ 'Header' => undef, -+ 'Line' => '873', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ }, -+ '1' => { -+ 'name' => 'dlid', -+ 'type' => '111' -+ }, -+ '2' => { -+ 'name' => 'dqp', -+ 'type' => '111' -+ }, -+ '3' => { -+ 'name' => 'sl', -+ 'type' => '111' -+ }, -+ '4' => { -+ 'name' => 'qkey', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_set_addr' -+ }, -+ '15366' => { -+ 'Header' => undef, -+ 'Line' => '863', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_get_pkey' -+ }, -+ '15438' => { -+ 'Header' => undef, -+ 'Line' => '853', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ }, -+ '1' => { -+ 'name' => 'pkey_index', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_set_pkey' -+ }, -+ '15525' => { -+ 'Header' => undef, -+ 'Line' => '835', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ }, -+ '1' => { -+ 'name' => 'mad_addr', -+ 'type' => '137' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_set_grh' -+ }, -+ '15675' => { -+ 'Header' => undef, -+ 'Line' => '829', -+ 'Return' => '198', -+ 'ShortName' => 'umad_size' -+ }, -+ '15706' => { -+ 'Header' => undef, -+ 'Line' => '823', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ } -+ }, -+ 'Return' => '137', -+ 'ShortName' => 'umad_get_mad' -+ }, -+ '15757' => { -+ 'Header' => undef, -+ 'Line' => '816', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_close_port' -+ }, -+ '15973' => { -+ 'Header' => undef, -+ 'Line' => '801', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port', -+ 'type' => '5205' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_release_port' -+ }, -+ '16368' => { -+ 'Header' => undef, -+ 'Line' => '778', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'type' => '210' -+ }, -+ '1' => { -+ 'name' => 'portnum', -+ 'type' => '111' -+ }, -+ '2' => { -+ 'name' => 'port', -+ 'type' => '5205' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_get_port' -+ }, -+ '17080' => { -+ 'Header' => undef, -+ 'Line' => '763', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ca', -+ 'type' => '17521' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_release_ca' -+ }, -+ '17527' => { -+ 'Header' => undef, -+ 'Line' => '738', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'type' => '210' -+ }, -+ '1' => { -+ 'name' => 'ca', -+ 'type' => '17521' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_get_ca' -+ }, -+ '18153' => { -+ 'Header' => undef, -+ 'Line' => '688', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'type' => '210' -+ }, -+ '1' => { -+ 'name' => 'portnum', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_open_port' -+ }, -+ '19480' => { -+ 'Header' => undef, -+ 'Line' => '661', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'type' => '210' -+ }, -+ '1' => { -+ 'name' => 'portnum', -+ 'type' => '111' -+ }, -+ '2' => { -+ 'name' => 'path', -+ 'type' => '151' -+ }, -+ '3' => { -+ 'name' => 'max', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_get_issm_path' -+ }, -+ '20215' => { -+ 'Header' => undef, -+ 'Line' => '622', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'type' => '210' -+ }, -+ '1' => { -+ 'name' => 'portguids', -+ 'type' => '2006' -+ }, -+ '2' => { -+ 'name' => 'max', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_get_ca_portguids' -+ }, -+ '20986' => { -+ 'Header' => undef, -+ 'Line' => '592', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cas', -+ 'type' => '21775' -+ }, -+ '1' => { -+ 'name' => 'max', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_get_cas_names' -+ }, -+ '22062' => { -+ 'Header' => undef, -+ 'Line' => '572', -+ 'Return' => '111', -+ 'ShortName' => 'umad_done' -+ }, -+ '22228' => { -+ 'Header' => undef, -+ 'Line' => '566', -+ 'Return' => '111', -+ 'ShortName' => 'umad_init' -+ }, -+ '30376' => { -+ 'Header' => undef, -+ 'Line' => '339', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt_class', -+ 'type' => '174' -+ }, -+ '1' => { -+ 'name' => 'attr_id', -+ 'type' => '298' -+ } -+ }, -+ 'Return' => '210', -+ 'ShortName' => 'umad_attribute_str' -+ }, -+ '30890' => { -+ 'Header' => undef, -+ 'Line' => '165', -+ 'Param' => { -+ '0' => { -+ 'name' => '_status', -+ 'type' => '298' -+ } -+ }, -+ 'Return' => '210', -+ 'ShortName' => 'umad_sa_mad_status_str' -+ }, -+ '31006' => { -+ 'Header' => undef, -+ 'Line' => '142', -+ 'Param' => { -+ '0' => { -+ 'name' => '_status', -+ 'type' => '298' -+ } -+ }, -+ 'Return' => '210', -+ 'ShortName' => 'umad_common_mad_status_str' -+ }, -+ '31110' => { -+ 'Header' => undef, -+ 'Line' => '134', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt_class', -+ 'type' => '174' -+ }, -+ '1' => { -+ 'name' => 'method', -+ 'type' => '174' -+ } -+ }, -+ 'Return' => '210', -+ 'ShortName' => 'umad_method_str' -+ }, -+ '31348' => { -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mgmt_class', -+ 'type' => '174' -+ } -+ }, -+ 'Return' => '210', -+ 'ShortName' => 'umad_class_str' -+ }, -+ '6984' => { -+ 'Header' => undef, -+ 'Line' => '1322', -+ 'Param' => { -+ '0' => { -+ 'name' => 'head', -+ 'type' => '5263' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'umad_free_ca_device_list' -+ }, -+ '7092' => { -+ 'Header' => undef, -+ 'Line' => '1265', -+ 'Return' => '5263', -+ 'ShortName' => 'umad_get_ca_device_list' -+ }, -+ '7801' => { -+ 'Header' => undef, -+ 'Line' => '1218', -+ 'Param' => { -+ '0' => { -+ 'name' => 'head', -+ 'type' => '8065' -+ }, -+ '1' => { -+ 'name' => 'size', -+ 'type' => '198' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_sort_ca_device_list' -+ }, -+ '8071' => { -+ 'Header' => undef, -+ 'Line' => '1209', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'umad_dump' -+ }, -+ '8331' => { -+ 'Header' => undef, -+ 'Line' => '1189', -+ 'Param' => { -+ '0' => { -+ 'name' => 'addr', -+ 'type' => '8693' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'umad_addr_dump' -+ }, -+ '8736' => { -+ 'Header' => undef, -+ 'Line' => '1182', -+ 'Param' => { -+ '0' => { -+ 'name' => 'level', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_debug' -+ }, -+ '8787' => { -+ 'Header' => undef, -+ 'Line' => '1175', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ } -+ }, -+ 'Return' => '8693', -+ 'ShortName' => 'umad_get_mad_addr' -+ }, -+ '8859' => { -+ 'Header' => undef, -+ 'Line' => '1168', -+ 'Param' => { -+ '0' => { -+ 'name' => 'umad', -+ 'type' => '137' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_status' -+ }, -+ '8931' => { -+ 'Header' => undef, -+ 'Line' => '1162', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fd', -+ 'type' => '111' -+ }, -+ '1' => { -+ 'name' => 'agentid', -+ 'type' => '111' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_unregister' -+ }, -+ '9207' => { -+ 'Header' => undef, -+ 'Line' => '1079', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port_fd', -+ 'type' => '111' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '10481' -+ }, -+ '2' => { -+ 'name' => 'agent_id', -+ 'type' => '10487' -+ } -+ }, -+ 'Return' => '111', -+ 'ShortName' => 'umad_register2' -+ } -+ }, -+ 'SymbolVersion' => { -+ 'umad_addr_dump' => 'umad_addr_dump@@IBUMAD_1.0', -+ 'umad_attribute_str' => 'umad_attribute_str@@IBUMAD_1.0', -+ 'umad_class_str' => 'umad_class_str@@IBUMAD_1.0', -+ 'umad_close_port' => 'umad_close_port@@IBUMAD_1.0', -+ 'umad_common_mad_status_str' => 'umad_common_mad_status_str@@IBUMAD_1.0', -+ 'umad_debug' => 'umad_debug@@IBUMAD_1.0', -+ 'umad_done' => 'umad_done@@IBUMAD_1.0', -+ 'umad_dump' => 'umad_dump@@IBUMAD_1.0', -+ 'umad_free_ca_device_list' => 'umad_free_ca_device_list@@IBUMAD_1.1', -+ 'umad_get_ca' => 'umad_get_ca@@IBUMAD_1.0', -+ 'umad_get_ca_device_list' => 'umad_get_ca_device_list@@IBUMAD_1.1', -+ 'umad_get_ca_portguids' => 'umad_get_ca_portguids@@IBUMAD_1.0', -+ 'umad_get_cas_names' => 'umad_get_cas_names@@IBUMAD_1.0', -+ 'umad_get_fd' => 'umad_get_fd@@IBUMAD_1.0', -+ 'umad_get_issm_path' => 'umad_get_issm_path@@IBUMAD_1.0', -+ 'umad_get_mad' => 'umad_get_mad@@IBUMAD_1.0', -+ 'umad_get_mad_addr' => 'umad_get_mad_addr@@IBUMAD_1.0', -+ 'umad_get_pkey' => 'umad_get_pkey@@IBUMAD_1.0', -+ 'umad_get_port' => 'umad_get_port@@IBUMAD_1.0', -+ 'umad_init' => 'umad_init@@IBUMAD_1.0', -+ 'umad_method_str' => 'umad_method_str@@IBUMAD_1.0', -+ 'umad_open_port' => 'umad_open_port@@IBUMAD_1.0', -+ 'umad_poll' => 'umad_poll@@IBUMAD_1.0', -+ 'umad_recv' => 'umad_recv@@IBUMAD_1.0', -+ 'umad_register' => 'umad_register@@IBUMAD_1.0', -+ 'umad_register2' => 'umad_register2@@IBUMAD_1.0', -+ 'umad_register_oui' => 'umad_register_oui@@IBUMAD_1.0', -+ 'umad_release_ca' => 'umad_release_ca@@IBUMAD_1.0', -+ 'umad_release_port' => 'umad_release_port@@IBUMAD_1.0', -+ 'umad_sa_mad_status_str' => 'umad_sa_mad_status_str@@IBUMAD_1.0', -+ 'umad_send' => 'umad_send@@IBUMAD_1.0', -+ 'umad_set_addr' => 'umad_set_addr@@IBUMAD_1.0', -+ 'umad_set_addr_net' => 'umad_set_addr_net@@IBUMAD_1.0', -+ 'umad_set_grh' => 'umad_set_grh@@IBUMAD_1.0', -+ 'umad_set_pkey' => 'umad_set_pkey@@IBUMAD_1.0', -+ 'umad_size' => 'umad_size@@IBUMAD_1.0', -+ 'umad_sort_ca_device_list' => 'umad_sort_ca_device_list@@IBUMAD_1.2', -+ 'umad_status' => 'umad_status@@IBUMAD_1.0', -+ 'umad_unregister' => 'umad_unregister@@IBUMAD_1.0' -+ }, -+ 'Symbols' => { -+ 'libibumad.so.3.2.41.0' => { -+ 'umad_addr_dump@@IBUMAD_1.0' => 1, -+ 'umad_attribute_str@@IBUMAD_1.0' => 1, -+ 'umad_class_str@@IBUMAD_1.0' => 1, -+ 'umad_close_port@@IBUMAD_1.0' => 1, -+ 'umad_common_mad_status_str@@IBUMAD_1.0' => 1, -+ 'umad_debug@@IBUMAD_1.0' => 1, -+ 'umad_done@@IBUMAD_1.0' => 1, -+ 'umad_dump@@IBUMAD_1.0' => 1, -+ 'umad_free_ca_device_list@@IBUMAD_1.1' => 1, -+ 'umad_get_ca@@IBUMAD_1.0' => 1, -+ 'umad_get_ca_device_list@@IBUMAD_1.1' => 1, -+ 'umad_get_ca_portguids@@IBUMAD_1.0' => 1, -+ 'umad_get_cas_names@@IBUMAD_1.0' => 1, -+ 'umad_get_fd@@IBUMAD_1.0' => 1, -+ 'umad_get_issm_path@@IBUMAD_1.0' => 1, -+ 'umad_get_mad@@IBUMAD_1.0' => 1, -+ 'umad_get_mad_addr@@IBUMAD_1.0' => 1, -+ 'umad_get_pkey@@IBUMAD_1.0' => 1, -+ 'umad_get_port@@IBUMAD_1.0' => 1, -+ 'umad_init@@IBUMAD_1.0' => 1, -+ 'umad_method_str@@IBUMAD_1.0' => 1, -+ 'umad_open_port@@IBUMAD_1.0' => 1, -+ 'umad_poll@@IBUMAD_1.0' => 1, -+ 'umad_recv@@IBUMAD_1.0' => 1, -+ 'umad_register2@@IBUMAD_1.0' => 1, -+ 'umad_register@@IBUMAD_1.0' => 1, -+ 'umad_register_oui@@IBUMAD_1.0' => 1, -+ 'umad_release_ca@@IBUMAD_1.0' => 1, -+ 'umad_release_port@@IBUMAD_1.0' => 1, -+ 'umad_sa_mad_status_str@@IBUMAD_1.0' => 1, -+ 'umad_send@@IBUMAD_1.0' => 1, -+ 'umad_set_addr@@IBUMAD_1.0' => 1, -+ 'umad_set_addr_net@@IBUMAD_1.0' => 1, -+ 'umad_set_grh@@IBUMAD_1.0' => 1, -+ 'umad_set_pkey@@IBUMAD_1.0' => 1, -+ 'umad_size@@IBUMAD_1.0' => 1, -+ 'umad_sort_ca_device_list@@IBUMAD_1.2' => 1, -+ 'umad_status@@IBUMAD_1.0' => 1, -+ 'umad_unregister@@IBUMAD_1.0' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '10481' => { -+ 'BaseType' => '5269', -+ 'Name' => 'struct umad_reg_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10487' => { -+ 'BaseType' => '4184', -+ 'Name' => 'uint32_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '111' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '11327' => { -+ 'BaseType' => '118', -+ 'Name' => 'long*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '118' => { -+ 'Name' => 'long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '12251' => { -+ 'BaseType' => '174', -+ 'Name' => 'uint8_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '125' => { -+ 'BaseType' => '66', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '137' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '151' => { -+ 'BaseType' => '162', -+ 'Name' => 'char*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '162' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '169' => { -+ 'BaseType' => '162', -+ 'Name' => 'char const', -+ 'Size' => '1', -+ 'Type' => 'Const' -+ }, -+ '174' => { -+ 'BaseType' => '80', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '17521' => { -+ 'BaseType' => '5211', -+ 'Name' => 'umad_ca_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '186' => { -+ 'BaseType' => '125', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '198' => { -+ 'BaseType' => '66', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '2006' => { -+ 'BaseType' => '310', -+ 'Name' => '__be64*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '210' => { -+ 'BaseType' => '169', -+ 'Name' => 'char const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '21775' => { -+ 'BaseType' => '3878', -+ 'Name' => 'char[20]*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '240' => { -+ 'Name' => 'unsigned long long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '274' => { -+ 'BaseType' => '52', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => '__u16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '286' => { -+ 'BaseType' => '240', -+ 'Header' => undef, -+ 'Line' => '31', -+ 'Name' => '__u64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '298' => { -+ 'BaseType' => '274', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => '__be16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '310' => { -+ 'BaseType' => '286', -+ 'Header' => undef, -+ 'Line' => '29', -+ 'Name' => '__be64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '322' => { -+ 'BaseType' => '174', -+ 'Name' => 'uint8_t[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '3233' => { -+ 'BaseType' => '59', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '338' => { -+ 'Header' => undef, -+ 'Line' => '59', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'subnet_prefix', -+ 'offset' => '0', -+ 'type' => '310' -+ }, -+ '1' => { -+ 'name' => 'interface_id', -+ 'offset' => '8', -+ 'type' => '310' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '374' => { -+ 'Header' => undef, -+ 'Line' => '56', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'raw', -+ 'offset' => '0', -+ 'type' => '322' -+ }, -+ '1' => { -+ 'name' => 'raw_be16', -+ 'offset' => '0', -+ 'type' => '425' -+ }, -+ '2' => { -+ 'name' => 'global', -+ 'offset' => '0', -+ 'type' => '338' -+ } -+ }, -+ 'Name' => 'union umad_gid', -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '3878' => { -+ 'BaseType' => '162', -+ 'Name' => 'char[20]', -+ 'Size' => '20', -+ 'Type' => 'Array' -+ }, -+ '3924' => { -+ 'BaseType' => '162', -+ 'Name' => 'char[40]', -+ 'Size' => '40', -+ 'Type' => 'Array' -+ }, -+ '4172' => { -+ 'BaseType' => '99', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => 'uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '4184' => { -+ 'BaseType' => '3233', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '425' => { -+ 'BaseType' => '298', -+ 'Name' => '__be16[8]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '4303' => { -+ 'BaseType' => '59', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__u32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '4339' => { -+ 'BaseType' => '4303', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__be32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '4466' => { -+ 'Header' => undef, -+ 'Line' => '77', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'gid', -+ 'offset' => '0', -+ 'type' => '322' -+ }, -+ '1' => { -+ 'name' => 'ib_gid', -+ 'offset' => '0', -+ 'type' => '374' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '45' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '4502' => { -+ 'Header' => undef, -+ 'Line' => '67', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qpn', -+ 'offset' => '0', -+ 'type' => '4339' -+ }, -+ '1' => { -+ 'name' => 'qkey', -+ 'offset' => '4', -+ 'type' => '4339' -+ }, -+ '10' => { -+ 'name' => 'flow_label', -+ 'offset' => '32', -+ 'type' => '4339' -+ }, -+ '11' => { -+ 'name' => 'pkey_index', -+ 'offset' => '36', -+ 'type' => '4172' -+ }, -+ '12' => { -+ 'name' => 'reserved', -+ 'offset' => '38', -+ 'type' => '4679' -+ }, -+ '2' => { -+ 'name' => 'lid', -+ 'offset' => '8', -+ 'type' => '298' -+ }, -+ '3' => { -+ 'name' => 'sl', -+ 'offset' => '10', -+ 'type' => '174' -+ }, -+ '4' => { -+ 'name' => 'path_bits', -+ 'offset' => '11', -+ 'type' => '174' -+ }, -+ '5' => { -+ 'name' => 'grh_present', -+ 'offset' => '12', -+ 'type' => '174' -+ }, -+ '6' => { -+ 'name' => 'gid_index', -+ 'offset' => '13', -+ 'type' => '174' -+ }, -+ '7' => { -+ 'name' => 'hop_limit', -+ 'offset' => '14', -+ 'type' => '174' -+ }, -+ '8' => { -+ 'name' => 'traffic_class', -+ 'offset' => '15', -+ 'type' => '174' -+ }, -+ '9' => { -+ 'name' => 'unnamed0', -+ 'offset' => '16', -+ 'type' => '4466' -+ } -+ }, -+ 'Name' => 'struct ib_mad_addr', -+ 'Size' => '44', -+ 'Type' => 'Struct' -+ }, -+ '4679' => { -+ 'BaseType' => '174', -+ 'Name' => 'uint8_t[6]', -+ 'Size' => '6', -+ 'Type' => 'Array' -+ }, -+ '4695' => { -+ 'BaseType' => '4502', -+ 'Header' => undef, -+ 'Line' => '84', -+ 'Name' => 'ib_mad_addr_t', -+ 'Size' => '44', -+ 'Type' => 'Typedef' -+ }, -+ '4831' => { -+ 'Header' => undef, -+ 'Line' => '142', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'offset' => '0', -+ 'type' => '3878' -+ }, -+ '1' => { -+ 'name' => 'portnum', -+ 'offset' => '20', -+ 'type' => '111' -+ }, -+ '10' => { -+ 'name' => 'gid_prefix', -+ 'offset' => '56', -+ 'type' => '310' -+ }, -+ '11' => { -+ 'name' => 'port_guid', -+ 'offset' => '64', -+ 'type' => '310' -+ }, -+ '12' => { -+ 'name' => 'pkeys_size', -+ 'offset' => '72', -+ 'type' => '59' -+ }, -+ '13' => { -+ 'name' => 'pkeys', -+ 'offset' => '80', -+ 'type' => '5040' -+ }, -+ '14' => { -+ 'name' => 'link_layer', -+ 'offset' => '88', -+ 'type' => '3878' -+ }, -+ '2' => { -+ 'name' => 'base_lid', -+ 'offset' => '24', -+ 'type' => '59' -+ }, -+ '3' => { -+ 'name' => 'lmc', -+ 'offset' => '28', -+ 'type' => '59' -+ }, -+ '4' => { -+ 'name' => 'sm_lid', -+ 'offset' => '32', -+ 'type' => '59' -+ }, -+ '5' => { -+ 'name' => 'sm_sl', -+ 'offset' => '36', -+ 'type' => '59' -+ }, -+ '6' => { -+ 'name' => 'state', -+ 'offset' => '40', -+ 'type' => '59' -+ }, -+ '7' => { -+ 'name' => 'phys_state', -+ 'offset' => '44', -+ 'type' => '59' -+ }, -+ '8' => { -+ 'name' => 'rate', -+ 'offset' => '48', -+ 'type' => '59' -+ }, -+ '9' => { -+ 'name' => 'capmask', -+ 'offset' => '52', -+ 'type' => '4339' -+ } -+ }, -+ 'Name' => 'struct umad_port', -+ 'Size' => '112', -+ 'Type' => 'Struct' -+ }, -+ '5040' => { -+ 'BaseType' => '4172', -+ 'Name' => 'uint16_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5046' => { -+ 'BaseType' => '4831', -+ 'Header' => undef, -+ 'Line' => '158', -+ 'Name' => 'umad_port_t', -+ 'Size' => '112', -+ 'Type' => 'Typedef' -+ }, -+ '5058' => { -+ 'Header' => undef, -+ 'Line' => '160', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ca_name', -+ 'offset' => '0', -+ 'type' => '3878' -+ }, -+ '1' => { -+ 'name' => 'node_type', -+ 'offset' => '20', -+ 'type' => '59' -+ }, -+ '2' => { -+ 'name' => 'numports', -+ 'offset' => '24', -+ 'type' => '111' -+ }, -+ '3' => { -+ 'name' => 'fw_ver', -+ 'offset' => '28', -+ 'type' => '3878' -+ }, -+ '4' => { -+ 'name' => 'ca_type', -+ 'offset' => '48', -+ 'type' => '3924' -+ }, -+ '5' => { -+ 'name' => 'hw_ver', -+ 'offset' => '88', -+ 'type' => '3878' -+ }, -+ '6' => { -+ 'name' => 'node_guid', -+ 'offset' => '112', -+ 'type' => '310' -+ }, -+ '7' => { -+ 'name' => 'system_guid', -+ 'offset' => '120', -+ 'type' => '310' -+ }, -+ '8' => { -+ 'name' => 'ports', -+ 'offset' => '128', -+ 'type' => '5189' -+ } -+ }, -+ 'Name' => 'struct umad_ca', -+ 'Size' => '208', -+ 'Type' => 'Struct' -+ }, -+ '5189' => { -+ 'BaseType' => '5205', -+ 'Name' => 'umad_port_t*[10]', -+ 'Size' => '80', -+ 'Type' => 'Array' -+ }, -+ '52' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '5205' => { -+ 'BaseType' => '5046', -+ 'Name' => 'umad_port_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5211' => { -+ 'BaseType' => '5058', -+ 'Header' => undef, -+ 'Line' => '170', -+ 'Name' => 'umad_ca_t', -+ 'Size' => '208', -+ 'Type' => 'Typedef' -+ }, -+ '5223' => { -+ 'Header' => undef, -+ 'Line' => '172', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '5263' -+ }, -+ '1' => { -+ 'name' => 'ca_name', -+ 'offset' => '8', -+ 'type' => '210' -+ } -+ }, -+ 'Name' => 'struct umad_device_node', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '5263' => { -+ 'BaseType' => '5223', -+ 'Name' => 'struct umad_device_node*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5269' => { -+ 'Header' => undef, -+ 'Line' => '224', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mgmt_class', -+ 'offset' => '0', -+ 'type' => '174' -+ }, -+ '1' => { -+ 'name' => 'mgmt_class_version', -+ 'offset' => '1', -+ 'type' => '174' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '4', -+ 'type' => '4184' -+ }, -+ '3' => { -+ 'name' => 'method_mask', -+ 'offset' => '8', -+ 'type' => '5361' -+ }, -+ '4' => { -+ 'name' => 'oui', -+ 'offset' => '24', -+ 'type' => '4184' -+ }, -+ '5' => { -+ 'name' => 'rmpp_version', -+ 'offset' => '28', -+ 'type' => '174' -+ } -+ }, -+ 'Name' => 'struct umad_reg_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '5361' => { -+ 'BaseType' => '186', -+ 'Name' => 'uint64_t[2]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '59' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '66' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '784' => { -+ 'BaseType' => '111', -+ 'Name' => 'int*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '80' => { -+ 'BaseType' => '45', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '8065' => { -+ 'BaseType' => '5263', -+ 'Name' => 'struct umad_device_node**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8693' => { -+ 'BaseType' => '4695', -+ 'Name' => 'ib_mad_addr_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '99' => { -+ 'BaseType' => '52', -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Name' => '__uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'libibumad.so.3.2.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__ctype_b_loc@GLIBC_2.3' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__fprintf_chk@GLIBC_2.3.4' => 0, -+ '__gmon_start__' => 0, -+ '__snprintf_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ 'alphasort@GLIBC_2.2.5' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'close@GLIBC_2.2.5' => 0, -+ 'closedir@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'getpid@GLIBC_2.2.5' => 0, -+ 'ioctl@GLIBC_2.2.5' => 0, -+ 'open@GLIBC_2.2.5' => 0, -+ 'opendir@GLIBC_2.2.5' => 0, -+ 'poll@GLIBC_2.2.5' => 0, -+ 'qsort@GLIBC_2.2.5' => 0, -+ 'read@GLIBC_2.2.5' => 0, -+ 'readdir@GLIBC_2.2.5' => 0, -+ 'scandir@GLIBC_2.2.5' => 0, -+ 'snprintf@GLIBC_2.2.5' => 0, -+ 'stderr@GLIBC_2.2.5' => 0, -+ 'strcmp@GLIBC_2.2.5' => 0, -+ 'strcpy@GLIBC_2.2.5' => 0, -+ 'strdup@GLIBC_2.2.5' => 0, -+ 'strerror@GLIBC_2.2.5' => 0, -+ 'strlen@GLIBC_2.2.5' => 0, -+ 'strncmp@GLIBC_2.2.5' => 0, -+ 'strncpy@GLIBC_2.2.5' => 0, -+ 'strrchr@GLIBC_2.2.5' => 0, -+ 'strsep@GLIBC_2.2.5' => 0, -+ 'strtol@GLIBC_2.2.5' => 0, -+ 'strtoul@GLIBC_2.2.5' => 0, -+ 'strtoull@GLIBC_2.2.5' => 0, -+ 'write@GLIBC_2.2.5' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; -diff --git a/ABI/ibverbs.dump b/ABI/ibverbs.dump -new file mode 100644 -index 0000000..69d8d53 ---- /dev/null -+++ b/ABI/ibverbs.dump -@@ -0,0 +1,18607 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'libibverbs.so.1.14.41.0', -+ 'LibraryVersion' => 'ibverbs', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'libc.so.6' => 1, -+ 'libdl.so.2' => 1, -+ 'libnl-3.so.200' => 1, -+ 'libnl-route-3.so.200' => 1, -+ 'libpthread.so.0' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '101327' => { -+ 'Header' => undef, -+ 'Line' => '186', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'driver', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_query_context' -+ }, -+ '102114' => { -+ 'Header' => undef, -+ 'Line' => '174', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context_ex', -+ 'type' => '93323' -+ }, -+ '1' => { -+ 'name' => 'cmd', -+ 'type' => '103456' -+ }, -+ '2' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'resp', -+ 'type' => '103462' -+ }, -+ '4' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_get_context' -+ }, -+ '104219' => { -+ 'Header' => undef, -+ 'Line' => '68', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'port_attr', -+ 'type' => '66022' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '105302' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_query_port' -+ }, -+ '112971' => { -+ 'Header' => undef, -+ 'Line' => '78', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'dm', -+ 'type' => '114981' -+ }, -+ '2' => { -+ 'name' => 'offset', -+ 'type' => '956' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '4' => { -+ 'name' => 'access', -+ 'type' => '64' -+ }, -+ '5' => { -+ 'name' => 'vmr', -+ 'type' => '24587' -+ }, -+ '6' => { -+ 'name' => 'link', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_reg_dm_mr' -+ }, -+ '115007' => { -+ 'Header' => undef, -+ 'Line' => '63', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dm', -+ 'type' => '114981' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_free_dm' -+ }, -+ '115452' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'dm_attr', -+ 'type' => '116456' -+ }, -+ '2' => { -+ 'name' => 'dm', -+ 'type' => '114981' -+ }, -+ '3' => { -+ 'name' => 'link', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_alloc_dm' -+ }, -+ '146045' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'flow_id', -+ 'type' => '18997' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_flow' -+ }, -+ '153544' => { -+ 'Header' => undef, -+ 'Line' => '120', -+ 'Param' => { -+ '0' => { -+ 'name' => 'action', -+ 'type' => '153972' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_flow_action' -+ }, -+ '153996' => { -+ 'Header' => undef, -+ 'Line' => '101', -+ 'Param' => { -+ '0' => { -+ 'name' => 'flow_action', -+ 'type' => '153972' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '66354' -+ }, -+ '2' => { -+ 'name' => 'driver', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_modify_flow_action_esp' -+ }, -+ '154518' => { -+ 'Header' => undef, -+ 'Line' => '72', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '66354' -+ }, -+ '2' => { -+ 'name' => 'flow_action', -+ 'type' => '153972' -+ }, -+ '3' => { -+ 'name' => 'driver', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_flow_action_esp' -+ }, -+ '182966' => { -+ 'Header' => undef, -+ 'Line' => '120', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'offset', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'iova', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'fd', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'access', -+ 'type' => '130' -+ }, -+ '6' => { -+ 'name' => 'vmr', -+ 'type' => '24587' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_reg_dmabuf_mr' -+ }, -+ '185089' => { -+ 'Header' => undef, -+ 'Line' => '90', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'vmr', -+ 'type' => '24587' -+ }, -+ '2' => { -+ 'name' => 'mr_handle', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_query_mr' -+ }, -+ '186193' => { -+ 'Header' => undef, -+ 'Line' => '58', -+ 'Param' => { -+ '0' => { -+ 'name' => 'vmr', -+ 'type' => '24587' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_dereg_mr' -+ }, -+ '186714' => { -+ 'Header' => undef, -+ 'Line' => '39', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'advice', -+ 'type' => '54649' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'sg_list', -+ 'type' => '14748' -+ }, -+ '4' => { -+ 'name' => 'num_sge', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_advise_mr' -+ }, -+ '195259' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mw', -+ 'type' => '14508' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_dealloc_mw' -+ }, -+ '202578' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_dealloc_pd' -+ }, -+ '225008' => { -+ 'Header' => undef, -+ 'Line' => '449', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_qp' -+ }, -+ '225848' => { -+ 'Header' => undef, -+ 'Line' => '422', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'qp', -+ 'type' => '31688' -+ }, -+ '2' => { -+ 'name' => 'attr_ex', -+ 'type' => '67048' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '226371' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '226377' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_qp_ex2' -+ }, -+ '226401' => { -+ 'Header' => undef, -+ 'Line' => '401', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'qp', -+ 'type' => '31688' -+ }, -+ '2' => { -+ 'name' => 'attr_ex', -+ 'type' => '67048' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '226918' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '31700' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_qp_ex' -+ }, -+ '226948' => { -+ 'Header' => undef, -+ 'Line' => '373', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'type' => '24581' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '226918' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '31700' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_qp' -+ }, -+ '240099' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rwq_ind_table', -+ 'type' => '13095' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_rwq_ind_table' -+ }, -+ '24660' => { -+ 'Data' => 1, -+ 'Header' => undef, -+ 'Line' => '324', -+ 'Return' => '19039', -+ 'ShortName' => 'verbs_allow_disassociate_destroy' -+ }, -+ '25011' => { -+ 'Header' => undef, -+ 'Line' => '1205', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '19003' -+ }, -+ '2' => { -+ 'name' => 'cmd', -+ 'type' => '25175' -+ }, -+ '3' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_modify_cq' -+ }, -+ '25181' => { -+ 'Header' => undef, -+ 'Line' => '1160', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'init_attr', -+ 'type' => '19009' -+ }, -+ '2' => { -+ 'name' => 'rwq_ind_table', -+ 'type' => '13095' -+ }, -+ '3' => { -+ 'name' => 'resp', -+ 'type' => '25593' -+ }, -+ '4' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_rwq_ind_table' -+ }, -+ '25605' => { -+ 'Header' => undef, -+ 'Line' => '1128', -+ 'Param' => { -+ '0' => { -+ 'name' => 'wq', -+ 'type' => '10901' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '19015' -+ }, -+ '2' => { -+ 'name' => 'cmd', -+ 'type' => '25850' -+ }, -+ '3' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_modify_wq' -+ }, -+ '25856' => { -+ 'Header' => undef, -+ 'Line' => '1069', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'flow_id', -+ 'type' => '18997' -+ }, -+ '2' => { -+ 'name' => 'flow_attr', -+ 'type' => '19021' -+ }, -+ '3' => { -+ 'name' => 'ucmd', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'ucmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_flow' -+ }, -+ '259987' => { -+ 'Header' => undef, -+ 'Line' => '245', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_srq' -+ }, -+ '260819' => { -+ 'Header' => undef, -+ 'Line' => '222', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'srq', -+ 'type' => '261265' -+ }, -+ '2' => { -+ 'name' => 'attr_ex', -+ 'type' => '67112' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '261271' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '261277' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_srq_ex' -+ }, -+ '261301' => { -+ 'Header' => undef, -+ 'Line' => '200', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'type' => '69531' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '261829' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '261277' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_srq' -+ }, -+ '28091' => { -+ 'Header' => undef, -+ 'Line' => '858', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'gid', -+ 'type' => '24569' -+ }, -+ '2' => { -+ 'name' => 'lid', -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_detach_mcast' -+ }, -+ '28338' => { -+ 'Header' => undef, -+ 'Line' => '845', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'gid', -+ 'type' => '24569' -+ }, -+ '2' => { -+ 'name' => 'lid', -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_attach_mcast' -+ }, -+ '28511' => { -+ 'Header' => undef, -+ 'Line' => '809', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'ah', -+ 'type' => '14352' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'type' => '24575' -+ }, -+ '3' => { -+ 'name' => 'resp', -+ 'type' => '28802' -+ }, -+ '4' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_ah' -+ }, -+ '285302' => { -+ 'Header' => undef, -+ 'Line' => '141', -+ 'Param' => { -+ '0' => { -+ 'name' => 'wq', -+ 'type' => '10901' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_wq' -+ }, -+ '286134' => { -+ 'Header' => undef, -+ 'Line' => '121', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'wq_init_attr', -+ 'type' => '66725' -+ }, -+ '2' => { -+ 'name' => 'wq', -+ 'type' => '10901' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '289570' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '289576' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_wq' -+ }, -+ '28808' => { -+ 'Header' => undef, -+ 'Line' => '750', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'name' => 'wr', -+ 'type' => '14825' -+ }, -+ '2' => { -+ 'name' => 'bad_wr', -+ 'type' => '14913' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_post_srq_recv' -+ }, -+ '29301' => { -+ 'Header' => undef, -+ 'Line' => '691', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibqp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'wr', -+ 'type' => '14825' -+ }, -+ '2' => { -+ 'name' => 'bad_wr', -+ 'type' => '14913' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_post_recv' -+ }, -+ '297342' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'xrcd', -+ 'type' => '24209' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_close_xrcd' -+ }, -+ '29787' => { -+ 'Header' => undef, -+ 'Line' => '603', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibqp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'wr', -+ 'type' => '14742' -+ }, -+ '2' => { -+ 'name' => 'bad_wr', -+ 'type' => '18954' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_post_send' -+ }, -+ '30281' => { -+ 'Header' => undef, -+ 'Line' => '583', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '30534' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '30540' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_modify_qp_ex' -+ }, -+ '30546' => { -+ 'Header' => undef, -+ 'Line' => '566', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '30767' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_modify_qp' -+ }, -+ '30845' => { -+ 'Header' => undef, -+ 'Line' => '393', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'init_attr', -+ 'type' => '24581' -+ }, -+ '4' => { -+ 'name' => 'cmd', -+ 'type' => '31281' -+ }, -+ '5' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_query_qp' -+ }, -+ '31287' => { -+ 'Header' => undef, -+ 'Line' => '343', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'qp', -+ 'type' => '31688' -+ }, -+ '2' => { -+ 'name' => 'vqp_sz', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'attr', -+ 'type' => '19027' -+ }, -+ '4' => { -+ 'name' => 'cmd', -+ 'type' => '31694' -+ }, -+ '5' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '6' => { -+ 'name' => 'resp', -+ 'type' => '31700' -+ }, -+ '7' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_open_qp' -+ }, -+ '316440' => { -+ 'Header' => undef, -+ 'Line' => '310', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'iova', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'access', -+ 'type' => '64' -+ } -+ }, -+ 'Return' => '11828', -+ 'ShortName' => 'ibv_reg_mr_iova2' -+ }, -+ '316973' => { -+ 'Alias' => '__ibv_register_driver_1_1', -+ 'Header' => undef, -+ 'Line' => '979', -+ 'Param' => { -+ '0' => { -+ 'name' => 'name', -+ 'type' => '76632' -+ }, -+ '1' => { -+ 'name' => 'init_func', -+ 'type' => '315865' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_register_driver' -+ }, -+ '317035' => { -+ 'Alias' => '__ibv_detach_mcast_1_0', -+ 'Header' => undef, -+ 'Line' => '972', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '315773' -+ }, -+ '1' => { -+ 'name' => 'gid', -+ 'type' => '101173' -+ }, -+ '2' => { -+ 'name' => 'lid', -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_detach_mcast' -+ }, -+ '31706' => { -+ 'Header' => undef, -+ 'Line' => '314', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'name' => 'srq_attr', -+ 'type' => '24599' -+ }, -+ '2' => { -+ 'name' => 'cmd', -+ 'type' => '31966' -+ }, -+ '3' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_query_srq' -+ }, -+ '317165' => { -+ 'Alias' => '__ibv_attach_mcast_1_0', -+ 'Header' => undef, -+ 'Line' => '965', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '315773' -+ }, -+ '1' => { -+ 'name' => 'gid', -+ 'type' => '101173' -+ }, -+ '2' => { -+ 'name' => 'lid', -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_attach_mcast' -+ }, -+ '317295' => { -+ 'Alias' => '__ibv_destroy_ah_1_0', -+ 'Header' => undef, -+ 'Line' => '951', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ah', -+ 'type' => '314725' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_ah' -+ }, -+ '317405' => { -+ 'Alias' => '__ibv_create_ah_1_0', -+ 'Header' => undef, -+ 'Line' => '927', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '314143' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24575' -+ } -+ }, -+ 'Return' => '314725', -+ 'ShortName' => 'ibv_create_ah' -+ }, -+ '317584' => { -+ 'Alias' => '__ibv_destroy_qp_1_0', -+ 'Header' => undef, -+ 'Line' => '913', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '315773' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_qp' -+ }, -+ '317694' => { -+ 'Alias' => '__ibv_modify_qp_1_0', -+ 'Header' => undef, -+ 'Line' => '904', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '315773' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_modify_qp' -+ }, -+ '317820' => { -+ 'Alias' => '__ibv_query_qp_1_0', -+ 'Header' => undef, -+ 'Line' => '881', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '315773' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'init_attr', -+ 'type' => '318029' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_qp' -+ }, -+ '318035' => { -+ 'Alias' => '__ibv_create_qp_1_0', -+ 'Header' => undef, -+ 'Line' => '836', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '314143' -+ }, -+ '1' => { -+ 'name' => 'qp_init_attr', -+ 'type' => '318029' -+ } -+ }, -+ 'Return' => '315773', -+ 'ShortName' => 'ibv_create_qp' -+ }, -+ '318245' => { -+ 'Alias' => '__ibv_destroy_srq_1_0', -+ 'Header' => undef, -+ 'Line' => '822', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '314508' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_srq' -+ }, -+ '318356' => { -+ 'Alias' => '__ibv_query_srq_1_0', -+ 'Header' => undef, -+ 'Line' => '814', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '314508' -+ }, -+ '1' => { -+ 'name' => 'srq_attr', -+ 'type' => '24599' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_srq' -+ }, -+ '318455' => { -+ 'Alias' => '__ibv_modify_srq_1_0', -+ 'Header' => undef, -+ 'Line' => '805', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '314508' -+ }, -+ '1' => { -+ 'name' => 'srq_attr', -+ 'type' => '24599' -+ }, -+ '2' => { -+ 'name' => 'srq_attr_mask', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_modify_srq' -+ }, -+ '318582' => { -+ 'Alias' => '__ibv_create_srq_1_0', -+ 'Header' => undef, -+ 'Line' => '777', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '314143' -+ }, -+ '1' => { -+ 'name' => 'srq_init_attr', -+ 'type' => '69531' -+ } -+ }, -+ 'Return' => '314508', -+ 'ShortName' => 'ibv_create_srq' -+ }, -+ '318762' => { -+ 'Alias' => '__ibv_ack_cq_events_1_0', -+ 'Header' => undef, -+ 'Line' => '769', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '314502' -+ }, -+ '1' => { -+ 'name' => 'nevents', -+ 'type' => '64' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_ack_cq_events' -+ }, -+ '318856' => { -+ 'Alias' => '__ibv_get_cq_event_1_0', -+ 'Header' => undef, -+ 'Line' => '749', -+ 'Param' => { -+ '0' => { -+ 'name' => 'channel', -+ 'type' => '15787' -+ }, -+ '1' => { -+ 'name' => 'cq', -+ 'type' => '319057' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'type' => '157339' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_get_cq_event' -+ }, -+ '319063' => { -+ 'Alias' => '__ibv_destroy_cq_1_0', -+ 'Header' => undef, -+ 'Line' => '735', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '314502' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_cq' -+ }, -+ '319173' => { -+ 'Alias' => '__ibv_resize_cq_1_0', -+ 'Header' => undef, -+ 'Line' => '728', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '314502' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_resize_cq' -+ }, -+ '319271' => { -+ 'Alias' => '__ibv_create_cq_1_0', -+ 'Header' => undef, -+ 'Line' => '699', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'channel', -+ 'type' => '15787' -+ }, -+ '4' => { -+ 'name' => 'comp_vector', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '314502', -+ 'ShortName' => 'ibv_create_cq' -+ }, -+ '319532' => { -+ 'Alias' => '__ibv_dereg_mr_1_0', -+ 'Header' => undef, -+ 'Line' => '685', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mr', -+ 'type' => '319642' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_dereg_mr' -+ }, -+ '319648' => { -+ 'Alias' => '__ibv_reg_mr_1_0', -+ 'Header' => undef, -+ 'Line' => '658', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '314143' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'access', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '319642', -+ 'ShortName' => 'ibv_reg_mr' -+ }, -+ '31972' => { -+ 'Header' => undef, -+ 'Line' => '296', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'name' => 'srq_attr', -+ 'type' => '24599' -+ }, -+ '2' => { -+ 'name' => 'srq_attr_mask', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '32182' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_modify_srq' -+ }, -+ '319987' => { -+ 'Alias' => '__ibv_dealloc_pd_1_0', -+ 'Header' => undef, -+ 'Line' => '644', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '314143' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_dealloc_pd' -+ }, -+ '320097' => { -+ 'Alias' => '__ibv_alloc_pd_1_0', -+ 'Header' => undef, -+ 'Line' => '621', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ } -+ }, -+ 'Return' => '314143', -+ 'ShortName' => 'ibv_alloc_pd' -+ }, -+ '320244' => { -+ 'Alias' => '__ibv_query_pkey_1_0', -+ 'Header' => undef, -+ 'Line' => '612', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'index', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'pkey', -+ 'type' => '316605' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_pkey' -+ }, -+ '320402' => { -+ 'Alias' => '__ibv_query_gid_1_0', -+ 'Header' => undef, -+ 'Line' => '603', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'index', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'gid', -+ 'type' => '101173' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_gid' -+ }, -+ '320560' => { -+ 'Alias' => '__ibv_query_port_1_0', -+ 'Header' => undef, -+ 'Line' => '594', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'port_attr', -+ 'type' => '66022' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_port' -+ }, -+ '320954' => { -+ 'Alias' => '__ibv_query_device_1_0', -+ 'Header' => undef, -+ 'Line' => '586', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'device_attr', -+ 'type' => '18686' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_device' -+ }, -+ '321053' => { -+ 'Alias' => '__ibv_ack_async_event_1_0', -+ 'Header' => undef, -+ 'Line' => '549', -+ 'Param' => { -+ '0' => { -+ 'name' => 'event', -+ 'type' => '69345' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_ack_async_event' -+ }, -+ '321159' => { -+ 'Header' => undef, -+ 'Line' => '510', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'event', -+ 'type' => '69345' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => '__ibv_get_async_event_1_0' -+ }, -+ '321217' => { -+ 'Alias' => '__ibv_close_device_1_0', -+ 'Header' => undef, -+ 'Line' => '496', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '314046' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_close_device' -+ }, -+ '321328' => { -+ 'Alias' => '__ibv_open_device_1_0', -+ 'Header' => undef, -+ 'Line' => '467', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '315859' -+ } -+ }, -+ 'Return' => '314046', -+ 'ShortName' => 'ibv_open_device' -+ }, -+ '322542' => { -+ 'Alias' => '__ibv_get_device_guid_1_0', -+ 'Header' => undef, -+ 'Line' => '294', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '315859' -+ } -+ }, -+ 'Return' => '1052', -+ 'ShortName' => 'ibv_get_device_guid' -+ }, -+ '322612' => { -+ 'Alias' => '__ibv_get_device_name_1_0', -+ 'Header' => undef, -+ 'Line' => '287', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '315859' -+ } -+ }, -+ 'Return' => '76632', -+ 'ShortName' => 'ibv_get_device_name' -+ }, -+ '322682' => { -+ 'Alias' => '__ibv_free_device_list_1_0', -+ 'Header' => undef, -+ 'Line' => '272', -+ 'Param' => { -+ '0' => { -+ 'name' => 'list', -+ 'type' => '322803' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_free_device_list' -+ }, -+ '322809' => { -+ 'Alias' => '__ibv_get_device_list_1_0', -+ 'Header' => undef, -+ 'Line' => '231', -+ 'Param' => { -+ '0' => { -+ 'name' => 'num', -+ 'type' => '24942' -+ } -+ }, -+ 'Return' => '322803', -+ 'ShortName' => 'ibv_get_device_list' -+ }, -+ '32523' => { -+ 'Header' => undef, -+ 'Line' => '253', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'cmd', -+ 'type' => '32795' -+ }, -+ '3' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '4' => { -+ 'name' => 'resp', -+ 'type' => '32801' -+ }, -+ '5' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_resize_cq' -+ }, -+ '32807' => { -+ 'Header' => undef, -+ 'Line' => '240', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibcq', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'solicited_only', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_req_notify_cq' -+ }, -+ '32954' => { -+ 'Header' => undef, -+ 'Line' => '194', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibcq', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'ne', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'wc', -+ 'type' => '18860' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_poll_cq' -+ }, -+ '33322' => { -+ 'Header' => undef, -+ 'Line' => '169', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'type', -+ 'type' => '12050' -+ }, -+ '2' => { -+ 'name' => 'mw', -+ 'type' => '14508' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '33672' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '33678' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_alloc_mw' -+ }, -+ '33684' => { -+ 'Header' => undef, -+ 'Line' => '140', -+ 'Param' => { -+ '0' => { -+ 'name' => 'vmr', -+ 'type' => '24587' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '944' -+ }, -+ '10' => { -+ 'name' => 'resp_sz', -+ 'type' => '52' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '4' => { -+ 'name' => 'hca_va', -+ 'type' => '956' -+ }, -+ '5' => { -+ 'name' => 'access', -+ 'type' => '130' -+ }, -+ '6' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '7' => { -+ 'name' => 'cmd', -+ 'type' => '34030' -+ }, -+ '8' => { -+ 'name' => 'cmd_sz', -+ 'type' => '52' -+ }, -+ '9' => { -+ 'name' => 'resp', -+ 'type' => '34036' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_rereg_mr' -+ }, -+ '34042' => { -+ 'Header' => undef, -+ 'Line' => '99', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'hca_va', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'access', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'vmr', -+ 'type' => '24587' -+ }, -+ '6' => { -+ 'name' => 'cmd', -+ 'type' => '34390' -+ }, -+ '7' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '8' => { -+ 'name' => 'resp', -+ 'type' => '34396' -+ }, -+ '9' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_reg_mr' -+ }, -+ '342771' => { -+ 'Header' => undef, -+ 'Line' => '589', -+ 'Param' => { -+ '0' => { -+ 'name' => 'vctx', -+ 'type' => '93323' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'type' => '342795' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'verbs_set_ops' -+ }, -+ '343156' => { -+ 'Alias' => '__ibv_ack_async_event_1_1', -+ 'Header' => undef, -+ 'Line' => '498', -+ 'Param' => { -+ '0' => { -+ 'name' => 'event', -+ 'type' => '69345' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_ack_async_event' -+ }, -+ '343468' => { -+ 'Alias' => '__ibv_get_async_event_1_1', -+ 'Header' => undef, -+ 'Line' => '452', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'event', -+ 'type' => '69345' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_get_async_event' -+ }, -+ '343782' => { -+ 'Alias' => '__ibv_close_device_1_1', -+ 'Header' => undef, -+ 'Line' => '442', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_close_device' -+ }, -+ '343976' => { -+ 'Header' => undef, -+ 'Line' => '432', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context_ex', -+ 'type' => '93323' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'verbs_uninit_context' -+ }, -+ '34402' => { -+ 'Header' => undef, -+ 'Line' => '67', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'xrcd', -+ 'type' => '24209' -+ }, -+ '2' => { -+ 'name' => 'vxrcd_size', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'attr', -+ 'type' => '19033' -+ }, -+ '4' => { -+ 'name' => 'cmd', -+ 'type' => '34711' -+ }, -+ '5' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '6' => { -+ 'name' => 'resp', -+ 'type' => '34717' -+ }, -+ '7' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_open_xrcd' -+ }, -+ '344081' => { -+ 'Header' => undef, -+ 'Line' => '370', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cmd_fd', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '9633', -+ 'ShortName' => 'ibv_import_device' -+ }, -+ '344581' => { -+ 'Alias' => '__ibv_open_device_1_1', -+ 'Header' => undef, -+ 'Line' => '363', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '18013' -+ } -+ }, -+ 'Return' => '9633', -+ 'ShortName' => 'ibv_open_device' -+ }, -+ '344664' => { -+ 'Header' => undef, -+ 'Line' => '323', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '18013' -+ }, -+ '1' => { -+ 'name' => 'private_data', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '9633', -+ 'ShortName' => 'verbs_open_device' -+ }, -+ '344977' => { -+ 'Header' => undef, -+ 'Line' => '265', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '18013' -+ }, -+ '1' => { -+ 'name' => 'cmd_fd', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'alloc_size', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'context_offset', -+ 'type' => '93323' -+ }, -+ '4' => { -+ 'name' => 'driver_id', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '71', -+ 'ShortName' => '_verbs_init_and_alloc_context' -+ }, -+ '346100' => { -+ 'Header' => undef, -+ 'Line' => '502', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '2' => { -+ 'name' => 'channel', -+ 'type' => '15787' -+ }, -+ '3' => { -+ 'name' => 'cq_context', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'verbs_init_cq' -+ }, -+ '346315' => { -+ 'Header' => undef, -+ 'Line' => '153', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '18013' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_get_device_index' -+ }, -+ '346384' => { -+ 'Alias' => '__ibv_get_device_guid_1_1', -+ 'Header' => undef, -+ 'Line' => '116', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '18013' -+ } -+ }, -+ 'Return' => '1052', -+ 'ShortName' => 'ibv_get_device_guid' -+ }, -+ '346911' => { -+ 'Alias' => '__ibv_get_device_name_1_1', -+ 'Header' => undef, -+ 'Line' => '109', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '18013' -+ } -+ }, -+ 'Return' => '76632', -+ 'ShortName' => 'ibv_get_device_name' -+ }, -+ '346960' => { -+ 'Alias' => '__ibv_free_device_list_1_1', -+ 'Header' => undef, -+ 'Line' => '98', -+ 'Param' => { -+ '0' => { -+ 'name' => 'list', -+ 'type' => '316891' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_free_device_list' -+ }, -+ '347063' => { -+ 'Alias' => '__ibv_get_device_list_1_1', -+ 'Header' => undef, -+ 'Line' => '54', -+ 'Param' => { -+ '0' => { -+ 'name' => 'num', -+ 'type' => '24942' -+ } -+ }, -+ 'Return' => '316891', -+ 'ShortName' => 'ibv_get_device_list' -+ }, -+ '34723' => { -+ 'Header' => undef, -+ 'Line' => '50', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '2' => { -+ 'name' => 'cmd', -+ 'type' => '34999' -+ }, -+ '3' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '4' => { -+ 'name' => 'resp', -+ 'type' => '35005' -+ }, -+ '5' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_alloc_pd' -+ }, -+ '376512' => { -+ 'Header' => undef, -+ 'Line' => '101', -+ 'Param' => { -+ '0' => { -+ 'name' => 'status', -+ 'type' => '10907' -+ } -+ }, -+ 'Return' => '76632', -+ 'ShortName' => 'ibv_wc_status_str' -+ }, -+ '376610' => { -+ 'Header' => undef, -+ 'Line' => '70', -+ 'Param' => { -+ '0' => { -+ 'name' => 'event', -+ 'type' => '57023' -+ } -+ }, -+ 'Return' => '76632', -+ 'ShortName' => 'ibv_event_type_str' -+ }, -+ '376708' => { -+ 'Header' => undef, -+ 'Line' => '53', -+ 'Param' => { -+ '0' => { -+ 'name' => 'port_state', -+ 'type' => '56644' -+ } -+ }, -+ 'Return' => '76632', -+ 'ShortName' => 'ibv_port_state_str' -+ }, -+ '376806' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'node_type', -+ 'type' => '9355' -+ } -+ }, -+ 'Return' => '76632', -+ 'ShortName' => 'ibv_node_type_str' -+ }, -+ '379460' => { -+ 'Header' => undef, -+ 'Line' => '48', -+ 'Return' => '76632', -+ 'ShortName' => 'ibv_get_sysfs_path' -+ }, -+ '402752' => { -+ 'Header' => undef, -+ 'Line' => '125', -+ 'Return' => '130', -+ 'ShortName' => 'ibv_fork_init' -+ }, -+ '402878' => { -+ 'Header' => undef, -+ 'Line' => '108', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dir', -+ 'type' => '76632' -+ }, -+ '1' => { -+ 'name' => 'file', -+ 'type' => '76632' -+ }, -+ '2' => { -+ 'name' => 'buf', -+ 'type' => '180' -+ }, -+ '3' => { -+ 'name' => 'size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_read_sysfs_file' -+ }, -+ '409010' => { -+ 'Header' => undef, -+ 'Line' => '240', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ops', -+ 'type' => '93265' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'verbs_register_driver_34' -+ }, -+ '411982' => { -+ 'Header' => undef, -+ 'Line' => '66', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '93323' -+ }, -+ '1' => { -+ 'name' => 'level', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'fmt', -+ 'type' => '76632' -+ }, -+ '3' => { -+ 'type' => '-1' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => '__verbs_log' -+ }, -+ '416018' => { -+ 'Header' => undef, -+ 'Line' => '117', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dst', -+ 'type' => '416227' -+ }, -+ '1' => { -+ 'name' => 'src', -+ 'type' => '416233' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_copy_path_rec_to_kern' -+ }, -+ '416239' => { -+ 'Header' => undef, -+ 'Line' => '92', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dst', -+ 'type' => '416233' -+ }, -+ '1' => { -+ 'name' => 'src', -+ 'type' => '416227' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_copy_path_rec_from_kern' -+ }, -+ '416448' => { -+ 'Header' => undef, -+ 'Line' => '56', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dst', -+ 'type' => '24593' -+ }, -+ '1' => { -+ 'name' => 'src', -+ 'type' => '416583' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_copy_qp_attr_from_kern' -+ }, -+ '416589' => { -+ 'Header' => undef, -+ 'Line' => '39', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dst', -+ 'type' => '24575' -+ }, -+ '1' => { -+ 'name' => 'src', -+ 'type' => '416727' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_copy_ah_attr_from_kern' -+ }, -+ '421148' => { -+ 'Header' => undef, -+ 'Line' => '690', -+ 'Param' => { -+ '0' => { -+ 'name' => 'base', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_dofork_range' -+ }, -+ '421400' => { -+ 'Header' => undef, -+ 'Line' => '689', -+ 'Param' => { -+ '0' => { -+ 'name' => 'base', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_dontfork_range' -+ }, -+ '42316' => { -+ 'Header' => undef, -+ 'Line' => '35', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ah', -+ 'type' => '14352' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_ah' -+ }, -+ '423470' => { -+ 'Header' => undef, -+ 'Line' => '178', -+ 'Return' => '419513', -+ 'ShortName' => 'ibv_is_fork_initialized' -+ }, -+ '466961' => { -+ 'Header' => undef, -+ 'Line' => '1116', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'ece', -+ 'type' => '69847' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_ece' -+ }, -+ '467161' => { -+ 'Header' => undef, -+ 'Line' => '1106', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'ece', -+ 'type' => '69847' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_set_ece' -+ }, -+ '467378' => { -+ 'Header' => undef, -+ 'Line' => '1022', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24575' -+ }, -+ '2' => { -+ 'name' => 'eth_mac', -+ 'type' => '60310' -+ }, -+ '3' => { -+ 'name' => 'vid', -+ 'type' => '468450' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_resolve_eth_l2_from_gid' -+ }, -+ '468571' => { -+ 'Alias' => '__ibv_detach_mcast_1_1', -+ 'Header' => undef, -+ 'Line' => '981', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'gid', -+ 'type' => '24569' -+ }, -+ '2' => { -+ 'name' => 'lid', -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_detach_mcast' -+ }, -+ '468803' => { -+ 'Alias' => '__ibv_attach_mcast_1_1', -+ 'Header' => undef, -+ 'Line' => '974', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'gid', -+ 'type' => '24569' -+ }, -+ '2' => { -+ 'name' => 'lid', -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_attach_mcast' -+ }, -+ '469035' => { -+ 'Alias' => '__ibv_destroy_ah_1_1', -+ 'Header' => undef, -+ 'Line' => '967', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ah', -+ 'type' => '14352' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_ah' -+ }, -+ '469207' => { -+ 'Header' => undef, -+ 'Line' => '954', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'wc', -+ 'type' => '18860' -+ }, -+ '2' => { -+ 'name' => 'grh', -+ 'type' => '469456' -+ }, -+ '3' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ } -+ }, -+ 'Return' => '14352', -+ 'ShortName' => 'ibv_create_ah_from_wc' -+ }, -+ '469462' => { -+ 'Header' => undef, -+ 'Line' => '926', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'wc', -+ 'type' => '18860' -+ }, -+ '3' => { -+ 'name' => 'grh', -+ 'type' => '469456' -+ }, -+ '4' => { -+ 'name' => 'ah_attr', -+ 'type' => '24575' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_init_ah_from_wc' -+ }, -+ '471374' => { -+ 'Header' => undef, -+ 'Line' => '746', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'index', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'type', -+ 'type' => '101039' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_gid_type' -+ }, -+ '471609' => { -+ 'Alias' => '__ibv_create_ah_1_1', -+ 'Header' => undef, -+ 'Line' => '732', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24575' -+ } -+ }, -+ 'Return' => '14352', -+ 'ShortName' => 'ibv_create_ah' -+ }, -+ '471828' => { -+ 'Alias' => '__ibv_destroy_qp_1_1', -+ 'Header' => undef, -+ 'Line' => '725', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_qp' -+ }, -+ '472000' => { -+ 'Alias' => '__ibv_modify_qp_1_1', -+ 'Header' => undef, -+ 'Line' => '708', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_modify_qp' -+ }, -+ '472246' => { -+ 'Header' => undef, -+ 'Line' => '695', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'op', -+ 'type' => '13899' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_qp_data_in_order' -+ }, -+ '472473' => { -+ 'Alias' => '__ibv_query_qp_1_1', -+ 'Header' => undef, -+ 'Line' => '677', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'init_attr', -+ 'type' => '24581' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_qp' -+ }, -+ '472747' => { -+ 'Header' => undef, -+ 'Line' => '668', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '10582' -+ } -+ }, -+ 'Return' => '15319', -+ 'ShortName' => 'ibv_qp_to_qp_ex' -+ }, -+ '472824' => { -+ 'Alias' => '__ibv_create_qp_1_1', -+ 'Header' => undef, -+ 'Line' => '658', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'qp_init_attr', -+ 'type' => '24581' -+ } -+ }, -+ 'Return' => '10582', -+ 'ShortName' => 'ibv_create_qp' -+ }, -+ '473036' => { -+ 'Alias' => '__ibv_destroy_srq_1_1', -+ 'Header' => undef, -+ 'Line' => '651', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_srq' -+ }, -+ '473209' => { -+ 'Alias' => '__ibv_query_srq_1_1', -+ 'Header' => undef, -+ 'Line' => '644', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'name' => 'srq_attr', -+ 'type' => '24599' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_srq' -+ }, -+ '473410' => { -+ 'Alias' => '__ibv_modify_srq_1_1', -+ 'Header' => undef, -+ 'Line' => '635', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'name' => 'srq_attr', -+ 'type' => '24599' -+ }, -+ '2' => { -+ 'name' => 'srq_attr_mask', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_modify_srq' -+ }, -+ '473639' => { -+ 'Alias' => '__ibv_create_srq_1_1', -+ 'Header' => undef, -+ 'Line' => '615', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'srq_init_attr', -+ 'type' => '69531' -+ } -+ }, -+ 'Return' => '10700', -+ 'ShortName' => 'ibv_create_srq' -+ }, -+ '473893' => { -+ 'Alias' => '__ibv_ack_cq_events_1_1', -+ 'Header' => undef, -+ 'Line' => '605', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'nevents', -+ 'type' => '64' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_ack_cq_events' -+ }, -+ '474038' => { -+ 'Alias' => '__ibv_get_cq_event_1_1', -+ 'Header' => undef, -+ 'Line' => '587', -+ 'Param' => { -+ '0' => { -+ 'name' => 'channel', -+ 'type' => '15787' -+ }, -+ '1' => { -+ 'name' => 'cq', -+ 'type' => '316311' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'type' => '157339' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_get_cq_event' -+ }, -+ '474358' => { -+ 'Alias' => '__ibv_destroy_cq_1_1', -+ 'Header' => undef, -+ 'Line' => '567', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_cq' -+ }, -+ '474578' => { -+ 'Alias' => '__ibv_resize_cq_1_1', -+ 'Header' => undef, -+ 'Line' => '560', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_resize_cq' -+ }, -+ '474778' => { -+ 'Alias' => '__ibv_create_cq_1_1', -+ 'Header' => undef, -+ 'Line' => '545', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'channel', -+ 'type' => '15787' -+ }, -+ '4' => { -+ 'name' => 'comp_vector', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '10380', -+ 'ShortName' => 'ibv_create_cq' -+ }, -+ '475116' => { -+ 'Header' => undef, -+ 'Line' => '522', -+ 'Param' => { -+ '0' => { -+ 'name' => 'channel', -+ 'type' => '15787' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_destroy_comp_channel' -+ }, -+ '475313' => { -+ 'Header' => undef, -+ 'Line' => '498', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ } -+ }, -+ 'Return' => '15787', -+ 'ShortName' => 'ibv_create_comp_channel' -+ }, -+ '475565' => { -+ 'Alias' => '__ibv_dereg_mr_1_1', -+ 'Header' => undef, -+ 'Line' => '481', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mr', -+ 'type' => '11828' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_dereg_mr' -+ }, -+ '475842' => { -+ 'Alias' => '__ibv_rereg_mr_1_1', -+ 'Header' => undef, -+ 'Line' => '416', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mr', -+ 'type' => '11828' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '3' => { -+ 'name' => 'addr', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'access', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_rereg_mr' -+ }, -+ '476352' => { -+ 'Header' => undef, -+ 'Line' => '398', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'offset', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'iova', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'fd', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'access', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '11828', -+ 'ShortName' => 'ibv_reg_dmabuf_mr' -+ }, -+ '476680' => { -+ 'Header' => undef, -+ 'Line' => '393', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dm', -+ 'type' => '55227' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_unimport_dm' -+ }, -+ '476848' => { -+ 'Header' => undef, -+ 'Line' => '385', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'dm_handle', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '55227', -+ 'ShortName' => 'ibv_import_dm' -+ }, -+ '477049' => { -+ 'Header' => undef, -+ 'Line' => '377', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mr', -+ 'type' => '11828' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_unimport_mr' -+ }, -+ '477217' => { -+ 'Header' => undef, -+ 'Line' => '369', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'mr_handle', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '11828', -+ 'ShortName' => 'ibv_import_mr' -+ }, -+ '477417' => { -+ 'Header' => undef, -+ 'Line' => '360', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'ibv_unimport_pd' -+ }, -+ '477585' => { -+ 'Header' => undef, -+ 'Line' => '353', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'pd_handle', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '12044', -+ 'ShortName' => 'ibv_import_pd' -+ }, -+ '477786' => { -+ 'Header' => undef, -+ 'Line' => '347', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'iova', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'access', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '11828', -+ 'ShortName' => 'ibv_reg_mr_iova' -+ }, -+ '477975' => { -+ 'Alias' => '__ibv_reg_mr_1_1', -+ 'Header' => undef, -+ 'Line' => '338', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'access', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '11828', -+ 'ShortName' => 'ibv_reg_mr' -+ }, -+ '478560' => { -+ 'Alias' => '__ibv_dealloc_pd_1_1', -+ 'Header' => undef, -+ 'Line' => '303', -+ 'Param' => { -+ '0' => { -+ 'name' => 'pd', -+ 'type' => '12044' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_dealloc_pd' -+ }, -+ '478732' => { -+ 'Alias' => '__ibv_alloc_pd_1_1', -+ 'Header' => undef, -+ 'Line' => '290', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ } -+ }, -+ 'Return' => '12044', -+ 'ShortName' => 'ibv_alloc_pd' -+ }, -+ '478924' => { -+ 'Alias' => '__ibv_get_pkey_index_1_5', -+ 'Header' => undef, -+ 'Line' => '274', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'pkey', -+ 'type' => '1028' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_get_pkey_index' -+ }, -+ '479134' => { -+ 'Alias' => '__ibv_query_pkey_1_1', -+ 'Header' => undef, -+ 'Line' => '254', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'index', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'pkey', -+ 'type' => '316605' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_pkey' -+ }, -+ '479449' => { -+ 'Header' => undef, -+ 'Line' => '231', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'index', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'gid', -+ 'type' => '101173' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => '__ibv_query_gid_1_1' -+ }, -+ '479539' => { -+ 'Alias' => '__ibv_query_port_1_1', -+ 'Header' => undef, -+ 'Line' => '221', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'port_attr', -+ 'type' => '18723' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_port' -+ }, -+ '479769' => { -+ 'Alias' => '__ibv_query_device_1_1', -+ 'Header' => undef, -+ 'Line' => '163', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'device_attr', -+ 'type' => '18686' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_query_device' -+ }, -+ '479977' => { -+ 'Header' => undef, -+ 'Line' => '133', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mbps', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '452864', -+ 'ShortName' => 'mbps_to_ibv_rate' -+ }, -+ '480026' => { -+ 'Header' => undef, -+ 'Line' => '103', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rate', -+ 'type' => '452864' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_rate_to_mbps' -+ }, -+ '480081' => { -+ 'Header' => undef, -+ 'Line' => '81', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mult', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '452864', -+ 'ShortName' => 'mult_to_ibv_rate' -+ }, -+ '480136' => { -+ 'Header' => undef, -+ 'Line' => '59', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rate', -+ 'type' => '452864' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_rate_to_mult' -+ }, -+ '49262' => { -+ 'Header' => undef, -+ 'Line' => '191', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'cmd', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'execute_ioctl' -+ }, -+ '49289' => { -+ 'Header' => undef, -+ 'Line' => '125', -+ 'Param' => { -+ '0' => { -+ 'name' => 'num_attrs', -+ 'type' => '64' -+ }, -+ '1' => { -+ 'name' => 'link', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => '__ioctl_final_num_attrs' -+ }, -+ '49316' => { -+ 'Header' => undef, -+ 'Line' => '79', -+ 'Param' => { -+ '0' => { -+ 'name' => 'vcounters', -+ 'type' => '50290' -+ }, -+ '1' => { -+ 'name' => 'counters_value', -+ 'type' => '48730' -+ }, -+ '2' => { -+ 'name' => 'ncounters', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'link', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_read_counters' -+ }, -+ '50316' => { -+ 'Header' => undef, -+ 'Line' => '64', -+ 'Param' => { -+ '0' => { -+ 'name' => 'vcounters', -+ 'type' => '50290' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_counters' -+ }, -+ '50762' => { -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'init_attr', -+ 'type' => '48736' -+ }, -+ '2' => { -+ 'name' => 'vcounters', -+ 'type' => '50290' -+ }, -+ '3' => { -+ 'name' => 'link', -+ 'type' => '41839' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_counters' -+ }, -+ '70967' => { -+ 'Header' => undef, -+ 'Line' => '176', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_destroy_cq' -+ }, -+ '71794' => { -+ 'Header' => undef, -+ 'Line' => '144', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'cq_attr', -+ 'type' => '72088' -+ }, -+ '2' => { -+ 'name' => 'cq', -+ 'type' => '72094' -+ }, -+ '3' => { -+ 'name' => 'cmd', -+ 'type' => '72100' -+ }, -+ '4' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '5' => { -+ 'name' => 'resp', -+ 'type' => '72106' -+ }, -+ '6' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ }, -+ '7' => { -+ 'name' => 'cmd_flags', -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_cq_ex' -+ }, -+ '72128' => { -+ 'Header' => undef, -+ 'Line' => '130', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'channel', -+ 'type' => '15787' -+ }, -+ '3' => { -+ 'name' => 'comp_vector', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'cq', -+ 'type' => '10380' -+ }, -+ '5' => { -+ 'name' => 'cmd', -+ 'type' => '72588' -+ }, -+ '6' => { -+ 'name' => 'cmd_size', -+ 'type' => '52' -+ }, -+ '7' => { -+ 'name' => 'resp', -+ 'type' => '72594' -+ }, -+ '8' => { -+ 'name' => 'resp_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_create_cq' -+ }, -+ '94839' => { -+ 'Header' => undef, -+ 'Line' => '714', -+ 'Param' => { -+ '0' => { -+ 'name' => 'buf', -+ 'type' => '180' -+ }, -+ '1' => { -+ 'name' => 'size', -+ 'type' => '52' -+ }, -+ '2' => { -+ 'name' => 'sysfs_dev', -+ 'type' => '93286' -+ }, -+ '3' => { -+ 'name' => 'fnfmt', -+ 'type' => '76632' -+ }, -+ '4' => { -+ 'type' => '-1' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_read_ibdev_sysfs_file' -+ }, -+ '95149' => { -+ 'Header' => undef, -+ 'Line' => '521', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'input', -+ 'type' => '66918' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'type' => '66924' -+ }, -+ '3' => { -+ 'name' => 'attr_size', -+ 'type' => '52' -+ }, -+ '4' => { -+ 'name' => 'resp', -+ 'type' => '95747' -+ }, -+ '5' => { -+ 'name' => 'resp_size', -+ 'type' => '95753' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'ibv_cmd_query_device_any' -+ }, -+ '95759' => { -+ 'Header' => undef, -+ 'Line' => '484', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'entries', -+ 'type' => '97012' -+ }, -+ '2' => { -+ 'name' => 'max_entries', -+ 'type' => '52' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'entry_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '209', -+ 'ShortName' => '_ibv_query_gid_table' -+ }, -+ '97036' => { -+ 'Header' => undef, -+ 'Line' => '473', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'gid_index', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'entry', -+ 'type' => '97012' -+ }, -+ '4' => { -+ 'name' => 'flags', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'entry_size', -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => '_ibv_query_gid_ex' -+ } -+ }, -+ 'SymbolVersion' => { -+ '__ibv_ack_async_event_1_0' => 'ibv_ack_async_event@IBVERBS_1.0', -+ '__ibv_ack_async_event_1_1' => 'ibv_ack_async_event@@IBVERBS_1.1', -+ '__ibv_ack_cq_events_1_0' => 'ibv_ack_cq_events@IBVERBS_1.0', -+ '__ibv_ack_cq_events_1_1' => 'ibv_ack_cq_events@@IBVERBS_1.1', -+ '__ibv_alloc_pd_1_0' => 'ibv_alloc_pd@IBVERBS_1.0', -+ '__ibv_alloc_pd_1_1' => 'ibv_alloc_pd@@IBVERBS_1.1', -+ '__ibv_attach_mcast_1_0' => 'ibv_attach_mcast@IBVERBS_1.0', -+ '__ibv_attach_mcast_1_1' => 'ibv_attach_mcast@@IBVERBS_1.1', -+ '__ibv_close_device_1_0' => 'ibv_close_device@IBVERBS_1.0', -+ '__ibv_close_device_1_1' => 'ibv_close_device@@IBVERBS_1.1', -+ '__ibv_create_ah_1_0' => 'ibv_create_ah@IBVERBS_1.0', -+ '__ibv_create_ah_1_1' => 'ibv_create_ah@@IBVERBS_1.1', -+ '__ibv_create_cq_1_0' => 'ibv_create_cq@IBVERBS_1.0', -+ '__ibv_create_cq_1_1' => 'ibv_create_cq@@IBVERBS_1.1', -+ '__ibv_create_qp_1_0' => 'ibv_create_qp@IBVERBS_1.0', -+ '__ibv_create_qp_1_1' => 'ibv_create_qp@@IBVERBS_1.1', -+ '__ibv_create_srq_1_0' => 'ibv_create_srq@IBVERBS_1.0', -+ '__ibv_create_srq_1_1' => 'ibv_create_srq@@IBVERBS_1.1', -+ '__ibv_dealloc_pd_1_0' => 'ibv_dealloc_pd@IBVERBS_1.0', -+ '__ibv_dealloc_pd_1_1' => 'ibv_dealloc_pd@@IBVERBS_1.1', -+ '__ibv_dereg_mr_1_0' => 'ibv_dereg_mr@IBVERBS_1.0', -+ '__ibv_dereg_mr_1_1' => 'ibv_dereg_mr@@IBVERBS_1.1', -+ '__ibv_destroy_ah_1_0' => 'ibv_destroy_ah@IBVERBS_1.0', -+ '__ibv_destroy_ah_1_1' => 'ibv_destroy_ah@@IBVERBS_1.1', -+ '__ibv_destroy_cq_1_0' => 'ibv_destroy_cq@IBVERBS_1.0', -+ '__ibv_destroy_cq_1_1' => 'ibv_destroy_cq@@IBVERBS_1.1', -+ '__ibv_destroy_qp_1_0' => 'ibv_destroy_qp@IBVERBS_1.0', -+ '__ibv_destroy_qp_1_1' => 'ibv_destroy_qp@@IBVERBS_1.1', -+ '__ibv_destroy_srq_1_0' => 'ibv_destroy_srq@IBVERBS_1.0', -+ '__ibv_destroy_srq_1_1' => 'ibv_destroy_srq@@IBVERBS_1.1', -+ '__ibv_detach_mcast_1_0' => 'ibv_detach_mcast@IBVERBS_1.0', -+ '__ibv_detach_mcast_1_1' => 'ibv_detach_mcast@@IBVERBS_1.1', -+ '__ibv_free_device_list_1_0' => 'ibv_free_device_list@IBVERBS_1.0', -+ '__ibv_free_device_list_1_1' => 'ibv_free_device_list@@IBVERBS_1.1', -+ '__ibv_get_async_event_1_0' => 'ibv_get_async_event@IBVERBS_1.0', -+ '__ibv_get_async_event_1_1' => 'ibv_get_async_event@@IBVERBS_1.1', -+ '__ibv_get_cq_event_1_0' => 'ibv_get_cq_event@IBVERBS_1.0', -+ '__ibv_get_cq_event_1_1' => 'ibv_get_cq_event@@IBVERBS_1.1', -+ '__ibv_get_device_guid_1_0' => 'ibv_get_device_guid@IBVERBS_1.0', -+ '__ibv_get_device_guid_1_1' => 'ibv_get_device_guid@@IBVERBS_1.1', -+ '__ibv_get_device_list_1_0' => 'ibv_get_device_list@IBVERBS_1.0', -+ '__ibv_get_device_list_1_1' => 'ibv_get_device_list@@IBVERBS_1.1', -+ '__ibv_get_device_name_1_0' => 'ibv_get_device_name@IBVERBS_1.0', -+ '__ibv_get_device_name_1_1' => 'ibv_get_device_name@@IBVERBS_1.1', -+ '__ibv_get_pkey_index_1_5' => 'ibv_get_pkey_index@@IBVERBS_1.5', -+ '__ibv_modify_qp_1_0' => 'ibv_modify_qp@IBVERBS_1.0', -+ '__ibv_modify_qp_1_1' => 'ibv_modify_qp@@IBVERBS_1.1', -+ '__ibv_modify_srq_1_0' => 'ibv_modify_srq@IBVERBS_1.0', -+ '__ibv_modify_srq_1_1' => 'ibv_modify_srq@@IBVERBS_1.1', -+ '__ibv_open_device_1_0' => 'ibv_open_device@IBVERBS_1.0', -+ '__ibv_open_device_1_1' => 'ibv_open_device@@IBVERBS_1.1', -+ '__ibv_query_device_1_0' => 'ibv_query_device@IBVERBS_1.0', -+ '__ibv_query_device_1_1' => 'ibv_query_device@@IBVERBS_1.1', -+ '__ibv_query_gid_1_0' => 'ibv_query_gid@IBVERBS_1.0', -+ '__ibv_query_gid_1_1' => 'ibv_query_gid@@IBVERBS_1.1', -+ '__ibv_query_pkey_1_0' => 'ibv_query_pkey@IBVERBS_1.0', -+ '__ibv_query_pkey_1_1' => 'ibv_query_pkey@@IBVERBS_1.1', -+ '__ibv_query_port_1_0' => 'ibv_query_port@IBVERBS_1.0', -+ '__ibv_query_port_1_1' => 'ibv_query_port@@IBVERBS_1.1', -+ '__ibv_query_qp_1_0' => 'ibv_query_qp@IBVERBS_1.0', -+ '__ibv_query_qp_1_1' => 'ibv_query_qp@@IBVERBS_1.1', -+ '__ibv_query_srq_1_0' => 'ibv_query_srq@IBVERBS_1.0', -+ '__ibv_query_srq_1_1' => 'ibv_query_srq@@IBVERBS_1.1', -+ '__ibv_reg_mr_1_0' => 'ibv_reg_mr@IBVERBS_1.0', -+ '__ibv_reg_mr_1_1' => 'ibv_reg_mr@@IBVERBS_1.1', -+ '__ibv_register_driver_1_1' => 'ibv_register_driver@IBVERBS_1.1', -+ '__ibv_rereg_mr_1_1' => 'ibv_rereg_mr@@IBVERBS_1.1', -+ '__ibv_resize_cq_1_0' => 'ibv_resize_cq@IBVERBS_1.0', -+ '__ibv_resize_cq_1_1' => 'ibv_resize_cq@@IBVERBS_1.1', -+ '__ioctl_final_num_attrs' => '__ioctl_final_num_attrs@@IBVERBS_PRIVATE_34', -+ '__verbs_log' => '__verbs_log@@IBVERBS_PRIVATE_34', -+ '_ibv_query_gid_ex' => '_ibv_query_gid_ex@@IBVERBS_1.11', -+ '_ibv_query_gid_table' => '_ibv_query_gid_table@@IBVERBS_1.11', -+ '_verbs_init_and_alloc_context' => '_verbs_init_and_alloc_context@@IBVERBS_PRIVATE_34', -+ 'execute_ioctl' => 'execute_ioctl@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_advise_mr' => 'ibv_cmd_advise_mr@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_alloc_dm' => 'ibv_cmd_alloc_dm@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_alloc_mw' => 'ibv_cmd_alloc_mw@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_alloc_pd' => 'ibv_cmd_alloc_pd@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_attach_mcast' => 'ibv_cmd_attach_mcast@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_close_xrcd' => 'ibv_cmd_close_xrcd@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_ah' => 'ibv_cmd_create_ah@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_counters' => 'ibv_cmd_create_counters@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_cq' => 'ibv_cmd_create_cq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_cq_ex' => 'ibv_cmd_create_cq_ex@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_flow' => 'ibv_cmd_create_flow@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_flow_action_esp' => 'ibv_cmd_create_flow_action_esp@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_qp' => 'ibv_cmd_create_qp@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_qp_ex' => 'ibv_cmd_create_qp_ex@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_qp_ex2' => 'ibv_cmd_create_qp_ex2@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_rwq_ind_table' => 'ibv_cmd_create_rwq_ind_table@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_srq' => 'ibv_cmd_create_srq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_srq_ex' => 'ibv_cmd_create_srq_ex@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_create_wq' => 'ibv_cmd_create_wq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_dealloc_mw' => 'ibv_cmd_dealloc_mw@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_dealloc_pd' => 'ibv_cmd_dealloc_pd@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_dereg_mr' => 'ibv_cmd_dereg_mr@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_ah' => 'ibv_cmd_destroy_ah@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_counters' => 'ibv_cmd_destroy_counters@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_cq' => 'ibv_cmd_destroy_cq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_flow' => 'ibv_cmd_destroy_flow@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_flow_action' => 'ibv_cmd_destroy_flow_action@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_qp' => 'ibv_cmd_destroy_qp@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_rwq_ind_table' => 'ibv_cmd_destroy_rwq_ind_table@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_srq' => 'ibv_cmd_destroy_srq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_destroy_wq' => 'ibv_cmd_destroy_wq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_detach_mcast' => 'ibv_cmd_detach_mcast@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_free_dm' => 'ibv_cmd_free_dm@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_get_context' => 'ibv_cmd_get_context@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_modify_cq' => 'ibv_cmd_modify_cq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_modify_flow_action_esp' => 'ibv_cmd_modify_flow_action_esp@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_modify_qp' => 'ibv_cmd_modify_qp@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_modify_qp_ex' => 'ibv_cmd_modify_qp_ex@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_modify_srq' => 'ibv_cmd_modify_srq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_modify_wq' => 'ibv_cmd_modify_wq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_open_qp' => 'ibv_cmd_open_qp@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_open_xrcd' => 'ibv_cmd_open_xrcd@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_poll_cq' => 'ibv_cmd_poll_cq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_post_recv' => 'ibv_cmd_post_recv@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_post_send' => 'ibv_cmd_post_send@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_post_srq_recv' => 'ibv_cmd_post_srq_recv@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_query_context' => 'ibv_cmd_query_context@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_query_device_any' => 'ibv_cmd_query_device_any@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_query_mr' => 'ibv_cmd_query_mr@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_query_port' => 'ibv_cmd_query_port@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_query_qp' => 'ibv_cmd_query_qp@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_query_srq' => 'ibv_cmd_query_srq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_read_counters' => 'ibv_cmd_read_counters@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_reg_dm_mr' => 'ibv_cmd_reg_dm_mr@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_reg_dmabuf_mr' => 'ibv_cmd_reg_dmabuf_mr@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_reg_mr' => 'ibv_cmd_reg_mr@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_req_notify_cq' => 'ibv_cmd_req_notify_cq@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_rereg_mr' => 'ibv_cmd_rereg_mr@@IBVERBS_PRIVATE_34', -+ 'ibv_cmd_resize_cq' => 'ibv_cmd_resize_cq@@IBVERBS_PRIVATE_34', -+ 'ibv_copy_ah_attr_from_kern' => 'ibv_copy_ah_attr_from_kern@@IBVERBS_1.1', -+ 'ibv_copy_path_rec_from_kern' => 'ibv_copy_path_rec_from_kern@@IBVERBS_1.0', -+ 'ibv_copy_path_rec_to_kern' => 'ibv_copy_path_rec_to_kern@@IBVERBS_1.0', -+ 'ibv_copy_qp_attr_from_kern' => 'ibv_copy_qp_attr_from_kern@@IBVERBS_1.0', -+ 'ibv_create_ah_from_wc' => 'ibv_create_ah_from_wc@@IBVERBS_1.1', -+ 'ibv_create_comp_channel' => 'ibv_create_comp_channel@@IBVERBS_1.0', -+ 'ibv_destroy_comp_channel' => 'ibv_destroy_comp_channel@@IBVERBS_1.0', -+ 'ibv_dofork_range' => 'ibv_dofork_range@@IBVERBS_1.1', -+ 'ibv_dontfork_range' => 'ibv_dontfork_range@@IBVERBS_1.1', -+ 'ibv_event_type_str' => 'ibv_event_type_str@@IBVERBS_1.1', -+ 'ibv_fork_init' => 'ibv_fork_init@@IBVERBS_1.1', -+ 'ibv_get_device_index' => 'ibv_get_device_index@@IBVERBS_1.9', -+ 'ibv_get_sysfs_path' => 'ibv_get_sysfs_path@@IBVERBS_1.0', -+ 'ibv_import_device' => 'ibv_import_device@@IBVERBS_1.10', -+ 'ibv_import_dm' => 'ibv_import_dm@@IBVERBS_1.13', -+ 'ibv_import_mr' => 'ibv_import_mr@@IBVERBS_1.10', -+ 'ibv_import_pd' => 'ibv_import_pd@@IBVERBS_1.10', -+ 'ibv_init_ah_from_wc' => 'ibv_init_ah_from_wc@@IBVERBS_1.1', -+ 'ibv_is_fork_initialized' => 'ibv_is_fork_initialized@@IBVERBS_1.13', -+ 'ibv_node_type_str' => 'ibv_node_type_str@@IBVERBS_1.1', -+ 'ibv_port_state_str' => 'ibv_port_state_str@@IBVERBS_1.1', -+ 'ibv_qp_to_qp_ex' => 'ibv_qp_to_qp_ex@@IBVERBS_1.6', -+ 'ibv_query_ece' => 'ibv_query_ece@@IBVERBS_1.10', -+ 'ibv_query_gid_type' => 'ibv_query_gid_type@@IBVERBS_PRIVATE_34', -+ 'ibv_query_qp_data_in_order' => 'ibv_query_qp_data_in_order@@IBVERBS_1.14', -+ 'ibv_rate_to_mbps' => 'ibv_rate_to_mbps@@IBVERBS_1.1', -+ 'ibv_rate_to_mult' => 'ibv_rate_to_mult@@IBVERBS_1.0', -+ 'ibv_read_ibdev_sysfs_file' => 'ibv_read_ibdev_sysfs_file@@IBVERBS_PRIVATE_34', -+ 'ibv_read_sysfs_file' => 'ibv_read_sysfs_file@@IBVERBS_1.0', -+ 'ibv_reg_dmabuf_mr' => 'ibv_reg_dmabuf_mr@@IBVERBS_1.12', -+ 'ibv_reg_mr_iova' => 'ibv_reg_mr_iova@@IBVERBS_1.7', -+ 'ibv_reg_mr_iova2' => 'ibv_reg_mr_iova2@@IBVERBS_1.8', -+ 'ibv_resolve_eth_l2_from_gid' => 'ibv_resolve_eth_l2_from_gid@@IBVERBS_1.1', -+ 'ibv_set_ece' => 'ibv_set_ece@@IBVERBS_1.10', -+ 'ibv_unimport_dm' => 'ibv_unimport_dm@@IBVERBS_1.13', -+ 'ibv_unimport_mr' => 'ibv_unimport_mr@@IBVERBS_1.10', -+ 'ibv_unimport_pd' => 'ibv_unimport_pd@@IBVERBS_1.10', -+ 'ibv_wc_status_str' => 'ibv_wc_status_str@@IBVERBS_1.1', -+ 'mbps_to_ibv_rate' => 'mbps_to_ibv_rate@@IBVERBS_1.1', -+ 'mult_to_ibv_rate' => 'mult_to_ibv_rate@@IBVERBS_1.0', -+ 'verbs_allow_disassociate_destroy' => 'verbs_allow_disassociate_destroy@@IBVERBS_PRIVATE_34', -+ 'verbs_init_cq' => 'verbs_init_cq@@IBVERBS_PRIVATE_34', -+ 'verbs_open_device' => 'verbs_open_device@@IBVERBS_PRIVATE_34', -+ 'verbs_register_driver_34' => 'verbs_register_driver_34@@IBVERBS_PRIVATE_34', -+ 'verbs_set_ops' => 'verbs_set_ops@@IBVERBS_PRIVATE_34', -+ 'verbs_uninit_context' => 'verbs_uninit_context@@IBVERBS_PRIVATE_34' -+ }, -+ 'Symbols' => { -+ 'libibverbs.so.1.14.41.0' => { -+ '__ioctl_final_num_attrs@@IBVERBS_PRIVATE_34' => 1, -+ '__verbs_log@@IBVERBS_PRIVATE_34' => 1, -+ '_ibv_query_gid_ex@@IBVERBS_1.11' => 1, -+ '_ibv_query_gid_table@@IBVERBS_1.11' => 1, -+ '_verbs_init_and_alloc_context@@IBVERBS_PRIVATE_34' => 1, -+ 'execute_ioctl@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_ack_async_event@@IBVERBS_1.1' => 1, -+ 'ibv_ack_async_event@IBVERBS_1.0' => 1, -+ 'ibv_ack_cq_events@@IBVERBS_1.1' => 1, -+ 'ibv_ack_cq_events@IBVERBS_1.0' => 1, -+ 'ibv_alloc_pd@@IBVERBS_1.1' => 1, -+ 'ibv_alloc_pd@IBVERBS_1.0' => 1, -+ 'ibv_attach_mcast@@IBVERBS_1.1' => 1, -+ 'ibv_attach_mcast@IBVERBS_1.0' => 1, -+ 'ibv_close_device@@IBVERBS_1.1' => 1, -+ 'ibv_close_device@IBVERBS_1.0' => 1, -+ 'ibv_cmd_advise_mr@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_alloc_dm@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_alloc_mw@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_alloc_pd@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_attach_mcast@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_close_xrcd@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_ah@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_counters@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_cq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_cq_ex@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_flow@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_flow_action_esp@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_qp@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_qp_ex2@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_qp_ex@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_rwq_ind_table@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_srq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_srq_ex@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_create_wq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_dealloc_mw@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_dealloc_pd@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_dereg_mr@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_ah@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_counters@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_cq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_flow@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_flow_action@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_qp@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_rwq_ind_table@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_srq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_destroy_wq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_detach_mcast@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_free_dm@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_get_context@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_modify_cq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_modify_flow_action_esp@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_modify_qp@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_modify_qp_ex@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_modify_srq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_modify_wq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_open_qp@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_open_xrcd@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_poll_cq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_post_recv@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_post_send@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_post_srq_recv@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_query_context@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_query_device_any@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_query_mr@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_query_port@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_query_qp@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_query_srq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_read_counters@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_reg_dm_mr@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_reg_dmabuf_mr@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_reg_mr@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_req_notify_cq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_rereg_mr@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_cmd_resize_cq@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_copy_ah_attr_from_kern@@IBVERBS_1.1' => 1, -+ 'ibv_copy_path_rec_from_kern@@IBVERBS_1.0' => 1, -+ 'ibv_copy_path_rec_to_kern@@IBVERBS_1.0' => 1, -+ 'ibv_copy_qp_attr_from_kern@@IBVERBS_1.0' => 1, -+ 'ibv_create_ah@@IBVERBS_1.1' => 1, -+ 'ibv_create_ah@IBVERBS_1.0' => 1, -+ 'ibv_create_ah_from_wc@@IBVERBS_1.1' => 1, -+ 'ibv_create_comp_channel@@IBVERBS_1.0' => 1, -+ 'ibv_create_cq@@IBVERBS_1.1' => 1, -+ 'ibv_create_cq@IBVERBS_1.0' => 1, -+ 'ibv_create_qp@@IBVERBS_1.1' => 1, -+ 'ibv_create_qp@IBVERBS_1.0' => 1, -+ 'ibv_create_srq@@IBVERBS_1.1' => 1, -+ 'ibv_create_srq@IBVERBS_1.0' => 1, -+ 'ibv_dealloc_pd@@IBVERBS_1.1' => 1, -+ 'ibv_dealloc_pd@IBVERBS_1.0' => 1, -+ 'ibv_dereg_mr@@IBVERBS_1.1' => 1, -+ 'ibv_dereg_mr@IBVERBS_1.0' => 1, -+ 'ibv_destroy_ah@@IBVERBS_1.1' => 1, -+ 'ibv_destroy_ah@IBVERBS_1.0' => 1, -+ 'ibv_destroy_comp_channel@@IBVERBS_1.0' => 1, -+ 'ibv_destroy_cq@@IBVERBS_1.1' => 1, -+ 'ibv_destroy_cq@IBVERBS_1.0' => 1, -+ 'ibv_destroy_qp@@IBVERBS_1.1' => 1, -+ 'ibv_destroy_qp@IBVERBS_1.0' => 1, -+ 'ibv_destroy_srq@@IBVERBS_1.1' => 1, -+ 'ibv_destroy_srq@IBVERBS_1.0' => 1, -+ 'ibv_detach_mcast@@IBVERBS_1.1' => 1, -+ 'ibv_detach_mcast@IBVERBS_1.0' => 1, -+ 'ibv_dofork_range@@IBVERBS_1.1' => 1, -+ 'ibv_dontfork_range@@IBVERBS_1.1' => 1, -+ 'ibv_event_type_str@@IBVERBS_1.1' => 1, -+ 'ibv_fork_init@@IBVERBS_1.1' => 1, -+ 'ibv_free_device_list@@IBVERBS_1.1' => 1, -+ 'ibv_free_device_list@IBVERBS_1.0' => 1, -+ 'ibv_get_async_event@@IBVERBS_1.1' => 1, -+ 'ibv_get_async_event@IBVERBS_1.0' => 1, -+ 'ibv_get_cq_event@@IBVERBS_1.1' => 1, -+ 'ibv_get_cq_event@IBVERBS_1.0' => 1, -+ 'ibv_get_device_guid@@IBVERBS_1.1' => 1, -+ 'ibv_get_device_guid@IBVERBS_1.0' => 1, -+ 'ibv_get_device_index@@IBVERBS_1.9' => 1, -+ 'ibv_get_device_list@@IBVERBS_1.1' => 1, -+ 'ibv_get_device_list@IBVERBS_1.0' => 1, -+ 'ibv_get_device_name@@IBVERBS_1.1' => 1, -+ 'ibv_get_device_name@IBVERBS_1.0' => 1, -+ 'ibv_get_pkey_index@@IBVERBS_1.5' => 1, -+ 'ibv_get_sysfs_path@@IBVERBS_1.0' => 1, -+ 'ibv_import_device@@IBVERBS_1.10' => 1, -+ 'ibv_import_dm@@IBVERBS_1.13' => 1, -+ 'ibv_import_mr@@IBVERBS_1.10' => 1, -+ 'ibv_import_pd@@IBVERBS_1.10' => 1, -+ 'ibv_init_ah_from_wc@@IBVERBS_1.1' => 1, -+ 'ibv_is_fork_initialized@@IBVERBS_1.13' => 1, -+ 'ibv_modify_qp@@IBVERBS_1.1' => 1, -+ 'ibv_modify_qp@IBVERBS_1.0' => 1, -+ 'ibv_modify_srq@@IBVERBS_1.1' => 1, -+ 'ibv_modify_srq@IBVERBS_1.0' => 1, -+ 'ibv_node_type_str@@IBVERBS_1.1' => 1, -+ 'ibv_open_device@@IBVERBS_1.1' => 1, -+ 'ibv_open_device@IBVERBS_1.0' => 1, -+ 'ibv_port_state_str@@IBVERBS_1.1' => 1, -+ 'ibv_qp_to_qp_ex@@IBVERBS_1.6' => 1, -+ 'ibv_query_device@@IBVERBS_1.1' => 1, -+ 'ibv_query_device@IBVERBS_1.0' => 1, -+ 'ibv_query_ece@@IBVERBS_1.10' => 1, -+ 'ibv_query_gid@@IBVERBS_1.1' => 1, -+ 'ibv_query_gid@IBVERBS_1.0' => 1, -+ 'ibv_query_gid_type@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_query_pkey@@IBVERBS_1.1' => 1, -+ 'ibv_query_pkey@IBVERBS_1.0' => 1, -+ 'ibv_query_port@@IBVERBS_1.1' => 1, -+ 'ibv_query_port@IBVERBS_1.0' => 1, -+ 'ibv_query_qp@@IBVERBS_1.1' => 1, -+ 'ibv_query_qp@IBVERBS_1.0' => 1, -+ 'ibv_query_qp_data_in_order@@IBVERBS_1.14' => 1, -+ 'ibv_query_srq@@IBVERBS_1.1' => 1, -+ 'ibv_query_srq@IBVERBS_1.0' => 1, -+ 'ibv_rate_to_mbps@@IBVERBS_1.1' => 1, -+ 'ibv_rate_to_mult@@IBVERBS_1.0' => 1, -+ 'ibv_read_ibdev_sysfs_file@@IBVERBS_PRIVATE_34' => 1, -+ 'ibv_read_sysfs_file@@IBVERBS_1.0' => 1, -+ 'ibv_reg_dmabuf_mr@@IBVERBS_1.12' => 1, -+ 'ibv_reg_mr@@IBVERBS_1.1' => 1, -+ 'ibv_reg_mr@IBVERBS_1.0' => 1, -+ 'ibv_reg_mr_iova2@@IBVERBS_1.8' => 1, -+ 'ibv_reg_mr_iova@@IBVERBS_1.7' => 1, -+ 'ibv_register_driver@IBVERBS_1.1' => 1, -+ 'ibv_rereg_mr@@IBVERBS_1.1' => 1, -+ 'ibv_resize_cq@@IBVERBS_1.1' => 1, -+ 'ibv_resize_cq@IBVERBS_1.0' => 1, -+ 'ibv_resolve_eth_l2_from_gid@@IBVERBS_1.1' => 1, -+ 'ibv_set_ece@@IBVERBS_1.10' => 1, -+ 'ibv_unimport_dm@@IBVERBS_1.13' => 1, -+ 'ibv_unimport_mr@@IBVERBS_1.10' => 1, -+ 'ibv_unimport_pd@@IBVERBS_1.10' => 1, -+ 'ibv_wc_status_str@@IBVERBS_1.1' => 1, -+ 'mbps_to_ibv_rate@@IBVERBS_1.1' => 1, -+ 'mult_to_ibv_rate@@IBVERBS_1.0' => 1, -+ 'verbs_allow_disassociate_destroy@@IBVERBS_PRIVATE_34' => -1, -+ 'verbs_init_cq@@IBVERBS_PRIVATE_34' => 1, -+ 'verbs_open_device@@IBVERBS_PRIVATE_34' => 1, -+ 'verbs_register_driver_34@@IBVERBS_PRIVATE_34' => 1, -+ 'verbs_set_ops@@IBVERBS_PRIVATE_34' => 1, -+ 'verbs_uninit_context@@IBVERBS_PRIVATE_34' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '-1' => { -+ 'Name' => '...', -+ 'Type' => 'Intrinsic' -+ }, -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '1004' => { -+ 'BaseType' => '64', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__u32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '101039' => { -+ 'BaseType' => '92651', -+ 'Name' => 'enum ibv_gid_type_sysfs*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '101173' => { -+ 'BaseType' => '9296', -+ 'Name' => 'union ibv_gid*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1016' => { -+ 'BaseType' => '474', -+ 'Header' => undef, -+ 'Line' => '31', -+ 'Name' => '__u64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '10173' => { -+ 'BaseType' => '186', -+ 'Name' => 'char[64]', -+ 'Size' => '64', -+ 'Type' => 'Array' -+ }, -+ '10189' => { -+ 'Header' => undef, -+ 'Line' => '364', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MTU_256', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'IBV_MTU_512', -+ 'value' => '2' -+ }, -+ '2' => { -+ 'name' => 'IBV_MTU_1024', -+ 'value' => '3' -+ }, -+ '3' => { -+ 'name' => 'IBV_MTU_2048', -+ 'value' => '4' -+ }, -+ '4' => { -+ 'name' => 'IBV_MTU_4096', -+ 'value' => '5' -+ } -+ }, -+ 'Name' => 'enum ibv_mtu', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '10239' => { -+ 'Header' => undef, -+ 'Line' => '1458', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '15787' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'cqe', -+ 'offset' => '28', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '822' -+ }, -+ '6' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '896' -+ }, -+ '7' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '120', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '124', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_cq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '1028' => { -+ 'BaseType' => '992', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => '__be16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '103456' => { -+ 'BaseType' => '92090', -+ 'Name' => 'struct ibv_get_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '103462' => { -+ 'BaseType' => '78418', -+ 'Name' => 'struct ib_uverbs_get_context_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10380' => { -+ 'BaseType' => '10239', -+ 'Name' => 'struct ibv_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10386' => { -+ 'Header' => undef, -+ 'Line' => '1252', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'qp_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '10' => { -+ 'name' => 'mutex', -+ 'offset' => '64', -+ 'type' => '822' -+ }, -+ '11' => { -+ 'name' => 'cond', -+ 'offset' => '104', -+ 'type' => '896' -+ }, -+ '12' => { -+ 'name' => 'events_completed', -+ 'offset' => '152', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '12044' -+ }, -+ '3' => { -+ 'name' => 'send_cq', -+ 'offset' => '24', -+ 'type' => '10380' -+ }, -+ '4' => { -+ 'name' => 'recv_cq', -+ 'offset' => '32', -+ 'type' => '10380' -+ }, -+ '5' => { -+ 'name' => 'srq', -+ 'offset' => '40', -+ 'type' => '10700' -+ }, -+ '6' => { -+ 'name' => 'handle', -+ 'offset' => '48', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'qp_num', -+ 'offset' => '52', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'state', -+ 'offset' => '56', -+ 'type' => '13414' -+ }, -+ '9' => { -+ 'name' => 'qp_type', -+ 'offset' => '60', -+ 'type' => '12835' -+ } -+ }, -+ 'Name' => 'struct ibv_qp', -+ 'Size' => '160', -+ 'Type' => 'Struct' -+ }, -+ '1040' => { -+ 'BaseType' => '1004', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__be32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '1052' => { -+ 'BaseType' => '1016', -+ 'Header' => undef, -+ 'Line' => '29', -+ 'Name' => '__be64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '105302' => { -+ 'BaseType' => '92421', -+ 'Name' => 'struct ibv_query_port*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10582' => { -+ 'BaseType' => '10386', -+ 'Name' => 'struct ibv_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10588' => { -+ 'Header' => undef, -+ 'Line' => '1212', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'srq_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '12044' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '822' -+ }, -+ '5' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '896' -+ }, -+ '6' => { -+ 'name' => 'events_completed', -+ 'offset' => '120', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_srq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '10700' => { -+ 'BaseType' => '10588', -+ 'Name' => 'struct ibv_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10706' => { -+ 'Header' => undef, -+ 'Line' => '1234', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'wq_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '10' => { -+ 'name' => 'cond', -+ 'offset' => '96', -+ 'type' => '896' -+ }, -+ '11' => { -+ 'name' => 'events_completed', -+ 'offset' => '144', -+ 'type' => '944' -+ }, -+ '12' => { -+ 'name' => 'comp_mask', -+ 'offset' => '148', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '12044' -+ }, -+ '3' => { -+ 'name' => 'cq', -+ 'offset' => '24', -+ 'type' => '10380' -+ }, -+ '4' => { -+ 'name' => 'wq_num', -+ 'offset' => '32', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'handle', -+ 'offset' => '36', -+ 'type' => '944' -+ }, -+ '6' => { -+ 'name' => 'state', -+ 'offset' => '40', -+ 'type' => '12502' -+ }, -+ '7' => { -+ 'name' => 'wq_type', -+ 'offset' => '44', -+ 'type' => '12426' -+ }, -+ '8' => { -+ 'name' => 'post_recv', -+ 'offset' => '48', -+ 'type' => '14919' -+ }, -+ '9' => { -+ 'name' => 'mutex', -+ 'offset' => '56', -+ 'type' => '822' -+ } -+ }, -+ 'Name' => 'struct ibv_wq', -+ 'Size' => '152', -+ 'Type' => 'Struct' -+ }, -+ '107760' => { -+ 'BaseType' => '54940', -+ 'Name' => 'struct ibv_alloc_dm_attr const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '10901' => { -+ 'BaseType' => '10706', -+ 'Name' => 'struct ibv_wq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10907' => { -+ 'Header' => undef, -+ 'Line' => '483', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SUCCESS', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_LOC_LEN_ERR', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_REM_ACCESS_ERR', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_REM_OP_ERR', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_RETRY_EXC_ERR', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_RNR_RETRY_EXC_ERR', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_LOC_RDD_VIOL_ERR', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_REM_INV_RD_REQ_ERR', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_REM_ABORT_ERR', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_INV_EECN_ERR', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'IBV_WC_INV_EEC_STATE_ERR', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'IBV_WC_FATAL_ERR', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_LOC_QP_OP_ERR', -+ 'value' => '2' -+ }, -+ '20' => { -+ 'name' => 'IBV_WC_RESP_TIMEOUT_ERR', -+ 'value' => '20' -+ }, -+ '21' => { -+ 'name' => 'IBV_WC_GENERAL_ERR', -+ 'value' => '21' -+ }, -+ '22' => { -+ 'name' => 'IBV_WC_TM_ERR', -+ 'value' => '22' -+ }, -+ '23' => { -+ 'name' => 'IBV_WC_TM_RNDV_INCOMPLETE', -+ 'value' => '23' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_LOC_EEC_OP_ERR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_LOC_PROT_ERR', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_WR_FLUSH_ERR', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_MW_BIND_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_BAD_RESP_ERR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_LOC_ACCESS_ERR', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_REM_INV_REQ_ERR', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_status', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '11071' => { -+ 'Header' => undef, -+ 'Line' => '511', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SEND', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_RDMA_WRITE', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_TM_ADD', -+ 'value' => '130' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_TM_DEL', -+ 'value' => '131' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_TM_SYNC', -+ 'value' => '132' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_TM_RECV', -+ 'value' => '133' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_TM_NO_TAG', -+ 'value' => '134' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_DRIVER1', -+ 'value' => '135' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_DRIVER2', -+ 'value' => '136' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_DRIVER3', -+ 'value' => '137' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_RDMA_READ', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_COMP_SWAP', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_FETCH_ADD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_BIND_MW', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_LOCAL_INV', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_TSO', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_RECV', -+ 'value' => '128' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_RECV_RDMA_WITH_IMM', -+ 'value' => '129' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '112504' => { -+ 'Header' => undef, -+ 'Line' => '187', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dm', -+ 'offset' => '0', -+ 'type' => '54993' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '32', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct verbs_dm', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '11339' => { -+ 'Header' => undef, -+ 'Line' => '594', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '1040' -+ }, -+ '1' => { -+ 'name' => 'invalidated_rkey', -+ 'offset' => '0', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '11376' => { -+ 'Header' => undef, -+ 'Line' => '585', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'status', -+ 'offset' => '8', -+ 'type' => '10907' -+ }, -+ '10' => { -+ 'name' => 'slid', -+ 'offset' => '42', -+ 'type' => '932' -+ }, -+ '11' => { -+ 'name' => 'sl', -+ 'offset' => '44', -+ 'type' => '920' -+ }, -+ '12' => { -+ 'name' => 'dlid_path_bits', -+ 'offset' => '45', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'opcode', -+ 'offset' => '12', -+ 'type' => '11071' -+ }, -+ '3' => { -+ 'name' => 'vendor_err', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'byte_len', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '11339' -+ }, -+ '6' => { -+ 'name' => 'qp_num', -+ 'offset' => '28', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'src_qp', -+ 'offset' => '32', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'wc_flags', -+ 'offset' => '36', -+ 'type' => '64' -+ }, -+ '9' => { -+ 'name' => 'pkey_index', -+ 'offset' => '40', -+ 'type' => '932' -+ } -+ }, -+ 'Name' => 'struct ibv_wc', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '114981' => { -+ 'BaseType' => '112504', -+ 'Name' => 'struct verbs_dm*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11641' => { -+ 'Header' => undef, -+ 'Line' => '619', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mr', -+ 'offset' => '0', -+ 'type' => '11828' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'offset' => '8', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'offset' => '16', -+ 'type' => '956' -+ }, -+ '3' => { -+ 'name' => 'mw_access_flags', -+ 'offset' => '24', -+ 'type' => '64' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind_info', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '116456' => { -+ 'BaseType' => '107760', -+ 'Name' => 'struct ibv_alloc_dm_attr const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11711' => { -+ 'BaseType' => '11641', -+ 'Name' => 'struct ibv_mw_bind_info const', -+ 'Size' => '32', -+ 'Type' => 'Const' -+ }, -+ '11716' => { -+ 'Header' => undef, -+ 'Line' => '662', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '12044' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'offset' => '24', -+ 'type' => '52' -+ }, -+ '4' => { -+ 'name' => 'handle', -+ 'offset' => '32', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'lkey', -+ 'offset' => '36', -+ 'type' => '944' -+ }, -+ '6' => { -+ 'name' => 'rkey', -+ 'offset' => '40', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_mr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '118' => { -+ 'BaseType' => '85', -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Name' => '__uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '11828' => { -+ 'BaseType' => '11716', -+ 'Name' => 'struct ibv_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11834' => { -+ 'Header' => undef, -+ 'Line' => '626', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_pd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '11915' => { -+ 'Header' => undef, -+ 'Line' => '645', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '4', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'oflags', -+ 'offset' => '8', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_xrcd_init_attr', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '11971' => { -+ 'Header' => undef, -+ 'Line' => '651', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ } -+ }, -+ 'Name' => 'struct ibv_xrcd', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '12044' => { -+ 'BaseType' => '11834', -+ 'Name' => 'struct ibv_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12050' => { -+ 'Header' => undef, -+ 'Line' => '672', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MW_TYPE_1', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'IBV_MW_TYPE_2', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_mw_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '12082' => { -+ 'Header' => undef, -+ 'Line' => '677', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '12044' -+ }, -+ '2' => { -+ 'name' => 'rkey', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'type', -+ 'offset' => '24', -+ 'type' => '12050' -+ } -+ }, -+ 'Name' => 'struct ibv_mw', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '12166' => { -+ 'Header' => undef, -+ 'Line' => '685', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dgid', -+ 'offset' => '0', -+ 'type' => '9296' -+ }, -+ '1' => { -+ 'name' => 'flow_label', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'sgid_index', -+ 'offset' => '20', -+ 'type' => '920' -+ }, -+ '3' => { -+ 'name' => 'hop_limit', -+ 'offset' => '21', -+ 'type' => '920' -+ }, -+ '4' => { -+ 'name' => 'traffic_class', -+ 'offset' => '22', -+ 'type' => '920' -+ } -+ }, -+ 'Name' => 'struct ibv_global_route', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '12251' => { -+ 'Header' => undef, -+ 'Line' => '756', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'grh', -+ 'offset' => '0', -+ 'type' => '12166' -+ }, -+ '1' => { -+ 'name' => 'dlid', -+ 'offset' => '24', -+ 'type' => '932' -+ }, -+ '2' => { -+ 'name' => 'sl', -+ 'offset' => '26', -+ 'type' => '920' -+ }, -+ '3' => { -+ 'name' => 'src_path_bits', -+ 'offset' => '27', -+ 'type' => '920' -+ }, -+ '4' => { -+ 'name' => 'static_rate', -+ 'offset' => '28', -+ 'type' => '920' -+ }, -+ '5' => { -+ 'name' => 'is_global', -+ 'offset' => '29', -+ 'type' => '920' -+ }, -+ '6' => { -+ 'name' => 'port_num', -+ 'offset' => '30', -+ 'type' => '920' -+ } -+ }, -+ 'Name' => 'struct ibv_ah_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '12363' => { -+ 'Header' => undef, -+ 'Line' => '771', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_wr', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'max_sge', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'srq_limit', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_srq_attr', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '12420' => { -+ 'BaseType' => '11971', -+ 'Name' => 'struct ibv_xrcd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12426' => { -+ 'Header' => undef, -+ 'Line' => '814', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WQT_RQ', -+ 'value' => '0' -+ } -+ }, -+ 'Name' => 'enum ibv_wq_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '12502' => { -+ 'Header' => undef, -+ 'Line' => '842', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WQS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WQS_RDY', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_WQS_ERR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WQS_UNKNOWN', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum ibv_wq_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '12590' => { -+ 'Header' => undef, -+ 'Line' => '856', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'attr_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'wq_state', -+ 'offset' => '4', -+ 'type' => '12502' -+ }, -+ '2' => { -+ 'name' => 'curr_wq_state', -+ 'offset' => '8', -+ 'type' => '12502' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'offset' => '12', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'flags_mask', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_wq_attr', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '12675' => { -+ 'Header' => undef, -+ 'Line' => '874', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'ind_tbl_handle', -+ 'offset' => '8', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'ind_tbl_num', -+ 'offset' => '12', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_rwq_ind_table', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '12772' => { -+ 'Header' => undef, -+ 'Line' => '888', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'log_ind_tbl_size', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'ind_tbl', -+ 'offset' => '8', -+ 'type' => '12829' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_rwq_ind_table_init_attr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '12829' => { -+ 'BaseType' => '10901', -+ 'Name' => 'struct ibv_wq**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12835' => { -+ 'Header' => undef, -+ 'Line' => '895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPT_RC', -+ 'value' => '2' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPT_UC', -+ 'value' => '3' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPT_UD', -+ 'value' => '4' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPT_RAW_PACKET', -+ 'value' => '8' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPT_XRC_SEND', -+ 'value' => '9' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPT_XRC_RECV', -+ 'value' => '10' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPT_DRIVER', -+ 'value' => '255' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '12897' => { -+ 'Header' => undef, -+ 'Line' => '905', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '12', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_cap', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '12982' => { -+ 'Header' => undef, -+ 'Line' => '913', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '10380' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '10380' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '10700' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '12897' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '12835' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '130' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '13095' => { -+ 'BaseType' => '12675', -+ 'Name' => 'struct ibv_rwq_ind_table*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '13151' => { -+ 'Header' => undef, -+ 'Line' => '993', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'qp_num', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'xrcd', -+ 'offset' => '8', -+ 'type' => '12420' -+ }, -+ '3' => { -+ 'name' => 'qp_context', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'qp_type', -+ 'offset' => '24', -+ 'type' => '12835' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_open_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '13414' => { -+ 'Header' => undef, -+ 'Line' => '1033', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPS_INIT', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPS_RTR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPS_RTS', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPS_SQD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPS_SQE', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPS_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_QPS_UNKNOWN', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '13482' => { -+ 'Header' => undef, -+ 'Line' => '1044', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MIG_MIGRATED', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_MIG_REARM', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_MIG_ARMED', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_mig_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '13520' => { -+ 'Header' => undef, -+ 'Line' => '1050', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_state', -+ 'offset' => '0', -+ 'type' => '13414' -+ }, -+ '1' => { -+ 'name' => 'cur_qp_state', -+ 'offset' => '4', -+ 'type' => '13414' -+ }, -+ '10' => { -+ 'name' => 'ah_attr', -+ 'offset' => '56', -+ 'type' => '12251' -+ }, -+ '11' => { -+ 'name' => 'alt_ah_attr', -+ 'offset' => '88', -+ 'type' => '12251' -+ }, -+ '12' => { -+ 'name' => 'pkey_index', -+ 'offset' => '120', -+ 'type' => '932' -+ }, -+ '13' => { -+ 'name' => 'alt_pkey_index', -+ 'offset' => '122', -+ 'type' => '932' -+ }, -+ '14' => { -+ 'name' => 'en_sqd_async_notify', -+ 'offset' => '124', -+ 'type' => '920' -+ }, -+ '15' => { -+ 'name' => 'sq_draining', -+ 'offset' => '125', -+ 'type' => '920' -+ }, -+ '16' => { -+ 'name' => 'max_rd_atomic', -+ 'offset' => '126', -+ 'type' => '920' -+ }, -+ '17' => { -+ 'name' => 'max_dest_rd_atomic', -+ 'offset' => '127', -+ 'type' => '920' -+ }, -+ '18' => { -+ 'name' => 'min_rnr_timer', -+ 'offset' => '128', -+ 'type' => '920' -+ }, -+ '19' => { -+ 'name' => 'port_num', -+ 'offset' => '129', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'path_mtu', -+ 'offset' => '8', -+ 'type' => '10189' -+ }, -+ '20' => { -+ 'name' => 'timeout', -+ 'offset' => '130', -+ 'type' => '920' -+ }, -+ '21' => { -+ 'name' => 'retry_cnt', -+ 'offset' => '131', -+ 'type' => '920' -+ }, -+ '22' => { -+ 'name' => 'rnr_retry', -+ 'offset' => '132', -+ 'type' => '920' -+ }, -+ '23' => { -+ 'name' => 'alt_port_num', -+ 'offset' => '133', -+ 'type' => '920' -+ }, -+ '24' => { -+ 'name' => 'alt_timeout', -+ 'offset' => '134', -+ 'type' => '920' -+ }, -+ '25' => { -+ 'name' => 'rate_limit', -+ 'offset' => '136', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'path_mig_state', -+ 'offset' => '12', -+ 'type' => '13482' -+ }, -+ '4' => { -+ 'name' => 'qkey', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'rq_psn', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '6' => { -+ 'name' => 'sq_psn', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'dest_qp_num', -+ 'offset' => '28', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'qp_access_flags', -+ 'offset' => '32', -+ 'type' => '64' -+ }, -+ '9' => { -+ 'name' => 'cap', -+ 'offset' => '36', -+ 'type' => '12897' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_attr', -+ 'Size' => '144', -+ 'Type' => 'Struct' -+ }, -+ '137' => { -+ 'BaseType' => '64', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '13899' => { -+ 'Header' => undef, -+ 'Line' => '1086', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WR_RDMA_WRITE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WR_RDMA_WRITE_WITH_IMM', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WR_TSO', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WR_DRIVER1', -+ 'value' => '11' -+ }, -+ '2' => { -+ 'name' => 'IBV_WR_SEND', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WR_SEND_WITH_IMM', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WR_RDMA_READ', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WR_ATOMIC_CMP_AND_SWP', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WR_ATOMIC_FETCH_AND_ADD', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WR_LOCAL_INV', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WR_BIND_MW', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WR_SEND_WITH_INV', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wr_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '13991' => { -+ 'Header' => undef, -+ 'Line' => '1109', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '52' -+ } -+ }, -+ 'Name' => 'struct ibv_data_buf', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14034' => { -+ 'BaseType' => '13991', -+ 'Name' => 'struct ibv_data_buf const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '14039' => { -+ 'Header' => undef, -+ 'Line' => '1114', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'lkey', -+ 'offset' => '12', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_sge', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14096' => { -+ 'BaseType' => '14039', -+ 'Name' => 'struct ibv_sge const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '14101' => { -+ 'Header' => undef, -+ 'Line' => '1130', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '1040' -+ }, -+ '1' => { -+ 'name' => 'invalidate_rkey', -+ 'offset' => '0', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '14138' => { -+ 'Header' => undef, -+ 'Line' => '1135', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14177' => { -+ 'Header' => undef, -+ 'Line' => '1139', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'compare_add', -+ 'offset' => '8', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'swap', -+ 'offset' => '16', -+ 'type' => '956' -+ }, -+ '3' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '1423' => { -+ 'Header' => undef, -+ 'Line' => '146', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'command', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'in_words', -+ 'offset' => '4', -+ 'type' => '992' -+ }, -+ '2' => { -+ 'name' => 'out_words', -+ 'offset' => '6', -+ 'type' => '992' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_cmd_hdr', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '14244' => { -+ 'Header' => undef, -+ 'Line' => '1145', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ah', -+ 'offset' => '0', -+ 'type' => '14352' -+ }, -+ '1' => { -+ 'name' => 'remote_qpn', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'remote_qkey', -+ 'offset' => '12', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14296' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '12044' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_ah', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '14352' => { -+ 'BaseType' => '14296', -+ 'Name' => 'struct ibv_ah*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14358' => { -+ 'Header' => undef, -+ 'Line' => '1134', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdma', -+ 'offset' => '0', -+ 'type' => '14138' -+ }, -+ '1' => { -+ 'name' => 'atomic', -+ 'offset' => '0', -+ 'type' => '14177' -+ }, -+ '2' => { -+ 'name' => 'ud', -+ 'offset' => '0', -+ 'type' => '14244' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '14407' => { -+ 'Header' => undef, -+ 'Line' => '1152', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_srqn', -+ 'offset' => '0', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '14432' => { -+ 'Header' => undef, -+ 'Line' => '1151', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'xrc', -+ 'offset' => '0', -+ 'type' => '14407' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '14456' => { -+ 'Header' => undef, -+ 'Line' => '1157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mw', -+ 'offset' => '0', -+ 'type' => '14508' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '11641' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '14508' => { -+ 'BaseType' => '12082', -+ 'Name' => 'struct ibv_mw*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14514' => { -+ 'Header' => undef, -+ 'Line' => '1162', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'hdr_sz', -+ 'offset' => '8', -+ 'type' => '932' -+ }, -+ '2' => { -+ 'name' => 'mss', -+ 'offset' => '10', -+ 'type' => '932' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14567' => { -+ 'Header' => undef, -+ 'Line' => '1156', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'bind_mw', -+ 'offset' => '0', -+ 'type' => '14456' -+ }, -+ '1' => { -+ 'name' => 'tso', -+ 'offset' => '0', -+ 'type' => '14514' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '14604' => { -+ 'Header' => undef, -+ 'Line' => '1120', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '14742' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '14748' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'opcode', -+ 'offset' => '28', -+ 'type' => '13899' -+ }, -+ '5' => { -+ 'name' => 'send_flags', -+ 'offset' => '32', -+ 'type' => '64' -+ }, -+ '6' => { -+ 'name' => 'unnamed0', -+ 'offset' => '36', -+ 'type' => '14101' -+ }, -+ '7' => { -+ 'name' => 'wr', -+ 'offset' => '40', -+ 'type' => '14358' -+ }, -+ '8' => { -+ 'name' => 'qp_type', -+ 'offset' => '72', -+ 'type' => '14432' -+ }, -+ '9' => { -+ 'name' => 'unnamed1', -+ 'offset' => '80', -+ 'type' => '14567' -+ } -+ }, -+ 'Name' => 'struct ibv_send_wr', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '14742' => { -+ 'BaseType' => '14604', -+ 'Name' => 'struct ibv_send_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14748' => { -+ 'BaseType' => '14039', -+ 'Name' => 'struct ibv_sge*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14754' => { -+ 'Header' => undef, -+ 'Line' => '1170', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '14825' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '14748' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_recv_wr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '1476' => { -+ 'Header' => undef, -+ 'Line' => '152', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'provider_in_words', -+ 'offset' => '8', -+ 'type' => '992' -+ }, -+ '2' => { -+ 'name' => 'provider_out_words', -+ 'offset' => '10', -+ 'type' => '992' -+ }, -+ '3' => { -+ 'name' => 'cmd_hdr_reserved', -+ 'offset' => '12', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_cmd_hdr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14825' => { -+ 'BaseType' => '14754', -+ 'Name' => 'struct ibv_recv_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14831' => { -+ 'Header' => undef, -+ 'Line' => '1206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'send_flags', -+ 'offset' => '8', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '11641' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '149' => { -+ 'Name' => 'long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '14913' => { -+ 'BaseType' => '14825', -+ 'Name' => 'struct ibv_recv_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14919' => { -+ 'Name' => 'int(*)(struct ibv_wq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10901' -+ }, -+ '1' => { -+ 'type' => '14825' -+ }, -+ '2' => { -+ 'type' => '14913' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '14925' => { -+ 'Header' => undef, -+ 'Line' => '1269', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_base', -+ 'offset' => '0', -+ 'type' => '10386' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '160', -+ 'type' => '956' -+ }, -+ '10' => { -+ 'name' => 'wr_rdma_write_imm', -+ 'offset' => '232', -+ 'type' => '15476' -+ }, -+ '11' => { -+ 'name' => 'wr_send', -+ 'offset' => '240', -+ 'type' => '15493' -+ }, -+ '12' => { -+ 'name' => 'wr_send_imm', -+ 'offset' => '248', -+ 'type' => '15515' -+ }, -+ '13' => { -+ 'name' => 'wr_send_inv', -+ 'offset' => '256', -+ 'type' => '15417' -+ }, -+ '14' => { -+ 'name' => 'wr_send_tso', -+ 'offset' => '264', -+ 'type' => '15547' -+ }, -+ '15' => { -+ 'name' => 'wr_set_ud_addr', -+ 'offset' => '272', -+ 'type' => '15579' -+ }, -+ '16' => { -+ 'name' => 'wr_set_xrc_srqn', -+ 'offset' => '280', -+ 'type' => '15417' -+ }, -+ '17' => { -+ 'name' => 'wr_set_inline_data', -+ 'offset' => '288', -+ 'type' => '15606' -+ }, -+ '18' => { -+ 'name' => 'wr_set_inline_data_list', -+ 'offset' => '296', -+ 'type' => '15639' -+ }, -+ '19' => { -+ 'name' => 'wr_set_sge', -+ 'offset' => '304', -+ 'type' => '15671' -+ }, -+ '2' => { -+ 'name' => 'wr_id', -+ 'offset' => '168', -+ 'type' => '956' -+ }, -+ '20' => { -+ 'name' => 'wr_set_sge_list', -+ 'offset' => '312', -+ 'type' => '15704' -+ }, -+ '21' => { -+ 'name' => 'wr_start', -+ 'offset' => '320', -+ 'type' => '15493' -+ }, -+ '22' => { -+ 'name' => 'wr_complete', -+ 'offset' => '328', -+ 'type' => '15725' -+ }, -+ '23' => { -+ 'name' => 'wr_abort', -+ 'offset' => '336', -+ 'type' => '15493' -+ }, -+ '3' => { -+ 'name' => 'wr_flags', -+ 'offset' => '176', -+ 'type' => '64' -+ }, -+ '4' => { -+ 'name' => 'wr_atomic_cmp_swp', -+ 'offset' => '184', -+ 'type' => '15325' -+ }, -+ '5' => { -+ 'name' => 'wr_atomic_fetch_add', -+ 'offset' => '192', -+ 'type' => '15357' -+ }, -+ '6' => { -+ 'name' => 'wr_bind_mw', -+ 'offset' => '200', -+ 'type' => '15395' -+ }, -+ '7' => { -+ 'name' => 'wr_local_inv', -+ 'offset' => '208', -+ 'type' => '15417' -+ }, -+ '8' => { -+ 'name' => 'wr_rdma_read', -+ 'offset' => '216', -+ 'type' => '15444' -+ }, -+ '9' => { -+ 'name' => 'wr_rdma_write', -+ 'offset' => '224', -+ 'type' => '15444' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_ex', -+ 'Size' => '344', -+ 'Type' => 'Struct' -+ }, -+ '15319' => { -+ 'BaseType' => '14925', -+ 'Name' => 'struct ibv_qp_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '15325' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, uint64_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '944' -+ }, -+ '2' => { -+ 'type' => '956' -+ }, -+ '3' => { -+ 'type' => '956' -+ }, -+ '4' => { -+ 'type' => '956' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15357' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '944' -+ }, -+ '2' => { -+ 'type' => '956' -+ }, -+ '3' => { -+ 'type' => '956' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15389' => { -+ 'BaseType' => '11711', -+ 'Name' => 'struct ibv_mw_bind_info const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '15395' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, struct ibv_mw*, uint32_t, struct ibv_mw_bind_info const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '14508' -+ }, -+ '2' => { -+ 'type' => '944' -+ }, -+ '3' => { -+ 'type' => '15389' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '153972' => { -+ 'BaseType' => '24456', -+ 'Name' => 'struct verbs_flow_action*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '15417' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '1544' => { -+ 'BaseType' => '980', -+ 'Name' => '__u8[7]', -+ 'Size' => '7', -+ 'Type' => 'Array' -+ }, -+ '15444' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '944' -+ }, -+ '2' => { -+ 'type' => '956' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15476' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, __be32)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '944' -+ }, -+ '2' => { -+ 'type' => '956' -+ }, -+ '3' => { -+ 'type' => '1040' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15493' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15515' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, __be32)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '1040' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15547' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, void*, uint16_t, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '71' -+ }, -+ '2' => { -+ 'type' => '932' -+ }, -+ '3' => { -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15579' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, struct ibv_ah*, uint32_t, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '14352' -+ }, -+ '2' => { -+ 'type' => '944' -+ }, -+ '3' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '156' => { -+ 'BaseType' => '45', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1560' => { -+ 'Header' => undef, -+ 'Line' => '309', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_alloc_pd', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '15606' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, void*, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '71' -+ }, -+ '2' => { -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15633' => { -+ 'BaseType' => '14034', -+ 'Name' => 'struct ibv_data_buf const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '15639' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, size_t, struct ibv_data_buf const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '52' -+ }, -+ '2' => { -+ 'type' => '15633' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15671' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '944' -+ }, -+ '2' => { -+ 'type' => '956' -+ }, -+ '3' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15698' => { -+ 'BaseType' => '14096', -+ 'Name' => 'struct ibv_sge const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '15704' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, size_t, struct ibv_sge const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ }, -+ '1' => { -+ 'type' => '52' -+ }, -+ '2' => { -+ 'type' => '15698' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15725' => { -+ 'Name' => 'int(*)(struct ibv_qp_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '15319' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '15731' => { -+ 'Header' => undef, -+ 'Line' => '1452', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '8', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'refcnt', -+ 'offset' => '12', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_comp_channel', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '157339' => { -+ 'BaseType' => '71', -+ 'Name' => 'void**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '15787' => { -+ 'BaseType' => '15731', -+ 'Name' => 'struct ibv_comp_channel*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '15825' => { -+ 'Header' => undef, -+ 'Line' => '1527', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq_count', -+ 'offset' => '0', -+ 'type' => '932' -+ }, -+ '1' => { -+ 'name' => 'cq_period', -+ 'offset' => '2', -+ 'type' => '932' -+ } -+ }, -+ 'Name' => 'struct ibv_moderate_cq', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '15868' => { -+ 'Header' => undef, -+ 'Line' => '1532', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'attr_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'moderate', -+ 'offset' => '4', -+ 'type' => '15825' -+ } -+ }, -+ 'Name' => 'struct ibv_modify_cq_attr', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '15911' => { -+ 'Header' => undef, -+ 'Line' => '1657', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_FLOW_ATTR_NORMAL', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_FLOW_ATTR_ALL_DEFAULT', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_FLOW_ATTR_MC_DEFAULT', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_FLOW_ATTR_SNIFFER', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum ibv_flow_attr_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '1606' => { -+ 'BaseType' => '1016', -+ 'Name' => '__u64[]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '1622' => { -+ 'Header' => undef, -+ 'Line' => '314', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'pd_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'driver_data', -+ 'offset' => '4', -+ 'type' => '1665' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_alloc_pd_resp', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '1665' => { -+ 'BaseType' => '1004', -+ 'Name' => '__u32[]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '168' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '193', -+ 'Name' => '__ssize_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1681' => { -+ 'Header' => undef, -+ 'Line' => '323', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'oflags', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_open_xrcd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '17395' => { -+ 'Header' => undef, -+ 'Line' => '1889', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ } -+ }, -+ 'Name' => 'struct ibv_flow_action', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '17492' => { -+ 'Header' => undef, -+ 'Line' => '2054', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ } -+ }, -+ 'Name' => 'struct ibv_counters', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '17521' => { -+ 'BaseType' => '17492', -+ 'Name' => 'struct ibv_counters*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1770' => { -+ 'Header' => undef, -+ 'Line' => '330', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'xrcd_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'driver_data', -+ 'offset' => '4', -+ 'type' => '1665' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_open_xrcd_resp', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '17780' => { -+ 'Header' => undef, -+ 'Line' => '1869', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'type', -+ 'offset' => '4', -+ 'type' => '15911' -+ }, -+ '2' => { -+ 'name' => 'size', -+ 'offset' => '8', -+ 'type' => '932' -+ }, -+ '3' => { -+ 'name' => 'priority', -+ 'offset' => '10', -+ 'type' => '932' -+ }, -+ '4' => { -+ 'name' => 'num_of_specs', -+ 'offset' => '12', -+ 'type' => '920' -+ }, -+ '5' => { -+ 'name' => 'port', -+ 'offset' => '13', -+ 'type' => '920' -+ }, -+ '6' => { -+ 'name' => 'flags', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_flow_attr', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '17893' => { -+ 'Header' => undef, -+ 'Line' => '1883', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'context', -+ 'offset' => '8', -+ 'type' => '9633' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_flow', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '17950' => { -+ 'Header' => undef, -+ 'Line' => '1918', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_dummy1', -+ 'offset' => '0', -+ 'type' => '18134' -+ }, -+ '1' => { -+ 'name' => '_dummy2', -+ 'offset' => '8', -+ 'type' => '18151' -+ } -+ }, -+ 'Name' => 'struct _ibv_device_ops', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '180' => { -+ 'BaseType' => '186', -+ 'Name' => 'char*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18013' => { -+ 'BaseType' => '18019', -+ 'Name' => 'struct ibv_device*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18019' => { -+ 'Header' => undef, -+ 'Line' => '1928', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_ops', -+ 'offset' => '0', -+ 'type' => '17950' -+ }, -+ '1' => { -+ 'name' => 'node_type', -+ 'offset' => '16', -+ 'type' => '9355' -+ }, -+ '2' => { -+ 'name' => 'transport_type', -+ 'offset' => '20', -+ 'type' => '9422' -+ }, -+ '3' => { -+ 'name' => 'name', -+ 'offset' => '24', -+ 'type' => '10173' -+ }, -+ '4' => { -+ 'name' => 'dev_name', -+ 'offset' => '88', -+ 'type' => '10173' -+ }, -+ '5' => { -+ 'name' => 'dev_path', -+ 'offset' => '152', -+ 'type' => '18186' -+ }, -+ '6' => { -+ 'name' => 'ibdev_path', -+ 'offset' => '408', -+ 'type' => '18186' -+ } -+ }, -+ 'Name' => 'struct ibv_device', -+ 'Size' => '664', -+ 'Type' => 'Struct' -+ }, -+ '18134' => { -+ 'Name' => 'struct ibv_context*(*)(struct ibv_device*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '18013' -+ }, -+ '1' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '9633', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18151' => { -+ 'Name' => 'void(*)(struct ibv_context*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18186' => { -+ 'BaseType' => '186', -+ 'Name' => 'char[256]', -+ 'Size' => '256', -+ 'Type' => 'Array' -+ }, -+ '18202' => { -+ 'Header' => undef, -+ 'Line' => '1943', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_compat_query_device', -+ 'offset' => '0', -+ 'type' => '18692' -+ }, -+ '1' => { -+ 'name' => '_compat_query_port', -+ 'offset' => '8', -+ 'type' => '18734' -+ }, -+ '10' => { -+ 'name' => '_compat_create_cq', -+ 'offset' => '80', -+ 'type' => '18745' -+ }, -+ '11' => { -+ 'name' => 'poll_cq', -+ 'offset' => '88', -+ 'type' => '18866' -+ }, -+ '12' => { -+ 'name' => 'req_notify_cq', -+ 'offset' => '96', -+ 'type' => '18892' -+ }, -+ '13' => { -+ 'name' => '_compat_cq_event', -+ 'offset' => '104', -+ 'type' => '18745' -+ }, -+ '14' => { -+ 'name' => '_compat_resize_cq', -+ 'offset' => '112', -+ 'type' => '18745' -+ }, -+ '15' => { -+ 'name' => '_compat_destroy_cq', -+ 'offset' => '120', -+ 'type' => '18745' -+ }, -+ '16' => { -+ 'name' => '_compat_create_srq', -+ 'offset' => '128', -+ 'type' => '18745' -+ }, -+ '17' => { -+ 'name' => '_compat_modify_srq', -+ 'offset' => '136', -+ 'type' => '18745' -+ }, -+ '18' => { -+ 'name' => '_compat_query_srq', -+ 'offset' => '144', -+ 'type' => '18745' -+ }, -+ '19' => { -+ 'name' => '_compat_destroy_srq', -+ 'offset' => '152', -+ 'type' => '18745' -+ }, -+ '2' => { -+ 'name' => '_compat_alloc_pd', -+ 'offset' => '16', -+ 'type' => '18745' -+ }, -+ '20' => { -+ 'name' => 'post_srq_recv', -+ 'offset' => '160', -+ 'type' => '18923' -+ }, -+ '21' => { -+ 'name' => '_compat_create_qp', -+ 'offset' => '168', -+ 'type' => '18745' -+ }, -+ '22' => { -+ 'name' => '_compat_query_qp', -+ 'offset' => '176', -+ 'type' => '18745' -+ }, -+ '23' => { -+ 'name' => '_compat_modify_qp', -+ 'offset' => '184', -+ 'type' => '18745' -+ }, -+ '24' => { -+ 'name' => '_compat_destroy_qp', -+ 'offset' => '192', -+ 'type' => '18745' -+ }, -+ '25' => { -+ 'name' => 'post_send', -+ 'offset' => '200', -+ 'type' => '18960' -+ }, -+ '26' => { -+ 'name' => 'post_recv', -+ 'offset' => '208', -+ 'type' => '18991' -+ }, -+ '27' => { -+ 'name' => '_compat_create_ah', -+ 'offset' => '216', -+ 'type' => '18745' -+ }, -+ '28' => { -+ 'name' => '_compat_destroy_ah', -+ 'offset' => '224', -+ 'type' => '18745' -+ }, -+ '29' => { -+ 'name' => '_compat_attach_mcast', -+ 'offset' => '232', -+ 'type' => '18745' -+ }, -+ '3' => { -+ 'name' => '_compat_dealloc_pd', -+ 'offset' => '24', -+ 'type' => '18745' -+ }, -+ '30' => { -+ 'name' => '_compat_detach_mcast', -+ 'offset' => '240', -+ 'type' => '18745' -+ }, -+ '31' => { -+ 'name' => '_compat_async_event', -+ 'offset' => '248', -+ 'type' => '18745' -+ }, -+ '4' => { -+ 'name' => '_compat_reg_mr', -+ 'offset' => '32', -+ 'type' => '18745' -+ }, -+ '5' => { -+ 'name' => '_compat_rereg_mr', -+ 'offset' => '40', -+ 'type' => '18745' -+ }, -+ '6' => { -+ 'name' => '_compat_dereg_mr', -+ 'offset' => '48', -+ 'type' => '18745' -+ }, -+ '7' => { -+ 'name' => 'alloc_mw', -+ 'offset' => '56', -+ 'type' => '18771' -+ }, -+ '8' => { -+ 'name' => 'bind_mw', -+ 'offset' => '64', -+ 'type' => '18808' -+ }, -+ '9' => { -+ 'name' => 'dealloc_mw', -+ 'offset' => '72', -+ 'type' => '18829' -+ } -+ }, -+ 'Name' => 'struct ibv_context_ops', -+ 'Size' => '256', -+ 'Type' => 'Struct' -+ }, -+ '1829' => { -+ 'Header' => undef, -+ 'Line' => '339', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'start', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'offset' => '16', -+ 'type' => '1016' -+ }, -+ '3' => { -+ 'name' => 'hca_va', -+ 'offset' => '24', -+ 'type' => '1016' -+ }, -+ '4' => { -+ 'name' => 'pd_handle', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'access_flags', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '40', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_reg_mr', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '186' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '18686' => { -+ 'BaseType' => '9639', -+ 'Name' => 'struct ibv_device_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18692' => { -+ 'Name' => 'int(*)(struct ibv_context*, struct ibv_device_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '18686' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18723' => { -+ 'BaseType' => '18729', -+ 'Name' => 'struct _compat_ibv_port_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18729' => { -+ 'Header' => undef, -+ 'Line' => '197', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'state', -+ 'offset' => '0', -+ 'type' => '56644' -+ }, -+ '1' => { -+ 'name' => 'max_mtu', -+ 'offset' => '4', -+ 'type' => '10189' -+ }, -+ '10' => { -+ 'name' => 'sm_lid', -+ 'offset' => '36', -+ 'type' => '932' -+ }, -+ '11' => { -+ 'name' => 'lmc', -+ 'offset' => '38', -+ 'type' => '920' -+ }, -+ '12' => { -+ 'name' => 'max_vl_num', -+ 'offset' => '39', -+ 'type' => '920' -+ }, -+ '13' => { -+ 'name' => 'sm_sl', -+ 'offset' => '40', -+ 'type' => '920' -+ }, -+ '14' => { -+ 'name' => 'subnet_timeout', -+ 'offset' => '41', -+ 'type' => '920' -+ }, -+ '15' => { -+ 'name' => 'init_type_reply', -+ 'offset' => '42', -+ 'type' => '920' -+ }, -+ '16' => { -+ 'name' => 'active_width', -+ 'offset' => '43', -+ 'type' => '920' -+ }, -+ '17' => { -+ 'name' => 'active_speed', -+ 'offset' => '44', -+ 'type' => '920' -+ }, -+ '18' => { -+ 'name' => 'phys_state', -+ 'offset' => '45', -+ 'type' => '920' -+ }, -+ '19' => { -+ 'name' => 'link_layer', -+ 'offset' => '46', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'active_mtu', -+ 'offset' => '8', -+ 'type' => '10189' -+ }, -+ '20' => { -+ 'name' => 'flags', -+ 'offset' => '47', -+ 'type' => '920' -+ }, -+ '3' => { -+ 'name' => 'gid_tbl_len', -+ 'offset' => '12', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'port_cap_flags', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'max_msg_sz', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '6' => { -+ 'name' => 'bad_pkey_cntr', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'qkey_viol_cntr', -+ 'offset' => '28', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'pkey_tbl_len', -+ 'offset' => '32', -+ 'type' => '932' -+ }, -+ '9' => { -+ 'name' => 'lid', -+ 'offset' => '34', -+ 'type' => '932' -+ } -+ }, -+ 'Name' => 'struct _compat_ibv_port_attr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '18734' => { -+ 'Name' => 'int(*)(struct ibv_context*, uint8_t, struct _compat_ibv_port_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '920' -+ }, -+ '2' => { -+ 'type' => '18723' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18745' => { -+ 'Name' => 'void*(*)()', -+ 'Return' => '71', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18771' => { -+ 'Name' => 'struct ibv_mw*(*)(struct ibv_pd*, enum ibv_mw_type)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '12050' -+ } -+ }, -+ 'Return' => '14508', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18802' => { -+ 'BaseType' => '14831', -+ 'Name' => 'struct ibv_mw_bind*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18808' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_mw*, struct ibv_mw_bind*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '14508' -+ }, -+ '2' => { -+ 'type' => '18802' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18829' => { -+ 'Name' => 'int(*)(struct ibv_mw*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '14508' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18860' => { -+ 'BaseType' => '11376', -+ 'Name' => 'struct ibv_wc*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18866' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int, struct ibv_wc*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'type' => '130' -+ }, -+ '2' => { -+ 'type' => '18860' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18892' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18923' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'type' => '14825' -+ }, -+ '2' => { -+ 'type' => '14913' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18954' => { -+ 'BaseType' => '14742', -+ 'Name' => 'struct ibv_send_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18960' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_send_wr*, struct ibv_send_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '14742' -+ }, -+ '2' => { -+ 'type' => '18954' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18991' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '14825' -+ }, -+ '2' => { -+ 'type' => '14913' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18997' => { -+ 'BaseType' => '17893', -+ 'Name' => 'struct ibv_flow*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19003' => { -+ 'BaseType' => '15868', -+ 'Name' => 'struct ibv_modify_cq_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19009' => { -+ 'BaseType' => '12772', -+ 'Name' => 'struct ibv_rwq_ind_table_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19015' => { -+ 'BaseType' => '12590', -+ 'Name' => 'struct ibv_wq_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19021' => { -+ 'BaseType' => '17780', -+ 'Name' => 'struct ibv_flow_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19027' => { -+ 'BaseType' => '13151', -+ 'Name' => 'struct ibv_qp_open_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19033' => { -+ 'BaseType' => '11915', -+ 'Name' => 'struct ibv_xrcd_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19039' => { -+ 'Name' => '_Bool', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '19046' => { -+ 'Header' => undef, -+ 'Line' => '51', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'ex_hdr', -+ 'offset' => '8', -+ 'type' => '1476' -+ } -+ }, -+ 'Name' => 'struct ex_hdr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '19088' => { -+ 'Header' => undef, -+ 'Line' => '175', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'pd_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'mw_type', -+ 'offset' => '12', -+ 'type' => '980' -+ }, -+ '3' => { -+ 'name' => 'reserved', -+ 'offset' => '13', -+ 'type' => '2377' -+ }, -+ '4' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '19182' => { -+ 'Header' => undef, -+ 'Line' => '175', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '19088' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '2289' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '19212' => { -+ 'Header' => undef, -+ 'Line' => '175', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '19182' -+ } -+ }, -+ 'Name' => 'struct ibv_alloc_mw', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '19273' => { -+ 'Header' => undef, -+ 'Line' => '176', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '19328' => { -+ 'Header' => undef, -+ 'Line' => '176', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '19273' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '1560' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '19358' => { -+ 'Header' => undef, -+ 'Line' => '176', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '19328' -+ } -+ }, -+ 'Name' => 'struct ibv_alloc_pd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '1964' => { -+ 'Header' => undef, -+ 'Line' => '349', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mr_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'lkey', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '12', -+ 'type' => '1665' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_reg_mr_resp', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '19958' => { -+ 'Header' => undef, -+ 'Line' => '194', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dest', -+ 'offset' => '0', -+ 'type' => '3660' -+ }, -+ '1' => { -+ 'name' => 'alt_dest', -+ 'offset' => '32', -+ 'type' => '3660' -+ }, -+ '10' => { -+ 'name' => 'alt_pkey_index', -+ 'offset' => '94', -+ 'type' => '992' -+ }, -+ '11' => { -+ 'name' => 'qp_state', -+ 'offset' => '96', -+ 'type' => '980' -+ }, -+ '12' => { -+ 'name' => 'cur_qp_state', -+ 'offset' => '97', -+ 'type' => '980' -+ }, -+ '13' => { -+ 'name' => 'path_mtu', -+ 'offset' => '98', -+ 'type' => '980' -+ }, -+ '14' => { -+ 'name' => 'path_mig_state', -+ 'offset' => '99', -+ 'type' => '980' -+ }, -+ '15' => { -+ 'name' => 'en_sqd_async_notify', -+ 'offset' => '100', -+ 'type' => '980' -+ }, -+ '16' => { -+ 'name' => 'max_rd_atomic', -+ 'offset' => '101', -+ 'type' => '980' -+ }, -+ '17' => { -+ 'name' => 'max_dest_rd_atomic', -+ 'offset' => '102', -+ 'type' => '980' -+ }, -+ '18' => { -+ 'name' => 'min_rnr_timer', -+ 'offset' => '103', -+ 'type' => '980' -+ }, -+ '19' => { -+ 'name' => 'port_num', -+ 'offset' => '104', -+ 'type' => '980' -+ }, -+ '2' => { -+ 'name' => 'qp_handle', -+ 'offset' => '64', -+ 'type' => '1004' -+ }, -+ '20' => { -+ 'name' => 'timeout', -+ 'offset' => '105', -+ 'type' => '980' -+ }, -+ '21' => { -+ 'name' => 'retry_cnt', -+ 'offset' => '106', -+ 'type' => '980' -+ }, -+ '22' => { -+ 'name' => 'rnr_retry', -+ 'offset' => '107', -+ 'type' => '980' -+ }, -+ '23' => { -+ 'name' => 'alt_port_num', -+ 'offset' => '108', -+ 'type' => '980' -+ }, -+ '24' => { -+ 'name' => 'alt_timeout', -+ 'offset' => '109', -+ 'type' => '980' -+ }, -+ '25' => { -+ 'name' => 'reserved', -+ 'offset' => '110', -+ 'type' => '4794' -+ }, -+ '26' => { -+ 'name' => 'driver_data', -+ 'offset' => '112', -+ 'type' => '1606' -+ }, -+ '3' => { -+ 'name' => 'attr_mask', -+ 'offset' => '68', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'qkey', -+ 'offset' => '72', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'rq_psn', -+ 'offset' => '76', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'sq_psn', -+ 'offset' => '80', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'dest_qp_num', -+ 'offset' => '84', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'qp_access_flags', -+ 'offset' => '88', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'pkey_index', -+ 'offset' => '92', -+ 'type' => '992' -+ } -+ }, -+ 'Size' => '112', -+ 'Type' => 'Struct' -+ }, -+ '20337' => { -+ 'Header' => undef, -+ 'Line' => '194', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '19958' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '4399' -+ } -+ }, -+ 'Size' => '112', -+ 'Type' => 'Union' -+ }, -+ '20367' => { -+ 'Header' => undef, -+ 'Line' => '194', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '20337' -+ } -+ }, -+ 'Name' => 'struct ibv_modify_qp', -+ 'Size' => '120', -+ 'Type' => 'Struct' -+ }, -+ '20415' => { -+ 'Header' => undef, -+ 'Line' => '195', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'attr_mask', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'max_wr', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'srq_limit', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20508' => { -+ 'Header' => undef, -+ 'Line' => '195', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '20415' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '8639' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '2051' => { -+ 'Header' => undef, -+ 'Line' => '356', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'mr_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'start', -+ 'offset' => '16', -+ 'type' => '1016' -+ }, -+ '4' => { -+ 'name' => 'length', -+ 'offset' => '24', -+ 'type' => '1016' -+ }, -+ '5' => { -+ 'name' => 'hca_va', -+ 'offset' => '32', -+ 'type' => '1016' -+ }, -+ '6' => { -+ 'name' => 'pd_handle', -+ 'offset' => '40', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'access_flags', -+ 'offset' => '44', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'driver_data', -+ 'offset' => '48', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_rereg_mr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '205254' => { -+ 'Header' => undef, -+ 'Line' => '572', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '10' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '48', -+ 'type' => '1004' -+ }, -+ '11' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '52', -+ 'type' => '980' -+ }, -+ '12' => { -+ 'name' => 'qp_type', -+ 'offset' => '53', -+ 'type' => '980' -+ }, -+ '13' => { -+ 'name' => 'is_srq', -+ 'offset' => '54', -+ 'type' => '980' -+ }, -+ '14' => { -+ 'name' => 'reserved', -+ 'offset' => '55', -+ 'type' => '980' -+ }, -+ '15' => { -+ 'name' => 'driver_data', -+ 'offset' => '56', -+ 'type' => '1606' -+ }, -+ '2' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'send_cq_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'recv_cq_handle', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'srq_handle', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '40', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '44', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_qp', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '20538' => { -+ 'Header' => undef, -+ 'Line' => '195', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '20508' -+ } -+ }, -+ 'Name' => 'struct ibv_modify_srq', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '205539' => { -+ 'Header' => undef, -+ 'Line' => '599', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'user_handle', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'pd_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '10' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '44', -+ 'type' => '980' -+ }, -+ '11' => { -+ 'name' => 'qp_type', -+ 'offset' => '45', -+ 'type' => '980' -+ }, -+ '12' => { -+ 'name' => 'is_srq', -+ 'offset' => '46', -+ 'type' => '980' -+ }, -+ '13' => { -+ 'name' => 'reserved', -+ 'offset' => '47', -+ 'type' => '980' -+ }, -+ '14' => { -+ 'name' => 'comp_mask', -+ 'offset' => '48', -+ 'type' => '1004' -+ }, -+ '15' => { -+ 'name' => 'create_flags', -+ 'offset' => '52', -+ 'type' => '1004' -+ }, -+ '16' => { -+ 'name' => 'rwq_ind_tbl_handle', -+ 'offset' => '56', -+ 'type' => '1004' -+ }, -+ '17' => { -+ 'name' => 'source_qpn', -+ 'offset' => '60', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'send_cq_handle', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'recv_cq_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'srq_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '40', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_create_qp', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '20586' => { -+ 'Header' => undef, -+ 'Line' => '196', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'qpn', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'qp_type', -+ 'offset' => '24', -+ 'type' => '980' -+ }, -+ '5' => { -+ 'name' => 'reserved', -+ 'offset' => '25', -+ 'type' => '1544' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '32', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '205965' => { -+ 'Header' => undef, -+ 'Line' => '643', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'base', -+ 'offset' => '0', -+ 'type' => '3503' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'response_length', -+ 'offset' => '36', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_create_qp_resp', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '20707' => { -+ 'Header' => undef, -+ 'Line' => '196', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '20586' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '3370' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '20737' => { -+ 'Header' => undef, -+ 'Line' => '196', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '20707' -+ } -+ }, -+ 'Name' => 'struct ibv_open_qp', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '20797' => { -+ 'Header' => undef, -+ 'Line' => '197', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'oflags', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20877' => { -+ 'Header' => undef, -+ 'Line' => '197', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '20797' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '1681' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '209' => { -+ 'BaseType' => '168', -+ 'Header' => undef, -+ 'Line' => '77', -+ 'Name' => 'ssize_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '20907' => { -+ 'Header' => undef, -+ 'Line' => '197', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '20877' -+ } -+ }, -+ 'Name' => 'struct ibv_open_xrcd', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '21702' => { -+ 'Header' => undef, -+ 'Line' => '204', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'qp_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '21783' => { -+ 'Header' => undef, -+ 'Line' => '204', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '21702' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '3842' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '21813' => { -+ 'Header' => undef, -+ 'Line' => '204', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '21783' -+ } -+ }, -+ 'Name' => 'struct ibv_query_qp', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '21874' => { -+ 'Header' => undef, -+ 'Line' => '205', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'srq_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '21955' => { -+ 'Header' => undef, -+ 'Line' => '205', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '21874' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '8742' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '21985' => { -+ 'Header' => undef, -+ 'Line' => '205', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '21955' -+ } -+ }, -+ 'Name' => 'struct ibv_query_srq', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '220026' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '10' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '48', -+ 'type' => '1004' -+ }, -+ '11' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '52', -+ 'type' => '980' -+ }, -+ '12' => { -+ 'name' => 'qp_type', -+ 'offset' => '53', -+ 'type' => '980' -+ }, -+ '13' => { -+ 'name' => 'is_srq', -+ 'offset' => '54', -+ 'type' => '980' -+ }, -+ '14' => { -+ 'name' => 'reserved', -+ 'offset' => '55', -+ 'type' => '980' -+ }, -+ '15' => { -+ 'name' => 'driver_data', -+ 'offset' => '56', -+ 'type' => '1606' -+ }, -+ '2' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'send_cq_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'recv_cq_handle', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'srq_handle', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '40', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '44', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '220264' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '220026' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '205254' -+ } -+ }, -+ 'Size' => '56', -+ 'Type' => 'Union' -+ }, -+ '220294' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '220264' -+ } -+ }, -+ 'Name' => 'struct ibv_create_qp', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '22045' => { -+ 'Header' => undef, -+ 'Line' => '206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'start', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'offset' => '16', -+ 'type' => '1016' -+ }, -+ '3' => { -+ 'name' => 'hca_va', -+ 'offset' => '24', -+ 'type' => '1016' -+ }, -+ '4' => { -+ 'name' => 'pd_handle', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'access_flags', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '40', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '220508' => { -+ 'Header' => undef, -+ 'Line' => '213', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'user_handle', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'pd_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '10' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '44', -+ 'type' => '980' -+ }, -+ '11' => { -+ 'name' => 'qp_type', -+ 'offset' => '45', -+ 'type' => '980' -+ }, -+ '12' => { -+ 'name' => 'is_srq', -+ 'offset' => '46', -+ 'type' => '980' -+ }, -+ '13' => { -+ 'name' => 'reserved', -+ 'offset' => '47', -+ 'type' => '980' -+ }, -+ '14' => { -+ 'name' => 'comp_mask', -+ 'offset' => '48', -+ 'type' => '1004' -+ }, -+ '15' => { -+ 'name' => 'create_flags', -+ 'offset' => '52', -+ 'type' => '1004' -+ }, -+ '16' => { -+ 'name' => 'rwq_ind_tbl_handle', -+ 'offset' => '56', -+ 'type' => '1004' -+ }, -+ '17' => { -+ 'name' => 'source_qpn', -+ 'offset' => '60', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'send_cq_handle', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'recv_cq_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'srq_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '40', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '220754' => { -+ 'Header' => undef, -+ 'Line' => '213', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '220508' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '205539' -+ } -+ }, -+ 'Size' => '64', -+ 'Type' => 'Union' -+ }, -+ '220784' => { -+ 'Header' => undef, -+ 'Line' => '213', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '19046' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '220754' -+ } -+ }, -+ 'Name' => 'struct ibv_create_qp_ex', -+ 'Size' => '88', -+ 'Type' => 'Struct' -+ }, -+ '221' => { -+ 'Name' => 'long long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '2214' => { -+ 'Header' => undef, -+ 'Line' => '368', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'lkey', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_rereg_mr_resp', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '22168' => { -+ 'Header' => undef, -+ 'Line' => '206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '22045' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '1829' -+ } -+ }, -+ 'Size' => '40', -+ 'Type' => 'Union' -+ }, -+ '22198' => { -+ 'Header' => undef, -+ 'Line' => '206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '22168' -+ } -+ }, -+ 'Name' => 'struct ibv_reg_mr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '22366' => { -+ 'Header' => undef, -+ 'Line' => '208', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'mr_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'start', -+ 'offset' => '16', -+ 'type' => '1016' -+ }, -+ '4' => { -+ 'name' => 'length', -+ 'offset' => '24', -+ 'type' => '1016' -+ }, -+ '5' => { -+ 'name' => 'hca_va', -+ 'offset' => '32', -+ 'type' => '1016' -+ }, -+ '6' => { -+ 'name' => 'pd_handle', -+ 'offset' => '40', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'access_flags', -+ 'offset' => '44', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'driver_data', -+ 'offset' => '48', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '22515' => { -+ 'Header' => undef, -+ 'Line' => '208', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '22366' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '2051' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '22545' => { -+ 'Header' => undef, -+ 'Line' => '208', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '22515' -+ } -+ }, -+ 'Name' => 'struct ibv_rereg_mr', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '22606' => { -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'cq_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'cqe', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '226371' => { -+ 'BaseType' => '220784', -+ 'Name' => 'struct ibv_create_qp_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '226377' => { -+ 'BaseType' => '205965', -+ 'Name' => 'struct ib_uverbs_ex_create_qp_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '22687' => { -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '22606' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '2484' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '226918' => { -+ 'BaseType' => '220294', -+ 'Name' => 'struct ibv_create_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '22717' => { -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '22687' -+ } -+ }, -+ 'Name' => 'struct ibv_resize_cq', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '2289' => { -+ 'Header' => undef, -+ 'Line' => '378', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'pd_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'mw_type', -+ 'offset' => '12', -+ 'type' => '980' -+ }, -+ '3' => { -+ 'name' => 'reserved', -+ 'offset' => '13', -+ 'type' => '2377' -+ }, -+ '4' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_alloc_mw', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '23072' => { -+ 'Header' => undef, -+ 'Line' => '219', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'attr_mask', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'offset' => '8', -+ 'type' => '9146' -+ }, -+ '3' => { -+ 'name' => 'reserved', -+ 'offset' => '12', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '23134' => { -+ 'Header' => undef, -+ 'Line' => '219', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '23072' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '9189' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '23161' => { -+ 'Header' => undef, -+ 'Line' => '219', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '19046' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '23134' -+ } -+ }, -+ 'Name' => 'struct ibv_modify_cq', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '23209' => { -+ 'Header' => undef, -+ 'Line' => '220', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'base', -+ 'offset' => '0', -+ 'type' => '4399' -+ }, -+ '1' => { -+ 'name' => 'rate_limit', -+ 'offset' => '112', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '116', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '120', -+ 'Type' => 'Struct' -+ }, -+ '23260' => { -+ 'Header' => undef, -+ 'Line' => '220', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '23209' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '4826' -+ } -+ }, -+ 'Size' => '120', -+ 'Type' => 'Union' -+ }, -+ '23290' => { -+ 'Header' => undef, -+ 'Line' => '220', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '19046' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '23260' -+ } -+ }, -+ 'Name' => 'struct ibv_modify_qp_ex', -+ 'Size' => '144', -+ 'Type' => 'Struct' -+ }, -+ '23351' => { -+ 'Header' => undef, -+ 'Line' => '221', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'attr_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'wq_handle', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'wq_state', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'curr_wq_state', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'flags', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'flags_mask', -+ 'offset' => '20', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '23439' => { -+ 'Header' => undef, -+ 'Line' => '221', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '23351' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '8903' -+ } -+ }, -+ 'Size' => '24', -+ 'Type' => 'Union' -+ }, -+ '23466' => { -+ 'Header' => undef, -+ 'Line' => '221', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '19046' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '23439' -+ } -+ }, -+ 'Name' => 'struct ibv_modify_wq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '2377' => { -+ 'BaseType' => '980', -+ 'Name' => '__u8[3]', -+ 'Size' => '3', -+ 'Type' => 'Array' -+ }, -+ '2409' => { -+ 'Header' => undef, -+ 'Line' => '386', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mw_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_alloc_mw_resp', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '24156' => { -+ 'Header' => undef, -+ 'Line' => '111', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'xrcd', -+ 'offset' => '0', -+ 'type' => '11971' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '12', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct verbs_xrcd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '24209' => { -+ 'BaseType' => '24156', -+ 'Name' => 'struct verbs_xrcd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24246' => { -+ 'Header' => undef, -+ 'Line' => '141', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MR_TYPE_MR', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_MR_TYPE_NULL_MR', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_MR_TYPE_IMPORTED_MR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_MR_TYPE_DMABUF_MR', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum ibv_mr_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '242624' => { -+ 'Header' => undef, -+ 'Line' => '1157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'max_wr', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'max_sge', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'srq_limit', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '32', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_srq', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '242757' => { -+ 'Header' => undef, -+ 'Line' => '1167', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '10' => { -+ 'name' => 'driver_data', -+ 'offset' => '48', -+ 'type' => '1606' -+ }, -+ '2' => { -+ 'name' => 'srq_type', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'pd_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'max_wr', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'max_sge', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'srq_limit', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'max_num_tags', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'xrcd_handle', -+ 'offset' => '40', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'cq_handle', -+ 'offset' => '44', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_xsrq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '24289' => { -+ 'Header' => undef, -+ 'Line' => '148', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ibv_mr', -+ 'offset' => '0', -+ 'type' => '11716' -+ }, -+ '1' => { -+ 'name' => 'mr_type', -+ 'offset' => '48', -+ 'type' => '24246' -+ }, -+ '2' => { -+ 'name' => 'access', -+ 'offset' => '52', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct verbs_mr', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '242946' => { -+ 'Header' => undef, -+ 'Line' => '1181', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'max_wr', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'max_sge', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'srqn', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1665' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_srq_resp', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '24342' => { -+ 'Header' => undef, -+ 'Line' => '160', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp', -+ 'offset' => '0', -+ 'type' => '10386' -+ }, -+ '1' => { -+ 'name' => 'qp_ex', -+ 'offset' => '0', -+ 'type' => '14925' -+ } -+ }, -+ 'Size' => '344', -+ 'Type' => 'Union' -+ }, -+ '24376' => { -+ 'Header' => undef, -+ 'Line' => '159', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '24342' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '344', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'xrcd', -+ 'offset' => '352', -+ 'type' => '24209' -+ } -+ }, -+ 'Name' => 'struct verbs_qp', -+ 'Size' => '360', -+ 'Type' => 'Struct' -+ }, -+ '24425' => { -+ 'Header' => undef, -+ 'Line' => '176', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_FLOW_ACTION_UNSPECIFIED', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_FLOW_ACTION_ESP', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum ibv_flow_action_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '24456' => { -+ 'Header' => undef, -+ 'Line' => '181', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'action', -+ 'offset' => '0', -+ 'type' => '17395' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'type', -+ 'offset' => '12', -+ 'type' => '24425' -+ } -+ }, -+ 'Name' => 'struct verbs_flow_action', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '24514' => { -+ 'Name' => 'atomic_int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '24521' => { -+ 'Header' => undef, -+ 'Line' => '299', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'counters', -+ 'offset' => '0', -+ 'type' => '17492' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct verbs_counters', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '24569' => { -+ 'BaseType' => '9334', -+ 'Name' => 'union ibv_gid const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24575' => { -+ 'BaseType' => '12251', -+ 'Name' => 'struct ibv_ah_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24581' => { -+ 'BaseType' => '12982', -+ 'Name' => 'struct ibv_qp_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24587' => { -+ 'BaseType' => '24289', -+ 'Name' => 'struct verbs_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24593' => { -+ 'BaseType' => '13520', -+ 'Name' => 'struct ibv_qp_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24599' => { -+ 'BaseType' => '12363', -+ 'Name' => 'struct ibv_srq_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2484' => { -+ 'Header' => undef, -+ 'Line' => '441', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'cq_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'cqe', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_resize_cq', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '24942' => { -+ 'BaseType' => '130', -+ 'Name' => 'int*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '25175' => { -+ 'BaseType' => '23161', -+ 'Name' => 'struct ibv_modify_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '25593' => { -+ 'BaseType' => '9075', -+ 'Name' => 'struct ib_uverbs_ex_create_rwq_ind_table_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '256032' => { -+ 'Header' => undef, -+ 'Line' => '183', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'max_wr', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'max_sge', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'srq_limit', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '32', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '256153' => { -+ 'Header' => undef, -+ 'Line' => '183', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '256032' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '242624' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '256183' => { -+ 'Header' => undef, -+ 'Line' => '183', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '256153' -+ } -+ }, -+ 'Name' => 'struct ibv_create_srq', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '256256' => { -+ 'Header' => undef, -+ 'Line' => '184', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '10' => { -+ 'name' => 'driver_data', -+ 'offset' => '48', -+ 'type' => '1606' -+ }, -+ '2' => { -+ 'name' => 'srq_type', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'pd_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'max_wr', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'max_sge', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'srq_limit', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'max_num_tags', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'xrcd_handle', -+ 'offset' => '40', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'cq_handle', -+ 'offset' => '44', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '256429' => { -+ 'Header' => undef, -+ 'Line' => '184', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '256256' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '242757' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '256459' => { -+ 'Header' => undef, -+ 'Line' => '184', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '256429' -+ } -+ }, -+ 'Name' => 'struct ibv_create_xsrq', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '257016' => { -+ 'Header' => undef, -+ 'Line' => '117', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq', -+ 'offset' => '0', -+ 'type' => '10588' -+ }, -+ '1' => { -+ 'name' => 'srq_type', -+ 'offset' => '128', -+ 'type' => '59353' -+ }, -+ '2' => { -+ 'name' => 'xrcd', -+ 'offset' => '136', -+ 'type' => '24209' -+ }, -+ '3' => { -+ 'name' => 'cq', -+ 'offset' => '144', -+ 'type' => '10380' -+ }, -+ '4' => { -+ 'name' => 'srq_num', -+ 'offset' => '152', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct verbs_srq', -+ 'Size' => '160', -+ 'Type' => 'Struct' -+ }, -+ '2574' => { -+ 'Header' => undef, -+ 'Line' => '448', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cqe', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'reserved', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_resize_cq_resp', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '25850' => { -+ 'BaseType' => '23466', -+ 'Name' => 'struct ibv_modify_wq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '261265' => { -+ 'BaseType' => '257016', -+ 'Name' => 'struct verbs_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '261271' => { -+ 'BaseType' => '256459', -+ 'Name' => 'struct ibv_create_xsrq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '261277' => { -+ 'BaseType' => '242946', -+ 'Name' => 'struct ib_uverbs_create_srq_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '261829' => { -+ 'BaseType' => '256183', -+ 'Name' => 'struct ibv_create_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '268835' => { -+ 'Header' => undef, -+ 'Line' => '1221', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'wq_type', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '3' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'cq_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'max_wr', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'max_sge', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'create_flags', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'reserved', -+ 'offset' => '36', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_create_wq', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '268978' => { -+ 'Header' => undef, -+ 'Line' => '1233', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'response_length', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'wq_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'max_wr', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'max_sge', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'wqn', -+ 'offset' => '20', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_create_wq_resp', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '282156' => { -+ 'Header' => undef, -+ 'Line' => '215', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'wq_type', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '3' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'cq_handle', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'max_wr', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'max_sge', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'create_flags', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'reserved', -+ 'offset' => '36', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '282285' => { -+ 'Header' => undef, -+ 'Line' => '215', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '282156' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '268835' -+ } -+ }, -+ 'Size' => '40', -+ 'Type' => 'Union' -+ }, -+ '282315' => { -+ 'Header' => undef, -+ 'Line' => '215', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '19046' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '282285' -+ } -+ }, -+ 'Name' => 'struct ibv_create_wq', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '28802' => { -+ 'BaseType' => '5945', -+ 'Name' => 'struct ib_uverbs_create_ah_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '289570' => { -+ 'BaseType' => '282315', -+ 'Name' => 'struct ibv_create_wq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '289576' => { -+ 'BaseType' => '268978', -+ 'Name' => 'struct ib_uverbs_ex_create_wq_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30534' => { -+ 'BaseType' => '23290', -+ 'Name' => 'struct ibv_modify_qp_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30540' => { -+ 'BaseType' => '4885', -+ 'Name' => 'struct ib_uverbs_ex_modify_qp_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30767' => { -+ 'BaseType' => '20367', -+ 'Name' => 'struct ibv_modify_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3087' => { -+ 'Header' => undef, -+ 'Line' => '514', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dgid', -+ 'offset' => '0', -+ 'type' => '3186' -+ }, -+ '1' => { -+ 'name' => 'flow_label', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'sgid_index', -+ 'offset' => '20', -+ 'type' => '980' -+ }, -+ '3' => { -+ 'name' => 'hop_limit', -+ 'offset' => '21', -+ 'type' => '980' -+ }, -+ '4' => { -+ 'name' => 'traffic_class', -+ 'offset' => '22', -+ 'type' => '980' -+ }, -+ '5' => { -+ 'name' => 'reserved', -+ 'offset' => '23', -+ 'type' => '980' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_global_route', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '31281' => { -+ 'BaseType' => '21813', -+ 'Name' => 'struct ibv_query_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '313901' => { -+ 'Header' => undef, -+ 'Line' => '44', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'real_pd', -+ 'offset' => '16', -+ 'type' => '12044' -+ } -+ }, -+ 'Name' => 'struct ibv_pd_1_0', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '313954' => { -+ 'Header' => undef, -+ 'Line' => '218', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'device', -+ 'offset' => '0', -+ 'type' => '315859' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'offset' => '8', -+ 'type' => '315232' -+ }, -+ '2' => { -+ 'name' => 'cmd_fd', -+ 'offset' => '224', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'async_fd', -+ 'offset' => '228', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'num_comp_vectors', -+ 'offset' => '232', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'real_context', -+ 'offset' => '240', -+ 'type' => '9633' -+ } -+ }, -+ 'Name' => 'struct ibv_context_1_0', -+ 'Size' => '248', -+ 'Type' => 'Struct' -+ }, -+ '314046' => { -+ 'BaseType' => '313954', -+ 'Name' => 'struct ibv_context_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314052' => { -+ 'Header' => undef, -+ 'Line' => '51', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '314143' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'lkey', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'real_mr', -+ 'offset' => '32', -+ 'type' => '11828' -+ } -+ }, -+ 'Name' => 'struct ibv_mr_1_0', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '314143' => { -+ 'BaseType' => '313901', -+ 'Name' => 'struct ibv_pd_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314149' => { -+ 'Header' => undef, -+ 'Line' => '61', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'srq_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '314143' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '298855' -+ }, -+ '5' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '298929' -+ }, -+ '6' => { -+ 'name' => 'events_completed', -+ 'offset' => '120', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'real_srq', -+ 'offset' => '128', -+ 'type' => '10700' -+ } -+ }, -+ 'Name' => 'struct ibv_srq_1_0', -+ 'Size' => '136', -+ 'Type' => 'Struct' -+ }, -+ '314266' => { -+ 'Header' => undef, -+ 'Line' => '74', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '314502' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '314502' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '314508' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '12897' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '12835' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr_1_0', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '314371' => { -+ 'Header' => undef, -+ 'Line' => '137', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'cq_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'cqe', -+ 'offset' => '20', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'mutex', -+ 'offset' => '24', -+ 'type' => '298855' -+ }, -+ '5' => { -+ 'name' => 'cond', -+ 'offset' => '64', -+ 'type' => '298929' -+ }, -+ '6' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '112', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '116', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'real_cq', -+ 'offset' => '120', -+ 'type' => '10380' -+ } -+ }, -+ 'Name' => 'struct ibv_cq_1_0', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '314502' => { -+ 'BaseType' => '314371', -+ 'Name' => 'struct ibv_cq_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314508' => { -+ 'BaseType' => '314149', -+ 'Name' => 'struct ibv_srq_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314514' => { -+ 'Header' => undef, -+ 'Line' => '93', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '314550' => { -+ 'Header' => undef, -+ 'Line' => '97', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'compare_add', -+ 'offset' => '8', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'swap', -+ 'offset' => '16', -+ 'type' => '956' -+ }, -+ '3' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '314612' => { -+ 'Header' => undef, -+ 'Line' => '103', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ah', -+ 'offset' => '0', -+ 'type' => '314725' -+ }, -+ '1' => { -+ 'name' => 'remote_qpn', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'remote_qkey', -+ 'offset' => '12', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '314660' => { -+ 'Header' => undef, -+ 'Line' => '151', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '314143' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'real_ah', -+ 'offset' => '24', -+ 'type' => '14352' -+ } -+ }, -+ 'Name' => 'struct ibv_ah_1_0', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '314725' => { -+ 'BaseType' => '314660', -+ 'Name' => 'struct ibv_ah_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314731' => { -+ 'Header' => undef, -+ 'Line' => '92', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdma', -+ 'offset' => '0', -+ 'type' => '314514' -+ }, -+ '1' => { -+ 'name' => 'atomic', -+ 'offset' => '0', -+ 'type' => '314550' -+ }, -+ '2' => { -+ 'name' => 'ud', -+ 'offset' => '0', -+ 'type' => '314612' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '314776' => { -+ 'Header' => undef, -+ 'Line' => '84', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '314893' -+ }, -+ '1' => { -+ 'name' => 'wr_id', -+ 'offset' => '8', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '14748' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'opcode', -+ 'offset' => '28', -+ 'type' => '13899' -+ }, -+ '5' => { -+ 'name' => 'send_flags', -+ 'offset' => '32', -+ 'type' => '130' -+ }, -+ '6' => { -+ 'name' => 'imm_data', -+ 'offset' => '36', -+ 'type' => '1040' -+ }, -+ '7' => { -+ 'name' => 'wr', -+ 'offset' => '40', -+ 'type' => '314731' -+ } -+ }, -+ 'Name' => 'struct ibv_send_wr_1_0', -+ 'Size' => '72', -+ 'Type' => 'Struct' -+ }, -+ '314893' => { -+ 'BaseType' => '314776', -+ 'Name' => 'struct ibv_send_wr_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314899' => { -+ 'Header' => undef, -+ 'Line' => '111', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '314965' -+ }, -+ '1' => { -+ 'name' => 'wr_id', -+ 'offset' => '8', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '14748' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_recv_wr_1_0', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '314965' => { -+ 'BaseType' => '314899', -+ 'Name' => 'struct ibv_recv_wr_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314971' => { -+ 'Header' => undef, -+ 'Line' => '118', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '314046' -+ }, -+ '1' => { -+ 'name' => 'qp_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '10' => { -+ 'name' => 'mutex', -+ 'offset' => '64', -+ 'type' => '298855' -+ }, -+ '11' => { -+ 'name' => 'cond', -+ 'offset' => '104', -+ 'type' => '298929' -+ }, -+ '12' => { -+ 'name' => 'events_completed', -+ 'offset' => '152', -+ 'type' => '944' -+ }, -+ '13' => { -+ 'name' => 'real_qp', -+ 'offset' => '160', -+ 'type' => '10582' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '314143' -+ }, -+ '3' => { -+ 'name' => 'send_cq', -+ 'offset' => '24', -+ 'type' => '314502' -+ }, -+ '4' => { -+ 'name' => 'recv_cq', -+ 'offset' => '32', -+ 'type' => '314502' -+ }, -+ '5' => { -+ 'name' => 'srq', -+ 'offset' => '40', -+ 'type' => '314508' -+ }, -+ '6' => { -+ 'name' => 'handle', -+ 'offset' => '48', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'qp_num', -+ 'offset' => '52', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'state', -+ 'offset' => '56', -+ 'type' => '13414' -+ }, -+ '9' => { -+ 'name' => 'qp_type', -+ 'offset' => '60', -+ 'type' => '12835' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_1_0', -+ 'Size' => '168', -+ 'Type' => 'Struct' -+ }, -+ '315166' => { -+ 'Header' => undef, -+ 'Line' => '159', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'obsolete_sysfs_dev', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'obsolete_sysfs_ibdev', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'real_device', -+ 'offset' => '16', -+ 'type' => '18013' -+ }, -+ '3' => { -+ 'name' => '_ops', -+ 'offset' => '24', -+ 'type' => '17950' -+ } -+ }, -+ 'Name' => 'struct ibv_device_1_0', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '315232' => { -+ 'Header' => undef, -+ 'Line' => '166', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'query_device', -+ 'offset' => '0', -+ 'type' => '18692' -+ }, -+ '1' => { -+ 'name' => 'query_port', -+ 'offset' => '8', -+ 'type' => '69884' -+ }, -+ '10' => { -+ 'name' => 'resize_cq', -+ 'offset' => '80', -+ 'type' => '18892' -+ }, -+ '11' => { -+ 'name' => 'destroy_cq', -+ 'offset' => '88', -+ 'type' => '69627' -+ }, -+ '12' => { -+ 'name' => 'create_srq', -+ 'offset' => '96', -+ 'type' => '69537' -+ }, -+ '13' => { -+ 'name' => 'modify_srq', -+ 'offset' => '104', -+ 'type' => '69821' -+ }, -+ '14' => { -+ 'name' => 'query_srq', -+ 'offset' => '112', -+ 'type' => '69977' -+ }, -+ '15' => { -+ 'name' => 'destroy_srq', -+ 'offset' => '120', -+ 'type' => '69669' -+ }, -+ '16' => { -+ 'name' => 'post_srq_recv', -+ 'offset' => '128', -+ 'type' => '315742' -+ }, -+ '17' => { -+ 'name' => 'create_qp', -+ 'offset' => '136', -+ 'type' => '69505' -+ }, -+ '18' => { -+ 'name' => 'query_qp', -+ 'offset' => '144', -+ 'type' => '69920' -+ }, -+ '19' => { -+ 'name' => 'modify_qp', -+ 'offset' => '152', -+ 'type' => '69784' -+ }, -+ '2' => { -+ 'name' => 'alloc_pd', -+ 'offset' => '16', -+ 'type' => '69323' -+ }, -+ '20' => { -+ 'name' => 'destroy_qp', -+ 'offset' => '160', -+ 'type' => '69648' -+ }, -+ '21' => { -+ 'name' => 'post_send', -+ 'offset' => '168', -+ 'type' => '315785' -+ }, -+ '22' => { -+ 'name' => 'post_recv', -+ 'offset' => '176', -+ 'type' => '315816' -+ }, -+ '23' => { -+ 'name' => 'create_ah', -+ 'offset' => '184', -+ 'type' => '69437' -+ }, -+ '24' => { -+ 'name' => 'destroy_ah', -+ 'offset' => '192', -+ 'type' => '69606' -+ }, -+ '25' => { -+ 'name' => 'attach_mcast', -+ 'offset' => '200', -+ 'type' => '315853' -+ }, -+ '26' => { -+ 'name' => 'detach_mcast', -+ 'offset' => '208', -+ 'type' => '315853' -+ }, -+ '3' => { -+ 'name' => 'dealloc_pd', -+ 'offset' => '24', -+ 'type' => '69558' -+ }, -+ '4' => { -+ 'name' => 'reg_mr', -+ 'offset' => '32', -+ 'type' => '315627' -+ }, -+ '5' => { -+ 'name' => 'dereg_mr', -+ 'offset' => '40', -+ 'type' => '315648' -+ }, -+ '6' => { -+ 'name' => 'create_cq', -+ 'offset' => '48', -+ 'type' => '69473' -+ }, -+ '7' => { -+ 'name' => 'poll_cq', -+ 'offset' => '56', -+ 'type' => '315679' -+ }, -+ '8' => { -+ 'name' => 'req_notify_cq', -+ 'offset' => '64', -+ 'type' => '315705' -+ }, -+ '9' => { -+ 'name' => 'cq_event', -+ 'offset' => '72', -+ 'type' => '69405' -+ } -+ }, -+ 'Name' => 'struct ibv_context_ops_1_0', -+ 'Size' => '216', -+ 'Type' => 'Struct' -+ }, -+ '315627' => { -+ 'Name' => 'struct ibv_mr*(*)(struct ibv_pd*, void*, size_t, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '71' -+ }, -+ '2' => { -+ 'type' => '52' -+ }, -+ '3' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '11828', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315648' => { -+ 'Name' => 'int(*)(struct ibv_mr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '11828' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315679' => { -+ 'Name' => 'int(*)(struct ibv_cq_1_0*, int, struct ibv_wc*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '314502' -+ }, -+ '1' => { -+ 'type' => '130' -+ }, -+ '2' => { -+ 'type' => '18860' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315705' => { -+ 'Name' => 'int(*)(struct ibv_cq_1_0*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '314502' -+ }, -+ '1' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315736' => { -+ 'BaseType' => '314965', -+ 'Name' => 'struct ibv_recv_wr_1_0**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315742' => { -+ 'Name' => 'int(*)(struct ibv_srq_1_0*, struct ibv_recv_wr_1_0*, struct ibv_recv_wr_1_0**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '314508' -+ }, -+ '1' => { -+ 'type' => '314965' -+ }, -+ '2' => { -+ 'type' => '315736' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315773' => { -+ 'BaseType' => '314971', -+ 'Name' => 'struct ibv_qp_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315779' => { -+ 'BaseType' => '314893', -+ 'Name' => 'struct ibv_send_wr_1_0**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315785' => { -+ 'Name' => 'int(*)(struct ibv_qp_1_0*, struct ibv_send_wr_1_0*, struct ibv_send_wr_1_0**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '315773' -+ }, -+ '1' => { -+ 'type' => '314893' -+ }, -+ '2' => { -+ 'type' => '315779' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315816' => { -+ 'Name' => 'int(*)(struct ibv_qp_1_0*, struct ibv_recv_wr_1_0*, struct ibv_recv_wr_1_0**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '315773' -+ }, -+ '1' => { -+ 'type' => '314965' -+ }, -+ '2' => { -+ 'type' => '315736' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315853' => { -+ 'Name' => 'int(*)(struct ibv_qp*, union ibv_gid*, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '101173' -+ }, -+ '2' => { -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '315859' => { -+ 'BaseType' => '315166', -+ 'Name' => 'struct ibv_device_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315865' => { -+ 'BaseType' => '315877', -+ 'Header' => undef, -+ 'Line' => '228', -+ 'Name' => 'ibv_driver_init_func_1_1', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '315877' => { -+ 'Name' => 'struct ibv_device*(*)(char const*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '76632' -+ }, -+ '1' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '18013', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316311' => { -+ 'BaseType' => '10380', -+ 'Name' => 'struct ibv_cq**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '316605' => { -+ 'BaseType' => '1028', -+ 'Name' => '__be16*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '31688' => { -+ 'BaseType' => '24376', -+ 'Name' => 'struct verbs_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '316891' => { -+ 'BaseType' => '18013', -+ 'Name' => 'struct ibv_device**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '31694' => { -+ 'BaseType' => '20737', -+ 'Name' => 'struct ibv_open_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '31700' => { -+ 'BaseType' => '3503', -+ 'Name' => 'struct ib_uverbs_create_qp_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '318029' => { -+ 'BaseType' => '314266', -+ 'Name' => 'struct ibv_qp_init_attr_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3186' => { -+ 'BaseType' => '980', -+ 'Name' => '__u8[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '319057' => { -+ 'BaseType' => '314502', -+ 'Name' => 'struct ibv_cq_1_0**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '319642' => { -+ 'BaseType' => '314052', -+ 'Name' => 'struct ibv_mr_1_0*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '31966' => { -+ 'BaseType' => '21985', -+ 'Name' => 'struct ibv_query_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3202' => { -+ 'Header' => undef, -+ 'Line' => '523', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'grh', -+ 'offset' => '0', -+ 'type' => '3087' -+ }, -+ '1' => { -+ 'name' => 'dlid', -+ 'offset' => '24', -+ 'type' => '992' -+ }, -+ '2' => { -+ 'name' => 'sl', -+ 'offset' => '26', -+ 'type' => '980' -+ }, -+ '3' => { -+ 'name' => 'src_path_bits', -+ 'offset' => '27', -+ 'type' => '980' -+ }, -+ '4' => { -+ 'name' => 'static_rate', -+ 'offset' => '28', -+ 'type' => '980' -+ }, -+ '5' => { -+ 'name' => 'is_global', -+ 'offset' => '29', -+ 'type' => '980' -+ }, -+ '6' => { -+ 'name' => 'port_num', -+ 'offset' => '30', -+ 'type' => '980' -+ }, -+ '7' => { -+ 'name' => 'reserved', -+ 'offset' => '31', -+ 'type' => '980' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ah_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '32182' => { -+ 'BaseType' => '20538', -+ 'Name' => 'struct ibv_modify_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '322803' => { -+ 'BaseType' => '315859', -+ 'Name' => 'struct ibv_device_1_0**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '32795' => { -+ 'BaseType' => '22717', -+ 'Name' => 'struct ibv_resize_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '32801' => { -+ 'BaseType' => '2574', -+ 'Name' => 'struct ib_uverbs_resize_cq_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3328' => { -+ 'BaseType' => '980', -+ 'Name' => '__u8[5]', -+ 'Size' => '5', -+ 'Type' => 'Array' -+ }, -+ '33672' => { -+ 'BaseType' => '19212', -+ 'Name' => 'struct ibv_alloc_mw*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '33678' => { -+ 'BaseType' => '2409', -+ 'Name' => 'struct ib_uverbs_alloc_mw_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3370' => { -+ 'Header' => undef, -+ 'Line' => '620', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'pd_handle', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'qpn', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'qp_type', -+ 'offset' => '24', -+ 'type' => '980' -+ }, -+ '5' => { -+ 'name' => 'reserved', -+ 'offset' => '25', -+ 'type' => '1544' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '32', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_open_qp', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '34030' => { -+ 'BaseType' => '22545', -+ 'Name' => 'struct ibv_rereg_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34036' => { -+ 'BaseType' => '2214', -+ 'Name' => 'struct ib_uverbs_rereg_mr_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '341396' => { -+ 'BaseType' => '68184', -+ 'Name' => 'struct verbs_context_ops const', -+ 'Size' => '608', -+ 'Type' => 'Const' -+ }, -+ '342795' => { -+ 'BaseType' => '341396', -+ 'Name' => 'struct verbs_context_ops const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34390' => { -+ 'BaseType' => '22198', -+ 'Name' => 'struct ibv_reg_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34396' => { -+ 'BaseType' => '1964', -+ 'Name' => 'struct ib_uverbs_reg_mr_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34711' => { -+ 'BaseType' => '20907', -+ 'Name' => 'struct ibv_open_xrcd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34717' => { -+ 'BaseType' => '1770', -+ 'Name' => 'struct ib_uverbs_open_xrcd_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34999' => { -+ 'BaseType' => '19358', -+ 'Name' => 'struct ibv_alloc_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '35005' => { -+ 'BaseType' => '1622', -+ 'Name' => 'struct ib_uverbs_alloc_pd_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3503' => { -+ 'Header' => undef, -+ 'Line' => '631', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'qpn', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'reserved', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'driver_data', -+ 'offset' => '32', -+ 'type' => '1665' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_qp_resp', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '36004' => { -+ 'BaseType' => '221', -+ 'Header' => undef, -+ 'Line' => '30', -+ 'Name' => '__s64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '36093' => { -+ 'Header' => undef, -+ 'Line' => '59', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'elem_id', -+ 'offset' => '0', -+ 'type' => '980' -+ }, -+ '1' => { -+ 'name' => 'reserved', -+ 'offset' => '1', -+ 'type' => '980' -+ } -+ }, -+ 'Size' => '2', -+ 'Type' => 'Struct' -+ }, -+ '36129' => { -+ 'Header' => undef, -+ 'Line' => '58', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'enum_data', -+ 'offset' => '0', -+ 'type' => '36093' -+ }, -+ '1' => { -+ 'name' => 'reserved', -+ 'offset' => '0', -+ 'type' => '992' -+ } -+ }, -+ 'Size' => '2', -+ 'Type' => 'Union' -+ }, -+ '36163' => { -+ 'Header' => undef, -+ 'Line' => '65', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'data', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'data_s64', -+ 'offset' => '0', -+ 'type' => '36004' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '36199' => { -+ 'Header' => undef, -+ 'Line' => '54', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'attr_id', -+ 'offset' => '0', -+ 'type' => '992' -+ }, -+ '1' => { -+ 'name' => 'len', -+ 'offset' => '2', -+ 'type' => '992' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '4', -+ 'type' => '992' -+ }, -+ '3' => { -+ 'name' => 'attr_data', -+ 'offset' => '6', -+ 'type' => '36129' -+ }, -+ '4' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '36163' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '36273' => { -+ 'Header' => undef, -+ 'Line' => '76', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'length', -+ 'offset' => '0', -+ 'type' => '992' -+ }, -+ '1' => { -+ 'name' => 'object_id', -+ 'offset' => '2', -+ 'type' => '992' -+ }, -+ '2' => { -+ 'name' => 'method_id', -+ 'offset' => '4', -+ 'type' => '992' -+ }, -+ '3' => { -+ 'name' => 'num_attrs', -+ 'offset' => '6', -+ 'type' => '992' -+ }, -+ '4' => { -+ 'name' => 'reserved1', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '5' => { -+ 'name' => 'driver_id', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'reserved2', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'attrs', -+ 'offset' => '24', -+ 'type' => '36394' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ioctl_hdr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '36394' => { -+ 'BaseType' => '36199', -+ 'Name' => 'struct ib_uverbs_attr[]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '3660' => { -+ 'Header' => undef, -+ 'Line' => '653', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dgid', -+ 'offset' => '0', -+ 'type' => '3186' -+ }, -+ '1' => { -+ 'name' => 'flow_label', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '10' => { -+ 'name' => 'is_global', -+ 'offset' => '30', -+ 'type' => '980' -+ }, -+ '11' => { -+ 'name' => 'port_num', -+ 'offset' => '31', -+ 'type' => '980' -+ }, -+ '2' => { -+ 'name' => 'dlid', -+ 'offset' => '20', -+ 'type' => '992' -+ }, -+ '3' => { -+ 'name' => 'reserved', -+ 'offset' => '22', -+ 'type' => '992' -+ }, -+ '4' => { -+ 'name' => 'sgid_index', -+ 'offset' => '24', -+ 'type' => '980' -+ }, -+ '5' => { -+ 'name' => 'hop_limit', -+ 'offset' => '25', -+ 'type' => '980' -+ }, -+ '6' => { -+ 'name' => 'traffic_class', -+ 'offset' => '26', -+ 'type' => '980' -+ }, -+ '7' => { -+ 'name' => 'sl', -+ 'offset' => '27', -+ 'type' => '980' -+ }, -+ '8' => { -+ 'name' => 'src_path_bits', -+ 'offset' => '28', -+ 'type' => '980' -+ }, -+ '9' => { -+ 'name' => 'static_rate', -+ 'offset' => '29', -+ 'type' => '980' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_qp_dest', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '3842' => { -+ 'Header' => undef, -+ 'Line' => '668', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'qp_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'attr_mask', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_query_qp', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '414114' => { -+ 'Header' => undef, -+ 'Line' => '534', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_attr_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'qp_state', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '10' => { -+ 'name' => 'ah_attr', -+ 'offset' => '40', -+ 'type' => '3202' -+ }, -+ '11' => { -+ 'name' => 'alt_ah_attr', -+ 'offset' => '72', -+ 'type' => '3202' -+ }, -+ '12' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '104', -+ 'type' => '1004' -+ }, -+ '13' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '108', -+ 'type' => '1004' -+ }, -+ '14' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '112', -+ 'type' => '1004' -+ }, -+ '15' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '116', -+ 'type' => '1004' -+ }, -+ '16' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '120', -+ 'type' => '1004' -+ }, -+ '17' => { -+ 'name' => 'pkey_index', -+ 'offset' => '124', -+ 'type' => '992' -+ }, -+ '18' => { -+ 'name' => 'alt_pkey_index', -+ 'offset' => '126', -+ 'type' => '992' -+ }, -+ '19' => { -+ 'name' => 'en_sqd_async_notify', -+ 'offset' => '128', -+ 'type' => '980' -+ }, -+ '2' => { -+ 'name' => 'cur_qp_state', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '20' => { -+ 'name' => 'sq_draining', -+ 'offset' => '129', -+ 'type' => '980' -+ }, -+ '21' => { -+ 'name' => 'max_rd_atomic', -+ 'offset' => '130', -+ 'type' => '980' -+ }, -+ '22' => { -+ 'name' => 'max_dest_rd_atomic', -+ 'offset' => '131', -+ 'type' => '980' -+ }, -+ '23' => { -+ 'name' => 'min_rnr_timer', -+ 'offset' => '132', -+ 'type' => '980' -+ }, -+ '24' => { -+ 'name' => 'port_num', -+ 'offset' => '133', -+ 'type' => '980' -+ }, -+ '25' => { -+ 'name' => 'timeout', -+ 'offset' => '134', -+ 'type' => '980' -+ }, -+ '26' => { -+ 'name' => 'retry_cnt', -+ 'offset' => '135', -+ 'type' => '980' -+ }, -+ '27' => { -+ 'name' => 'rnr_retry', -+ 'offset' => '136', -+ 'type' => '980' -+ }, -+ '28' => { -+ 'name' => 'alt_port_num', -+ 'offset' => '137', -+ 'type' => '980' -+ }, -+ '29' => { -+ 'name' => 'alt_timeout', -+ 'offset' => '138', -+ 'type' => '980' -+ }, -+ '3' => { -+ 'name' => 'path_mtu', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '30' => { -+ 'name' => 'reserved', -+ 'offset' => '139', -+ 'type' => '3328' -+ }, -+ '4' => { -+ 'name' => 'path_mig_state', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'qkey', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'rq_psn', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'sq_psn', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'dest_qp_num', -+ 'offset' => '32', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'qp_access_flags', -+ 'offset' => '36', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_qp_attr', -+ 'Size' => '144', -+ 'Type' => 'Struct' -+ }, -+ '415498' => { -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dgid', -+ 'offset' => '0', -+ 'type' => '9296' -+ }, -+ '1' => { -+ 'name' => 'sgid', -+ 'offset' => '16', -+ 'type' => '9296' -+ }, -+ '10' => { -+ 'name' => 'pkey', -+ 'offset' => '54', -+ 'type' => '1028' -+ }, -+ '11' => { -+ 'name' => 'sl', -+ 'offset' => '56', -+ 'type' => '920' -+ }, -+ '12' => { -+ 'name' => 'mtu_selector', -+ 'offset' => '57', -+ 'type' => '920' -+ }, -+ '13' => { -+ 'name' => 'mtu', -+ 'offset' => '58', -+ 'type' => '920' -+ }, -+ '14' => { -+ 'name' => 'rate_selector', -+ 'offset' => '59', -+ 'type' => '920' -+ }, -+ '15' => { -+ 'name' => 'rate', -+ 'offset' => '60', -+ 'type' => '920' -+ }, -+ '16' => { -+ 'name' => 'packet_life_time_selector', -+ 'offset' => '61', -+ 'type' => '920' -+ }, -+ '17' => { -+ 'name' => 'packet_life_time', -+ 'offset' => '62', -+ 'type' => '920' -+ }, -+ '18' => { -+ 'name' => 'preference', -+ 'offset' => '63', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'dlid', -+ 'offset' => '32', -+ 'type' => '1028' -+ }, -+ '3' => { -+ 'name' => 'slid', -+ 'offset' => '34', -+ 'type' => '1028' -+ }, -+ '4' => { -+ 'name' => 'raw_traffic', -+ 'offset' => '36', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'flow_label', -+ 'offset' => '40', -+ 'type' => '1040' -+ }, -+ '6' => { -+ 'name' => 'hop_limit', -+ 'offset' => '44', -+ 'type' => '920' -+ }, -+ '7' => { -+ 'name' => 'traffic_class', -+ 'offset' => '45', -+ 'type' => '920' -+ }, -+ '8' => { -+ 'name' => 'reversible', -+ 'offset' => '48', -+ 'type' => '130' -+ }, -+ '9' => { -+ 'name' => 'numb_path', -+ 'offset' => '52', -+ 'type' => '920' -+ } -+ }, -+ 'Name' => 'struct ibv_sa_path_rec', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '415758' => { -+ 'Header' => undef, -+ 'Line' => '55', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dgid', -+ 'offset' => '0', -+ 'type' => '3186' -+ }, -+ '1' => { -+ 'name' => 'sgid', -+ 'offset' => '16', -+ 'type' => '3186' -+ }, -+ '10' => { -+ 'name' => 'traffic_class', -+ 'offset' => '55', -+ 'type' => '980' -+ }, -+ '11' => { -+ 'name' => 'numb_path', -+ 'offset' => '56', -+ 'type' => '980' -+ }, -+ '12' => { -+ 'name' => 'sl', -+ 'offset' => '57', -+ 'type' => '980' -+ }, -+ '13' => { -+ 'name' => 'mtu_selector', -+ 'offset' => '58', -+ 'type' => '980' -+ }, -+ '14' => { -+ 'name' => 'rate_selector', -+ 'offset' => '59', -+ 'type' => '980' -+ }, -+ '15' => { -+ 'name' => 'rate', -+ 'offset' => '60', -+ 'type' => '980' -+ }, -+ '16' => { -+ 'name' => 'packet_life_time_selector', -+ 'offset' => '61', -+ 'type' => '980' -+ }, -+ '17' => { -+ 'name' => 'packet_life_time', -+ 'offset' => '62', -+ 'type' => '980' -+ }, -+ '18' => { -+ 'name' => 'preference', -+ 'offset' => '63', -+ 'type' => '980' -+ }, -+ '2' => { -+ 'name' => 'dlid', -+ 'offset' => '32', -+ 'type' => '1028' -+ }, -+ '3' => { -+ 'name' => 'slid', -+ 'offset' => '34', -+ 'type' => '1028' -+ }, -+ '4' => { -+ 'name' => 'raw_traffic', -+ 'offset' => '36', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'flow_label', -+ 'offset' => '40', -+ 'type' => '1040' -+ }, -+ '6' => { -+ 'name' => 'reversible', -+ 'offset' => '44', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'mtu', -+ 'offset' => '48', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'pkey', -+ 'offset' => '52', -+ 'type' => '1028' -+ }, -+ '9' => { -+ 'name' => 'hop_limit', -+ 'offset' => '54', -+ 'type' => '980' -+ } -+ }, -+ 'Name' => 'struct ib_user_path_rec', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '416227' => { -+ 'BaseType' => '415758', -+ 'Name' => 'struct ib_user_path_rec*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '416233' => { -+ 'BaseType' => '415498', -+ 'Name' => 'struct ibv_sa_path_rec*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '416583' => { -+ 'BaseType' => '414114', -+ 'Name' => 'struct ib_uverbs_qp_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '41671' => { -+ 'Header' => undef, -+ 'Line' => '85', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '41839' -+ }, -+ '1' => { -+ 'name' => 'next_attr', -+ 'offset' => '8', -+ 'type' => '41845' -+ }, -+ '10' => { -+ 'name' => 'hdr', -+ 'offset' => '32', -+ 'type' => '36273' -+ }, -+ '2' => { -+ 'name' => 'last_attr', -+ 'offset' => '16', -+ 'type' => '41845' -+ }, -+ '3' => { -+ 'name' => 'uhw_in_idx', -+ 'offset' => '24', -+ 'type' => '920' -+ }, -+ '4' => { -+ 'name' => 'uhw_out_idx', -+ 'offset' => '25', -+ 'type' => '920' -+ }, -+ '5' => { -+ 'name' => 'uhw_in_headroom_dwords', -+ 'offset' => '26', -+ 'type' => '920' -+ }, -+ '6' => { -+ 'name' => 'uhw_out_headroom_dwords', -+ 'offset' => '27', -+ 'type' => '920' -+ }, -+ '7' => { -+ 'bitfield' => '1', -+ 'name' => 'buffer_error', -+ 'offset' => '28', -+ 'type' => '920' -+ }, -+ '8' => { -+ 'bitfield' => '1', -+ 'name' => 'fallback_require_ex', -+ 'offset' => '28', -+ 'type' => '920' -+ }, -+ '9' => { -+ 'bitfield' => '1', -+ 'name' => 'fallback_ioctl_only', -+ 'offset' => '28', -+ 'type' => '920' -+ } -+ }, -+ 'Name' => 'struct ibv_command_buffer', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '416727' => { -+ 'BaseType' => '3202', -+ 'Name' => 'struct ib_uverbs_ah_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '41839' => { -+ 'BaseType' => '41671', -+ 'Name' => 'struct ibv_command_buffer*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '41845' => { -+ 'BaseType' => '36199', -+ 'Name' => 'struct ib_uverbs_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '419513' => { -+ 'Header' => undef, -+ 'Line' => '142', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_FORK_DISABLED', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_FORK_ENABLED', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_FORK_UNNEEDED', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_fork_status', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '4399' => { -+ 'Header' => undef, -+ 'Line' => '709', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dest', -+ 'offset' => '0', -+ 'type' => '3660' -+ }, -+ '1' => { -+ 'name' => 'alt_dest', -+ 'offset' => '32', -+ 'type' => '3660' -+ }, -+ '10' => { -+ 'name' => 'alt_pkey_index', -+ 'offset' => '94', -+ 'type' => '992' -+ }, -+ '11' => { -+ 'name' => 'qp_state', -+ 'offset' => '96', -+ 'type' => '980' -+ }, -+ '12' => { -+ 'name' => 'cur_qp_state', -+ 'offset' => '97', -+ 'type' => '980' -+ }, -+ '13' => { -+ 'name' => 'path_mtu', -+ 'offset' => '98', -+ 'type' => '980' -+ }, -+ '14' => { -+ 'name' => 'path_mig_state', -+ 'offset' => '99', -+ 'type' => '980' -+ }, -+ '15' => { -+ 'name' => 'en_sqd_async_notify', -+ 'offset' => '100', -+ 'type' => '980' -+ }, -+ '16' => { -+ 'name' => 'max_rd_atomic', -+ 'offset' => '101', -+ 'type' => '980' -+ }, -+ '17' => { -+ 'name' => 'max_dest_rd_atomic', -+ 'offset' => '102', -+ 'type' => '980' -+ }, -+ '18' => { -+ 'name' => 'min_rnr_timer', -+ 'offset' => '103', -+ 'type' => '980' -+ }, -+ '19' => { -+ 'name' => 'port_num', -+ 'offset' => '104', -+ 'type' => '980' -+ }, -+ '2' => { -+ 'name' => 'qp_handle', -+ 'offset' => '64', -+ 'type' => '1004' -+ }, -+ '20' => { -+ 'name' => 'timeout', -+ 'offset' => '105', -+ 'type' => '980' -+ }, -+ '21' => { -+ 'name' => 'retry_cnt', -+ 'offset' => '106', -+ 'type' => '980' -+ }, -+ '22' => { -+ 'name' => 'rnr_retry', -+ 'offset' => '107', -+ 'type' => '980' -+ }, -+ '23' => { -+ 'name' => 'alt_port_num', -+ 'offset' => '108', -+ 'type' => '980' -+ }, -+ '24' => { -+ 'name' => 'alt_timeout', -+ 'offset' => '109', -+ 'type' => '980' -+ }, -+ '25' => { -+ 'name' => 'reserved', -+ 'offset' => '110', -+ 'type' => '4794' -+ }, -+ '26' => { -+ 'name' => 'driver_data', -+ 'offset' => '112', -+ 'type' => '1606' -+ }, -+ '3' => { -+ 'name' => 'attr_mask', -+ 'offset' => '68', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'qkey', -+ 'offset' => '72', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'rq_psn', -+ 'offset' => '76', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'sq_psn', -+ 'offset' => '80', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'dest_qp_num', -+ 'offset' => '84', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'qp_access_flags', -+ 'offset' => '88', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'pkey_index', -+ 'offset' => '92', -+ 'type' => '992' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_modify_qp', -+ 'Size' => '112', -+ 'Type' => 'Struct' -+ }, -+ '45' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '452765' => { -+ 'Header' => undef, -+ 'Line' => '693', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'version_tclass_flow', -+ 'offset' => '0', -+ 'type' => '1040' -+ }, -+ '1' => { -+ 'name' => 'paylen', -+ 'offset' => '4', -+ 'type' => '1028' -+ }, -+ '2' => { -+ 'name' => 'next_hdr', -+ 'offset' => '6', -+ 'type' => '920' -+ }, -+ '3' => { -+ 'name' => 'hop_limit', -+ 'offset' => '7', -+ 'type' => '920' -+ }, -+ '4' => { -+ 'name' => 'sgid', -+ 'offset' => '8', -+ 'type' => '9296' -+ }, -+ '5' => { -+ 'name' => 'dgid', -+ 'offset' => '24', -+ 'type' => '9296' -+ } -+ }, -+ 'Name' => 'struct ibv_grh', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '452864' => { -+ 'Header' => undef, -+ 'Line' => '702', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_RATE_MAX', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_RATE_2_5_GBPS', -+ 'value' => '2' -+ }, -+ '10' => { -+ 'name' => 'IBV_RATE_14_GBPS', -+ 'value' => '11' -+ }, -+ '11' => { -+ 'name' => 'IBV_RATE_56_GBPS', -+ 'value' => '12' -+ }, -+ '12' => { -+ 'name' => 'IBV_RATE_112_GBPS', -+ 'value' => '13' -+ }, -+ '13' => { -+ 'name' => 'IBV_RATE_168_GBPS', -+ 'value' => '14' -+ }, -+ '14' => { -+ 'name' => 'IBV_RATE_25_GBPS', -+ 'value' => '15' -+ }, -+ '15' => { -+ 'name' => 'IBV_RATE_100_GBPS', -+ 'value' => '16' -+ }, -+ '16' => { -+ 'name' => 'IBV_RATE_200_GBPS', -+ 'value' => '17' -+ }, -+ '17' => { -+ 'name' => 'IBV_RATE_300_GBPS', -+ 'value' => '18' -+ }, -+ '18' => { -+ 'name' => 'IBV_RATE_28_GBPS', -+ 'value' => '19' -+ }, -+ '19' => { -+ 'name' => 'IBV_RATE_50_GBPS', -+ 'value' => '20' -+ }, -+ '2' => { -+ 'name' => 'IBV_RATE_5_GBPS', -+ 'value' => '5' -+ }, -+ '20' => { -+ 'name' => 'IBV_RATE_400_GBPS', -+ 'value' => '21' -+ }, -+ '21' => { -+ 'name' => 'IBV_RATE_600_GBPS', -+ 'value' => '22' -+ }, -+ '22' => { -+ 'name' => 'IBV_RATE_800_GBPS', -+ 'value' => '23' -+ }, -+ '23' => { -+ 'name' => 'IBV_RATE_1200_GBPS', -+ 'value' => '24' -+ }, -+ '3' => { -+ 'name' => 'IBV_RATE_10_GBPS', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_RATE_20_GBPS', -+ 'value' => '6' -+ }, -+ '5' => { -+ 'name' => 'IBV_RATE_30_GBPS', -+ 'value' => '4' -+ }, -+ '6' => { -+ 'name' => 'IBV_RATE_40_GBPS', -+ 'value' => '7' -+ }, -+ '7' => { -+ 'name' => 'IBV_RATE_60_GBPS', -+ 'value' => '8' -+ }, -+ '8' => { -+ 'name' => 'IBV_RATE_80_GBPS', -+ 'value' => '9' -+ }, -+ '9' => { -+ 'name' => 'IBV_RATE_120_GBPS', -+ 'value' => '10' -+ } -+ }, -+ 'Name' => 'enum ibv_rate', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '468450' => { -+ 'BaseType' => '932', -+ 'Name' => 'uint16_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '469456' => { -+ 'BaseType' => '452765', -+ 'Name' => 'struct ibv_grh*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '474' => { -+ 'Name' => 'unsigned long long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '4794' => { -+ 'BaseType' => '980', -+ 'Name' => '__u8[2]', -+ 'Size' => '2', -+ 'Type' => 'Array' -+ }, -+ '4826' => { -+ 'Header' => undef, -+ 'Line' => '739', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'base', -+ 'offset' => '0', -+ 'type' => '4399' -+ }, -+ '1' => { -+ 'name' => 'rate_limit', -+ 'offset' => '112', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '116', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_modify_qp', -+ 'Size' => '120', -+ 'Type' => 'Struct' -+ }, -+ '48701' => { -+ 'Header' => undef, -+ 'Line' => '2050', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_counters_init_attr', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '48730' => { -+ 'BaseType' => '956', -+ 'Name' => 'uint64_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '48736' => { -+ 'BaseType' => '48701', -+ 'Name' => 'struct ibv_counters_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '4885' => { -+ 'Header' => undef, -+ 'Line' => '745', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'response_length', -+ 'offset' => '4', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_modify_qp_resp', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '50290' => { -+ 'BaseType' => '24521', -+ 'Name' => 'struct verbs_counters*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '52' => { -+ 'BaseType' => '45', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '52207' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '160', -+ 'Name' => '__time_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '52226' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '196', -+ 'Name' => '__syscall_slong_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '52329' => { -+ 'BaseType' => '130', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => '__s32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '52772' => { -+ 'Header' => undef, -+ 'Line' => '10', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'tv_sec', -+ 'offset' => '0', -+ 'type' => '52207' -+ }, -+ '1' => { -+ 'name' => 'tv_nsec', -+ 'offset' => '8', -+ 'type' => '52226' -+ } -+ }, -+ 'Name' => 'struct timespec', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '53863' => { -+ 'Header' => undef, -+ 'Line' => '404', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'cqe', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'comp_vector', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'comp_channel', -+ 'offset' => '24', -+ 'type' => '52329' -+ }, -+ '5' => { -+ 'name' => 'reserved', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '32', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_cq', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '54028' => { -+ 'Header' => undef, -+ 'Line' => '419', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'user_handle', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'comp_vector', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'comp_channel', -+ 'offset' => '16', -+ 'type' => '52329' -+ }, -+ '4' => { -+ 'name' => 'comp_mask', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'flags', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'reserved', -+ 'offset' => '28', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_create_cq', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '54143' => { -+ 'Header' => undef, -+ 'Line' => '429', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_cq_resp', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '54218' => { -+ 'Header' => undef, -+ 'Line' => '435', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'base', -+ 'offset' => '0', -+ 'type' => '54143' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'response_length', -+ 'offset' => '12', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_create_cq_resp', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '54379' => { -+ 'Header' => undef, -+ 'Line' => '144', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM', -+ 'value' => '0' -+ } -+ }, -+ 'Name' => 'enum ib_uverbs_flow_action_esp_keymat', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '54404' => { -+ 'Header' => undef, -+ 'Line' => '163', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IB_UVERBS_FLOW_ACTION_ESP_REPLAY_NONE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IB_UVERBS_FLOW_ACTION_ESP_REPLAY_BMP', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum ib_uverbs_flow_action_esp_replay', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '54435' => { -+ 'Header' => undef, -+ 'Line' => '189', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'val_ptr', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'val_ptr_data_u64', -+ 'offset' => '0', -+ 'type' => '1016' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '54471' => { -+ 'Header' => undef, -+ 'Line' => '190', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next_ptr', -+ 'offset' => '0', -+ 'type' => '54562' -+ }, -+ '1' => { -+ 'name' => 'next_ptr_data_u64', -+ 'offset' => '0', -+ 'type' => '1016' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '54507' => { -+ 'Header' => undef, -+ 'Line' => '185', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '54435' -+ }, -+ '1' => { -+ 'name' => 'unnamed1', -+ 'offset' => '8', -+ 'type' => '54471' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'offset' => '16', -+ 'type' => '992' -+ }, -+ '3' => { -+ 'name' => 'type', -+ 'offset' => '18', -+ 'type' => '992' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_flow_action_esp_encap', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '54562' => { -+ 'BaseType' => '54507', -+ 'Name' => 'struct ib_uverbs_flow_action_esp_encap*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '54568' => { -+ 'Header' => undef, -+ 'Line' => '195', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'spi', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'seq', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'tfc_pad', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'hard_limit_pkts', -+ 'offset' => '16', -+ 'type' => '1016' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_flow_action_esp', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '54649' => { -+ 'Header' => undef, -+ 'Line' => '208', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ib_uverbs_advise_mr_advice', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '54940' => { -+ 'Header' => undef, -+ 'Line' => '161', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'length', -+ 'offset' => '0', -+ 'type' => '52' -+ }, -+ '1' => { -+ 'name' => 'log_align_req', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '12', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_alloc_dm_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '54993' => { -+ 'Header' => undef, -+ 'Line' => '171', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'memcpy_to_dm', -+ 'offset' => '8', -+ 'type' => '55245' -+ }, -+ '2' => { -+ 'name' => 'memcpy_from_dm', -+ 'offset' => '16', -+ 'type' => '55281' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'handle', -+ 'offset' => '28', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_dm', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '55227' => { -+ 'BaseType' => '54993', -+ 'Name' => 'struct ibv_dm*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '55245' => { -+ 'Name' => 'int(*)(struct ibv_dm*, uint64_t, void const*, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '55227' -+ }, -+ '1' => { -+ 'type' => '956' -+ }, -+ '2' => { -+ 'type' => '908' -+ }, -+ '3' => { -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '55281' => { -+ 'Name' => 'int(*)(void*, struct ibv_dm*, uint64_t, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '71' -+ }, -+ '1' => { -+ 'type' => '55227' -+ }, -+ '2' => { -+ 'type' => '956' -+ }, -+ '3' => { -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '55837' => { -+ 'Header' => undef, -+ 'Line' => '227', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_query_device_ex_input', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '55864' => { -+ 'BaseType' => '55837', -+ 'Name' => 'struct ibv_query_device_ex_input const', -+ 'Size' => '4', -+ 'Type' => 'Const' -+ }, -+ '55869' => { -+ 'Header' => undef, -+ 'Line' => '242', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rc_odp_caps', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'uc_odp_caps', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'ud_odp_caps', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '55918' => { -+ 'Header' => undef, -+ 'Line' => '240', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'general_caps', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'per_transport_caps', -+ 'offset' => '8', -+ 'type' => '55869' -+ } -+ }, -+ 'Name' => 'struct ibv_odp_caps', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '55958' => { -+ 'Header' => undef, -+ 'Line' => '254', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_tso', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '4', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_tso_caps', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '55999' => { -+ 'Header' => undef, -+ 'Line' => '285', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'max_rwq_indirection_tables', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'max_rwq_indirection_table_size', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'rx_hash_fields_mask', -+ 'offset' => '16', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'rx_hash_function', -+ 'offset' => '24', -+ 'type' => '920' -+ } -+ }, -+ 'Name' => 'struct ibv_rss_caps', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '56084' => { -+ 'Header' => undef, -+ 'Line' => '293', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_rate_limit_min', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'qp_rate_limit_max', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_packet_pacing_caps', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '56141' => { -+ 'Header' => undef, -+ 'Line' => '310', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_rndv_hdr_size', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'max_num_tags', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'max_ops', -+ 'offset' => '12', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'max_sge', -+ 'offset' => '16', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_tm_caps', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '56226' => { -+ 'Header' => undef, -+ 'Line' => '323', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_cq_count', -+ 'offset' => '0', -+ 'type' => '932' -+ }, -+ '1' => { -+ 'name' => 'max_cq_period', -+ 'offset' => '2', -+ 'type' => '932' -+ } -+ }, -+ 'Name' => 'struct ibv_cq_moderation_caps', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '56269' => { -+ 'Header' => undef, -+ 'Line' => '338', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fetch_add', -+ 'offset' => '0', -+ 'type' => '932' -+ }, -+ '1' => { -+ 'name' => 'swap', -+ 'offset' => '2', -+ 'type' => '932' -+ }, -+ '2' => { -+ 'name' => 'compare_swap', -+ 'offset' => '4', -+ 'type' => '932' -+ } -+ }, -+ 'Name' => 'struct ibv_pci_atomic_caps', -+ 'Size' => '6', -+ 'Type' => 'Struct' -+ }, -+ '56326' => { -+ 'Header' => undef, -+ 'Line' => '344', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'orig_attr', -+ 'offset' => '0', -+ 'type' => '9639' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '232', -+ 'type' => '944' -+ }, -+ '10' => { -+ 'name' => 'raw_packet_caps', -+ 'offset' => '344', -+ 'type' => '944' -+ }, -+ '11' => { -+ 'name' => 'tm_caps', -+ 'offset' => '348', -+ 'type' => '56141' -+ }, -+ '12' => { -+ 'name' => 'cq_mod_caps', -+ 'offset' => '368', -+ 'type' => '56226' -+ }, -+ '13' => { -+ 'name' => 'max_dm_size', -+ 'offset' => '376', -+ 'type' => '956' -+ }, -+ '14' => { -+ 'name' => 'pci_atomic_caps', -+ 'offset' => '384', -+ 'type' => '56269' -+ }, -+ '15' => { -+ 'name' => 'xrc_odp_caps', -+ 'offset' => '392', -+ 'type' => '944' -+ }, -+ '16' => { -+ 'name' => 'phys_port_cnt_ex', -+ 'offset' => '396', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'odp_caps', -+ 'offset' => '240', -+ 'type' => '55918' -+ }, -+ '3' => { -+ 'name' => 'completion_timestamp_mask', -+ 'offset' => '264', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'hca_core_clock', -+ 'offset' => '272', -+ 'type' => '956' -+ }, -+ '5' => { -+ 'name' => 'device_cap_flags_ex', -+ 'offset' => '280', -+ 'type' => '956' -+ }, -+ '6' => { -+ 'name' => 'tso_caps', -+ 'offset' => '288', -+ 'type' => '55958' -+ }, -+ '7' => { -+ 'name' => 'rss_caps', -+ 'offset' => '296', -+ 'type' => '55999' -+ }, -+ '8' => { -+ 'name' => 'max_wq_type_rq', -+ 'offset' => '328', -+ 'type' => '944' -+ }, -+ '9' => { -+ 'name' => 'packet_pacing_caps', -+ 'offset' => '332', -+ 'type' => '56084' -+ } -+ }, -+ 'Name' => 'struct ibv_device_attr_ex', -+ 'Size' => '400', -+ 'Type' => 'Struct' -+ }, -+ '56644' => { -+ 'Header' => undef, -+ 'Line' => '372', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_PORT_NOP', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_PORT_DOWN', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_PORT_INIT', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_PORT_ARMED', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_PORT_ACTIVE', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_PORT_ACTIVE_DEFER', -+ 'value' => '5' -+ } -+ }, -+ 'Name' => 'enum ibv_port_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '56700' => { -+ 'Header' => undef, -+ 'Line' => '424', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'state', -+ 'offset' => '0', -+ 'type' => '56644' -+ }, -+ '1' => { -+ 'name' => 'max_mtu', -+ 'offset' => '4', -+ 'type' => '10189' -+ }, -+ '10' => { -+ 'name' => 'sm_lid', -+ 'offset' => '36', -+ 'type' => '932' -+ }, -+ '11' => { -+ 'name' => 'lmc', -+ 'offset' => '38', -+ 'type' => '920' -+ }, -+ '12' => { -+ 'name' => 'max_vl_num', -+ 'offset' => '39', -+ 'type' => '920' -+ }, -+ '13' => { -+ 'name' => 'sm_sl', -+ 'offset' => '40', -+ 'type' => '920' -+ }, -+ '14' => { -+ 'name' => 'subnet_timeout', -+ 'offset' => '41', -+ 'type' => '920' -+ }, -+ '15' => { -+ 'name' => 'init_type_reply', -+ 'offset' => '42', -+ 'type' => '920' -+ }, -+ '16' => { -+ 'name' => 'active_width', -+ 'offset' => '43', -+ 'type' => '920' -+ }, -+ '17' => { -+ 'name' => 'active_speed', -+ 'offset' => '44', -+ 'type' => '920' -+ }, -+ '18' => { -+ 'name' => 'phys_state', -+ 'offset' => '45', -+ 'type' => '920' -+ }, -+ '19' => { -+ 'name' => 'link_layer', -+ 'offset' => '46', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'active_mtu', -+ 'offset' => '8', -+ 'type' => '10189' -+ }, -+ '20' => { -+ 'name' => 'flags', -+ 'offset' => '47', -+ 'type' => '920' -+ }, -+ '21' => { -+ 'name' => 'port_cap_flags2', -+ 'offset' => '48', -+ 'type' => '932' -+ }, -+ '3' => { -+ 'name' => 'gid_tbl_len', -+ 'offset' => '12', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'port_cap_flags', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '5' => { -+ 'name' => 'max_msg_sz', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '6' => { -+ 'name' => 'bad_pkey_cntr', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'qkey_viol_cntr', -+ 'offset' => '28', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'pkey_tbl_len', -+ 'offset' => '32', -+ 'type' => '932' -+ }, -+ '9' => { -+ 'name' => 'lid', -+ 'offset' => '34', -+ 'type' => '932' -+ } -+ }, -+ 'Name' => 'struct ibv_port_attr', -+ 'Size' => '52', -+ 'Type' => 'Struct' -+ }, -+ '57023' => { -+ 'Header' => undef, -+ 'Line' => '449', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_EVENT_CQ_ERR', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_EVENT_QP_FATAL', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_EVENT_PORT_ERR', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_EVENT_LID_CHANGE', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'IBV_EVENT_PKEY_CHANGE', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'IBV_EVENT_SM_CHANGE', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'IBV_EVENT_SRQ_ERR', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'IBV_EVENT_SRQ_LIMIT_REACHED', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'IBV_EVENT_QP_LAST_WQE_REACHED', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'IBV_EVENT_CLIENT_REREGISTER', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'IBV_EVENT_GID_CHANGE', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'IBV_EVENT_WQ_FATAL', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'IBV_EVENT_QP_REQ_ERR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_EVENT_QP_ACCESS_ERR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_EVENT_COMM_EST', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_EVENT_SQ_DRAINED', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_EVENT_PATH_MIG', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_EVENT_PATH_MIG_ERR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_EVENT_DEVICE_FATAL', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_EVENT_PORT_ACTIVE', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_event_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '57163' => { -+ 'Header' => undef, -+ 'Line' => '473', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq', -+ 'offset' => '0', -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'name' => 'qp', -+ 'offset' => '0', -+ 'type' => '10582' -+ }, -+ '2' => { -+ 'name' => 'srq', -+ 'offset' => '0', -+ 'type' => '10700' -+ }, -+ '3' => { -+ 'name' => 'wq', -+ 'offset' => '0', -+ 'type' => '10901' -+ }, -+ '4' => { -+ 'name' => 'port_num', -+ 'offset' => '0', -+ 'type' => '130' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '57904' => { -+ 'Header' => undef, -+ 'Line' => '472', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'element', -+ 'offset' => '0', -+ 'type' => '57163' -+ }, -+ '1' => { -+ 'name' => 'event_type', -+ 'offset' => '8', -+ 'type' => '57023' -+ } -+ }, -+ 'Name' => 'struct ibv_async_event', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '58791' => { -+ 'Header' => undef, -+ 'Line' => '631', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_td_init_attr', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '58820' => { -+ 'Header' => undef, -+ 'Line' => '635', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ } -+ }, -+ 'Name' => 'struct ibv_td', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '59310' => { -+ 'Header' => undef, -+ 'Line' => '777', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'offset' => '8', -+ 'type' => '12363' -+ } -+ }, -+ 'Name' => 'struct ibv_srq_init_attr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '59353' => { -+ 'Header' => undef, -+ 'Line' => '782', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_SRQT_BASIC', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_SRQT_XRC', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_SRQT_TM', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_srq_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '59391' => { -+ 'Header' => undef, -+ 'Line' => '797', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_num_tags', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'max_ops', -+ 'offset' => '4', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_tm_cap', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '59434' => { -+ 'Header' => undef, -+ 'Line' => '802', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'offset' => '8', -+ 'type' => '12363' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'srq_type', -+ 'offset' => '24', -+ 'type' => '59353' -+ }, -+ '4' => { -+ 'name' => 'pd', -+ 'offset' => '32', -+ 'type' => '12044' -+ }, -+ '5' => { -+ 'name' => 'xrcd', -+ 'offset' => '40', -+ 'type' => '12420' -+ }, -+ '6' => { -+ 'name' => 'cq', -+ 'offset' => '48', -+ 'type' => '10380' -+ }, -+ '7' => { -+ 'name' => 'tm_cap', -+ 'offset' => '56', -+ 'type' => '59391' -+ } -+ }, -+ 'Name' => 'struct ibv_srq_init_attr_ex', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '5945' => { -+ 'Header' => undef, -+ 'Line' => '875', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ah_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'driver_data', -+ 'offset' => '4', -+ 'type' => '1665' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_create_ah_resp', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '59591' => { -+ 'Header' => undef, -+ 'Line' => '831', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wq_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'wq_type', -+ 'offset' => '8', -+ 'type' => '12426' -+ }, -+ '2' => { -+ 'name' => 'max_wr', -+ 'offset' => '12', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'max_sge', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'pd', -+ 'offset' => '24', -+ 'type' => '12044' -+ }, -+ '5' => { -+ 'name' => 'cq', -+ 'offset' => '32', -+ 'type' => '10380' -+ }, -+ '6' => { -+ 'name' => 'comp_mask', -+ 'offset' => '40', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'create_flags', -+ 'offset' => '44', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_wq_init_attr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '60239' => { -+ 'Header' => undef, -+ 'Line' => '955', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rx_hash_function', -+ 'offset' => '0', -+ 'type' => '920' -+ }, -+ '1' => { -+ 'name' => 'rx_hash_key_len', -+ 'offset' => '1', -+ 'type' => '920' -+ }, -+ '2' => { -+ 'name' => 'rx_hash_key', -+ 'offset' => '8', -+ 'type' => '60310' -+ }, -+ '3' => { -+ 'name' => 'rx_hash_fields_mask', -+ 'offset' => '16', -+ 'type' => '956' -+ } -+ }, -+ 'Name' => 'struct ibv_rx_hash_conf', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '60310' => { -+ 'BaseType' => '920', -+ 'Name' => 'uint8_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '60316' => { -+ 'Header' => undef, -+ 'Line' => '964', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '10380' -+ }, -+ '10' => { -+ 'name' => 'create_flags', -+ 'offset' => '80', -+ 'type' => '944' -+ }, -+ '11' => { -+ 'name' => 'max_tso_header', -+ 'offset' => '84', -+ 'type' => '932' -+ }, -+ '12' => { -+ 'name' => 'rwq_ind_tbl', -+ 'offset' => '88', -+ 'type' => '13095' -+ }, -+ '13' => { -+ 'name' => 'rx_hash_conf', -+ 'offset' => '96', -+ 'type' => '60239' -+ }, -+ '14' => { -+ 'name' => 'source_qpn', -+ 'offset' => '120', -+ 'type' => '944' -+ }, -+ '15' => { -+ 'name' => 'send_ops_flags', -+ 'offset' => '128', -+ 'type' => '956' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '10380' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '10700' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '12897' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '12835' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '130' -+ }, -+ '7' => { -+ 'name' => 'comp_mask', -+ 'offset' => '60', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'pd', -+ 'offset' => '64', -+ 'type' => '12044' -+ }, -+ '9' => { -+ 'name' => 'xrcd', -+ 'offset' => '72', -+ 'type' => '12420' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr_ex', -+ 'Size' => '136', -+ 'Type' => 'Struct' -+ }, -+ '61130' => { -+ 'Header' => undef, -+ 'Line' => '1079', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rate_limit', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'max_burst_sz', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'typical_pkt_sz', -+ 'offset' => '8', -+ 'type' => '932' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '12', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_rate_limit_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '62080' => { -+ 'Header' => undef, -+ 'Line' => '1177', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WR_TAG_ADD', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WR_TAG_DEL', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_WR_TAG_SYNC', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_ops_wr_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '62118' => { -+ 'Header' => undef, -+ 'Line' => '1196', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'recv_wr_id', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'sg_list', -+ 'offset' => '8', -+ 'type' => '14748' -+ }, -+ '2' => { -+ 'name' => 'num_sge', -+ 'offset' => '16', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'tag', -+ 'offset' => '24', -+ 'type' => '956' -+ }, -+ '4' => { -+ 'name' => 'mask', -+ 'offset' => '32', -+ 'type' => '956' -+ } -+ }, -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '62199' => { -+ 'Header' => undef, -+ 'Line' => '1193', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unexpected_cnt', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'add', -+ 'offset' => '8', -+ 'type' => '62118' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '62252' => { -+ 'Header' => undef, -+ 'Line' => '1188', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '62336' -+ }, -+ '2' => { -+ 'name' => 'opcode', -+ 'offset' => '16', -+ 'type' => '62080' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'offset' => '20', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'tm', -+ 'offset' => '24', -+ 'type' => '62199' -+ } -+ }, -+ 'Name' => 'struct ibv_ops_wr', -+ 'Size' => '72', -+ 'Type' => 'Struct' -+ }, -+ '62336' => { -+ 'BaseType' => '62252', -+ 'Name' => 'struct ibv_ops_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '62436' => { -+ 'Header' => undef, -+ 'Line' => '1437', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'vendor_id', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'options', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_ece', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '62555' => { -+ 'Header' => undef, -+ 'Line' => '1471', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_poll_cq_attr', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '62584' => { -+ 'Header' => undef, -+ 'Line' => '1475', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'tag', -+ 'offset' => '0', -+ 'type' => '956' -+ }, -+ '1' => { -+ 'name' => 'priv', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_wc_tm_info', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '62627' => { -+ 'Header' => undef, -+ 'Line' => '1480', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '15787' -+ }, -+ '10' => { -+ 'name' => 'status', -+ 'offset' => '132', -+ 'type' => '10907' -+ }, -+ '11' => { -+ 'name' => 'wr_id', -+ 'offset' => '136', -+ 'type' => '956' -+ }, -+ '12' => { -+ 'name' => 'start_poll', -+ 'offset' => '144', -+ 'type' => '63099' -+ }, -+ '13' => { -+ 'name' => 'next_poll', -+ 'offset' => '152', -+ 'type' => '63120' -+ }, -+ '14' => { -+ 'name' => 'end_poll', -+ 'offset' => '160', -+ 'type' => '63137' -+ }, -+ '15' => { -+ 'name' => 'read_opcode', -+ 'offset' => '168', -+ 'type' => '63158' -+ }, -+ '16' => { -+ 'name' => 'read_vendor_err', -+ 'offset' => '176', -+ 'type' => '63179' -+ }, -+ '17' => { -+ 'name' => 'read_byte_len', -+ 'offset' => '184', -+ 'type' => '63179' -+ }, -+ '18' => { -+ 'name' => 'read_imm_data', -+ 'offset' => '192', -+ 'type' => '63200' -+ }, -+ '19' => { -+ 'name' => 'read_qp_num', -+ 'offset' => '200', -+ 'type' => '63179' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '20' => { -+ 'name' => 'read_src_qp', -+ 'offset' => '208', -+ 'type' => '63179' -+ }, -+ '21' => { -+ 'name' => 'read_wc_flags', -+ 'offset' => '216', -+ 'type' => '63221' -+ }, -+ '22' => { -+ 'name' => 'read_slid', -+ 'offset' => '224', -+ 'type' => '63179' -+ }, -+ '23' => { -+ 'name' => 'read_sl', -+ 'offset' => '232', -+ 'type' => '63242' -+ }, -+ '24' => { -+ 'name' => 'read_dlid_path_bits', -+ 'offset' => '240', -+ 'type' => '63242' -+ }, -+ '25' => { -+ 'name' => 'read_completion_ts', -+ 'offset' => '248', -+ 'type' => '63263' -+ }, -+ '26' => { -+ 'name' => 'read_cvlan', -+ 'offset' => '256', -+ 'type' => '63284' -+ }, -+ '27' => { -+ 'name' => 'read_flow_tag', -+ 'offset' => '264', -+ 'type' => '63179' -+ }, -+ '28' => { -+ 'name' => 'read_tm_info', -+ 'offset' => '272', -+ 'type' => '63312' -+ }, -+ '29' => { -+ 'name' => 'read_completion_wallclock_ns', -+ 'offset' => '280', -+ 'type' => '63263' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'cqe', -+ 'offset' => '28', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '53297' -+ }, -+ '6' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '53371' -+ }, -+ '7' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '120', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '124', -+ 'type' => '944' -+ }, -+ '9' => { -+ 'name' => 'comp_mask', -+ 'offset' => '128', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_cq_ex', -+ 'Size' => '288', -+ 'Type' => 'Struct' -+ }, -+ '63087' => { -+ 'BaseType' => '62627', -+ 'Name' => 'struct ibv_cq_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '63093' => { -+ 'BaseType' => '62555', -+ 'Name' => 'struct ibv_poll_cq_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '63099' => { -+ 'Name' => 'int(*)(struct ibv_cq_ex*, struct ibv_poll_cq_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ }, -+ '1' => { -+ 'type' => '63093' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63120' => { -+ 'Name' => 'int(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63137' => { -+ 'Name' => 'void(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63158' => { -+ 'Name' => 'enum ibv_wc_opcode(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '11071', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63179' => { -+ 'Name' => 'uint32_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '944', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63200' => { -+ 'Name' => '__be32(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '1040', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63221' => { -+ 'Name' => 'unsigned int(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63242' => { -+ 'Name' => 'uint8_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '920', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63263' => { -+ 'Name' => 'uint64_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '956', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63284' => { -+ 'Name' => 'uint16_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ } -+ }, -+ 'Return' => '932', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63306' => { -+ 'BaseType' => '62584', -+ 'Name' => 'struct ibv_wc_tm_info*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '63312' => { -+ 'Name' => 'void(*)(struct ibv_cq_ex*, struct ibv_wc_tm_info*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '63087' -+ }, -+ '1' => { -+ 'type' => '63306' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '63682' => { -+ 'Header' => undef, -+ 'Line' => '1897', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'esp_attr', -+ 'offset' => '0', -+ 'type' => '63837' -+ }, -+ '1' => { -+ 'name' => 'keymat_proto', -+ 'offset' => '8', -+ 'type' => '54379' -+ }, -+ '2' => { -+ 'name' => 'keymat_len', -+ 'offset' => '12', -+ 'type' => '932' -+ }, -+ '3' => { -+ 'name' => 'keymat_ptr', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'replay_proto', -+ 'offset' => '24', -+ 'type' => '54404' -+ }, -+ '5' => { -+ 'name' => 'replay_len', -+ 'offset' => '28', -+ 'type' => '932' -+ }, -+ '6' => { -+ 'name' => 'replay_ptr', -+ 'offset' => '32', -+ 'type' => '71' -+ }, -+ '7' => { -+ 'name' => 'esp_encap', -+ 'offset' => '40', -+ 'type' => '54562' -+ }, -+ '8' => { -+ 'name' => 'comp_mask', -+ 'offset' => '48', -+ 'type' => '944' -+ }, -+ '9' => { -+ 'name' => 'esn', -+ 'offset' => '52', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_flow_action_esp_attr', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '63837' => { -+ 'BaseType' => '54568', -+ 'Name' => 'struct ib_uverbs_flow_action_esp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '64' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '64925' => { -+ 'Header' => undef, -+ 'Line' => '2006', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cqe', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'cq_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'channel', -+ 'offset' => '16', -+ 'type' => '15787' -+ }, -+ '3' => { -+ 'name' => 'comp_vector', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'wc_flags', -+ 'offset' => '32', -+ 'type' => '956' -+ }, -+ '5' => { -+ 'name' => 'comp_mask', -+ 'offset' => '40', -+ 'type' => '944' -+ }, -+ '6' => { -+ 'name' => 'flags', -+ 'offset' => '44', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'parent_domain', -+ 'offset' => '48', -+ 'type' => '12044' -+ } -+ }, -+ 'Name' => 'struct ibv_cq_init_attr_ex', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '65052' => { -+ 'BaseType' => '64925', -+ 'Name' => 'struct ibv_cq_init_attr_ex const', -+ 'Size' => '56', -+ 'Type' => 'Const' -+ }, -+ '65057' => { -+ 'Header' => undef, -+ 'Line' => '2039', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'pd', -+ 'offset' => '0', -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'name' => 'td', -+ 'offset' => '8', -+ 'type' => '65154' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'alloc', -+ 'offset' => '24', -+ 'type' => '65195' -+ }, -+ '4' => { -+ 'name' => 'free', -+ 'offset' => '32', -+ 'type' => '65227' -+ }, -+ '5' => { -+ 'name' => 'pd_context', -+ 'offset' => '40', -+ 'type' => '71' -+ } -+ }, -+ 'Name' => 'struct ibv_parent_domain_init_attr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '65154' => { -+ 'BaseType' => '58820', -+ 'Name' => 'struct ibv_td*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '65195' => { -+ 'Name' => 'void*(*)(struct ibv_pd*, void*, size_t, size_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '71' -+ }, -+ '2' => { -+ 'type' => '52' -+ }, -+ '3' => { -+ 'type' => '52' -+ }, -+ '4' => { -+ 'type' => '956' -+ } -+ }, -+ 'Return' => '71', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '65227' => { -+ 'Name' => 'void(*)(struct ibv_pd*, void*, void*, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '71' -+ }, -+ '2' => { -+ 'type' => '71' -+ }, -+ '3' => { -+ 'type' => '956' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '65262' => { -+ 'Header' => undef, -+ 'Line' => '2058', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_COUNTER_PACKETS', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_COUNTER_BYTES', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum ibv_counter_description', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '65294' => { -+ 'Header' => undef, -+ 'Line' => '2063', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'counter_desc', -+ 'offset' => '0', -+ 'type' => '65262' -+ }, -+ '1' => { -+ 'name' => 'index', -+ 'offset' => '4', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_counter_attach_attr', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '65351' => { -+ 'Header' => undef, -+ 'Line' => '2078', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '944' -+ }, -+ '1' => { -+ 'name' => 'raw_clock', -+ 'offset' => '8', -+ 'type' => '52772' -+ } -+ }, -+ 'Name' => 'struct ibv_values_ex', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '65394' => { -+ 'Header' => undef, -+ 'Line' => '2083', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'query_port', -+ 'offset' => '0', -+ 'type' => '66028' -+ }, -+ '1' => { -+ 'name' => 'advise_mr', -+ 'offset' => '8', -+ 'type' => '66069' -+ }, -+ '10' => { -+ 'name' => 'modify_flow_action_esp', -+ 'offset' => '80', -+ 'type' => '66360' -+ }, -+ '11' => { -+ 'name' => 'destroy_flow_action', -+ 'offset' => '88', -+ 'type' => '66381' -+ }, -+ '12' => { -+ 'name' => 'create_flow_action_esp', -+ 'offset' => '96', -+ 'type' => '66407' -+ }, -+ '13' => { -+ 'name' => 'modify_qp_rate_limit', -+ 'offset' => '104', -+ 'type' => '66439' -+ }, -+ '14' => { -+ 'name' => 'alloc_parent_domain', -+ 'offset' => '112', -+ 'type' => '66471' -+ }, -+ '15' => { -+ 'name' => 'dealloc_td', -+ 'offset' => '120', -+ 'type' => '66492' -+ }, -+ '16' => { -+ 'name' => 'alloc_td', -+ 'offset' => '128', -+ 'type' => '66524' -+ }, -+ '17' => { -+ 'name' => 'modify_cq', -+ 'offset' => '136', -+ 'type' => '66556' -+ }, -+ '18' => { -+ 'name' => 'post_srq_ops', -+ 'offset' => '144', -+ 'type' => '66593' -+ }, -+ '19' => { -+ 'name' => 'destroy_rwq_ind_table', -+ 'offset' => '152', -+ 'type' => '66614' -+ }, -+ '2' => { -+ 'name' => 'alloc_null_mr', -+ 'offset' => '16', -+ 'type' => '66090' -+ }, -+ '20' => { -+ 'name' => 'create_rwq_ind_table', -+ 'offset' => '160', -+ 'type' => '66646' -+ }, -+ '21' => { -+ 'name' => 'destroy_wq', -+ 'offset' => '168', -+ 'type' => '66667' -+ }, -+ '22' => { -+ 'name' => 'modify_wq', -+ 'offset' => '176', -+ 'type' => '66699' -+ }, -+ '23' => { -+ 'name' => 'create_wq', -+ 'offset' => '184', -+ 'type' => '66731' -+ }, -+ '24' => { -+ 'name' => 'query_rt_values', -+ 'offset' => '192', -+ 'type' => '66763' -+ }, -+ '25' => { -+ 'name' => 'create_cq_ex', -+ 'offset' => '200', -+ 'type' => '66795' -+ }, -+ '26' => { -+ 'name' => 'priv', -+ 'offset' => '208', -+ 'type' => '66882' -+ }, -+ '27' => { -+ 'name' => 'query_device_ex', -+ 'offset' => '216', -+ 'type' => '66930' -+ }, -+ '28' => { -+ 'name' => 'ibv_destroy_flow', -+ 'offset' => '224', -+ 'type' => '66951' -+ }, -+ '29' => { -+ 'name' => 'ABI_placeholder2', -+ 'offset' => '232', -+ 'type' => '66958' -+ }, -+ '3' => { -+ 'name' => 'read_counters', -+ 'offset' => '24', -+ 'type' => '66132' -+ }, -+ '30' => { -+ 'name' => 'ibv_create_flow', -+ 'offset' => '240', -+ 'type' => '66990' -+ }, -+ '31' => { -+ 'name' => 'ABI_placeholder1', -+ 'offset' => '248', -+ 'type' => '66958' -+ }, -+ '32' => { -+ 'name' => 'open_qp', -+ 'offset' => '256', -+ 'type' => '67022' -+ }, -+ '33' => { -+ 'name' => 'create_qp_ex', -+ 'offset' => '264', -+ 'type' => '67054' -+ }, -+ '34' => { -+ 'name' => 'get_srq_num', -+ 'offset' => '272', -+ 'type' => '67086' -+ }, -+ '35' => { -+ 'name' => 'create_srq_ex', -+ 'offset' => '280', -+ 'type' => '67118' -+ }, -+ '36' => { -+ 'name' => 'open_xrcd', -+ 'offset' => '288', -+ 'type' => '67150' -+ }, -+ '37' => { -+ 'name' => 'close_xrcd', -+ 'offset' => '296', -+ 'type' => '67171' -+ }, -+ '38' => { -+ 'name' => '_ABI_placeholder3', -+ 'offset' => '304', -+ 'type' => '956' -+ }, -+ '39' => { -+ 'name' => 'sz', -+ 'offset' => '312', -+ 'type' => '52' -+ }, -+ '4' => { -+ 'name' => 'attach_counters_point_flow', -+ 'offset' => '32', -+ 'type' => '66175' -+ }, -+ '40' => { -+ 'name' => 'context', -+ 'offset' => '320', -+ 'type' => '9514' -+ }, -+ '5' => { -+ 'name' => 'create_counters', -+ 'offset' => '40', -+ 'type' => '66207' -+ }, -+ '6' => { -+ 'name' => 'destroy_counters', -+ 'offset' => '48', -+ 'type' => '66228' -+ }, -+ '7' => { -+ 'name' => 'reg_dm_mr', -+ 'offset' => '56', -+ 'type' => '66269' -+ }, -+ '8' => { -+ 'name' => 'alloc_dm', -+ 'offset' => '64', -+ 'type' => '66301' -+ }, -+ '9' => { -+ 'name' => 'free_dm', -+ 'offset' => '72', -+ 'type' => '66322' -+ } -+ }, -+ 'Name' => 'struct verbs_context', -+ 'Size' => '648', -+ 'Type' => 'Struct' -+ }, -+ '66022' => { -+ 'BaseType' => '56700', -+ 'Name' => 'struct ibv_port_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66028' => { -+ 'Name' => 'int(*)(struct ibv_context*, uint8_t, struct ibv_port_attr*, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '920' -+ }, -+ '2' => { -+ 'type' => '66022' -+ }, -+ '3' => { -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66069' => { -+ 'Name' => 'int(*)(struct ibv_pd*, enum ib_uverbs_advise_mr_advice, uint32_t, struct ibv_sge*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '54649' -+ }, -+ '2' => { -+ 'type' => '944' -+ }, -+ '3' => { -+ 'type' => '14748' -+ }, -+ '4' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66090' => { -+ 'Name' => 'struct ibv_mr*(*)(struct ibv_pd*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ } -+ }, -+ 'Return' => '11828', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66132' => { -+ 'Name' => 'int(*)(struct ibv_counters*, uint64_t*, uint32_t, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17521' -+ }, -+ '1' => { -+ 'type' => '48730' -+ }, -+ '2' => { -+ 'type' => '944' -+ }, -+ '3' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66163' => { -+ 'BaseType' => '65294', -+ 'Name' => 'struct ibv_counter_attach_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66175' => { -+ 'Name' => 'int(*)(struct ibv_counters*, struct ibv_counter_attach_attr*, struct ibv_flow*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17521' -+ }, -+ '1' => { -+ 'type' => '66163' -+ }, -+ '2' => { -+ 'type' => '18997' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66207' => { -+ 'Name' => 'struct ibv_counters*(*)(struct ibv_context*, struct ibv_counters_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '48736' -+ } -+ }, -+ 'Return' => '17521', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66228' => { -+ 'Name' => 'int(*)(struct ibv_counters*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17521' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66269' => { -+ 'Name' => 'struct ibv_mr*(*)(struct ibv_pd*, struct ibv_dm*, uint64_t, size_t, unsigned int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '55227' -+ }, -+ '2' => { -+ 'type' => '956' -+ }, -+ '3' => { -+ 'type' => '52' -+ }, -+ '4' => { -+ 'type' => '64' -+ } -+ }, -+ 'Return' => '11828', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66295' => { -+ 'BaseType' => '54940', -+ 'Name' => 'struct ibv_alloc_dm_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66301' => { -+ 'Name' => 'struct ibv_dm*(*)(struct ibv_context*, struct ibv_alloc_dm_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66295' -+ } -+ }, -+ 'Return' => '55227', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66322' => { -+ 'Name' => 'int(*)(struct ibv_dm*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '55227' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66348' => { -+ 'BaseType' => '17395', -+ 'Name' => 'struct ibv_flow_action*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66354' => { -+ 'BaseType' => '63682', -+ 'Name' => 'struct ibv_flow_action_esp_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66360' => { -+ 'Name' => 'int(*)(struct ibv_flow_action*, struct ibv_flow_action_esp_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '66348' -+ }, -+ '1' => { -+ 'type' => '66354' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66381' => { -+ 'Name' => 'int(*)(struct ibv_flow_action*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '66348' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66407' => { -+ 'Name' => 'struct ibv_flow_action*(*)(struct ibv_context*, struct ibv_flow_action_esp_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66354' -+ } -+ }, -+ 'Return' => '66348', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66433' => { -+ 'BaseType' => '61130', -+ 'Name' => 'struct ibv_qp_rate_limit_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66439' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_qp_rate_limit_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '66433' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66465' => { -+ 'BaseType' => '65057', -+ 'Name' => 'struct ibv_parent_domain_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66471' => { -+ 'Name' => 'struct ibv_pd*(*)(struct ibv_context*, struct ibv_parent_domain_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66465' -+ } -+ }, -+ 'Return' => '12044', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66492' => { -+ 'Name' => 'int(*)(struct ibv_td*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '65154' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66518' => { -+ 'BaseType' => '58791', -+ 'Name' => 'struct ibv_td_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66524' => { -+ 'Name' => 'struct ibv_td*(*)(struct ibv_context*, struct ibv_td_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66518' -+ } -+ }, -+ 'Return' => '65154', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66556' => { -+ 'Name' => 'int(*)(struct ibv_cq*, struct ibv_modify_cq_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10380' -+ }, -+ '1' => { -+ 'type' => '19003' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66587' => { -+ 'BaseType' => '62336', -+ 'Name' => 'struct ibv_ops_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66593' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_ops_wr*, struct ibv_ops_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'type' => '62336' -+ }, -+ '2' => { -+ 'type' => '66587' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66614' => { -+ 'Name' => 'int(*)(struct ibv_rwq_ind_table*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '13095' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66646' => { -+ 'Name' => 'struct ibv_rwq_ind_table*(*)(struct ibv_context*, struct ibv_rwq_ind_table_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '19009' -+ } -+ }, -+ 'Return' => '13095', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66667' => { -+ 'Name' => 'int(*)(struct ibv_wq*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10901' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66699' => { -+ 'Name' => 'int(*)(struct ibv_wq*, struct ibv_wq_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10901' -+ }, -+ '1' => { -+ 'type' => '19015' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66725' => { -+ 'BaseType' => '59591', -+ 'Name' => 'struct ibv_wq_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66731' => { -+ 'Name' => 'struct ibv_wq*(*)(struct ibv_context*, struct ibv_wq_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66725' -+ } -+ }, -+ 'Return' => '10901', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66757' => { -+ 'BaseType' => '65351', -+ 'Name' => 'struct ibv_values_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66763' => { -+ 'Name' => 'int(*)(struct ibv_context*, struct ibv_values_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66757' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66789' => { -+ 'BaseType' => '64925', -+ 'Name' => 'struct ibv_cq_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66795' => { -+ 'Name' => 'struct ibv_cq_ex*(*)(struct ibv_context*, struct ibv_cq_init_attr_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66789' -+ } -+ }, -+ 'Return' => '63087', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66801' => { -+ 'Header' => undef, -+ 'Line' => '72', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unsupported_ioctls', -+ 'offset' => '0', -+ 'type' => '70473' -+ }, -+ '1' => { -+ 'name' => 'driver_id', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'use_ioctl_write', -+ 'offset' => '20', -+ 'type' => '19039' -+ }, -+ '3' => { -+ 'name' => 'ops', -+ 'offset' => '24', -+ 'type' => '68184' -+ }, -+ '4' => { -+ 'name' => 'imported', -+ 'offset' => '632', -+ 'type' => '19039' -+ } -+ }, -+ 'Name' => 'struct verbs_ex_private', -+ 'Size' => '640', -+ 'Type' => 'Struct' -+ }, -+ '66882' => { -+ 'BaseType' => '66801', -+ 'Name' => 'struct verbs_ex_private*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66918' => { -+ 'BaseType' => '55864', -+ 'Name' => 'struct ibv_query_device_ex_input const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66924' => { -+ 'BaseType' => '56326', -+ 'Name' => 'struct ibv_device_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '66930' => { -+ 'Name' => 'int(*)(struct ibv_context*, struct ibv_query_device_ex_input const*, struct ibv_device_attr_ex*, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '66918' -+ }, -+ '2' => { -+ 'type' => '66924' -+ }, -+ '3' => { -+ 'type' => '52' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66951' => { -+ 'Name' => 'int(*)(struct ibv_flow*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '18997' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66958' => { -+ 'Name' => 'void(*)()', -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '66990' => { -+ 'Name' => 'struct ibv_flow*(*)(struct ibv_qp*, struct ibv_flow_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '19021' -+ } -+ }, -+ 'Return' => '18997', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '67022' => { -+ 'Name' => 'struct ibv_qp*(*)(struct ibv_context*, struct ibv_qp_open_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '19027' -+ } -+ }, -+ 'Return' => '10582', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '67048' => { -+ 'BaseType' => '60316', -+ 'Name' => 'struct ibv_qp_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '67054' => { -+ 'Name' => 'struct ibv_qp*(*)(struct ibv_context*, struct ibv_qp_init_attr_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '67048' -+ } -+ }, -+ 'Return' => '10582', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '67080' => { -+ 'BaseType' => '944', -+ 'Name' => 'uint32_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '67086' => { -+ 'Name' => 'int(*)(struct ibv_srq*, uint32_t*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'type' => '67080' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '67112' => { -+ 'BaseType' => '59434', -+ 'Name' => 'struct ibv_srq_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '67118' => { -+ 'Name' => 'struct ibv_srq*(*)(struct ibv_context*, struct ibv_srq_init_attr_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '67112' -+ } -+ }, -+ 'Return' => '10700', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '67150' => { -+ 'Name' => 'struct ibv_xrcd*(*)(struct ibv_context*, struct ibv_xrcd_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '19033' -+ } -+ }, -+ 'Return' => '12420', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '67171' => { -+ 'Name' => 'int(*)(struct ibv_xrcd*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12420' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '67427' => { -+ 'Header' => undef, -+ 'Line' => '181', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'user_handle', -+ 'offset' => '8', -+ 'type' => '1016' -+ }, -+ '2' => { -+ 'name' => 'cqe', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'comp_vector', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'comp_channel', -+ 'offset' => '24', -+ 'type' => '52329' -+ }, -+ '5' => { -+ 'name' => 'reserved', -+ 'offset' => '28', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'driver_data', -+ 'offset' => '32', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '67548' => { -+ 'Header' => undef, -+ 'Line' => '181', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '67427' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '53863' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '67578' => { -+ 'Header' => undef, -+ 'Line' => '181', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '67548' -+ } -+ }, -+ 'Name' => 'struct ibv_create_cq', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '67793' => { -+ 'Header' => undef, -+ 'Line' => '211', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'user_handle', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'cqe', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'comp_vector', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'comp_channel', -+ 'offset' => '16', -+ 'type' => '52329' -+ }, -+ '4' => { -+ 'name' => 'comp_mask', -+ 'offset' => '20', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'flags', -+ 'offset' => '24', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'reserved', -+ 'offset' => '28', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '67896' => { -+ 'Header' => undef, -+ 'Line' => '211', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '67793' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '54028' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '67926' => { -+ 'Header' => undef, -+ 'Line' => '211', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '19046' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '67896' -+ } -+ }, -+ 'Name' => 'struct ibv_create_cq_ex', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '68122' => { -+ 'Header' => undef, -+ 'Line' => '170', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq', -+ 'offset' => '0', -+ 'type' => '10239' -+ }, -+ '1' => { -+ 'name' => 'cq_ex', -+ 'offset' => '0', -+ 'type' => '62627' -+ } -+ }, -+ 'Size' => '288', -+ 'Type' => 'Union' -+ }, -+ '68156' => { -+ 'Header' => undef, -+ 'Line' => '169', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '68122' -+ } -+ }, -+ 'Name' => 'struct verbs_cq', -+ 'Size' => '288', -+ 'Type' => 'Struct' -+ }, -+ '68184' => { -+ 'Header' => undef, -+ 'Line' => '311', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'advise_mr', -+ 'offset' => '0', -+ 'type' => '66069' -+ }, -+ '1' => { -+ 'name' => 'alloc_dm', -+ 'offset' => '8', -+ 'type' => '66301' -+ }, -+ '10' => { -+ 'name' => 'bind_mw', -+ 'offset' => '80', -+ 'type' => '18808' -+ }, -+ '11' => { -+ 'name' => 'close_xrcd', -+ 'offset' => '88', -+ 'type' => '67171' -+ }, -+ '12' => { -+ 'name' => 'cq_event', -+ 'offset' => '96', -+ 'type' => '69405' -+ }, -+ '13' => { -+ 'name' => 'create_ah', -+ 'offset' => '104', -+ 'type' => '69437' -+ }, -+ '14' => { -+ 'name' => 'create_counters', -+ 'offset' => '112', -+ 'type' => '66207' -+ }, -+ '15' => { -+ 'name' => 'create_cq', -+ 'offset' => '120', -+ 'type' => '69473' -+ }, -+ '16' => { -+ 'name' => 'create_cq_ex', -+ 'offset' => '128', -+ 'type' => '66795' -+ }, -+ '17' => { -+ 'name' => 'create_flow', -+ 'offset' => '136', -+ 'type' => '66990' -+ }, -+ '18' => { -+ 'name' => 'create_flow_action_esp', -+ 'offset' => '144', -+ 'type' => '66407' -+ }, -+ '19' => { -+ 'name' => 'create_qp', -+ 'offset' => '152', -+ 'type' => '69505' -+ }, -+ '2' => { -+ 'name' => 'alloc_mw', -+ 'offset' => '16', -+ 'type' => '18771' -+ }, -+ '20' => { -+ 'name' => 'create_qp_ex', -+ 'offset' => '160', -+ 'type' => '67054' -+ }, -+ '21' => { -+ 'name' => 'create_rwq_ind_table', -+ 'offset' => '168', -+ 'type' => '66646' -+ }, -+ '22' => { -+ 'name' => 'create_srq', -+ 'offset' => '176', -+ 'type' => '69537' -+ }, -+ '23' => { -+ 'name' => 'create_srq_ex', -+ 'offset' => '184', -+ 'type' => '67118' -+ }, -+ '24' => { -+ 'name' => 'create_wq', -+ 'offset' => '192', -+ 'type' => '66731' -+ }, -+ '25' => { -+ 'name' => 'dealloc_mw', -+ 'offset' => '200', -+ 'type' => '18829' -+ }, -+ '26' => { -+ 'name' => 'dealloc_pd', -+ 'offset' => '208', -+ 'type' => '69558' -+ }, -+ '27' => { -+ 'name' => 'dealloc_td', -+ 'offset' => '216', -+ 'type' => '66492' -+ }, -+ '28' => { -+ 'name' => 'dereg_mr', -+ 'offset' => '224', -+ 'type' => '69585' -+ }, -+ '29' => { -+ 'name' => 'destroy_ah', -+ 'offset' => '232', -+ 'type' => '69606' -+ }, -+ '3' => { -+ 'name' => 'alloc_null_mr', -+ 'offset' => '24', -+ 'type' => '66090' -+ }, -+ '30' => { -+ 'name' => 'destroy_counters', -+ 'offset' => '240', -+ 'type' => '66228' -+ }, -+ '31' => { -+ 'name' => 'destroy_cq', -+ 'offset' => '248', -+ 'type' => '69627' -+ }, -+ '32' => { -+ 'name' => 'destroy_flow', -+ 'offset' => '256', -+ 'type' => '66951' -+ }, -+ '33' => { -+ 'name' => 'destroy_flow_action', -+ 'offset' => '264', -+ 'type' => '66381' -+ }, -+ '34' => { -+ 'name' => 'destroy_qp', -+ 'offset' => '272', -+ 'type' => '69648' -+ }, -+ '35' => { -+ 'name' => 'destroy_rwq_ind_table', -+ 'offset' => '280', -+ 'type' => '66614' -+ }, -+ '36' => { -+ 'name' => 'destroy_srq', -+ 'offset' => '288', -+ 'type' => '69669' -+ }, -+ '37' => { -+ 'name' => 'destroy_wq', -+ 'offset' => '296', -+ 'type' => '66667' -+ }, -+ '38' => { -+ 'name' => 'detach_mcast', -+ 'offset' => '304', -+ 'type' => '69388' -+ }, -+ '39' => { -+ 'name' => 'free_context', -+ 'offset' => '312', -+ 'type' => '18151' -+ }, -+ '4' => { -+ 'name' => 'alloc_parent_domain', -+ 'offset' => '32', -+ 'type' => '66471' -+ }, -+ '40' => { -+ 'name' => 'free_dm', -+ 'offset' => '320', -+ 'type' => '66322' -+ }, -+ '41' => { -+ 'name' => 'get_srq_num', -+ 'offset' => '328', -+ 'type' => '67086' -+ }, -+ '42' => { -+ 'name' => 'import_dm', -+ 'offset' => '336', -+ 'type' => '69695' -+ }, -+ '43' => { -+ 'name' => 'import_mr', -+ 'offset' => '344', -+ 'type' => '69721' -+ }, -+ '44' => { -+ 'name' => 'import_pd', -+ 'offset' => '352', -+ 'type' => '69747' -+ }, -+ '45' => { -+ 'name' => 'modify_cq', -+ 'offset' => '360', -+ 'type' => '66556' -+ }, -+ '46' => { -+ 'name' => 'modify_flow_action_esp', -+ 'offset' => '368', -+ 'type' => '66360' -+ }, -+ '47' => { -+ 'name' => 'modify_qp', -+ 'offset' => '376', -+ 'type' => '69784' -+ }, -+ '48' => { -+ 'name' => 'modify_qp_rate_limit', -+ 'offset' => '384', -+ 'type' => '66439' -+ }, -+ '49' => { -+ 'name' => 'modify_srq', -+ 'offset' => '392', -+ 'type' => '69821' -+ }, -+ '5' => { -+ 'name' => 'alloc_pd', -+ 'offset' => '40', -+ 'type' => '69323' -+ }, -+ '50' => { -+ 'name' => 'modify_wq', -+ 'offset' => '400', -+ 'type' => '66699' -+ }, -+ '51' => { -+ 'name' => 'open_qp', -+ 'offset' => '408', -+ 'type' => '67022' -+ }, -+ '52' => { -+ 'name' => 'open_xrcd', -+ 'offset' => '416', -+ 'type' => '67150' -+ }, -+ '53' => { -+ 'name' => 'poll_cq', -+ 'offset' => '424', -+ 'type' => '18866' -+ }, -+ '54' => { -+ 'name' => 'post_recv', -+ 'offset' => '432', -+ 'type' => '18991' -+ }, -+ '55' => { -+ 'name' => 'post_send', -+ 'offset' => '440', -+ 'type' => '18960' -+ }, -+ '56' => { -+ 'name' => 'post_srq_ops', -+ 'offset' => '448', -+ 'type' => '66593' -+ }, -+ '57' => { -+ 'name' => 'post_srq_recv', -+ 'offset' => '456', -+ 'type' => '18923' -+ }, -+ '58' => { -+ 'name' => 'query_device_ex', -+ 'offset' => '464', -+ 'type' => '66930' -+ }, -+ '59' => { -+ 'name' => 'query_ece', -+ 'offset' => '472', -+ 'type' => '69853' -+ }, -+ '6' => { -+ 'name' => 'alloc_td', -+ 'offset' => '48', -+ 'type' => '66524' -+ }, -+ '60' => { -+ 'name' => 'query_port', -+ 'offset' => '480', -+ 'type' => '69884' -+ }, -+ '61' => { -+ 'name' => 'query_qp', -+ 'offset' => '488', -+ 'type' => '69920' -+ }, -+ '62' => { -+ 'name' => 'query_qp_data_in_order', -+ 'offset' => '496', -+ 'type' => '69951' -+ }, -+ '63' => { -+ 'name' => 'query_rt_values', -+ 'offset' => '504', -+ 'type' => '66763' -+ }, -+ '64' => { -+ 'name' => 'query_srq', -+ 'offset' => '512', -+ 'type' => '69977' -+ }, -+ '65' => { -+ 'name' => 'read_counters', -+ 'offset' => '520', -+ 'type' => '66132' -+ }, -+ '66' => { -+ 'name' => 'reg_dm_mr', -+ 'offset' => '528', -+ 'type' => '66269' -+ }, -+ '67' => { -+ 'name' => 'reg_dmabuf_mr', -+ 'offset' => '536', -+ 'type' => '70023' -+ }, -+ '68' => { -+ 'name' => 'reg_mr', -+ 'offset' => '544', -+ 'type' => '70064' -+ }, -+ '69' => { -+ 'name' => 'req_notify_cq', -+ 'offset' => '552', -+ 'type' => '18892' -+ }, -+ '7' => { -+ 'name' => 'async_event', -+ 'offset' => '56', -+ 'type' => '69351' -+ }, -+ '70' => { -+ 'name' => 'rereg_mr', -+ 'offset' => '560', -+ 'type' => '70110' -+ }, -+ '71' => { -+ 'name' => 'resize_cq', -+ 'offset' => '568', -+ 'type' => '18892' -+ }, -+ '72' => { -+ 'name' => 'set_ece', -+ 'offset' => '576', -+ 'type' => '69853' -+ }, -+ '73' => { -+ 'name' => 'unimport_dm', -+ 'offset' => '584', -+ 'type' => '70127' -+ }, -+ '74' => { -+ 'name' => 'unimport_mr', -+ 'offset' => '592', -+ 'type' => '70144' -+ }, -+ '75' => { -+ 'name' => 'unimport_pd', -+ 'offset' => '600', -+ 'type' => '70161' -+ }, -+ '8' => { -+ 'name' => 'attach_counters_point_flow', -+ 'offset' => '64', -+ 'type' => '66175' -+ }, -+ '9' => { -+ 'name' => 'attach_mcast', -+ 'offset' => '72', -+ 'type' => '69388' -+ } -+ }, -+ 'Name' => 'struct verbs_context_ops', -+ 'Size' => '608', -+ 'Type' => 'Struct' -+ }, -+ '69323' => { -+ 'Name' => 'struct ibv_pd*(*)(struct ibv_context*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ } -+ }, -+ 'Return' => '12044', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69345' => { -+ 'BaseType' => '57904', -+ 'Name' => 'struct ibv_async_event*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '69351' => { -+ 'Name' => 'void(*)(struct ibv_context*, struct ibv_async_event*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '69345' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69388' => { -+ 'Name' => 'int(*)(struct ibv_qp*, union ibv_gid const*, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '24569' -+ }, -+ '2' => { -+ 'type' => '932' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69405' => { -+ 'Name' => 'void(*)(struct ibv_cq*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10380' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69437' => { -+ 'Name' => 'struct ibv_ah*(*)(struct ibv_pd*, struct ibv_ah_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '24575' -+ } -+ }, -+ 'Return' => '14352', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69473' => { -+ 'Name' => 'struct ibv_cq*(*)(struct ibv_context*, int, struct ibv_comp_channel*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '130' -+ }, -+ '2' => { -+ 'type' => '15787' -+ }, -+ '3' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '10380', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69505' => { -+ 'Name' => 'struct ibv_qp*(*)(struct ibv_pd*, struct ibv_qp_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '24581' -+ } -+ }, -+ 'Return' => '10582', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69531' => { -+ 'BaseType' => '59310', -+ 'Name' => 'struct ibv_srq_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '69537' => { -+ 'Name' => 'struct ibv_srq*(*)(struct ibv_pd*, struct ibv_srq_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '69531' -+ } -+ }, -+ 'Return' => '10700', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69558' => { -+ 'Name' => 'int(*)(struct ibv_pd*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69585' => { -+ 'Name' => 'int(*)(struct verbs_mr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '24587' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69606' => { -+ 'Name' => 'int(*)(struct ibv_ah*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '14352' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69627' => { -+ 'Name' => 'int(*)(struct ibv_cq*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10380' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69648' => { -+ 'Name' => 'int(*)(struct ibv_qp*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69669' => { -+ 'Name' => 'int(*)(struct ibv_srq*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10700' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69695' => { -+ 'Name' => 'struct ibv_dm*(*)(struct ibv_context*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '55227', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69721' => { -+ 'Name' => 'struct ibv_mr*(*)(struct ibv_pd*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '11828', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69747' => { -+ 'Name' => 'struct ibv_pd*(*)(struct ibv_context*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '12044', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69784' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_qp_attr*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69821' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_srq_attr*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'type' => '24599' -+ }, -+ '2' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69847' => { -+ 'BaseType' => '62436', -+ 'Name' => 'struct ibv_ece*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '69853' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_ece*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '69847' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69884' => { -+ 'Name' => 'int(*)(struct ibv_context*, uint8_t, struct ibv_port_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9633' -+ }, -+ '1' => { -+ 'type' => '920' -+ }, -+ '2' => { -+ 'type' => '66022' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69920' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_qp_attr*, int, struct ibv_qp_init_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '24593' -+ }, -+ '2' => { -+ 'type' => '130' -+ }, -+ '3' => { -+ 'type' => '24581' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69951' => { -+ 'Name' => 'int(*)(struct ibv_qp*, enum ibv_wr_opcode, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10582' -+ }, -+ '1' => { -+ 'type' => '13899' -+ }, -+ '2' => { -+ 'type' => '944' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '69977' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_srq_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10700' -+ }, -+ '1' => { -+ 'type' => '24599' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '70023' => { -+ 'Name' => 'struct ibv_mr*(*)(struct ibv_pd*, uint64_t, size_t, uint64_t, int, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '956' -+ }, -+ '2' => { -+ 'type' => '52' -+ }, -+ '3' => { -+ 'type' => '956' -+ }, -+ '4' => { -+ 'type' => '130' -+ }, -+ '5' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '11828', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '70064' => { -+ 'Name' => 'struct ibv_mr*(*)(struct ibv_pd*, void*, size_t, uint64_t, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ }, -+ '1' => { -+ 'type' => '71' -+ }, -+ '2' => { -+ 'type' => '52' -+ }, -+ '3' => { -+ 'type' => '956' -+ }, -+ '4' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '11828', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '70110' => { -+ 'Name' => 'int(*)(struct verbs_mr*, int, struct ibv_pd*, void*, size_t, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '24587' -+ }, -+ '1' => { -+ 'type' => '130' -+ }, -+ '2' => { -+ 'type' => '12044' -+ }, -+ '3' => { -+ 'type' => '71' -+ }, -+ '4' => { -+ 'type' => '52' -+ }, -+ '5' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '70127' => { -+ 'Name' => 'void(*)(struct ibv_dm*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '55227' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '70144' => { -+ 'Name' => 'void(*)(struct ibv_mr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '11828' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '70161' => { -+ 'Name' => 'void(*)(struct ibv_pd*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '12044' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '70473' => { -+ 'BaseType' => '45', -+ 'Name' => 'unsigned long[2]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '71' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '72088' => { -+ 'BaseType' => '65052', -+ 'Name' => 'struct ibv_cq_init_attr_ex const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '72094' => { -+ 'BaseType' => '68156', -+ 'Name' => 'struct verbs_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '72100' => { -+ 'BaseType' => '67926', -+ 'Name' => 'struct ibv_create_cq_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '72106' => { -+ 'BaseType' => '54218', -+ 'Name' => 'struct ib_uverbs_ex_create_cq_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '72588' => { -+ 'BaseType' => '67578', -+ 'Name' => 'struct ibv_create_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '72594' => { -+ 'BaseType' => '54143', -+ 'Name' => 'struct ib_uverbs_create_cq_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '76566' => { -+ 'BaseType' => '45', -+ 'Header' => undef, -+ 'Line' => '145', -+ 'Name' => '__dev_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '76627' => { -+ 'BaseType' => '186', -+ 'Name' => 'char const', -+ 'Size' => '1', -+ 'Type' => 'Const' -+ }, -+ '76632' => { -+ 'BaseType' => '76627', -+ 'Name' => 'char const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '76662' => { -+ 'BaseType' => '76566', -+ 'Header' => undef, -+ 'Line' => '59', -+ 'Name' => 'dev_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '78' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '78185' => { -+ 'Header' => undef, -+ 'Line' => '129', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_cq_moderation_count', -+ 'offset' => '0', -+ 'type' => '992' -+ }, -+ '1' => { -+ 'name' => 'max_cq_moderation_period', -+ 'offset' => '2', -+ 'type' => '992' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '4', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_cq_moderation_caps', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '78359' => { -+ 'Header' => undef, -+ 'Line' => '159', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_get_context', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '78418' => { -+ 'Header' => undef, -+ 'Line' => '164', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'async_fd', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'num_comp_vectors', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_get_context_resp', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '78548' => { -+ 'Header' => undef, -+ 'Line' => '175', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fw_ver', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'node_guid', -+ 'offset' => '8', -+ 'type' => '1052' -+ }, -+ '10' => { -+ 'name' => 'device_cap_flags', -+ 'offset' => '60', -+ 'type' => '1004' -+ }, -+ '11' => { -+ 'name' => 'max_sge', -+ 'offset' => '64', -+ 'type' => '1004' -+ }, -+ '12' => { -+ 'name' => 'max_sge_rd', -+ 'offset' => '68', -+ 'type' => '1004' -+ }, -+ '13' => { -+ 'name' => 'max_cq', -+ 'offset' => '72', -+ 'type' => '1004' -+ }, -+ '14' => { -+ 'name' => 'max_cqe', -+ 'offset' => '76', -+ 'type' => '1004' -+ }, -+ '15' => { -+ 'name' => 'max_mr', -+ 'offset' => '80', -+ 'type' => '1004' -+ }, -+ '16' => { -+ 'name' => 'max_pd', -+ 'offset' => '84', -+ 'type' => '1004' -+ }, -+ '17' => { -+ 'name' => 'max_qp_rd_atom', -+ 'offset' => '88', -+ 'type' => '1004' -+ }, -+ '18' => { -+ 'name' => 'max_ee_rd_atom', -+ 'offset' => '92', -+ 'type' => '1004' -+ }, -+ '19' => { -+ 'name' => 'max_res_rd_atom', -+ 'offset' => '96', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'sys_image_guid', -+ 'offset' => '16', -+ 'type' => '1052' -+ }, -+ '20' => { -+ 'name' => 'max_qp_init_rd_atom', -+ 'offset' => '100', -+ 'type' => '1004' -+ }, -+ '21' => { -+ 'name' => 'max_ee_init_rd_atom', -+ 'offset' => '104', -+ 'type' => '1004' -+ }, -+ '22' => { -+ 'name' => 'atomic_cap', -+ 'offset' => '108', -+ 'type' => '1004' -+ }, -+ '23' => { -+ 'name' => 'max_ee', -+ 'offset' => '112', -+ 'type' => '1004' -+ }, -+ '24' => { -+ 'name' => 'max_rdd', -+ 'offset' => '116', -+ 'type' => '1004' -+ }, -+ '25' => { -+ 'name' => 'max_mw', -+ 'offset' => '120', -+ 'type' => '1004' -+ }, -+ '26' => { -+ 'name' => 'max_raw_ipv6_qp', -+ 'offset' => '124', -+ 'type' => '1004' -+ }, -+ '27' => { -+ 'name' => 'max_raw_ethy_qp', -+ 'offset' => '128', -+ 'type' => '1004' -+ }, -+ '28' => { -+ 'name' => 'max_mcast_grp', -+ 'offset' => '132', -+ 'type' => '1004' -+ }, -+ '29' => { -+ 'name' => 'max_mcast_qp_attach', -+ 'offset' => '136', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'max_mr_size', -+ 'offset' => '24', -+ 'type' => '1016' -+ }, -+ '30' => { -+ 'name' => 'max_total_mcast_qp_attach', -+ 'offset' => '140', -+ 'type' => '1004' -+ }, -+ '31' => { -+ 'name' => 'max_ah', -+ 'offset' => '144', -+ 'type' => '1004' -+ }, -+ '32' => { -+ 'name' => 'max_fmr', -+ 'offset' => '148', -+ 'type' => '1004' -+ }, -+ '33' => { -+ 'name' => 'max_map_per_fmr', -+ 'offset' => '152', -+ 'type' => '1004' -+ }, -+ '34' => { -+ 'name' => 'max_srq', -+ 'offset' => '156', -+ 'type' => '1004' -+ }, -+ '35' => { -+ 'name' => 'max_srq_wr', -+ 'offset' => '160', -+ 'type' => '1004' -+ }, -+ '36' => { -+ 'name' => 'max_srq_sge', -+ 'offset' => '164', -+ 'type' => '1004' -+ }, -+ '37' => { -+ 'name' => 'max_pkeys', -+ 'offset' => '168', -+ 'type' => '992' -+ }, -+ '38' => { -+ 'name' => 'local_ca_ack_delay', -+ 'offset' => '170', -+ 'type' => '980' -+ }, -+ '39' => { -+ 'name' => 'phys_port_cnt', -+ 'offset' => '171', -+ 'type' => '980' -+ }, -+ '4' => { -+ 'name' => 'page_size_cap', -+ 'offset' => '32', -+ 'type' => '1016' -+ }, -+ '40' => { -+ 'name' => 'reserved', -+ 'offset' => '172', -+ 'type' => '79099' -+ }, -+ '5' => { -+ 'name' => 'vendor_id', -+ 'offset' => '40', -+ 'type' => '1004' -+ }, -+ '6' => { -+ 'name' => 'vendor_part_id', -+ 'offset' => '44', -+ 'type' => '1004' -+ }, -+ '7' => { -+ 'name' => 'hw_ver', -+ 'offset' => '48', -+ 'type' => '1004' -+ }, -+ '8' => { -+ 'name' => 'max_qp', -+ 'offset' => '52', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'max_qp_wr', -+ 'offset' => '56', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_query_device_resp', -+ 'Size' => '176', -+ 'Type' => 'Struct' -+ }, -+ '79099' => { -+ 'BaseType' => '980', -+ 'Name' => '__u8[4]', -+ 'Size' => '4', -+ 'Type' => 'Array' -+ }, -+ '79155' => { -+ 'Header' => undef, -+ 'Line' => '226', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rc_odp_caps', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'uc_odp_caps', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'ud_odp_caps', -+ 'offset' => '8', -+ 'type' => '1004' -+ } -+ }, -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '79204' => { -+ 'Header' => undef, -+ 'Line' => '224', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'general_caps', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'per_transport_caps', -+ 'offset' => '8', -+ 'type' => '79155' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '20', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_odp_caps', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '79259' => { -+ 'Header' => undef, -+ 'Line' => '234', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'max_rwq_indirection_tables', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'max_rwq_indirection_table_size', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'reserved', -+ 'offset' => '12', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_rss_caps', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '79325' => { -+ 'Header' => undef, -+ 'Line' => '245', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_rndv_hdr_size', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'max_num_tags', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'max_ops', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'max_sge', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'reserved', -+ 'offset' => '20', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_tm_caps', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '79418' => { -+ 'Header' => undef, -+ 'Line' => '259', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'base', -+ 'offset' => '0', -+ 'type' => '78548' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '176', -+ 'type' => '1004' -+ }, -+ '10' => { -+ 'name' => 'tm_caps', -+ 'offset' => '256', -+ 'type' => '79325' -+ }, -+ '11' => { -+ 'name' => 'cq_moderation_caps', -+ 'offset' => '280', -+ 'type' => '78185' -+ }, -+ '12' => { -+ 'name' => 'max_dm_size', -+ 'offset' => '288', -+ 'type' => '1016' -+ }, -+ '13' => { -+ 'name' => 'xrc_odp_caps', -+ 'offset' => '296', -+ 'type' => '1004' -+ }, -+ '14' => { -+ 'name' => 'reserved', -+ 'offset' => '300', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'response_length', -+ 'offset' => '180', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'odp_caps', -+ 'offset' => '184', -+ 'type' => '79204' -+ }, -+ '4' => { -+ 'name' => 'timestamp_mask', -+ 'offset' => '208', -+ 'type' => '1016' -+ }, -+ '5' => { -+ 'name' => 'hca_core_clock', -+ 'offset' => '216', -+ 'type' => '1016' -+ }, -+ '6' => { -+ 'name' => 'device_cap_flags_ex', -+ 'offset' => '224', -+ 'type' => '1016' -+ }, -+ '7' => { -+ 'name' => 'rss_caps', -+ 'offset' => '232', -+ 'type' => '79259' -+ }, -+ '8' => { -+ 'name' => 'max_wq_type_rq', -+ 'offset' => '248', -+ 'type' => '1004' -+ }, -+ '9' => { -+ 'name' => 'raw_packet_caps', -+ 'offset' => '252', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_query_device_resp', -+ 'Size' => '304', -+ 'Type' => 'Struct' -+ }, -+ '79656' => { -+ 'Header' => undef, -+ 'Line' => '277', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'offset' => '8', -+ 'type' => '980' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '9', -+ 'type' => '1544' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_query_port', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '80593' => { -+ 'Header' => undef, -+ 'Line' => '79', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'gid', -+ 'offset' => '0', -+ 'type' => '9296' -+ }, -+ '1' => { -+ 'name' => 'gid_index', -+ 'offset' => '16', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'port_num', -+ 'offset' => '20', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'gid_type', -+ 'offset' => '24', -+ 'type' => '944' -+ }, -+ '4' => { -+ 'name' => 'ndev_ifindex', -+ 'offset' => '28', -+ 'type' => '944' -+ } -+ }, -+ 'Name' => 'struct ibv_gid_entry', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '85' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '8639' => { -+ 'Header' => undef, -+ 'Line' => '1189', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'attr_mask', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'max_wr', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'srq_limit', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_modify_srq', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '8742' => { -+ 'Header' => undef, -+ 'Line' => '1197', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'srq_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_query_srq', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '8903' => { -+ 'Header' => undef, -+ 'Line' => '1254', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'attr_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'wq_handle', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'wq_state', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'curr_wq_state', -+ 'offset' => '12', -+ 'type' => '1004' -+ }, -+ '4' => { -+ 'name' => 'flags', -+ 'offset' => '16', -+ 'type' => '1004' -+ }, -+ '5' => { -+ 'name' => 'flags_mask', -+ 'offset' => '20', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_modify_wq', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '9075' => { -+ 'Header' => undef, -+ 'Line' => '1275', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'response_length', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'ind_tbl_handle', -+ 'offset' => '8', -+ 'type' => '1004' -+ }, -+ '3' => { -+ 'name' => 'ind_tbl_num', -+ 'offset' => '12', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_create_rwq_ind_table_resp', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '908' => { -+ 'BaseType' => '919', -+ 'Name' => 'void const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9146' => { -+ 'Header' => undef, -+ 'Line' => '1287', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq_count', -+ 'offset' => '0', -+ 'type' => '992' -+ }, -+ '1' => { -+ 'name' => 'cq_period', -+ 'offset' => '2', -+ 'type' => '992' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_cq_moderation', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '9189' => { -+ 'Header' => undef, -+ 'Line' => '1292', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq_handle', -+ 'offset' => '0', -+ 'type' => '1004' -+ }, -+ '1' => { -+ 'name' => 'attr_mask', -+ 'offset' => '4', -+ 'type' => '1004' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'offset' => '8', -+ 'type' => '9146' -+ }, -+ '3' => { -+ 'name' => 'reserved', -+ 'offset' => '12', -+ 'type' => '1004' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_ex_modify_cq', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '919' => { -+ 'BaseType' => '1', -+ 'Name' => 'void const', -+ 'Type' => 'Const' -+ }, -+ '920' => { -+ 'BaseType' => '99', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '92005' => { -+ 'Header' => undef, -+ 'Line' => '193', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'driver_data', -+ 'offset' => '8', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '92060' => { -+ 'Header' => undef, -+ 'Line' => '193', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '92005' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '78359' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '92090' => { -+ 'Header' => undef, -+ 'Line' => '193', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '92060' -+ } -+ }, -+ 'Name' => 'struct ibv_get_context', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '92310' => { -+ 'Header' => undef, -+ 'Line' => '203', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'response', -+ 'offset' => '0', -+ 'type' => '1016' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'offset' => '8', -+ 'type' => '980' -+ }, -+ '2' => { -+ 'name' => 'reserved', -+ 'offset' => '9', -+ 'type' => '1544' -+ }, -+ '3' => { -+ 'name' => 'driver_data', -+ 'offset' => '16', -+ 'type' => '1606' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '92391' => { -+ 'Header' => undef, -+ 'Line' => '203', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '92310' -+ }, -+ '1' => { -+ 'name' => 'core_payload', -+ 'offset' => '0', -+ 'type' => '79656' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '92421' => { -+ 'Header' => undef, -+ 'Line' => '203', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '1423' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '92391' -+ } -+ }, -+ 'Name' => 'struct ibv_query_port', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '9260' => { -+ 'Header' => undef, -+ 'Line' => '67', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'subnet_prefix', -+ 'offset' => '0', -+ 'type' => '1052' -+ }, -+ '1' => { -+ 'name' => 'interface_id', -+ 'offset' => '8', -+ 'type' => '1052' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '92605' => { -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '92645' -+ }, -+ '1' => { -+ 'name' => 'prev', -+ 'offset' => '8', -+ 'type' => '92645' -+ } -+ }, -+ 'Name' => 'struct list_node', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '92645' => { -+ 'BaseType' => '92605', -+ 'Name' => 'struct list_node*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '92651' => { -+ 'Header' => undef, -+ 'Line' => '130', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_GID_TYPE_SYSFS_IB_ROCE_V1', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_GID_TYPE_SYSFS_ROCE_V2', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum ibv_gid_type_sysfs', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '92719' => { -+ 'Header' => undef, -+ 'Line' => '201', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'modalias', -+ 'offset' => '0', -+ 'type' => '76632' -+ }, -+ '1' => { -+ 'name' => 'driver_id', -+ 'offset' => '0', -+ 'type' => '956' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '92753' => { -+ 'Header' => undef, -+ 'Line' => '199', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'driver_data', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'u', -+ 'offset' => '8', -+ 'type' => '92719' -+ }, -+ '2' => { -+ 'name' => 'vendor', -+ 'offset' => '16', -+ 'type' => '932' -+ }, -+ '3' => { -+ 'name' => 'device', -+ 'offset' => '18', -+ 'type' => '932' -+ }, -+ '4' => { -+ 'name' => 'kind', -+ 'offset' => '20', -+ 'type' => '920' -+ } -+ }, -+ 'Name' => 'struct verbs_match_ent', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '92830' => { -+ 'BaseType' => '92753', -+ 'Name' => 'struct verbs_match_ent const', -+ 'Size' => '24', -+ 'Type' => 'Const' -+ }, -+ '92835' => { -+ 'Header' => undef, -+ 'Line' => '249', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'entry', -+ 'offset' => '0', -+ 'type' => '92605' -+ }, -+ '1' => { -+ 'name' => 'provider_data', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '10' => { -+ 'name' => 'driver_id', -+ 'offset' => '952', -+ 'type' => '944' -+ }, -+ '11' => { -+ 'name' => 'node_type', -+ 'offset' => '956', -+ 'type' => '9355' -+ }, -+ '12' => { -+ 'name' => 'ibdev_idx', -+ 'offset' => '960', -+ 'type' => '130' -+ }, -+ '13' => { -+ 'name' => 'num_ports', -+ 'offset' => '964', -+ 'type' => '944' -+ }, -+ '14' => { -+ 'name' => 'abi_ver', -+ 'offset' => '968', -+ 'type' => '944' -+ }, -+ '15' => { -+ 'name' => 'time_created', -+ 'offset' => '976', -+ 'type' => '52772' -+ }, -+ '2' => { -+ 'name' => 'match', -+ 'offset' => '24', -+ 'type' => '93076' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'offset' => '32', -+ 'type' => '64' -+ }, -+ '4' => { -+ 'name' => 'sysfs_name', -+ 'offset' => '36', -+ 'type' => '10173' -+ }, -+ '5' => { -+ 'name' => 'sysfs_cdev', -+ 'offset' => '104', -+ 'type' => '76662' -+ }, -+ '6' => { -+ 'name' => 'ibdev_name', -+ 'offset' => '112', -+ 'type' => '10173' -+ }, -+ '7' => { -+ 'name' => 'ibdev_path', -+ 'offset' => '176', -+ 'type' => '18186' -+ }, -+ '8' => { -+ 'name' => 'modalias', -+ 'offset' => '432', -+ 'type' => '93082' -+ }, -+ '9' => { -+ 'name' => 'node_guid', -+ 'offset' => '944', -+ 'type' => '956' -+ } -+ }, -+ 'Name' => 'struct verbs_sysfs_dev', -+ 'Size' => '992', -+ 'Type' => 'Struct' -+ }, -+ '9296' => { -+ 'Header' => undef, -+ 'Line' => '65', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'raw', -+ 'offset' => '0', -+ 'type' => '9339' -+ }, -+ '1' => { -+ 'name' => 'global', -+ 'offset' => '0', -+ 'type' => '9260' -+ } -+ }, -+ 'Name' => 'union ibv_gid', -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '93076' => { -+ 'BaseType' => '92830', -+ 'Name' => 'struct verbs_match_ent const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '93082' => { -+ 'BaseType' => '186', -+ 'Name' => 'char[512]', -+ 'Size' => '512', -+ 'Type' => 'Array' -+ }, -+ '93099' => { -+ 'Header' => undef, -+ 'Line' => '269', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'name', -+ 'offset' => '0', -+ 'type' => '76632' -+ }, -+ '1' => { -+ 'name' => 'match_min_abi_version', -+ 'offset' => '8', -+ 'type' => '944' -+ }, -+ '2' => { -+ 'name' => 'match_max_abi_version', -+ 'offset' => '12', -+ 'type' => '944' -+ }, -+ '3' => { -+ 'name' => 'match_table', -+ 'offset' => '16', -+ 'type' => '93076' -+ }, -+ '4' => { -+ 'name' => 'static_providers', -+ 'offset' => '24', -+ 'type' => '93259' -+ }, -+ '5' => { -+ 'name' => 'match_device', -+ 'offset' => '32', -+ 'type' => '93292' -+ }, -+ '6' => { -+ 'name' => 'alloc_context', -+ 'offset' => '40', -+ 'type' => '93329' -+ }, -+ '7' => { -+ 'name' => 'import_context', -+ 'offset' => '48', -+ 'type' => '93355' -+ }, -+ '8' => { -+ 'name' => 'alloc_device', -+ 'offset' => '56', -+ 'type' => '93487' -+ }, -+ '9' => { -+ 'name' => 'uninit_device', -+ 'offset' => '64', -+ 'type' => '93504' -+ } -+ }, -+ 'Name' => 'struct verbs_device_ops', -+ 'Size' => '72', -+ 'Type' => 'Struct' -+ }, -+ '932' => { -+ 'BaseType' => '118', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => 'uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '93254' => { -+ 'BaseType' => '93099', -+ 'Name' => 'struct verbs_device_ops const', -+ 'Size' => '72', -+ 'Type' => 'Const' -+ }, -+ '93259' => { -+ 'BaseType' => '93265', -+ 'Name' => 'struct verbs_device_ops const**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '93265' => { -+ 'BaseType' => '93254', -+ 'Name' => 'struct verbs_device_ops const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '93286' => { -+ 'BaseType' => '92835', -+ 'Name' => 'struct verbs_sysfs_dev*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '93292' => { -+ 'Name' => '_Bool(*)(struct verbs_sysfs_dev*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '93286' -+ } -+ }, -+ 'Return' => '19039', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '93323' => { -+ 'BaseType' => '65394', -+ 'Name' => 'struct verbs_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '93329' => { -+ 'Name' => 'struct verbs_context*(*)(struct ibv_device*, int, void*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '18013' -+ }, -+ '1' => { -+ 'type' => '130' -+ }, -+ '2' => { -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '93323', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9334' => { -+ 'BaseType' => '9296', -+ 'Name' => 'union ibv_gid const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '93355' => { -+ 'Name' => 'struct verbs_context*(*)(struct ibv_device*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '18013' -+ }, -+ '1' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '93323', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '93361' => { -+ 'Header' => undef, -+ 'Line' => '290', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'device', -+ 'offset' => '0', -+ 'type' => '18019' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'offset' => '664', -+ 'type' => '93265' -+ }, -+ '2' => { -+ 'name' => 'refcount', -+ 'offset' => '672', -+ 'type' => '24514' -+ }, -+ '3' => { -+ 'name' => 'entry', -+ 'offset' => '680', -+ 'type' => '92605' -+ }, -+ '4' => { -+ 'name' => 'sysfs', -+ 'offset' => '696', -+ 'type' => '93286' -+ }, -+ '5' => { -+ 'name' => 'core_support', -+ 'offset' => '704', -+ 'type' => '956' -+ } -+ }, -+ 'Name' => 'struct verbs_device', -+ 'Size' => '712', -+ 'Type' => 'Struct' -+ }, -+ '9339' => { -+ 'BaseType' => '920', -+ 'Name' => 'uint8_t[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '93481' => { -+ 'BaseType' => '93361', -+ 'Name' => 'struct verbs_device*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '93487' => { -+ 'Name' => 'struct verbs_device*(*)(struct verbs_sysfs_dev*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '93286' -+ } -+ }, -+ 'Return' => '93481', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '93504' => { -+ 'Name' => 'void(*)(struct verbs_device*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '93481' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9355' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_NODE_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_NODE_CA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_NODE_SWITCH', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_NODE_ROUTER', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_NODE_RNIC', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_NODE_USNIC', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_NODE_USNIC_UDP', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_NODE_UNSPECIFIED', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_node_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '9422' => { -+ 'Header' => undef, -+ 'Line' => '106', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_TRANSPORT_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_TRANSPORT_IB', -+ 'value' => '0' -+ }, -+ '2' => { -+ 'name' => 'IBV_TRANSPORT_IWARP', -+ 'value' => '1' -+ }, -+ '3' => { -+ 'name' => 'IBV_TRANSPORT_USNIC', -+ 'value' => '2' -+ }, -+ '4' => { -+ 'name' => 'IBV_TRANSPORT_USNIC_UDP', -+ 'value' => '3' -+ }, -+ '5' => { -+ 'name' => 'IBV_TRANSPORT_UNSPECIFIED', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum ibv_transport_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '944' => { -+ 'BaseType' => '137', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '9477' => { -+ 'Header' => undef, -+ 'Line' => '155', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_ATOMIC_NONE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_ATOMIC_HCA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_ATOMIC_GLOB', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_atomic_cap', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '9514' => { -+ 'Header' => undef, -+ 'Line' => '1986', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'device', -+ 'offset' => '0', -+ 'type' => '18013' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'offset' => '8', -+ 'type' => '18202' -+ }, -+ '2' => { -+ 'name' => 'cmd_fd', -+ 'offset' => '264', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'async_fd', -+ 'offset' => '268', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'num_comp_vectors', -+ 'offset' => '272', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '280', -+ 'type' => '822' -+ }, -+ '6' => { -+ 'name' => 'abi_compat', -+ 'offset' => '320', -+ 'type' => '71' -+ } -+ }, -+ 'Name' => 'struct ibv_context', -+ 'Size' => '328', -+ 'Type' => 'Struct' -+ }, -+ '956' => { -+ 'BaseType' => '156', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '95747' => { -+ 'BaseType' => '79418', -+ 'Name' => 'struct ib_uverbs_ex_query_device_resp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '95753' => { -+ 'BaseType' => '52', -+ 'Name' => 'size_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9633' => { -+ 'BaseType' => '9514', -+ 'Name' => 'struct ibv_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9639' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fw_ver', -+ 'offset' => '0', -+ 'type' => '10173' -+ }, -+ '1' => { -+ 'name' => 'node_guid', -+ 'offset' => '64', -+ 'type' => '1052' -+ }, -+ '10' => { -+ 'name' => 'device_cap_flags', -+ 'offset' => '116', -+ 'type' => '64' -+ }, -+ '11' => { -+ 'name' => 'max_sge', -+ 'offset' => '120', -+ 'type' => '130' -+ }, -+ '12' => { -+ 'name' => 'max_sge_rd', -+ 'offset' => '124', -+ 'type' => '130' -+ }, -+ '13' => { -+ 'name' => 'max_cq', -+ 'offset' => '128', -+ 'type' => '130' -+ }, -+ '14' => { -+ 'name' => 'max_cqe', -+ 'offset' => '132', -+ 'type' => '130' -+ }, -+ '15' => { -+ 'name' => 'max_mr', -+ 'offset' => '136', -+ 'type' => '130' -+ }, -+ '16' => { -+ 'name' => 'max_pd', -+ 'offset' => '140', -+ 'type' => '130' -+ }, -+ '17' => { -+ 'name' => 'max_qp_rd_atom', -+ 'offset' => '144', -+ 'type' => '130' -+ }, -+ '18' => { -+ 'name' => 'max_ee_rd_atom', -+ 'offset' => '148', -+ 'type' => '130' -+ }, -+ '19' => { -+ 'name' => 'max_res_rd_atom', -+ 'offset' => '152', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'sys_image_guid', -+ 'offset' => '72', -+ 'type' => '1052' -+ }, -+ '20' => { -+ 'name' => 'max_qp_init_rd_atom', -+ 'offset' => '156', -+ 'type' => '130' -+ }, -+ '21' => { -+ 'name' => 'max_ee_init_rd_atom', -+ 'offset' => '160', -+ 'type' => '130' -+ }, -+ '22' => { -+ 'name' => 'atomic_cap', -+ 'offset' => '164', -+ 'type' => '9477' -+ }, -+ '23' => { -+ 'name' => 'max_ee', -+ 'offset' => '168', -+ 'type' => '130' -+ }, -+ '24' => { -+ 'name' => 'max_rdd', -+ 'offset' => '172', -+ 'type' => '130' -+ }, -+ '25' => { -+ 'name' => 'max_mw', -+ 'offset' => '176', -+ 'type' => '130' -+ }, -+ '26' => { -+ 'name' => 'max_raw_ipv6_qp', -+ 'offset' => '180', -+ 'type' => '130' -+ }, -+ '27' => { -+ 'name' => 'max_raw_ethy_qp', -+ 'offset' => '184', -+ 'type' => '130' -+ }, -+ '28' => { -+ 'name' => 'max_mcast_grp', -+ 'offset' => '188', -+ 'type' => '130' -+ }, -+ '29' => { -+ 'name' => 'max_mcast_qp_attach', -+ 'offset' => '192', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'max_mr_size', -+ 'offset' => '80', -+ 'type' => '956' -+ }, -+ '30' => { -+ 'name' => 'max_total_mcast_qp_attach', -+ 'offset' => '196', -+ 'type' => '130' -+ }, -+ '31' => { -+ 'name' => 'max_ah', -+ 'offset' => '200', -+ 'type' => '130' -+ }, -+ '32' => { -+ 'name' => 'max_fmr', -+ 'offset' => '204', -+ 'type' => '130' -+ }, -+ '33' => { -+ 'name' => 'max_map_per_fmr', -+ 'offset' => '208', -+ 'type' => '130' -+ }, -+ '34' => { -+ 'name' => 'max_srq', -+ 'offset' => '212', -+ 'type' => '130' -+ }, -+ '35' => { -+ 'name' => 'max_srq_wr', -+ 'offset' => '216', -+ 'type' => '130' -+ }, -+ '36' => { -+ 'name' => 'max_srq_sge', -+ 'offset' => '220', -+ 'type' => '130' -+ }, -+ '37' => { -+ 'name' => 'max_pkeys', -+ 'offset' => '224', -+ 'type' => '932' -+ }, -+ '38' => { -+ 'name' => 'local_ca_ack_delay', -+ 'offset' => '226', -+ 'type' => '920' -+ }, -+ '39' => { -+ 'name' => 'phys_port_cnt', -+ 'offset' => '227', -+ 'type' => '920' -+ }, -+ '4' => { -+ 'name' => 'page_size_cap', -+ 'offset' => '88', -+ 'type' => '956' -+ }, -+ '5' => { -+ 'name' => 'vendor_id', -+ 'offset' => '96', -+ 'type' => '944' -+ }, -+ '6' => { -+ 'name' => 'vendor_part_id', -+ 'offset' => '100', -+ 'type' => '944' -+ }, -+ '7' => { -+ 'name' => 'hw_ver', -+ 'offset' => '104', -+ 'type' => '944' -+ }, -+ '8' => { -+ 'name' => 'max_qp', -+ 'offset' => '108', -+ 'type' => '130' -+ }, -+ '9' => { -+ 'name' => 'max_qp_wr', -+ 'offset' => '112', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_device_attr', -+ 'Size' => '232', -+ 'Type' => 'Struct' -+ }, -+ '97012' => { -+ 'BaseType' => '80593', -+ 'Name' => 'struct ibv_gid_entry*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '980' => { -+ 'BaseType' => '78', -+ 'Header' => undef, -+ 'Line' => '21', -+ 'Name' => '__u8', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '99' => { -+ 'BaseType' => '78', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '992' => { -+ 'BaseType' => '85', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => '__u16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'libibverbs.so.1.14.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__asprintf_chk@GLIBC_2.8' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__fdelt_chk@GLIBC_2.15' => 0, -+ '__fprintf_chk@GLIBC_2.3.4' => 0, -+ '__fxstat@GLIBC_2.2.5' => 0, -+ '__getdelim@GLIBC_2.2.5' => 0, -+ '__gmon_start__' => 0, -+ '__isoc99_sscanf@GLIBC_2.7' => 0, -+ '__snprintf_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ '__strcpy_chk@GLIBC_2.3.4' => 0, -+ '__vasprintf_chk@GLIBC_2.8' => 0, -+ '__vfprintf_chk@GLIBC_2.3.4' => 0, -+ '__xstat@GLIBC_2.2.5' => 0, -+ 'bind@GLIBC_2.2.5' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'close@GLIBC_2.2.5' => 0, -+ 'closedir@GLIBC_2.2.5' => 0, -+ 'dirfd@GLIBC_2.2.5' => 0, -+ 'dlerror@GLIBC_2.2.5' => 0, -+ 'dlopen@GLIBC_2.2.5' => 0, -+ 'fclose@GLIBC_2.2.5' => 0, -+ 'fcntl@GLIBC_2.2.5' => 0, -+ 'fgets@GLIBC_2.2.5' => 0, -+ 'fnmatch@GLIBC_2.2.5' => 0, -+ 'fopen@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'freeaddrinfo@GLIBC_2.2.5' => 0, -+ 'freeifaddrs@GLIBC_2.3' => 0, -+ 'fwrite@GLIBC_2.2.5' => 0, -+ 'getenv@GLIBC_2.2.5' => 0, -+ 'geteuid@GLIBC_2.2.5' => 0, -+ 'getifaddrs@GLIBC_2.3' => 0, -+ 'getpid@GLIBC_2.2.5' => 0, -+ 'getrandom@GLIBC_2.25' => 0, -+ 'getrlimit@GLIBC_2.2.5' => 0, -+ 'getuid@GLIBC_2.2.5' => 0, -+ 'if_nametoindex@GLIBC_2.2.5' => 0, -+ 'inotify_add_watch@GLIBC_2.4' => 0, -+ 'inotify_init1@GLIBC_2.9' => 0, -+ 'ioctl@GLIBC_2.2.5' => 0, -+ 'madvise@GLIBC_2.2.5' => 0, -+ 'malloc@GLIBC_2.2.5' => 0, -+ 'memcmp@GLIBC_2.2.5' => 0, -+ 'memcpy@GLIBC_2.14' => 0, -+ 'memset@GLIBC_2.2.5' => 0, -+ 'nl_addr_build' => 0, -+ 'nl_addr_clone' => 0, -+ 'nl_addr_fill_sockaddr' => 0, -+ 'nl_addr_get_binary_addr' => 0, -+ 'nl_addr_get_family' => 0, -+ 'nl_addr_get_len' => 0, -+ 'nl_addr_get_prefixlen' => 0, -+ 'nl_addr_info' => 0, -+ 'nl_addr_put' => 0, -+ 'nl_addr_set_prefixlen' => 0, -+ 'nl_cache_free' => 0, -+ 'nl_cache_mngt_provide' => 0, -+ 'nl_cache_mngt_unprovide' => 0, -+ 'nl_cache_refill' => 0, -+ 'nl_connect' => 0, -+ 'nl_msg_parse' => 0, -+ 'nl_object_match_filter' => 0, -+ 'nl_recvmsgs_default' => 0, -+ 'nl_send_auto' => 0, -+ 'nl_send_simple' => 0, -+ 'nl_socket_add_membership' => 0, -+ 'nl_socket_alloc' => 0, -+ 'nl_socket_disable_auto_ack' => 0, -+ 'nl_socket_disable_msg_peek' => 0, -+ 'nl_socket_disable_seq_check' => 0, -+ 'nl_socket_free' => 0, -+ 'nl_socket_get_fd' => 0, -+ 'nl_socket_modify_cb' => 0, -+ 'nl_socket_modify_err_cb' => 0, -+ 'nla_get_string' => 0, -+ 'nla_get_u32' => 0, -+ 'nla_get_u64' => 0, -+ 'nla_get_u8' => 0, -+ 'nla_put' => 0, -+ 'nlmsg_alloc_simple' => 0, -+ 'nlmsg_append' => 0, -+ 'nlmsg_free' => 0, -+ 'nlmsg_hdr' => 0, -+ 'nlmsg_parse' => 0, -+ 'open@GLIBC_2.2.5' => 0, -+ 'openat@GLIBC_2.4' => 0, -+ 'opendir@GLIBC_2.2.5' => 0, -+ 'poll@GLIBC_2.2.5' => 0, -+ 'posix_memalign@GLIBC_2.2.5' => 0, -+ 'pthread_cond_init@GLIBC_2.3.2' => 0, -+ 'pthread_cond_signal@GLIBC_2.3.2' => 0, -+ 'pthread_cond_wait@GLIBC_2.3.2' => 0, -+ 'pthread_mutex_init@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_lock@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_unlock@GLIBC_2.2.5' => 0, -+ 'rand_r@GLIBC_2.2.5' => 0, -+ 'read@GLIBC_2.2.5' => 0, -+ 'readdir@GLIBC_2.2.5' => 0, -+ 'rtnl_link_alloc_cache' => 0, -+ 'rtnl_link_get' => 0, -+ 'rtnl_link_get_addr' => 0, -+ 'rtnl_link_is_vlan' => 0, -+ 'rtnl_link_put' => 0, -+ 'rtnl_link_vlan_get_id' => 0, -+ 'rtnl_neigh_alloc' => 0, -+ 'rtnl_neigh_alloc_cache' => 0, -+ 'rtnl_neigh_get' => 0, -+ 'rtnl_neigh_get_lladdr' => 0, -+ 'rtnl_neigh_put' => 0, -+ 'rtnl_neigh_set_dst' => 0, -+ 'rtnl_neigh_set_ifindex' => 0, -+ 'rtnl_route_alloc_cache' => 0, -+ 'rtnl_route_get_pref_src' => 0, -+ 'rtnl_route_get_type' => 0, -+ 'rtnl_route_nexthop_n' => 0, -+ 'rtnl_route_nh_get_gateway' => 0, -+ 'rtnl_route_nh_get_ifindex' => 0, -+ 'select@GLIBC_2.2.5' => 0, -+ 'sendto@GLIBC_2.2.5' => 0, -+ 'snprintf@GLIBC_2.2.5' => 0, -+ 'socket@GLIBC_2.2.5' => 0, -+ 'stderr@GLIBC_2.2.5' => 0, -+ 'strcmp@GLIBC_2.2.5' => 0, -+ 'strcpy@GLIBC_2.2.5' => 0, -+ 'strdup@GLIBC_2.2.5' => 0, -+ 'strlen@GLIBC_2.2.5' => 0, -+ 'strndup@GLIBC_2.2.5' => 0, -+ 'strsep@GLIBC_2.2.5' => 0, -+ 'strspn@GLIBC_2.2.5' => 0, -+ 'strstr@GLIBC_2.2.5' => 0, -+ 'strtol@GLIBC_2.2.5' => 0, -+ 'strtoul@GLIBC_2.2.5' => 0, -+ 'sysconf@GLIBC_2.2.5' => 0, -+ 'time@GLIBC_2.2.5' => 0, -+ 'timerfd_create@GLIBC_2.8' => 0, -+ 'timerfd_settime@GLIBC_2.8' => 0, -+ 'write@GLIBC_2.2.5' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; -diff --git a/ABI/mlx4.dump b/ABI/mlx4.dump -new file mode 100644 -index 0000000..1b37a99 ---- /dev/null -+++ b/ABI/mlx4.dump -@@ -0,0 +1,3245 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'libmlx4.so.1.0.41.0', -+ 'LibraryVersion' => 'mlx4', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'libc.so.6' => 1, -+ 'libibverbs.so.1' => 1, -+ 'libpthread.so.0' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '182050' => { -+ 'Header' => undef, -+ 'Line' => '1051', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '13294' -+ }, -+ '2' => { -+ 'name' => 'mlx4_qp_attr', -+ 'type' => '111768' -+ } -+ }, -+ 'Return' => '4072', -+ 'ShortName' => 'mlx4dv_create_qp' -+ }, -+ '89173' => { -+ 'Header' => undef, -+ 'Line' => '401', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'attr_type', -+ 'type' => '84975' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'type' => '197' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => 'mlx4dv_set_context_attr' -+ }, -+ '89275' => { -+ 'Header' => undef, -+ 'Line' => '388', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx_in', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'attrs_out', -+ 'type' => '89362' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => 'mlx4dv_query_device' -+ }, -+ '89368' => { -+ 'Header' => undef, -+ 'Line' => '372', -+ 'Param' => { -+ '0' => { -+ 'name' => 'obj', -+ 'type' => '89821' -+ }, -+ '1' => { -+ 'name' => 'obj_type', -+ 'type' => '917' -+ } -+ }, -+ 'Return' => '64', -+ 'ShortName' => 'mlx4dv_init_obj' -+ } -+ }, -+ 'SymbolVersion' => { -+ 'mlx4dv_create_qp' => 'mlx4dv_create_qp@@MLX4_1.0', -+ 'mlx4dv_init_obj' => 'mlx4dv_init_obj@@MLX4_1.0', -+ 'mlx4dv_query_device' => 'mlx4dv_query_device@@MLX4_1.0', -+ 'mlx4dv_set_context_attr' => 'mlx4dv_set_context_attr@@MLX4_1.0' -+ }, -+ 'Symbols' => { -+ 'libmlx4.so.1.0.41.0' => { -+ 'mlx4dv_create_qp@@MLX4_1.0' => 1, -+ 'mlx4dv_init_obj@@MLX4_1.0' => 1, -+ 'mlx4dv_query_device@@MLX4_1.0' => 1, -+ 'mlx4dv_set_context_attr@@MLX4_1.0' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '10234' => { -+ 'Header' => undef, -+ 'Line' => '1918', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_dummy1', -+ 'offset' => '0', -+ 'type' => '10418' -+ }, -+ '1' => { -+ 'name' => '_dummy2', -+ 'offset' => '8', -+ 'type' => '10435' -+ } -+ }, -+ 'Name' => 'struct _ibv_device_ops', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '10297' => { -+ 'BaseType' => '10303', -+ 'Name' => 'struct ibv_device*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10303' => { -+ 'Header' => undef, -+ 'Line' => '1928', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_ops', -+ 'offset' => '0', -+ 'type' => '10234' -+ }, -+ '1' => { -+ 'name' => 'node_type', -+ 'offset' => '16', -+ 'type' => '1296' -+ }, -+ '2' => { -+ 'name' => 'transport_type', -+ 'offset' => '20', -+ 'type' => '1363' -+ }, -+ '3' => { -+ 'name' => 'name', -+ 'offset' => '24', -+ 'type' => '2324' -+ }, -+ '4' => { -+ 'name' => 'dev_name', -+ 'offset' => '88', -+ 'type' => '2324' -+ }, -+ '5' => { -+ 'name' => 'dev_path', -+ 'offset' => '152', -+ 'type' => '10441' -+ }, -+ '6' => { -+ 'name' => 'ibdev_path', -+ 'offset' => '408', -+ 'type' => '10441' -+ } -+ }, -+ 'Name' => 'struct ibv_device', -+ 'Size' => '664', -+ 'Type' => 'Struct' -+ }, -+ '104' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '10418' => { -+ 'Name' => 'struct ibv_context*(*)(struct ibv_device*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10297' -+ }, -+ '1' => { -+ 'type' => '64' -+ } -+ }, -+ 'Return' => '1706', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10435' => { -+ 'Name' => 'void(*)(struct ibv_context*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '1706' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10441' => { -+ 'BaseType' => '211', -+ 'Name' => 'char[256]', -+ 'Size' => '256', -+ 'Type' => 'Array' -+ }, -+ '10457' => { -+ 'Header' => undef, -+ 'Line' => '1943', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_compat_query_device', -+ 'offset' => '0', -+ 'type' => '10947' -+ }, -+ '1' => { -+ 'name' => '_compat_query_port', -+ 'offset' => '8', -+ 'type' => '10989' -+ }, -+ '10' => { -+ 'name' => '_compat_create_cq', -+ 'offset' => '80', -+ 'type' => '11000' -+ }, -+ '11' => { -+ 'name' => 'poll_cq', -+ 'offset' => '88', -+ 'type' => '11121' -+ }, -+ '12' => { -+ 'name' => 'req_notify_cq', -+ 'offset' => '96', -+ 'type' => '11147' -+ }, -+ '13' => { -+ 'name' => '_compat_cq_event', -+ 'offset' => '104', -+ 'type' => '11000' -+ }, -+ '14' => { -+ 'name' => '_compat_resize_cq', -+ 'offset' => '112', -+ 'type' => '11000' -+ }, -+ '15' => { -+ 'name' => '_compat_destroy_cq', -+ 'offset' => '120', -+ 'type' => '11000' -+ }, -+ '16' => { -+ 'name' => '_compat_create_srq', -+ 'offset' => '128', -+ 'type' => '11000' -+ }, -+ '17' => { -+ 'name' => '_compat_modify_srq', -+ 'offset' => '136', -+ 'type' => '11000' -+ }, -+ '18' => { -+ 'name' => '_compat_query_srq', -+ 'offset' => '144', -+ 'type' => '11000' -+ }, -+ '19' => { -+ 'name' => '_compat_destroy_srq', -+ 'offset' => '152', -+ 'type' => '11000' -+ }, -+ '2' => { -+ 'name' => '_compat_alloc_pd', -+ 'offset' => '16', -+ 'type' => '11000' -+ }, -+ '20' => { -+ 'name' => 'post_srq_recv', -+ 'offset' => '160', -+ 'type' => '11178' -+ }, -+ '21' => { -+ 'name' => '_compat_create_qp', -+ 'offset' => '168', -+ 'type' => '11000' -+ }, -+ '22' => { -+ 'name' => '_compat_query_qp', -+ 'offset' => '176', -+ 'type' => '11000' -+ }, -+ '23' => { -+ 'name' => '_compat_modify_qp', -+ 'offset' => '184', -+ 'type' => '11000' -+ }, -+ '24' => { -+ 'name' => '_compat_destroy_qp', -+ 'offset' => '192', -+ 'type' => '11000' -+ }, -+ '25' => { -+ 'name' => 'post_send', -+ 'offset' => '200', -+ 'type' => '11215' -+ }, -+ '26' => { -+ 'name' => 'post_recv', -+ 'offset' => '208', -+ 'type' => '11246' -+ }, -+ '27' => { -+ 'name' => '_compat_create_ah', -+ 'offset' => '216', -+ 'type' => '11000' -+ }, -+ '28' => { -+ 'name' => '_compat_destroy_ah', -+ 'offset' => '224', -+ 'type' => '11000' -+ }, -+ '29' => { -+ 'name' => '_compat_attach_mcast', -+ 'offset' => '232', -+ 'type' => '11000' -+ }, -+ '3' => { -+ 'name' => '_compat_dealloc_pd', -+ 'offset' => '24', -+ 'type' => '11000' -+ }, -+ '30' => { -+ 'name' => '_compat_detach_mcast', -+ 'offset' => '240', -+ 'type' => '11000' -+ }, -+ '31' => { -+ 'name' => '_compat_async_event', -+ 'offset' => '248', -+ 'type' => '11000' -+ }, -+ '4' => { -+ 'name' => '_compat_reg_mr', -+ 'offset' => '32', -+ 'type' => '11000' -+ }, -+ '5' => { -+ 'name' => '_compat_rereg_mr', -+ 'offset' => '40', -+ 'type' => '11000' -+ }, -+ '6' => { -+ 'name' => '_compat_dereg_mr', -+ 'offset' => '48', -+ 'type' => '11000' -+ }, -+ '7' => { -+ 'name' => 'alloc_mw', -+ 'offset' => '56', -+ 'type' => '11026' -+ }, -+ '8' => { -+ 'name' => 'bind_mw', -+ 'offset' => '64', -+ 'type' => '11063' -+ }, -+ '9' => { -+ 'name' => 'dealloc_mw', -+ 'offset' => '72', -+ 'type' => '11084' -+ } -+ }, -+ 'Name' => 'struct ibv_context_ops', -+ 'Size' => '256', -+ 'Type' => 'Struct' -+ }, -+ '108674' => { -+ 'Header' => undef, -+ 'Line' => '425', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'inl_recv_sz', -+ 'offset' => '8', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct mlx4dv_qp_init_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '10941' => { -+ 'BaseType' => '1790', -+ 'Name' => 'struct ibv_device_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10947' => { -+ 'Name' => 'int(*)(struct ibv_context*, struct ibv_device_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'type' => '10941' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10978' => { -+ 'BaseType' => '10984', -+ 'Name' => 'struct _compat_ibv_port_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10984' => { -+ 'Name' => 'struct _compat_ibv_port_attr', -+ 'Type' => 'Struct' -+ }, -+ '10989' => { -+ 'Name' => 'int(*)(struct ibv_context*, uint8_t, struct _compat_ibv_port_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'type' => '881' -+ }, -+ '2' => { -+ 'type' => '10978' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11000' => { -+ 'Name' => 'void*(*)()', -+ 'Return' => '197', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11026' => { -+ 'Name' => 'struct ibv_mw*(*)(struct ibv_pd*, enum ibv_mw_type)', -+ 'Param' => { -+ '0' => { -+ 'type' => '5293' -+ }, -+ '1' => { -+ 'type' => '5299' -+ } -+ }, -+ 'Return' => '7399', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11057' => { -+ 'BaseType' => '7984', -+ 'Name' => 'struct ibv_mw_bind*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11063' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_mw*, struct ibv_mw_bind*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '4072' -+ }, -+ '1' => { -+ 'type' => '7399' -+ }, -+ '2' => { -+ 'type' => '11057' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11084' => { -+ 'Name' => 'int(*)(struct ibv_mw*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7399' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11115' => { -+ 'BaseType' => '4726', -+ 'Name' => 'struct ibv_wc*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11121' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int, struct ibv_wc*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '3870' -+ }, -+ '1' => { -+ 'type' => '64' -+ }, -+ '2' => { -+ 'type' => '11115' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11147' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '3870' -+ }, -+ '1' => { -+ 'type' => '64' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '111768' => { -+ 'BaseType' => '108674', -+ 'Name' => 'struct mlx4dv_qp_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11178' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '4190' -+ }, -+ '1' => { -+ 'type' => '7716' -+ }, -+ '2' => { -+ 'type' => '8066' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11209' => { -+ 'BaseType' => '7633', -+ 'Name' => 'struct ibv_send_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11215' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_send_wr*, struct ibv_send_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '4072' -+ }, -+ '1' => { -+ 'type' => '7633' -+ }, -+ '2' => { -+ 'type' => '11209' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11246' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '4072' -+ }, -+ '1' => { -+ 'type' => '7716' -+ }, -+ '2' => { -+ 'type' => '8066' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '118' => { -+ 'BaseType' => '97', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '1296' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_NODE_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_NODE_CA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_NODE_SWITCH', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_NODE_ROUTER', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_NODE_RNIC', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_NODE_USNIC', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_NODE_USNIC_UDP', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_NODE_UNSPECIFIED', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_node_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '13294' => { -+ 'BaseType' => '6322', -+ 'Name' => 'struct ibv_qp_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '13326' => { -+ 'BaseType' => '905', -+ 'Name' => 'uint32_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1363' => { -+ 'Header' => undef, -+ 'Line' => '106', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_TRANSPORT_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_TRANSPORT_IB', -+ 'value' => '0' -+ }, -+ '2' => { -+ 'name' => 'IBV_TRANSPORT_IWARP', -+ 'value' => '1' -+ }, -+ '3' => { -+ 'name' => 'IBV_TRANSPORT_USNIC', -+ 'value' => '2' -+ }, -+ '4' => { -+ 'name' => 'IBV_TRANSPORT_USNIC_UDP', -+ 'value' => '3' -+ }, -+ '5' => { -+ 'name' => 'IBV_TRANSPORT_UNSPECIFIED', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum ibv_transport_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '13650' => { -+ 'BaseType' => '965', -+ 'Name' => '__be32*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '137' => { -+ 'BaseType' => '104', -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Name' => '__uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '1418' => { -+ 'Header' => undef, -+ 'Line' => '155', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_ATOMIC_NONE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_ATOMIC_HCA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_ATOMIC_GLOB', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_atomic_cap', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '149' => { -+ 'BaseType' => '76', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '1587' => { -+ 'Header' => undef, -+ 'Line' => '1986', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'device', -+ 'offset' => '0', -+ 'type' => '10297' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'offset' => '8', -+ 'type' => '10457' -+ }, -+ '2' => { -+ 'name' => 'cmd_fd', -+ 'offset' => '264', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'async_fd', -+ 'offset' => '268', -+ 'type' => '64' -+ }, -+ '4' => { -+ 'name' => 'num_comp_vectors', -+ 'offset' => '272', -+ 'type' => '64' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '280', -+ 'type' => '762' -+ }, -+ '6' => { -+ 'name' => 'abi_compat', -+ 'offset' => '320', -+ 'type' => '197' -+ } -+ }, -+ 'Name' => 'struct ibv_context', -+ 'Size' => '328', -+ 'Type' => 'Struct' -+ }, -+ '161' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1706' => { -+ 'BaseType' => '1587', -+ 'Name' => 'struct ibv_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '173' => { -+ 'BaseType' => '83', -+ 'Header' => undef, -+ 'Line' => '152', -+ 'Name' => '__off_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1790' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fw_ver', -+ 'offset' => '0', -+ 'type' => '2324' -+ }, -+ '1' => { -+ 'name' => 'node_guid', -+ 'offset' => '64', -+ 'type' => '977' -+ }, -+ '10' => { -+ 'name' => 'device_cap_flags', -+ 'offset' => '116', -+ 'type' => '76' -+ }, -+ '11' => { -+ 'name' => 'max_sge', -+ 'offset' => '120', -+ 'type' => '64' -+ }, -+ '12' => { -+ 'name' => 'max_sge_rd', -+ 'offset' => '124', -+ 'type' => '64' -+ }, -+ '13' => { -+ 'name' => 'max_cq', -+ 'offset' => '128', -+ 'type' => '64' -+ }, -+ '14' => { -+ 'name' => 'max_cqe', -+ 'offset' => '132', -+ 'type' => '64' -+ }, -+ '15' => { -+ 'name' => 'max_mr', -+ 'offset' => '136', -+ 'type' => '64' -+ }, -+ '16' => { -+ 'name' => 'max_pd', -+ 'offset' => '140', -+ 'type' => '64' -+ }, -+ '17' => { -+ 'name' => 'max_qp_rd_atom', -+ 'offset' => '144', -+ 'type' => '64' -+ }, -+ '18' => { -+ 'name' => 'max_ee_rd_atom', -+ 'offset' => '148', -+ 'type' => '64' -+ }, -+ '19' => { -+ 'name' => 'max_res_rd_atom', -+ 'offset' => '152', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'sys_image_guid', -+ 'offset' => '72', -+ 'type' => '977' -+ }, -+ '20' => { -+ 'name' => 'max_qp_init_rd_atom', -+ 'offset' => '156', -+ 'type' => '64' -+ }, -+ '21' => { -+ 'name' => 'max_ee_init_rd_atom', -+ 'offset' => '160', -+ 'type' => '64' -+ }, -+ '22' => { -+ 'name' => 'atomic_cap', -+ 'offset' => '164', -+ 'type' => '1418' -+ }, -+ '23' => { -+ 'name' => 'max_ee', -+ 'offset' => '168', -+ 'type' => '64' -+ }, -+ '24' => { -+ 'name' => 'max_rdd', -+ 'offset' => '172', -+ 'type' => '64' -+ }, -+ '25' => { -+ 'name' => 'max_mw', -+ 'offset' => '176', -+ 'type' => '64' -+ }, -+ '26' => { -+ 'name' => 'max_raw_ipv6_qp', -+ 'offset' => '180', -+ 'type' => '64' -+ }, -+ '27' => { -+ 'name' => 'max_raw_ethy_qp', -+ 'offset' => '184', -+ 'type' => '64' -+ }, -+ '28' => { -+ 'name' => 'max_mcast_grp', -+ 'offset' => '188', -+ 'type' => '64' -+ }, -+ '29' => { -+ 'name' => 'max_mcast_qp_attach', -+ 'offset' => '192', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'max_mr_size', -+ 'offset' => '80', -+ 'type' => '917' -+ }, -+ '30' => { -+ 'name' => 'max_total_mcast_qp_attach', -+ 'offset' => '196', -+ 'type' => '64' -+ }, -+ '31' => { -+ 'name' => 'max_ah', -+ 'offset' => '200', -+ 'type' => '64' -+ }, -+ '32' => { -+ 'name' => 'max_fmr', -+ 'offset' => '204', -+ 'type' => '64' -+ }, -+ '33' => { -+ 'name' => 'max_map_per_fmr', -+ 'offset' => '208', -+ 'type' => '64' -+ }, -+ '34' => { -+ 'name' => 'max_srq', -+ 'offset' => '212', -+ 'type' => '64' -+ }, -+ '35' => { -+ 'name' => 'max_srq_wr', -+ 'offset' => '216', -+ 'type' => '64' -+ }, -+ '36' => { -+ 'name' => 'max_srq_sge', -+ 'offset' => '220', -+ 'type' => '64' -+ }, -+ '37' => { -+ 'name' => 'max_pkeys', -+ 'offset' => '224', -+ 'type' => '893' -+ }, -+ '38' => { -+ 'name' => 'local_ca_ack_delay', -+ 'offset' => '226', -+ 'type' => '881' -+ }, -+ '39' => { -+ 'name' => 'phys_port_cnt', -+ 'offset' => '227', -+ 'type' => '881' -+ }, -+ '4' => { -+ 'name' => 'page_size_cap', -+ 'offset' => '88', -+ 'type' => '917' -+ }, -+ '5' => { -+ 'name' => 'vendor_id', -+ 'offset' => '96', -+ 'type' => '905' -+ }, -+ '6' => { -+ 'name' => 'vendor_part_id', -+ 'offset' => '100', -+ 'type' => '905' -+ }, -+ '7' => { -+ 'name' => 'hw_ver', -+ 'offset' => '104', -+ 'type' => '905' -+ }, -+ '8' => { -+ 'name' => 'max_qp', -+ 'offset' => '108', -+ 'type' => '64' -+ }, -+ '9' => { -+ 'name' => 'max_qp_wr', -+ 'offset' => '112', -+ 'type' => '64' -+ } -+ }, -+ 'Name' => 'struct ibv_device_attr', -+ 'Size' => '232', -+ 'Type' => 'Struct' -+ }, -+ '197' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '211' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '218' => { -+ 'BaseType' => '173', -+ 'Header' => undef, -+ 'Line' => '85', -+ 'Name' => 'off_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '2324' => { -+ 'BaseType' => '211', -+ 'Name' => 'char[64]', -+ 'Size' => '64', -+ 'Type' => 'Array' -+ }, -+ '3729' => { -+ 'Header' => undef, -+ 'Line' => '1458', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '8940' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'offset' => '16', -+ 'type' => '197' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '905' -+ }, -+ '4' => { -+ 'name' => 'cqe', -+ 'offset' => '28', -+ 'type' => '64' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '762' -+ }, -+ '6' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '836' -+ }, -+ '7' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '120', -+ 'type' => '905' -+ }, -+ '8' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '124', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_cq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '3870' => { -+ 'BaseType' => '3729', -+ 'Name' => 'struct ibv_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3876' => { -+ 'Header' => undef, -+ 'Line' => '1252', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'qp_context', -+ 'offset' => '8', -+ 'type' => '197' -+ }, -+ '10' => { -+ 'name' => 'mutex', -+ 'offset' => '64', -+ 'type' => '762' -+ }, -+ '11' => { -+ 'name' => 'cond', -+ 'offset' => '104', -+ 'type' => '836' -+ }, -+ '12' => { -+ 'name' => 'events_completed', -+ 'offset' => '152', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '5293' -+ }, -+ '3' => { -+ 'name' => 'send_cq', -+ 'offset' => '24', -+ 'type' => '3870' -+ }, -+ '4' => { -+ 'name' => 'recv_cq', -+ 'offset' => '32', -+ 'type' => '3870' -+ }, -+ '5' => { -+ 'name' => 'srq', -+ 'offset' => '40', -+ 'type' => '4190' -+ }, -+ '6' => { -+ 'name' => 'handle', -+ 'offset' => '48', -+ 'type' => '905' -+ }, -+ '7' => { -+ 'name' => 'qp_num', -+ 'offset' => '52', -+ 'type' => '905' -+ }, -+ '8' => { -+ 'name' => 'state', -+ 'offset' => '56', -+ 'type' => '6651' -+ }, -+ '9' => { -+ 'name' => 'qp_type', -+ 'offset' => '60', -+ 'type' => '6098' -+ } -+ }, -+ 'Name' => 'struct ibv_qp', -+ 'Size' => '160', -+ 'Type' => 'Struct' -+ }, -+ '4072' => { -+ 'BaseType' => '3876', -+ 'Name' => 'struct ibv_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '4078' => { -+ 'Header' => undef, -+ 'Line' => '1212', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'srq_context', -+ 'offset' => '8', -+ 'type' => '197' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '5293' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '905' -+ }, -+ '4' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '762' -+ }, -+ '5' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '836' -+ }, -+ '6' => { -+ 'name' => 'events_completed', -+ 'offset' => '120', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_srq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '4190' => { -+ 'BaseType' => '4078', -+ 'Name' => 'struct ibv_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '4196' => { -+ 'Header' => undef, -+ 'Line' => '1234', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'wq_context', -+ 'offset' => '8', -+ 'type' => '197' -+ }, -+ '10' => { -+ 'name' => 'cond', -+ 'offset' => '96', -+ 'type' => '836' -+ }, -+ '11' => { -+ 'name' => 'events_completed', -+ 'offset' => '144', -+ 'type' => '905' -+ }, -+ '12' => { -+ 'name' => 'comp_mask', -+ 'offset' => '148', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '5293' -+ }, -+ '3' => { -+ 'name' => 'cq', -+ 'offset' => '24', -+ 'type' => '3870' -+ }, -+ '4' => { -+ 'name' => 'wq_num', -+ 'offset' => '32', -+ 'type' => '905' -+ }, -+ '5' => { -+ 'name' => 'handle', -+ 'offset' => '36', -+ 'type' => '905' -+ }, -+ '6' => { -+ 'name' => 'state', -+ 'offset' => '40', -+ 'type' => '5835' -+ }, -+ '7' => { -+ 'name' => 'wq_type', -+ 'offset' => '44', -+ 'type' => '5684' -+ }, -+ '8' => { -+ 'name' => 'post_recv', -+ 'offset' => '48', -+ 'type' => '8072' -+ }, -+ '9' => { -+ 'name' => 'mutex', -+ 'offset' => '56', -+ 'type' => '762' -+ } -+ }, -+ 'Name' => 'struct ibv_wq', -+ 'Size' => '152', -+ 'Type' => 'Struct' -+ }, -+ '4391' => { -+ 'BaseType' => '4196', -+ 'Name' => 'struct ibv_wq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '4397' => { -+ 'Header' => undef, -+ 'Line' => '483', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SUCCESS', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_LOC_LEN_ERR', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_REM_ACCESS_ERR', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_REM_OP_ERR', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_RETRY_EXC_ERR', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_RNR_RETRY_EXC_ERR', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_LOC_RDD_VIOL_ERR', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_REM_INV_RD_REQ_ERR', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_REM_ABORT_ERR', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_INV_EECN_ERR', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'IBV_WC_INV_EEC_STATE_ERR', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'IBV_WC_FATAL_ERR', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_LOC_QP_OP_ERR', -+ 'value' => '2' -+ }, -+ '20' => { -+ 'name' => 'IBV_WC_RESP_TIMEOUT_ERR', -+ 'value' => '20' -+ }, -+ '21' => { -+ 'name' => 'IBV_WC_GENERAL_ERR', -+ 'value' => '21' -+ }, -+ '22' => { -+ 'name' => 'IBV_WC_TM_ERR', -+ 'value' => '22' -+ }, -+ '23' => { -+ 'name' => 'IBV_WC_TM_RNDV_INCOMPLETE', -+ 'value' => '23' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_LOC_EEC_OP_ERR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_LOC_PROT_ERR', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_WR_FLUSH_ERR', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_MW_BIND_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_BAD_RESP_ERR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_LOC_ACCESS_ERR', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_REM_INV_REQ_ERR', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_status', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '45' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '4561' => { -+ 'Header' => undef, -+ 'Line' => '511', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SEND', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_RDMA_WRITE', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_TM_ADD', -+ 'value' => '130' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_TM_DEL', -+ 'value' => '131' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_TM_SYNC', -+ 'value' => '132' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_TM_RECV', -+ 'value' => '133' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_TM_NO_TAG', -+ 'value' => '134' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_DRIVER1', -+ 'value' => '135' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_DRIVER2', -+ 'value' => '136' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_DRIVER3', -+ 'value' => '137' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_RDMA_READ', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_COMP_SWAP', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_FETCH_ADD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_BIND_MW', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_LOCAL_INV', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_TSO', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_RECV', -+ 'value' => '128' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_RECV_RDMA_WITH_IMM', -+ 'value' => '129' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '4689' => { -+ 'Header' => undef, -+ 'Line' => '594', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '965' -+ }, -+ '1' => { -+ 'name' => 'invalidated_rkey', -+ 'offset' => '0', -+ 'type' => '905' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '4726' => { -+ 'Header' => undef, -+ 'Line' => '585', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'status', -+ 'offset' => '8', -+ 'type' => '4397' -+ }, -+ '10' => { -+ 'name' => 'slid', -+ 'offset' => '42', -+ 'type' => '893' -+ }, -+ '11' => { -+ 'name' => 'sl', -+ 'offset' => '44', -+ 'type' => '881' -+ }, -+ '12' => { -+ 'name' => 'dlid_path_bits', -+ 'offset' => '45', -+ 'type' => '881' -+ }, -+ '2' => { -+ 'name' => 'opcode', -+ 'offset' => '12', -+ 'type' => '4561' -+ }, -+ '3' => { -+ 'name' => 'vendor_err', -+ 'offset' => '16', -+ 'type' => '905' -+ }, -+ '4' => { -+ 'name' => 'byte_len', -+ 'offset' => '20', -+ 'type' => '905' -+ }, -+ '5' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '4689' -+ }, -+ '6' => { -+ 'name' => 'qp_num', -+ 'offset' => '28', -+ 'type' => '905' -+ }, -+ '7' => { -+ 'name' => 'src_qp', -+ 'offset' => '32', -+ 'type' => '905' -+ }, -+ '8' => { -+ 'name' => 'wc_flags', -+ 'offset' => '36', -+ 'type' => '76' -+ }, -+ '9' => { -+ 'name' => 'pkey_index', -+ 'offset' => '40', -+ 'type' => '893' -+ } -+ }, -+ 'Name' => 'struct ibv_wc', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '4914' => { -+ 'Header' => undef, -+ 'Line' => '619', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mr', -+ 'offset' => '0', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'offset' => '8', -+ 'type' => '917' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'offset' => '16', -+ 'type' => '917' -+ }, -+ '3' => { -+ 'name' => 'mw_access_flags', -+ 'offset' => '24', -+ 'type' => '76' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind_info', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '4989' => { -+ 'Header' => undef, -+ 'Line' => '662', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '5293' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'offset' => '16', -+ 'type' => '197' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'offset' => '24', -+ 'type' => '45' -+ }, -+ '4' => { -+ 'name' => 'handle', -+ 'offset' => '32', -+ 'type' => '905' -+ }, -+ '5' => { -+ 'name' => 'lkey', -+ 'offset' => '36', -+ 'type' => '905' -+ }, -+ '6' => { -+ 'name' => 'rkey', -+ 'offset' => '40', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_mr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '5101' => { -+ 'BaseType' => '4989', -+ 'Name' => 'struct ibv_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5107' => { -+ 'Header' => undef, -+ 'Line' => '626', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_pd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '516' => { -+ 'Name' => 'unsigned long long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '5264' => { -+ 'Header' => undef, -+ 'Line' => '651', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ } -+ }, -+ 'Name' => 'struct ibv_xrcd', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '5293' => { -+ 'BaseType' => '5107', -+ 'Name' => 'struct ibv_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5299' => { -+ 'Header' => undef, -+ 'Line' => '672', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MW_TYPE_1', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'IBV_MW_TYPE_2', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_mw_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '5331' => { -+ 'Header' => undef, -+ 'Line' => '677', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '5293' -+ }, -+ '2' => { -+ 'name' => 'rkey', -+ 'offset' => '16', -+ 'type' => '905' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '20', -+ 'type' => '905' -+ }, -+ '4' => { -+ 'name' => 'type', -+ 'offset' => '24', -+ 'type' => '5299' -+ } -+ }, -+ 'Name' => 'struct ibv_mw', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '5678' => { -+ 'BaseType' => '5264', -+ 'Name' => 'struct ibv_xrcd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5684' => { -+ 'Header' => undef, -+ 'Line' => '814', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WQT_RQ', -+ 'value' => '0' -+ } -+ }, -+ 'Name' => 'enum ibv_wq_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '57' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '5835' => { -+ 'Header' => undef, -+ 'Line' => '842', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WQS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WQS_RDY', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_WQS_ERR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WQS_UNKNOWN', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum ibv_wq_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '5964' => { -+ 'Header' => undef, -+ 'Line' => '874', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'ind_tbl_handle', -+ 'offset' => '8', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'ind_tbl_num', -+ 'offset' => '12', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_rwq_ind_table', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '6098' => { -+ 'Header' => undef, -+ 'Line' => '895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPT_RC', -+ 'value' => '2' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPT_UC', -+ 'value' => '3' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPT_UD', -+ 'value' => '4' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPT_RAW_PACKET', -+ 'value' => '8' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPT_XRC_SEND', -+ 'value' => '9' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPT_XRC_RECV', -+ 'value' => '10' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPT_DRIVER', -+ 'value' => '255' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '6160' => { -+ 'Header' => undef, -+ 'Line' => '905', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '0', -+ 'type' => '905' -+ }, -+ '1' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '4', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '8', -+ 'type' => '905' -+ }, -+ '3' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '12', -+ 'type' => '905' -+ }, -+ '4' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '16', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_cap', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '6245' => { -+ 'Header' => undef, -+ 'Line' => '955', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rx_hash_function', -+ 'offset' => '0', -+ 'type' => '881' -+ }, -+ '1' => { -+ 'name' => 'rx_hash_key_len', -+ 'offset' => '1', -+ 'type' => '881' -+ }, -+ '2' => { -+ 'name' => 'rx_hash_key', -+ 'offset' => '8', -+ 'type' => '6316' -+ }, -+ '3' => { -+ 'name' => 'rx_hash_fields_mask', -+ 'offset' => '16', -+ 'type' => '917' -+ } -+ }, -+ 'Name' => 'struct ibv_rx_hash_conf', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '6316' => { -+ 'BaseType' => '881', -+ 'Name' => 'uint8_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6322' => { -+ 'Header' => undef, -+ 'Line' => '964', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '197' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '3870' -+ }, -+ '10' => { -+ 'name' => 'create_flags', -+ 'offset' => '80', -+ 'type' => '905' -+ }, -+ '11' => { -+ 'name' => 'max_tso_header', -+ 'offset' => '84', -+ 'type' => '893' -+ }, -+ '12' => { -+ 'name' => 'rwq_ind_tbl', -+ 'offset' => '88', -+ 'type' => '6560' -+ }, -+ '13' => { -+ 'name' => 'rx_hash_conf', -+ 'offset' => '96', -+ 'type' => '6245' -+ }, -+ '14' => { -+ 'name' => 'source_qpn', -+ 'offset' => '120', -+ 'type' => '905' -+ }, -+ '15' => { -+ 'name' => 'send_ops_flags', -+ 'offset' => '128', -+ 'type' => '917' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '3870' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '4190' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '6160' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '6098' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '64' -+ }, -+ '7' => { -+ 'name' => 'comp_mask', -+ 'offset' => '60', -+ 'type' => '905' -+ }, -+ '8' => { -+ 'name' => 'pd', -+ 'offset' => '64', -+ 'type' => '5293' -+ }, -+ '9' => { -+ 'name' => 'xrcd', -+ 'offset' => '72', -+ 'type' => '5678' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr_ex', -+ 'Size' => '136', -+ 'Type' => 'Struct' -+ }, -+ '64' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '6560' => { -+ 'BaseType' => '5964', -+ 'Name' => 'struct ibv_rwq_ind_table*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6651' => { -+ 'Header' => undef, -+ 'Line' => '1033', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPS_INIT', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPS_RTR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPS_RTS', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPS_SQD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPS_SQE', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPS_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_QPS_UNKNOWN', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '6790' => { -+ 'Header' => undef, -+ 'Line' => '1086', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WR_RDMA_WRITE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WR_RDMA_WRITE_WITH_IMM', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WR_TSO', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WR_DRIVER1', -+ 'value' => '11' -+ }, -+ '2' => { -+ 'name' => 'IBV_WR_SEND', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WR_SEND_WITH_IMM', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WR_RDMA_READ', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WR_ATOMIC_CMP_AND_SWP', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WR_ATOMIC_FETCH_AND_ADD', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WR_LOCAL_INV', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WR_BIND_MW', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WR_SEND_WITH_INV', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wr_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '6930' => { -+ 'Header' => undef, -+ 'Line' => '1114', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'lkey', -+ 'offset' => '12', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_sge', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '6992' => { -+ 'Header' => undef, -+ 'Line' => '1130', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '965' -+ }, -+ '1' => { -+ 'name' => 'invalidate_rkey', -+ 'offset' => '0', -+ 'type' => '905' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '7029' => { -+ 'Header' => undef, -+ 'Line' => '1135', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '905' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '7068' => { -+ 'Header' => undef, -+ 'Line' => '1139', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'compare_add', -+ 'offset' => '8', -+ 'type' => '917' -+ }, -+ '2' => { -+ 'name' => 'swap', -+ 'offset' => '16', -+ 'type' => '917' -+ }, -+ '3' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '905' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '7135' => { -+ 'Header' => undef, -+ 'Line' => '1145', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ah', -+ 'offset' => '0', -+ 'type' => '7243' -+ }, -+ '1' => { -+ 'name' => 'remote_qpn', -+ 'offset' => '8', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'remote_qkey', -+ 'offset' => '12', -+ 'type' => '905' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '7187' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '5293' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '905' -+ } -+ }, -+ 'Name' => 'struct ibv_ah', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '7243' => { -+ 'BaseType' => '7187', -+ 'Name' => 'struct ibv_ah*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7249' => { -+ 'Header' => undef, -+ 'Line' => '1134', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdma', -+ 'offset' => '0', -+ 'type' => '7029' -+ }, -+ '1' => { -+ 'name' => 'atomic', -+ 'offset' => '0', -+ 'type' => '7068' -+ }, -+ '2' => { -+ 'name' => 'ud', -+ 'offset' => '0', -+ 'type' => '7135' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '7298' => { -+ 'Header' => undef, -+ 'Line' => '1152', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_srqn', -+ 'offset' => '0', -+ 'type' => '905' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '7323' => { -+ 'Header' => undef, -+ 'Line' => '1151', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'xrc', -+ 'offset' => '0', -+ 'type' => '7298' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '7347' => { -+ 'Header' => undef, -+ 'Line' => '1157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mw', -+ 'offset' => '0', -+ 'type' => '7399' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '4914' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '7399' => { -+ 'BaseType' => '5331', -+ 'Name' => 'struct ibv_mw*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7405' => { -+ 'Header' => undef, -+ 'Line' => '1162', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '197' -+ }, -+ '1' => { -+ 'name' => 'hdr_sz', -+ 'offset' => '8', -+ 'type' => '893' -+ }, -+ '2' => { -+ 'name' => 'mss', -+ 'offset' => '10', -+ 'type' => '893' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '7458' => { -+ 'Header' => undef, -+ 'Line' => '1156', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'bind_mw', -+ 'offset' => '0', -+ 'type' => '7347' -+ }, -+ '1' => { -+ 'name' => 'tso', -+ 'offset' => '0', -+ 'type' => '7405' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '7495' => { -+ 'Header' => undef, -+ 'Line' => '1120', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '7633' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '7639' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '64' -+ }, -+ '4' => { -+ 'name' => 'opcode', -+ 'offset' => '28', -+ 'type' => '6790' -+ }, -+ '5' => { -+ 'name' => 'send_flags', -+ 'offset' => '32', -+ 'type' => '76' -+ }, -+ '6' => { -+ 'name' => 'unnamed0', -+ 'offset' => '36', -+ 'type' => '6992' -+ }, -+ '7' => { -+ 'name' => 'wr', -+ 'offset' => '40', -+ 'type' => '7249' -+ }, -+ '8' => { -+ 'name' => 'qp_type', -+ 'offset' => '72', -+ 'type' => '7323' -+ }, -+ '9' => { -+ 'name' => 'unnamed1', -+ 'offset' => '80', -+ 'type' => '7458' -+ } -+ }, -+ 'Name' => 'struct ibv_send_wr', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '76' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '7633' => { -+ 'BaseType' => '7495', -+ 'Name' => 'struct ibv_send_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7639' => { -+ 'BaseType' => '6930', -+ 'Name' => 'struct ibv_sge*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7645' => { -+ 'Header' => undef, -+ 'Line' => '1170', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '7716' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '7639' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '64' -+ } -+ }, -+ 'Name' => 'struct ibv_recv_wr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '7716' => { -+ 'BaseType' => '7645', -+ 'Name' => 'struct ibv_recv_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7984' => { -+ 'Header' => undef, -+ 'Line' => '1206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '917' -+ }, -+ '1' => { -+ 'name' => 'send_flags', -+ 'offset' => '8', -+ 'type' => '76' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '4914' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '8066' => { -+ 'BaseType' => '7716', -+ 'Name' => 'struct ibv_recv_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8072' => { -+ 'Name' => 'int(*)(struct ibv_wq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '4391' -+ }, -+ '1' => { -+ 'type' => '7716' -+ }, -+ '2' => { -+ 'type' => '8066' -+ } -+ }, -+ 'Return' => '64', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '83' => { -+ 'Name' => 'long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '83900' => { -+ 'Header' => undef, -+ 'Line' => '161', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wqe_cnt', -+ 'offset' => '0', -+ 'type' => '905' -+ }, -+ '1' => { -+ 'name' => 'wqe_shift', -+ 'offset' => '4', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'offset', -+ 'offset' => '8', -+ 'type' => '64' -+ } -+ }, -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '83949' => { -+ 'Header' => undef, -+ 'Line' => '166', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wqe_cnt', -+ 'offset' => '0', -+ 'type' => '905' -+ }, -+ '1' => { -+ 'name' => 'wqe_shift', -+ 'offset' => '4', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'offset', -+ 'offset' => '8', -+ 'type' => '64' -+ } -+ }, -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '83998' => { -+ 'Header' => undef, -+ 'Line' => '171', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '197' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '45' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84034' => { -+ 'Header' => undef, -+ 'Line' => '157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdb', -+ 'offset' => '0', -+ 'type' => '13650' -+ }, -+ '1' => { -+ 'name' => 'sdb', -+ 'offset' => '8', -+ 'type' => '13326' -+ }, -+ '2' => { -+ 'name' => 'doorbell_qpn', -+ 'offset' => '16', -+ 'type' => '965' -+ }, -+ '3' => { -+ 'name' => 'sq', -+ 'offset' => '20', -+ 'type' => '83900' -+ }, -+ '4' => { -+ 'name' => 'rq', -+ 'offset' => '32', -+ 'type' => '83949' -+ }, -+ '5' => { -+ 'name' => 'buf', -+ 'offset' => '48', -+ 'type' => '83998' -+ }, -+ '6' => { -+ 'name' => 'comp_mask', -+ 'offset' => '64', -+ 'type' => '917' -+ }, -+ '7' => { -+ 'name' => 'uar_mmap_offset', -+ 'offset' => '72', -+ 'type' => '218' -+ } -+ }, -+ 'Name' => 'struct mlx4dv_qp', -+ 'Size' => '80', -+ 'Type' => 'Struct' -+ }, -+ '84181' => { -+ 'Header' => undef, -+ 'Line' => '184', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '197' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '45' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84217' => { -+ 'Header' => undef, -+ 'Line' => '183', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '84181' -+ }, -+ '1' => { -+ 'name' => 'cqe_cnt', -+ 'offset' => '16', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'cqn', -+ 'offset' => '20', -+ 'type' => '905' -+ }, -+ '3' => { -+ 'name' => 'set_ci_db', -+ 'offset' => '24', -+ 'type' => '13650' -+ }, -+ '4' => { -+ 'name' => 'arm_db', -+ 'offset' => '32', -+ 'type' => '13650' -+ }, -+ '5' => { -+ 'name' => 'arm_sn', -+ 'offset' => '40', -+ 'type' => '64' -+ }, -+ '6' => { -+ 'name' => 'cqe_size', -+ 'offset' => '44', -+ 'type' => '64' -+ }, -+ '7' => { -+ 'name' => 'comp_mask', -+ 'offset' => '48', -+ 'type' => '917' -+ }, -+ '8' => { -+ 'name' => 'cq_uar', -+ 'offset' => '56', -+ 'type' => '197' -+ } -+ }, -+ 'Name' => 'struct mlx4dv_cq', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '84348' => { -+ 'Header' => undef, -+ 'Line' => '199', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '197' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '45' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84384' => { -+ 'Header' => undef, -+ 'Line' => '198', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '84348' -+ }, -+ '1' => { -+ 'name' => 'wqe_shift', -+ 'offset' => '16', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'head', -+ 'offset' => '20', -+ 'type' => '64' -+ }, -+ '3' => { -+ 'name' => 'tail', -+ 'offset' => '24', -+ 'type' => '64' -+ }, -+ '4' => { -+ 'name' => 'db', -+ 'offset' => '32', -+ 'type' => '13650' -+ }, -+ '5' => { -+ 'name' => 'comp_mask', -+ 'offset' => '40', -+ 'type' => '917' -+ } -+ }, -+ 'Name' => 'struct mlx4dv_srq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '84475' => { -+ 'Header' => undef, -+ 'Line' => '212', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wqe_cnt', -+ 'offset' => '0', -+ 'type' => '905' -+ }, -+ '1' => { -+ 'name' => 'wqe_shift', -+ 'offset' => '4', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'offset', -+ 'offset' => '8', -+ 'type' => '64' -+ } -+ }, -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '84524' => { -+ 'Header' => undef, -+ 'Line' => '217', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '197' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '45' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84560' => { -+ 'Header' => undef, -+ 'Line' => '210', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdb', -+ 'offset' => '0', -+ 'type' => '13650' -+ }, -+ '1' => { -+ 'name' => 'rq', -+ 'offset' => '8', -+ 'type' => '84475' -+ }, -+ '2' => { -+ 'name' => 'buf', -+ 'offset' => '24', -+ 'type' => '84524' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '40', -+ 'type' => '917' -+ } -+ }, -+ 'Name' => 'struct mlx4dv_rwq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '84625' => { -+ 'Header' => undef, -+ 'Line' => '225', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '4072' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '84660' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84660' => { -+ 'BaseType' => '84034', -+ 'Name' => 'struct mlx4dv_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '84666' => { -+ 'Header' => undef, -+ 'Line' => '229', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '3870' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '84701' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84701' => { -+ 'BaseType' => '84217', -+ 'Name' => 'struct mlx4dv_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '84707' => { -+ 'Header' => undef, -+ 'Line' => '233', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '4190' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '84742' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84742' => { -+ 'BaseType' => '84384', -+ 'Name' => 'struct mlx4dv_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '84748' => { -+ 'Header' => undef, -+ 'Line' => '237', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '4391' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '84783' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84783' => { -+ 'BaseType' => '84560', -+ 'Name' => 'struct mlx4dv_rwq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '84789' => { -+ 'Header' => undef, -+ 'Line' => '224', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp', -+ 'offset' => '0', -+ 'type' => '84625' -+ }, -+ '1' => { -+ 'name' => 'cq', -+ 'offset' => '16', -+ 'type' => '84666' -+ }, -+ '2' => { -+ 'name' => 'srq', -+ 'offset' => '32', -+ 'type' => '84707' -+ }, -+ '3' => { -+ 'name' => 'rwq', -+ 'offset' => '48', -+ 'type' => '84748' -+ } -+ }, -+ 'Name' => 'struct mlx4dv_obj', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '84918' => { -+ 'Header' => undef, -+ 'Line' => '437', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'version', -+ 'offset' => '0', -+ 'type' => '881' -+ }, -+ '1' => { -+ 'name' => 'max_inl_recv_sz', -+ 'offset' => '4', -+ 'type' => '905' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '917' -+ } -+ }, -+ 'Name' => 'struct mlx4dv_context', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '84975' => { -+ 'Header' => undef, -+ 'Line' => '539', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX4DV_SET_CTX_ATTR_LOG_WQS_RANGE_SZ', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx4dv_set_ctx_attr_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '881' => { -+ 'BaseType' => '118', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '8884' => { -+ 'Header' => undef, -+ 'Line' => '1452', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '1706' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '8', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'refcnt', -+ 'offset' => '12', -+ 'type' => '64' -+ } -+ }, -+ 'Name' => 'struct ibv_comp_channel', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '893' => { -+ 'BaseType' => '137', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => 'uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '89362' => { -+ 'BaseType' => '84918', -+ 'Name' => 'struct mlx4dv_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8940' => { -+ 'BaseType' => '8884', -+ 'Name' => 'struct ibv_comp_channel*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '89821' => { -+ 'BaseType' => '84789', -+ 'Name' => 'struct mlx4dv_obj*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '905' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '917' => { -+ 'BaseType' => '161', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '941' => { -+ 'BaseType' => '76', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__u32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '953' => { -+ 'BaseType' => '516', -+ 'Header' => undef, -+ 'Line' => '31', -+ 'Name' => '__u64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '965' => { -+ 'BaseType' => '941', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__be32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '97' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '977' => { -+ 'BaseType' => '953', -+ 'Header' => undef, -+ 'Line' => '29', -+ 'Name' => '__be64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'libmlx4.so.1.0.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__gmon_start__' => 0, -+ '__printf_chk@GLIBC_2.3.4' => 0, -+ '__snprintf_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ '_verbs_init_and_alloc_context@IBVERBS_PRIVATE_34' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'fwrite@GLIBC_2.2.5' => 0, -+ 'ibv_cmd_alloc_mw@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_alloc_pd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_attach_mcast@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_close_xrcd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_cq_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_flow@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_qp_ex2@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_qp_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_rwq_ind_table@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_srq_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_wq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dealloc_mw@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dealloc_pd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dereg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_flow@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_rwq_ind_table@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_wq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_detach_mcast@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_get_context@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_wq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_open_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_open_xrcd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_device_any@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_port@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_reg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_rereg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_resize_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_dofork_range@IBVERBS_1.1' => 0, -+ 'ibv_dontfork_range@IBVERBS_1.1' => 0, -+ 'ibv_query_device@IBVERBS_1.1' => 0, -+ 'ibv_query_gid@IBVERBS_1.1' => 0, -+ 'ibv_query_port@IBVERBS_1.1' => 0, -+ 'ibv_resolve_eth_l2_from_gid@IBVERBS_1.1' => 0, -+ 'malloc@GLIBC_2.2.5' => 0, -+ 'memcpy@GLIBC_2.14' => 0, -+ 'memset@GLIBC_2.2.5' => 0, -+ 'mmap@GLIBC_2.2.5' => 0, -+ 'munmap@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_init@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_lock@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_unlock@GLIBC_2.2.5' => 0, -+ 'pthread_spin_init@GLIBC_2.2.5' => 0, -+ 'pthread_spin_lock@GLIBC_2.2.5' => 0, -+ 'pthread_spin_unlock@GLIBC_2.2.5' => 0, -+ 'stderr@GLIBC_2.2.5' => 0, -+ 'sysconf@GLIBC_2.2.5' => 0, -+ 'verbs_register_driver_34@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_set_ops@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_uninit_context@IBVERBS_PRIVATE_34' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; -diff --git a/ABI/mlx5.dump b/ABI/mlx5.dump -new file mode 100644 -index 0000000..180d00c ---- /dev/null -+++ b/ABI/mlx5.dump -@@ -0,0 +1,15572 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'libmlx5.so.1.23.41.0', -+ 'LibraryVersion' => 'mlx5', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'libc.so.6' => 1, -+ 'libibverbs.so.1' => 1, -+ 'libpthread.so.0' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '1162516' => { -+ 'Header' => undef, -+ 'Line' => '5526', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '267' -+ }, -+ '2' => { -+ 'name' => 'size', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'access', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '29560', -+ 'ShortName' => 'mlx5dv_devx_umem_reg' -+ }, -+ '1162721' => { -+ 'Header' => undef, -+ 'Line' => '5559', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_devx_umem', -+ 'type' => '29560' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_umem_dereg' -+ }, -+ '1184828' => { -+ 'Header' => undef, -+ 'Line' => '5804', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'info', -+ 'type' => '30859' -+ }, -+ '3' => { -+ 'name' => 'info_len', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => '_mlx5dv_query_port' -+ }, -+ '1253335' => { -+ 'Header' => undef, -+ 'Line' => '6014', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_qp_query' -+ }, -+ '1253463' => { -+ 'Header' => undef, -+ 'Line' => '6062', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_qp_modify' -+ }, -+ '1262050' => { -+ 'Header' => undef, -+ 'Line' => '2301', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '11342' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '1256719' -+ } -+ }, -+ 'Return' => '2938', -+ 'ShortName' => 'mlx5dv_open_device' -+ }, -+ '1262239' => { -+ 'Header' => undef, -+ 'Line' => '2295', -+ 'Param' => { -+ '0' => { -+ 'name' => 'device', -+ 'type' => '11342' -+ } -+ }, -+ 'Return' => '2098', -+ 'ShortName' => 'mlx5dv_is_supported' -+ }, -+ '1262738' => { -+ 'Header' => undef, -+ 'Line' => '2195', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibv_ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'type', -+ 'type' => '20910' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'type' => '267' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_set_context_attr' -+ }, -+ '1263705' => { -+ 'Header' => undef, -+ 'Line' => '2109', -+ 'Param' => { -+ '0' => { -+ 'name' => 'obj', -+ 'type' => '29971' -+ }, -+ '1' => { -+ 'name' => 'obj_type', -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => '__mlx5dv_init_obj_1_0' -+ }, -+ '1263764' => { -+ 'Alias' => '__mlx5dv_init_obj_1_2', -+ 'Header' => undef, -+ 'Line' => '2090', -+ 'Param' => { -+ '0' => { -+ 'name' => 'obj', -+ 'type' => '29971' -+ }, -+ '1' => { -+ 'name' => 'obj_type', -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_init_obj' -+ }, -+ '1264765' => { -+ 'Header' => undef, -+ 'Line' => '2037', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'qpn', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_reserved_qpn_dealloc' -+ }, -+ '1265771' => { -+ 'Header' => undef, -+ 'Line' => '1984', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'qpn', -+ 'type' => '14364' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_reserved_qpn_alloc' -+ }, -+ '1268088' => { -+ 'Header' => undef, -+ 'Line' => '1842', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'requestor', -+ 'type' => '30702' -+ }, -+ '2' => { -+ 'name' => 'responder', -+ 'type' => '30702' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_modify_qp_sched_elem' -+ }, -+ '1271341' => { -+ 'Header' => undef, -+ 'Line' => '1715', -+ 'Param' => { -+ '0' => { -+ 'name' => 'leaf', -+ 'type' => '30571' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_sched_leaf_destroy' -+ }, -+ '1271560' => { -+ 'Header' => undef, -+ 'Line' => '1693', -+ 'Param' => { -+ '0' => { -+ 'name' => 'node', -+ 'type' => '21628' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_sched_node_destroy' -+ }, -+ '1271779' => { -+ 'Header' => undef, -+ 'Line' => '1670', -+ 'Param' => { -+ '0' => { -+ 'name' => 'leaf', -+ 'type' => '30571' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '30539' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_sched_leaf_modify' -+ }, -+ '1271960' => { -+ 'Header' => undef, -+ 'Line' => '1642', -+ 'Param' => { -+ '0' => { -+ 'name' => 'node', -+ 'type' => '21628' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '30539' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_sched_node_modify' -+ }, -+ '1272141' => { -+ 'Header' => undef, -+ 'Line' => '1612', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '30539' -+ } -+ }, -+ 'Return' => '30571', -+ 'ShortName' => 'mlx5dv_sched_leaf_create' -+ }, -+ '1272386' => { -+ 'Header' => undef, -+ 'Line' => '1561', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '30539' -+ } -+ }, -+ 'Return' => '21628', -+ 'ShortName' => 'mlx5dv_sched_node_create' -+ }, -+ '1275854' => { -+ 'Header' => undef, -+ 'Line' => '1369', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'stream_id', -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dci_stream_id_reset' -+ }, -+ '1276845' => { -+ 'Header' => undef, -+ 'Line' => '1359', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'udp_sport', -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_modify_qp_udp_sport' -+ }, -+ '1277737' => { -+ 'Header' => undef, -+ 'Line' => '1320', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '1987' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_modify_qp_lag_port' -+ }, -+ '1278870' => { -+ 'Header' => undef, -+ 'Line' => '1242', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'port_num', -+ 'type' => '7345' -+ }, -+ '2' => { -+ 'name' => 'active_port_num', -+ 'type' => '7345' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_query_qp_lag_port' -+ }, -+ '1281928' => { -+ 'Header' => undef, -+ 'Line' => '973', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx_in', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'attrs_out', -+ 'type' => '30424' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_query_device' -+ }, -+ '1355191' => { -+ 'Header' => undef, -+ 'Line' => '3540', -+ 'Param' => { -+ '0' => { -+ 'name' => 'attr', -+ 'type' => '1355913' -+ } -+ }, -+ 'Return' => '1355907', -+ 'ShortName' => 'mlx5dv_get_vfio_device_list' -+ }, -+ '1355931' => { -+ 'Header' => undef, -+ 'Line' => '3520', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibctx', -+ 'type' => '2938' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_vfio_process_events' -+ }, -+ '1359784' => { -+ 'Header' => undef, -+ 'Line' => '3513', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibctx', -+ 'type' => '2938' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_vfio_get_events_fd' -+ }, -+ '1480084' => { -+ 'Header' => undef, -+ 'Line' => '4164', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_qp', -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'name' => 'wr_id', -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_qp_cancel_posted_send_wrs' -+ }, -+ '1665899' => { -+ 'Header' => undef, -+ 'Line' => '7441', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dveq', -+ 'type' => '30980' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_destroy_eq' -+ }, -+ '1666033' => { -+ 'Header' => undef, -+ 'Line' => '7428', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '30980', -+ 'ShortName' => 'mlx5dv_devx_create_eq' -+ }, -+ '1666280' => { -+ 'Header' => undef, -+ 'Line' => '7415', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dvmsi', -+ 'type' => '30912' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_free_msi_vector' -+ }, -+ '1666415' => { -+ 'Header' => undef, -+ 'Line' => '7403', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibctx', -+ 'type' => '2938' -+ } -+ }, -+ 'Return' => '30912', -+ 'ShortName' => 'mlx5dv_devx_alloc_msi_vector' -+ }, -+ '1666551' => { -+ 'Header' => undef, -+ 'Line' => '7391', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_pp', -+ 'type' => '29922' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mlx5dv_pp_free' -+ }, -+ '1667101' => { -+ 'Header' => undef, -+ 'Line' => '7358', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'pp_context_sz', -+ 'type' => '386' -+ }, -+ '2' => { -+ 'name' => 'pp_context', -+ 'type' => '1980' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '29922', -+ 'ShortName' => 'mlx5dv_pp_alloc' -+ }, -+ '1668793' => { -+ 'Header' => undef, -+ 'Line' => '7299', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_var', -+ 'type' => '29863' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mlx5dv_free_var' -+ }, -+ '1669343' => { -+ 'Header' => undef, -+ 'Line' => '7270', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '29863', -+ 'ShortName' => 'mlx5dv_alloc_var' -+ }, -+ '1670832' => { -+ 'Header' => undef, -+ 'Line' => '7213', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dek', -+ 'type' => '17626' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dek_destroy' -+ }, -+ '1671051' => { -+ 'Header' => undef, -+ 'Line' => '7189', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dek', -+ 'type' => '17626' -+ }, -+ '1' => { -+ 'name' => 'dek_attr', -+ 'type' => '29810' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dek_query' -+ }, -+ '1671970' => { -+ 'Header' => undef, -+ 'Line' => '7136', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'init_attr', -+ 'type' => '29778' -+ } -+ }, -+ 'Return' => '17626', -+ 'ShortName' => 'mlx5dv_dek_create' -+ }, -+ '1673345' => { -+ 'Header' => undef, -+ 'Line' => '7053', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_crypto_logout' -+ }, -+ '1673661' => { -+ 'Header' => undef, -+ 'Line' => '7020', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'state', -+ 'type' => '29725' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_crypto_login_query_state' -+ }, -+ '1674899' => { -+ 'Header' => undef, -+ 'Line' => '6957', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'login_attr', -+ 'type' => '29693' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_crypto_login' -+ }, -+ '1676286' => { -+ 'Header' => undef, -+ 'Line' => '6840', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_mkey', -+ 'type' => '17946' -+ }, -+ '1' => { -+ 'name' => 'err_info', -+ 'type' => '1676566' -+ }, -+ '2' => { -+ 'name' => 'err_info_size', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => '_mlx5dv_mkey_check' -+ }, -+ '1676656' => { -+ 'Header' => undef, -+ 'Line' => '6779', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_mkey', -+ 'type' => '17946' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_destroy_mkey' -+ }, -+ '1677121' => { -+ 'Header' => undef, -+ 'Line' => '6740', -+ 'Param' => { -+ '0' => { -+ 'name' => 'mkey_init_attr', -+ 'type' => '29640' -+ } -+ }, -+ 'Return' => '17946', -+ 'ShortName' => 'mlx5dv_create_mkey' -+ }, -+ '1680318' => { -+ 'Header' => undef, -+ 'Line' => '6624', -+ 'Param' => { -+ '0' => { -+ 'name' => 'event_channel', -+ 'type' => '29249' -+ }, -+ '1' => { -+ 'name' => 'event_data', -+ 'type' => '29469' -+ }, -+ '2' => { -+ 'name' => 'event_resp_len', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '1933', -+ 'ShortName' => 'mlx5dv_devx_get_event' -+ }, -+ '1680985' => { -+ 'Header' => undef, -+ 'Line' => '6510', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cmd_comp', -+ 'type' => '29200' -+ }, -+ '1' => { -+ 'name' => 'cmd_resp', -+ 'type' => '29432' -+ }, -+ '2' => { -+ 'name' => 'cmd_resp_len', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_get_async_cmd_comp' -+ }, -+ '1681345' => { -+ 'Header' => undef, -+ 'Line' => '6480', -+ 'Param' => { -+ '0' => { -+ 'name' => 'obj', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ }, -+ '4' => { -+ 'name' => 'wr_id', -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'name' => 'cmd_comp', -+ 'type' => '29200' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_obj_query_async' -+ }, -+ '1682907' => { -+ 'Header' => undef, -+ 'Line' => '6444', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_event_channel', -+ 'type' => '29249' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'type' => '128' -+ }, -+ '2' => { -+ 'name' => 'obj', -+ 'type' => '19143' -+ }, -+ '3' => { -+ 'name' => 'event_num', -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_subscribe_devx_event_fd' -+ }, -+ '1684210' => { -+ 'Header' => undef, -+ 'Line' => '6402', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_event_channel', -+ 'type' => '29249' -+ }, -+ '1' => { -+ 'name' => 'obj', -+ 'type' => '19143' -+ }, -+ '2' => { -+ 'name' => 'events_sz', -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'name' => 'events_num', -+ 'type' => '29313' -+ }, -+ '4' => { -+ 'name' => 'cookie', -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_subscribe_devx_event' -+ }, -+ '1685586' => { -+ 'Header' => undef, -+ 'Line' => '6363', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_event_channel', -+ 'type' => '29249' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mlx5dv_devx_destroy_event_channel' -+ }, -+ '1685821' => { -+ 'Header' => undef, -+ 'Line' => '6339', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '15599' -+ } -+ }, -+ 'Return' => '29249', -+ 'ShortName' => 'mlx5dv_devx_create_event_channel' -+ }, -+ '1686800' => { -+ 'Header' => undef, -+ 'Line' => '6295', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cmd_comp', -+ 'type' => '29200' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mlx5dv_devx_destroy_cmd_comp' -+ }, -+ '1686952' => { -+ 'Header' => undef, -+ 'Line' => '6276', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ } -+ }, -+ 'Return' => '29200', -+ 'ShortName' => 'mlx5dv_devx_create_cmd_comp' -+ }, -+ '1687672' => { -+ 'Header' => undef, -+ 'Line' => '6230', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ind_tbl', -+ 'type' => '7589' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_ind_tbl_modify' -+ }, -+ '1688929' => { -+ 'Header' => undef, -+ 'Line' => '6203', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ind_tbl', -+ 'type' => '7589' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_ind_tbl_query' -+ }, -+ '1690186' => { -+ 'Header' => undef, -+ 'Line' => '6175', -+ 'Param' => { -+ '0' => { -+ 'name' => 'wq', -+ 'type' => '5420' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_wq_modify' -+ }, -+ '1691441' => { -+ 'Header' => undef, -+ 'Line' => '6149', -+ 'Param' => { -+ '0' => { -+ 'name' => 'wq', -+ 'type' => '5420' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_wq_query' -+ }, -+ '1692696' => { -+ 'Header' => undef, -+ 'Line' => '6123', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '5219' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_srq_modify' -+ }, -+ '1693953' => { -+ 'Header' => undef, -+ 'Line' => '6097', -+ 'Param' => { -+ '0' => { -+ 'name' => 'srq', -+ 'type' => '5219' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_srq_query' -+ }, -+ '1698172' => { -+ 'Header' => undef, -+ 'Line' => '5988', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '4899' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_cq_modify' -+ }, -+ '1699427' => { -+ 'Header' => undef, -+ 'Line' => '5962', -+ 'Param' => { -+ '0' => { -+ 'name' => 'cq', -+ 'type' => '4899' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_cq_query' -+ }, -+ '1700682' => { -+ 'Header' => undef, -+ 'Line' => '5936', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'vector', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'eqn', -+ 'type' => '14364' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_query_eqn' -+ }, -+ '1713573' => { -+ 'Header' => undef, -+ 'Line' => '5513', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'umem_in', -+ 'type' => '29592' -+ } -+ }, -+ 'Return' => '29560', -+ 'ShortName' => 'mlx5dv_devx_umem_reg_ex' -+ }, -+ '1715766' => { -+ 'Header' => undef, -+ 'Line' => '5415', -+ 'Param' => { -+ '0' => { -+ 'name' => 'flow_matcher', -+ 'type' => '30312' -+ }, -+ '1' => { -+ 'name' => 'match_value', -+ 'type' => '18881' -+ }, -+ '2' => { -+ 'name' => 'num_actions', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'actions_attr', -+ 'type' => '30386' -+ } -+ }, -+ 'Return' => '13536', -+ 'ShortName' => 'mlx5dv_create_flow' -+ }, -+ '1727774' => { -+ 'Header' => undef, -+ 'Line' => '4833', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dm', -+ 'type' => '2974' -+ }, -+ '1' => { -+ 'name' => 'op', -+ 'type' => '1987' -+ } -+ }, -+ 'Return' => '267', -+ 'ShortName' => 'mlx5dv_dm_map_op_addr' -+ }, -+ '1733579' => { -+ 'Header' => undef, -+ 'Line' => '4574', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'esp', -+ 'type' => '13721' -+ }, -+ '2' => { -+ 'name' => 'mlx5_attr', -+ 'type' => '30203' -+ } -+ }, -+ 'Return' => '13715', -+ 'ShortName' => 'mlx5dv_create_flow_action_esp' -+ }, -+ '1738360' => { -+ 'Header' => undef, -+ 'Line' => '4255', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '14092' -+ }, -+ '2' => { -+ 'name' => 'mlx5_wq_attr', -+ 'type' => '30103' -+ } -+ }, -+ 'Return' => '5420', -+ 'ShortName' => 'mlx5dv_create_wq' -+ }, -+ '1750041' => { -+ 'Header' => undef, -+ 'Line' => '3354', -+ 'Param' => { -+ '0' => { -+ 'name' => 'qp', -+ 'type' => '9501' -+ } -+ }, -+ 'Return' => '17898', -+ 'ShortName' => 'mlx5dv_qp_ex_from_ibv_qp_ex' -+ }, -+ '1750091' => { -+ 'Header' => undef, -+ 'Line' => '3340', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'qp_attr', -+ 'type' => '14332' -+ }, -+ '2' => { -+ 'name' => 'mlx5_qp_attr', -+ 'type' => '30045' -+ } -+ }, -+ 'Return' => '5101', -+ 'ShortName' => 'mlx5dv_create_qp' -+ }, -+ '1750802' => { -+ 'Header' => undef, -+ 'Line' => '3307', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ah', -+ 'type' => '8272' -+ }, -+ '1' => { -+ 'name' => 'qp_num', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_map_ah_to_qp' -+ }, -+ '1773365' => { -+ 'Header' => undef, -+ 'Line' => '1198', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'cq_attr', -+ 'type' => '14156' -+ }, -+ '2' => { -+ 'name' => 'mlx5_cq_attr', -+ 'type' => '30008' -+ } -+ }, -+ 'Return' => '10507', -+ 'ShortName' => 'mlx5dv_create_cq' -+ }, -+ '316753' => { -+ 'Header' => undef, -+ 'Line' => '1633', -+ 'Param' => { -+ '0' => { -+ 'name' => 'rule', -+ 'type' => '314191' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_rule_destroy' -+ }, -+ '316843' => { -+ 'Header' => undef, -+ 'Line' => '220', -+ 'Param' => { -+ '0' => { -+ 'name' => 'tbl', -+ 'type' => '293256' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_table_destroy' -+ }, -+ '316866' => { -+ 'Header' => undef, -+ 'Line' => '1567', -+ 'Param' => { -+ '0' => { -+ 'name' => 'matcher', -+ 'type' => '314108' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_matcher_destroy' -+ }, -+ '316889' => { -+ 'Header' => undef, -+ 'Line' => '1613', -+ 'Param' => { -+ '0' => { -+ 'name' => 'matcher', -+ 'type' => '314108' -+ }, -+ '1' => { -+ 'name' => 'value', -+ 'type' => '18881' -+ }, -+ '2' => { -+ 'name' => 'num_actions', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'actions', -+ 'type' => '293396' -+ } -+ }, -+ 'Return' => '314191', -+ 'ShortName' => 'mlx5dv_dr_rule_create' -+ }, -+ '316927' => { -+ 'Header' => undef, -+ 'Line' => '1454', -+ 'Param' => { -+ '0' => { -+ 'name' => 'tbl', -+ 'type' => '293256' -+ }, -+ '1' => { -+ 'name' => 'priority', -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'name' => 'match_criteria_enable', -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'name' => 'mask', -+ 'type' => '18881' -+ } -+ }, -+ 'Return' => '314108', -+ 'ShortName' => 'mlx5dv_dr_matcher_create' -+ }, -+ '316965' => { -+ 'Header' => undef, -+ 'Line' => '166', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'level', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '293256', -+ 'ShortName' => 'mlx5dv_dr_table_create' -+ }, -+ '317105' => { -+ 'Header' => undef, -+ 'Line' => '5754', -+ 'Param' => { -+ '0' => { -+ 'name' => 'obj', -+ 'type' => '19143' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_obj_destroy' -+ }, -+ '317404' => { -+ 'Header' => undef, -+ 'Line' => '4640', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'actions_sz', -+ 'type' => '386' -+ }, -+ '2' => { -+ 'name' => 'actions', -+ 'type' => '13493' -+ }, -+ '3' => { -+ 'name' => 'ft_type', -+ 'type' => '15413' -+ } -+ }, -+ 'Return' => '13715', -+ 'ShortName' => 'mlx5dv_create_flow_action_modify_header' -+ }, -+ '317603' => { -+ 'Header' => undef, -+ 'Line' => '4708', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'data_sz', -+ 'type' => '386' -+ }, -+ '2' => { -+ 'name' => 'data', -+ 'type' => '267' -+ }, -+ '3' => { -+ 'name' => 'reformat_type', -+ 'type' => '15462' -+ }, -+ '4' => { -+ 'name' => 'ft_type', -+ 'type' => '15413' -+ } -+ }, -+ 'Return' => '13715', -+ 'ShortName' => 'mlx5dv_create_flow_action_packet_reformat' -+ }, -+ '317789' => { -+ 'Header' => undef, -+ 'Line' => '2810', -+ 'Param' => { -+ '0' => { -+ 'name' => 'action', -+ 'type' => '293402' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_action_destroy' -+ }, -+ '318253' => { -+ 'Header' => undef, -+ 'Line' => '2778', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'num_dest', -+ 'type' => '386' -+ }, -+ '2' => { -+ 'name' => 'dests', -+ 'type' => '319715' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_dest_array' -+ }, -+ '320385' => { -+ 'Header' => undef, -+ 'Line' => '2568', -+ 'Param' => { -+ '0' => { -+ 'name' => 'attr', -+ 'type' => '322458' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_flow_sampler' -+ }, -+ '323700' => { -+ 'Header' => undef, -+ 'Line' => '2183', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'ib_port', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_dest_ib_port' -+ }, -+ '324086' => { -+ 'Header' => undef, -+ 'Line' => '2147', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'vport', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_dest_vport' -+ }, -+ '324472' => { -+ 'Header' => undef, -+ 'Line' => '2100', -+ 'Param' => { -+ '0' => { -+ 'name' => 'attr', -+ 'type' => '317189' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_flow_meter' -+ }, -+ '325033' => { -+ 'Header' => undef, -+ 'Line' => '2083', -+ 'Param' => { -+ '0' => { -+ 'name' => 'action', -+ 'type' => '293402' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '317189' -+ }, -+ '2' => { -+ 'name' => 'modify_field_select', -+ 'type' => '2177' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_action_modify_flow_meter' -+ }, -+ '325171' => { -+ 'Header' => undef, -+ 'Line' => '2020', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'actions_sz', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'actions', -+ 'type' => '317277' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_modify_header' -+ }, -+ '330346' => { -+ 'Header' => undef, -+ 'Line' => '1500', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'vlan_hdr', -+ 'type' => '2165' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_push_vlan' -+ }, -+ '330749' => { -+ 'Header' => undef, -+ 'Line' => '1495', -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_pop_vlan' -+ }, -+ '330989' => { -+ 'Header' => undef, -+ 'Line' => '1430', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'reformat_type', -+ 'type' => '15462' -+ }, -+ '3' => { -+ 'name' => 'data_sz', -+ 'type' => '386' -+ }, -+ '4' => { -+ 'name' => 'data', -+ 'type' => '267' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_packet_reformat' -+ }, -+ '332463' => { -+ 'Header' => undef, -+ 'Line' => '1276', -+ 'Param' => { -+ '0' => { -+ 'name' => 'tag_value', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_tag' -+ }, -+ '332745' => { -+ 'Header' => undef, -+ 'Line' => '1257', -+ 'Param' => { -+ '0' => { -+ 'name' => 'action', -+ 'type' => '293402' -+ }, -+ '1' => { -+ 'name' => 'offset', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'return_reg_c', -+ 'type' => '1987' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_action_modify_aso' -+ }, -+ '333173' => { -+ 'Header' => undef, -+ 'Line' => '1166', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'devx_obj', -+ 'type' => '19143' -+ }, -+ '2' => { -+ 'name' => 'offset', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'return_reg_c', -+ 'type' => '1987' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_aso' -+ }, -+ '334357' => { -+ 'Header' => undef, -+ 'Line' => '1033', -+ 'Param' => { -+ '0' => { -+ 'name' => 'devx_obj', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'offset', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_flow_counter' -+ }, -+ '334677' => { -+ 'Header' => undef, -+ 'Line' => '1007', -+ 'Param' => { -+ '0' => { -+ 'name' => 'tbl', -+ 'type' => '293256' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_dest_table' -+ }, -+ '335046' => { -+ 'Header' => undef, -+ 'Line' => '989', -+ 'Param' => { -+ '0' => { -+ 'name' => 'devx_obj', -+ 'type' => '19143' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_dest_devx_tir' -+ }, -+ '335345' => { -+ 'Header' => undef, -+ 'Line' => '969', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ibqp', -+ 'type' => '5101' -+ } -+ }, -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_dest_ibv_qp' -+ }, -+ '335644' => { -+ 'Header' => undef, -+ 'Line' => '963', -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_default_miss' -+ }, -+ '335884' => { -+ 'Header' => undef, -+ 'Line' => '958', -+ 'Return' => '293402', -+ 'ShortName' => 'mlx5dv_dr_action_create_drop' -+ }, -+ '375206' => { -+ 'Header' => undef, -+ 'Line' => '840', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fout', -+ 'type' => '1945' -+ }, -+ '1' => { -+ 'name' => 'rule', -+ 'type' => '314191' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dump_dr_rule' -+ }, -+ '375852' => { -+ 'Header' => undef, -+ 'Line' => '815', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fout', -+ 'type' => '1945' -+ }, -+ '1' => { -+ 'name' => 'matcher', -+ 'type' => '314108' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dump_dr_matcher' -+ }, -+ '376474' => { -+ 'Header' => undef, -+ 'Line' => '794', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fout', -+ 'type' => '1945' -+ }, -+ '1' => { -+ 'name' => 'tbl', -+ 'type' => '293256' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dump_dr_table' -+ }, -+ '377072' => { -+ 'Header' => undef, -+ 'Line' => '776', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fout', -+ 'type' => '1945' -+ }, -+ '1' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dump_dr_domain' -+ }, -+ '446397' => { -+ 'Header' => undef, -+ 'Line' => '5726', -+ 'Param' => { -+ '0' => { -+ 'name' => 'obj', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_obj_modify' -+ }, -+ '446463' => { -+ 'Header' => undef, -+ 'Line' => '5700', -+ 'Param' => { -+ '0' => { -+ 'name' => 'obj', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_obj_query' -+ }, -+ '446506' => { -+ 'Header' => undef, -+ 'Line' => '5671', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '19143', -+ 'ShortName' => 'mlx5dv_devx_obj_create' -+ }, -+ '446642' => { -+ 'Header' => undef, -+ 'Line' => '5778', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'in', -+ 'type' => '1980' -+ }, -+ '2' => { -+ 'name' => 'inlen', -+ 'type' => '386' -+ }, -+ '3' => { -+ 'name' => 'out', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'outlen', -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_devx_general_cmd' -+ }, -+ '514440' => { -+ 'Header' => undef, -+ 'Line' => '5014', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'dm_attr', -+ 'type' => '13662' -+ }, -+ '2' => { -+ 'name' => 'mlx5_dm_attr', -+ 'type' => '30140' -+ } -+ }, -+ 'Return' => '2974', -+ 'ShortName' => 'mlx5dv_alloc_dm' -+ }, -+ '561080' => { -+ 'Header' => undef, -+ 'Line' => '5258', -+ 'Param' => { -+ '0' => { -+ 'name' => 'flow_matcher', -+ 'type' => '30312' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_destroy_flow_matcher' -+ }, -+ '563033' => { -+ 'Header' => undef, -+ 'Line' => '5227', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '30318' -+ } -+ }, -+ 'Return' => '30312', -+ 'ShortName' => 'mlx5dv_create_flow_matcher' -+ }, -+ '567450' => { -+ 'Header' => undef, -+ 'Line' => '1404', -+ 'Param' => { -+ '0' => { -+ 'name' => 'matcher', -+ 'type' => '314108' -+ }, -+ '1' => { -+ 'name' => 'matcher_layout', -+ 'type' => '567800' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_matcher_set_layout' -+ }, -+ '619095' => { -+ 'Header' => undef, -+ 'Line' => '5910', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dv_devx_uar', -+ 'type' => '29501' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mlx5dv_devx_free_uar' -+ }, -+ '619184' => { -+ 'Header' => undef, -+ 'Line' => '5887', -+ 'Param' => { -+ '0' => { -+ 'name' => 'context', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '29501', -+ 'ShortName' => 'mlx5dv_devx_alloc_uar' -+ }, -+ '619733' => { -+ 'Header' => undef, -+ 'Line' => '543', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_domain_destroy' -+ }, -+ '620343' => { -+ 'Header' => undef, -+ 'Line' => '532', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'allow', -+ 'type' => '2098' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mlx5dv_dr_domain_allow_duplicate_rules' -+ }, -+ '620765' => { -+ 'Header' => undef, -+ 'Line' => '521', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'enable', -+ 'type' => '2098' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'mlx5dv_dr_domain_set_reclaim_device_memory' -+ }, -+ '621187' => { -+ 'Header' => undef, -+ 'Line' => '1909', -+ 'Param' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_domain_sync' -+ }, -+ '621417' => { -+ 'Header' => undef, -+ 'Line' => '409', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'type', -+ 'type' => '292994' -+ } -+ }, -+ 'Return' => '308152', -+ 'ShortName' => 'mlx5dv_dr_domain_create' -+ }, -+ '734032' => { -+ 'Header' => undef, -+ 'Line' => '1638', -+ 'Param' => { -+ '0' => { -+ 'name' => 'devx_obj', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_aso_other_domain_unlink' -+ }, -+ '734165' => { -+ 'Header' => undef, -+ 'Line' => '1617', -+ 'Param' => { -+ '0' => { -+ 'name' => 'devx_obj', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'peer_dmn', -+ 'type' => '308152' -+ }, -+ '2' => { -+ 'name' => 'dmn', -+ 'type' => '308152' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'return_reg_c', -+ 'type' => '1987' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_dr_aso_other_domain_link' -+ }, -+ '76089' => { -+ 'Header' => undef, -+ 'Line' => '2245', -+ 'Param' => { -+ '0' => { -+ 'name' => 'ctx_in', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'clock_info', -+ 'type' => '30817' -+ } -+ }, -+ 'Return' => '128', -+ 'ShortName' => 'mlx5dv_get_clock_info' -+ } -+ }, -+ 'SymbolVersion' => { -+ '__mlx5dv_init_obj_1_0' => 'mlx5dv_init_obj@MLX5_1.0', -+ '__mlx5dv_init_obj_1_2' => 'mlx5dv_init_obj@@MLX5_1.2', -+ '_mlx5dv_mkey_check' => '_mlx5dv_mkey_check@@MLX5_1.20', -+ '_mlx5dv_query_port' => '_mlx5dv_query_port@@MLX5_1.19', -+ 'mlx5dv_alloc_dm' => 'mlx5dv_alloc_dm@@MLX5_1.10', -+ 'mlx5dv_alloc_var' => 'mlx5dv_alloc_var@@MLX5_1.12', -+ 'mlx5dv_create_cq' => 'mlx5dv_create_cq@@MLX5_1.1', -+ 'mlx5dv_create_flow' => 'mlx5dv_create_flow@@MLX5_1.6', -+ 'mlx5dv_create_flow_action_esp' => 'mlx5dv_create_flow_action_esp@@MLX5_1.5', -+ 'mlx5dv_create_flow_action_modify_header' => 'mlx5dv_create_flow_action_modify_header@@MLX5_1.7', -+ 'mlx5dv_create_flow_action_packet_reformat' => 'mlx5dv_create_flow_action_packet_reformat@@MLX5_1.7', -+ 'mlx5dv_create_flow_matcher' => 'mlx5dv_create_flow_matcher@@MLX5_1.6', -+ 'mlx5dv_create_mkey' => 'mlx5dv_create_mkey@@MLX5_1.10', -+ 'mlx5dv_create_qp' => 'mlx5dv_create_qp@@MLX5_1.3', -+ 'mlx5dv_create_wq' => 'mlx5dv_create_wq@@MLX5_1.3', -+ 'mlx5dv_crypto_login' => 'mlx5dv_crypto_login@@MLX5_1.21', -+ 'mlx5dv_crypto_login_query_state' => 'mlx5dv_crypto_login_query_state@@MLX5_1.21', -+ 'mlx5dv_crypto_logout' => 'mlx5dv_crypto_logout@@MLX5_1.21', -+ 'mlx5dv_dci_stream_id_reset' => 'mlx5dv_dci_stream_id_reset@@MLX5_1.21', -+ 'mlx5dv_dek_create' => 'mlx5dv_dek_create@@MLX5_1.21', -+ 'mlx5dv_dek_destroy' => 'mlx5dv_dek_destroy@@MLX5_1.21', -+ 'mlx5dv_dek_query' => 'mlx5dv_dek_query@@MLX5_1.21', -+ 'mlx5dv_destroy_flow_matcher' => 'mlx5dv_destroy_flow_matcher@@MLX5_1.6', -+ 'mlx5dv_destroy_mkey' => 'mlx5dv_destroy_mkey@@MLX5_1.10', -+ 'mlx5dv_devx_alloc_msi_vector' => 'mlx5dv_devx_alloc_msi_vector@@MLX5_1.23', -+ 'mlx5dv_devx_alloc_uar' => 'mlx5dv_devx_alloc_uar@@MLX5_1.7', -+ 'mlx5dv_devx_cq_modify' => 'mlx5dv_devx_cq_modify@@MLX5_1.8', -+ 'mlx5dv_devx_cq_query' => 'mlx5dv_devx_cq_query@@MLX5_1.8', -+ 'mlx5dv_devx_create_cmd_comp' => 'mlx5dv_devx_create_cmd_comp@@MLX5_1.9', -+ 'mlx5dv_devx_create_eq' => 'mlx5dv_devx_create_eq@@MLX5_1.23', -+ 'mlx5dv_devx_create_event_channel' => 'mlx5dv_devx_create_event_channel@@MLX5_1.11', -+ 'mlx5dv_devx_destroy_cmd_comp' => 'mlx5dv_devx_destroy_cmd_comp@@MLX5_1.9', -+ 'mlx5dv_devx_destroy_eq' => 'mlx5dv_devx_destroy_eq@@MLX5_1.23', -+ 'mlx5dv_devx_destroy_event_channel' => 'mlx5dv_devx_destroy_event_channel@@MLX5_1.11', -+ 'mlx5dv_devx_free_msi_vector' => 'mlx5dv_devx_free_msi_vector@@MLX5_1.23', -+ 'mlx5dv_devx_free_uar' => 'mlx5dv_devx_free_uar@@MLX5_1.7', -+ 'mlx5dv_devx_general_cmd' => 'mlx5dv_devx_general_cmd@@MLX5_1.7', -+ 'mlx5dv_devx_get_async_cmd_comp' => 'mlx5dv_devx_get_async_cmd_comp@@MLX5_1.9', -+ 'mlx5dv_devx_get_event' => 'mlx5dv_devx_get_event@@MLX5_1.11', -+ 'mlx5dv_devx_ind_tbl_modify' => 'mlx5dv_devx_ind_tbl_modify@@MLX5_1.8', -+ 'mlx5dv_devx_ind_tbl_query' => 'mlx5dv_devx_ind_tbl_query@@MLX5_1.8', -+ 'mlx5dv_devx_obj_create' => 'mlx5dv_devx_obj_create@@MLX5_1.7', -+ 'mlx5dv_devx_obj_destroy' => 'mlx5dv_devx_obj_destroy@@MLX5_1.7', -+ 'mlx5dv_devx_obj_modify' => 'mlx5dv_devx_obj_modify@@MLX5_1.7', -+ 'mlx5dv_devx_obj_query' => 'mlx5dv_devx_obj_query@@MLX5_1.7', -+ 'mlx5dv_devx_obj_query_async' => 'mlx5dv_devx_obj_query_async@@MLX5_1.9', -+ 'mlx5dv_devx_qp_modify' => 'mlx5dv_devx_qp_modify@@MLX5_1.8', -+ 'mlx5dv_devx_qp_query' => 'mlx5dv_devx_qp_query@@MLX5_1.8', -+ 'mlx5dv_devx_query_eqn' => 'mlx5dv_devx_query_eqn@@MLX5_1.7', -+ 'mlx5dv_devx_srq_modify' => 'mlx5dv_devx_srq_modify@@MLX5_1.8', -+ 'mlx5dv_devx_srq_query' => 'mlx5dv_devx_srq_query@@MLX5_1.8', -+ 'mlx5dv_devx_subscribe_devx_event' => 'mlx5dv_devx_subscribe_devx_event@@MLX5_1.11', -+ 'mlx5dv_devx_subscribe_devx_event_fd' => 'mlx5dv_devx_subscribe_devx_event_fd@@MLX5_1.11', -+ 'mlx5dv_devx_umem_dereg' => 'mlx5dv_devx_umem_dereg@@MLX5_1.7', -+ 'mlx5dv_devx_umem_reg' => 'mlx5dv_devx_umem_reg@@MLX5_1.7', -+ 'mlx5dv_devx_umem_reg_ex' => 'mlx5dv_devx_umem_reg_ex@@MLX5_1.19', -+ 'mlx5dv_devx_wq_modify' => 'mlx5dv_devx_wq_modify@@MLX5_1.8', -+ 'mlx5dv_devx_wq_query' => 'mlx5dv_devx_wq_query@@MLX5_1.8', -+ 'mlx5dv_dm_map_op_addr' => 'mlx5dv_dm_map_op_addr@@MLX5_1.19', -+ 'mlx5dv_dr_action_create_aso' => 'mlx5dv_dr_action_create_aso@@MLX5_1.17', -+ 'mlx5dv_dr_action_create_default_miss' => 'mlx5dv_dr_action_create_default_miss@@MLX5_1.14', -+ 'mlx5dv_dr_action_create_dest_array' => 'mlx5dv_dr_action_create_dest_array@@MLX5_1.16', -+ 'mlx5dv_dr_action_create_dest_devx_tir' => 'mlx5dv_dr_action_create_dest_devx_tir@@MLX5_1.15', -+ 'mlx5dv_dr_action_create_dest_ib_port' => 'mlx5dv_dr_action_create_dest_ib_port@@MLX5_1.21', -+ 'mlx5dv_dr_action_create_dest_ibv_qp' => 'mlx5dv_dr_action_create_dest_ibv_qp@@MLX5_1.10', -+ 'mlx5dv_dr_action_create_dest_table' => 'mlx5dv_dr_action_create_dest_table@@MLX5_1.10', -+ 'mlx5dv_dr_action_create_dest_vport' => 'mlx5dv_dr_action_create_dest_vport@@MLX5_1.10', -+ 'mlx5dv_dr_action_create_drop' => 'mlx5dv_dr_action_create_drop@@MLX5_1.10', -+ 'mlx5dv_dr_action_create_flow_counter' => 'mlx5dv_dr_action_create_flow_counter@@MLX5_1.10', -+ 'mlx5dv_dr_action_create_flow_meter' => 'mlx5dv_dr_action_create_flow_meter@@MLX5_1.12', -+ 'mlx5dv_dr_action_create_flow_sampler' => 'mlx5dv_dr_action_create_flow_sampler@@MLX5_1.16', -+ 'mlx5dv_dr_action_create_modify_header' => 'mlx5dv_dr_action_create_modify_header@@MLX5_1.10', -+ 'mlx5dv_dr_action_create_packet_reformat' => 'mlx5dv_dr_action_create_packet_reformat@@MLX5_1.10', -+ 'mlx5dv_dr_action_create_pop_vlan' => 'mlx5dv_dr_action_create_pop_vlan@@MLX5_1.17', -+ 'mlx5dv_dr_action_create_push_vlan' => 'mlx5dv_dr_action_create_push_vlan@@MLX5_1.17', -+ 'mlx5dv_dr_action_create_tag' => 'mlx5dv_dr_action_create_tag@@MLX5_1.10', -+ 'mlx5dv_dr_action_destroy' => 'mlx5dv_dr_action_destroy@@MLX5_1.10', -+ 'mlx5dv_dr_action_modify_aso' => 'mlx5dv_dr_action_modify_aso@@MLX5_1.17', -+ 'mlx5dv_dr_action_modify_flow_meter' => 'mlx5dv_dr_action_modify_flow_meter@@MLX5_1.12', -+ 'mlx5dv_dr_aso_other_domain_link' => 'mlx5dv_dr_aso_other_domain_link@@MLX5_1.22', -+ 'mlx5dv_dr_aso_other_domain_unlink' => 'mlx5dv_dr_aso_other_domain_unlink@@MLX5_1.22', -+ 'mlx5dv_dr_domain_allow_duplicate_rules' => 'mlx5dv_dr_domain_allow_duplicate_rules@@MLX5_1.20', -+ 'mlx5dv_dr_domain_create' => 'mlx5dv_dr_domain_create@@MLX5_1.10', -+ 'mlx5dv_dr_domain_destroy' => 'mlx5dv_dr_domain_destroy@@MLX5_1.10', -+ 'mlx5dv_dr_domain_set_reclaim_device_memory' => 'mlx5dv_dr_domain_set_reclaim_device_memory@@MLX5_1.14', -+ 'mlx5dv_dr_domain_sync' => 'mlx5dv_dr_domain_sync@@MLX5_1.10', -+ 'mlx5dv_dr_matcher_create' => 'mlx5dv_dr_matcher_create@@MLX5_1.10', -+ 'mlx5dv_dr_matcher_destroy' => 'mlx5dv_dr_matcher_destroy@@MLX5_1.10', -+ 'mlx5dv_dr_matcher_set_layout' => 'mlx5dv_dr_matcher_set_layout@@MLX5_1.21', -+ 'mlx5dv_dr_rule_create' => 'mlx5dv_dr_rule_create@@MLX5_1.10', -+ 'mlx5dv_dr_rule_destroy' => 'mlx5dv_dr_rule_destroy@@MLX5_1.10', -+ 'mlx5dv_dr_table_create' => 'mlx5dv_dr_table_create@@MLX5_1.10', -+ 'mlx5dv_dr_table_destroy' => 'mlx5dv_dr_table_destroy@@MLX5_1.10', -+ 'mlx5dv_dump_dr_domain' => 'mlx5dv_dump_dr_domain@@MLX5_1.12', -+ 'mlx5dv_dump_dr_matcher' => 'mlx5dv_dump_dr_matcher@@MLX5_1.12', -+ 'mlx5dv_dump_dr_rule' => 'mlx5dv_dump_dr_rule@@MLX5_1.12', -+ 'mlx5dv_dump_dr_table' => 'mlx5dv_dump_dr_table@@MLX5_1.12', -+ 'mlx5dv_free_var' => 'mlx5dv_free_var@@MLX5_1.12', -+ 'mlx5dv_get_clock_info' => 'mlx5dv_get_clock_info@@MLX5_1.4', -+ 'mlx5dv_get_vfio_device_list' => 'mlx5dv_get_vfio_device_list@@MLX5_1.21', -+ 'mlx5dv_is_supported' => 'mlx5dv_is_supported@@MLX5_1.8', -+ 'mlx5dv_map_ah_to_qp' => 'mlx5dv_map_ah_to_qp@@MLX5_1.20', -+ 'mlx5dv_modify_qp_lag_port' => 'mlx5dv_modify_qp_lag_port@@MLX5_1.14', -+ 'mlx5dv_modify_qp_sched_elem' => 'mlx5dv_modify_qp_sched_elem@@MLX5_1.17', -+ 'mlx5dv_modify_qp_udp_sport' => 'mlx5dv_modify_qp_udp_sport@@MLX5_1.17', -+ 'mlx5dv_open_device' => 'mlx5dv_open_device@@MLX5_1.7', -+ 'mlx5dv_pp_alloc' => 'mlx5dv_pp_alloc@@MLX5_1.13', -+ 'mlx5dv_pp_free' => 'mlx5dv_pp_free@@MLX5_1.13', -+ 'mlx5dv_qp_cancel_posted_send_wrs' => 'mlx5dv_qp_cancel_posted_send_wrs@@MLX5_1.20', -+ 'mlx5dv_qp_ex_from_ibv_qp_ex' => 'mlx5dv_qp_ex_from_ibv_qp_ex@@MLX5_1.10', -+ 'mlx5dv_query_device' => 'mlx5dv_query_device@@MLX5_1.0', -+ 'mlx5dv_query_qp_lag_port' => 'mlx5dv_query_qp_lag_port@@MLX5_1.14', -+ 'mlx5dv_reserved_qpn_alloc' => 'mlx5dv_reserved_qpn_alloc@@MLX5_1.18', -+ 'mlx5dv_reserved_qpn_dealloc' => 'mlx5dv_reserved_qpn_dealloc@@MLX5_1.18', -+ 'mlx5dv_sched_leaf_create' => 'mlx5dv_sched_leaf_create@@MLX5_1.17', -+ 'mlx5dv_sched_leaf_destroy' => 'mlx5dv_sched_leaf_destroy@@MLX5_1.17', -+ 'mlx5dv_sched_leaf_modify' => 'mlx5dv_sched_leaf_modify@@MLX5_1.17', -+ 'mlx5dv_sched_node_create' => 'mlx5dv_sched_node_create@@MLX5_1.17', -+ 'mlx5dv_sched_node_destroy' => 'mlx5dv_sched_node_destroy@@MLX5_1.17', -+ 'mlx5dv_sched_node_modify' => 'mlx5dv_sched_node_modify@@MLX5_1.17', -+ 'mlx5dv_set_context_attr' => 'mlx5dv_set_context_attr@@MLX5_1.2', -+ 'mlx5dv_vfio_get_events_fd' => 'mlx5dv_vfio_get_events_fd@@MLX5_1.21', -+ 'mlx5dv_vfio_process_events' => 'mlx5dv_vfio_process_events@@MLX5_1.21' -+ }, -+ 'Symbols' => { -+ 'libmlx5.so.1.23.41.0' => { -+ '_mlx5dv_mkey_check@@MLX5_1.20' => 1, -+ '_mlx5dv_query_port@@MLX5_1.19' => 1, -+ 'mlx5dv_alloc_dm@@MLX5_1.10' => 1, -+ 'mlx5dv_alloc_var@@MLX5_1.12' => 1, -+ 'mlx5dv_create_cq@@MLX5_1.1' => 1, -+ 'mlx5dv_create_flow@@MLX5_1.6' => 1, -+ 'mlx5dv_create_flow_action_esp@@MLX5_1.5' => 1, -+ 'mlx5dv_create_flow_action_modify_header@@MLX5_1.7' => 1, -+ 'mlx5dv_create_flow_action_packet_reformat@@MLX5_1.7' => 1, -+ 'mlx5dv_create_flow_matcher@@MLX5_1.6' => 1, -+ 'mlx5dv_create_mkey@@MLX5_1.10' => 1, -+ 'mlx5dv_create_qp@@MLX5_1.3' => 1, -+ 'mlx5dv_create_wq@@MLX5_1.3' => 1, -+ 'mlx5dv_crypto_login@@MLX5_1.21' => 1, -+ 'mlx5dv_crypto_login_query_state@@MLX5_1.21' => 1, -+ 'mlx5dv_crypto_logout@@MLX5_1.21' => 1, -+ 'mlx5dv_dci_stream_id_reset@@MLX5_1.21' => 1, -+ 'mlx5dv_dek_create@@MLX5_1.21' => 1, -+ 'mlx5dv_dek_destroy@@MLX5_1.21' => 1, -+ 'mlx5dv_dek_query@@MLX5_1.21' => 1, -+ 'mlx5dv_destroy_flow_matcher@@MLX5_1.6' => 1, -+ 'mlx5dv_destroy_mkey@@MLX5_1.10' => 1, -+ 'mlx5dv_devx_alloc_msi_vector@@MLX5_1.23' => 1, -+ 'mlx5dv_devx_alloc_uar@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_cq_modify@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_cq_query@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_create_cmd_comp@@MLX5_1.9' => 1, -+ 'mlx5dv_devx_create_eq@@MLX5_1.23' => 1, -+ 'mlx5dv_devx_create_event_channel@@MLX5_1.11' => 1, -+ 'mlx5dv_devx_destroy_cmd_comp@@MLX5_1.9' => 1, -+ 'mlx5dv_devx_destroy_eq@@MLX5_1.23' => 1, -+ 'mlx5dv_devx_destroy_event_channel@@MLX5_1.11' => 1, -+ 'mlx5dv_devx_free_msi_vector@@MLX5_1.23' => 1, -+ 'mlx5dv_devx_free_uar@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_general_cmd@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_get_async_cmd_comp@@MLX5_1.9' => 1, -+ 'mlx5dv_devx_get_event@@MLX5_1.11' => 1, -+ 'mlx5dv_devx_ind_tbl_modify@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_ind_tbl_query@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_obj_create@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_obj_destroy@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_obj_modify@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_obj_query@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_obj_query_async@@MLX5_1.9' => 1, -+ 'mlx5dv_devx_qp_modify@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_qp_query@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_query_eqn@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_srq_modify@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_srq_query@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_subscribe_devx_event@@MLX5_1.11' => 1, -+ 'mlx5dv_devx_subscribe_devx_event_fd@@MLX5_1.11' => 1, -+ 'mlx5dv_devx_umem_dereg@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_umem_reg@@MLX5_1.7' => 1, -+ 'mlx5dv_devx_umem_reg_ex@@MLX5_1.19' => 1, -+ 'mlx5dv_devx_wq_modify@@MLX5_1.8' => 1, -+ 'mlx5dv_devx_wq_query@@MLX5_1.8' => 1, -+ 'mlx5dv_dm_map_op_addr@@MLX5_1.19' => 1, -+ 'mlx5dv_dr_action_create_aso@@MLX5_1.17' => 1, -+ 'mlx5dv_dr_action_create_default_miss@@MLX5_1.14' => 1, -+ 'mlx5dv_dr_action_create_dest_array@@MLX5_1.16' => 1, -+ 'mlx5dv_dr_action_create_dest_devx_tir@@MLX5_1.15' => 1, -+ 'mlx5dv_dr_action_create_dest_ib_port@@MLX5_1.21' => 1, -+ 'mlx5dv_dr_action_create_dest_ibv_qp@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_create_dest_table@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_create_dest_vport@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_create_drop@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_create_flow_counter@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_create_flow_meter@@MLX5_1.12' => 1, -+ 'mlx5dv_dr_action_create_flow_sampler@@MLX5_1.16' => 1, -+ 'mlx5dv_dr_action_create_modify_header@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_create_packet_reformat@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_create_pop_vlan@@MLX5_1.17' => 1, -+ 'mlx5dv_dr_action_create_push_vlan@@MLX5_1.17' => 1, -+ 'mlx5dv_dr_action_create_tag@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_destroy@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_action_modify_aso@@MLX5_1.17' => 1, -+ 'mlx5dv_dr_action_modify_flow_meter@@MLX5_1.12' => 1, -+ 'mlx5dv_dr_aso_other_domain_link@@MLX5_1.22' => 1, -+ 'mlx5dv_dr_aso_other_domain_unlink@@MLX5_1.22' => 1, -+ 'mlx5dv_dr_domain_allow_duplicate_rules@@MLX5_1.20' => 1, -+ 'mlx5dv_dr_domain_create@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_domain_destroy@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_domain_set_reclaim_device_memory@@MLX5_1.14' => 1, -+ 'mlx5dv_dr_domain_sync@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_matcher_create@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_matcher_destroy@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_matcher_set_layout@@MLX5_1.21' => 1, -+ 'mlx5dv_dr_rule_create@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_rule_destroy@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_table_create@@MLX5_1.10' => 1, -+ 'mlx5dv_dr_table_destroy@@MLX5_1.10' => 1, -+ 'mlx5dv_dump_dr_domain@@MLX5_1.12' => 1, -+ 'mlx5dv_dump_dr_matcher@@MLX5_1.12' => 1, -+ 'mlx5dv_dump_dr_rule@@MLX5_1.12' => 1, -+ 'mlx5dv_dump_dr_table@@MLX5_1.12' => 1, -+ 'mlx5dv_free_var@@MLX5_1.12' => 1, -+ 'mlx5dv_get_clock_info@@MLX5_1.4' => 1, -+ 'mlx5dv_get_vfio_device_list@@MLX5_1.21' => 1, -+ 'mlx5dv_init_obj@@MLX5_1.2' => 1, -+ 'mlx5dv_init_obj@MLX5_1.0' => 1, -+ 'mlx5dv_is_supported@@MLX5_1.8' => 1, -+ 'mlx5dv_map_ah_to_qp@@MLX5_1.20' => 1, -+ 'mlx5dv_modify_qp_lag_port@@MLX5_1.14' => 1, -+ 'mlx5dv_modify_qp_sched_elem@@MLX5_1.17' => 1, -+ 'mlx5dv_modify_qp_udp_sport@@MLX5_1.17' => 1, -+ 'mlx5dv_open_device@@MLX5_1.7' => 1, -+ 'mlx5dv_pp_alloc@@MLX5_1.13' => 1, -+ 'mlx5dv_pp_free@@MLX5_1.13' => 1, -+ 'mlx5dv_qp_cancel_posted_send_wrs@@MLX5_1.20' => 1, -+ 'mlx5dv_qp_ex_from_ibv_qp_ex@@MLX5_1.10' => 1, -+ 'mlx5dv_query_device@@MLX5_1.0' => 1, -+ 'mlx5dv_query_qp_lag_port@@MLX5_1.14' => 1, -+ 'mlx5dv_reserved_qpn_alloc@@MLX5_1.18' => 1, -+ 'mlx5dv_reserved_qpn_dealloc@@MLX5_1.18' => 1, -+ 'mlx5dv_sched_leaf_create@@MLX5_1.17' => 1, -+ 'mlx5dv_sched_leaf_destroy@@MLX5_1.17' => 1, -+ 'mlx5dv_sched_leaf_modify@@MLX5_1.17' => 1, -+ 'mlx5dv_sched_node_create@@MLX5_1.17' => 1, -+ 'mlx5dv_sched_node_destroy@@MLX5_1.17' => 1, -+ 'mlx5dv_sched_node_modify@@MLX5_1.17' => 1, -+ 'mlx5dv_set_context_attr@@MLX5_1.2' => 1, -+ 'mlx5dv_vfio_get_events_fd@@MLX5_1.21' => 1, -+ 'mlx5dv_vfio_process_events@@MLX5_1.21' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '10004' => { -+ 'Header' => undef, -+ 'Line' => '1475', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'tag', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'priv', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_wc_tm_info', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '10047' => { -+ 'Header' => undef, -+ 'Line' => '1480', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '9969' -+ }, -+ '10' => { -+ 'name' => 'status', -+ 'offset' => '132', -+ 'type' => '5426' -+ }, -+ '11' => { -+ 'name' => 'wr_id', -+ 'offset' => '136', -+ 'type' => '2028' -+ }, -+ '12' => { -+ 'name' => 'start_poll', -+ 'offset' => '144', -+ 'type' => '10519' -+ }, -+ '13' => { -+ 'name' => 'next_poll', -+ 'offset' => '152', -+ 'type' => '10540' -+ }, -+ '14' => { -+ 'name' => 'end_poll', -+ 'offset' => '160', -+ 'type' => '10557' -+ }, -+ '15' => { -+ 'name' => 'read_opcode', -+ 'offset' => '168', -+ 'type' => '10578' -+ }, -+ '16' => { -+ 'name' => 'read_vendor_err', -+ 'offset' => '176', -+ 'type' => '10599' -+ }, -+ '17' => { -+ 'name' => 'read_byte_len', -+ 'offset' => '184', -+ 'type' => '10599' -+ }, -+ '18' => { -+ 'name' => 'read_imm_data', -+ 'offset' => '192', -+ 'type' => '10620' -+ }, -+ '19' => { -+ 'name' => 'read_qp_num', -+ 'offset' => '200', -+ 'type' => '10599' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'offset' => '16', -+ 'type' => '267' -+ }, -+ '20' => { -+ 'name' => 'read_src_qp', -+ 'offset' => '208', -+ 'type' => '10599' -+ }, -+ '21' => { -+ 'name' => 'read_wc_flags', -+ 'offset' => '216', -+ 'type' => '10641' -+ }, -+ '22' => { -+ 'name' => 'read_slid', -+ 'offset' => '224', -+ 'type' => '10599' -+ }, -+ '23' => { -+ 'name' => 'read_sl', -+ 'offset' => '232', -+ 'type' => '10662' -+ }, -+ '24' => { -+ 'name' => 'read_dlid_path_bits', -+ 'offset' => '240', -+ 'type' => '10662' -+ }, -+ '25' => { -+ 'name' => 'read_completion_ts', -+ 'offset' => '248', -+ 'type' => '10683' -+ }, -+ '26' => { -+ 'name' => 'read_cvlan', -+ 'offset' => '256', -+ 'type' => '10704' -+ }, -+ '27' => { -+ 'name' => 'read_flow_tag', -+ 'offset' => '264', -+ 'type' => '10599' -+ }, -+ '28' => { -+ 'name' => 'read_tm_info', -+ 'offset' => '272', -+ 'type' => '10732' -+ }, -+ '29' => { -+ 'name' => 'read_completion_wallclock_ns', -+ 'offset' => '280', -+ 'type' => '10683' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'cqe', -+ 'offset' => '28', -+ 'type' => '128' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '897' -+ }, -+ '6' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '971' -+ }, -+ '7' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '120', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '124', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'comp_mask', -+ 'offset' => '128', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_cq_ex', -+ 'Size' => '288', -+ 'Type' => 'Struct' -+ }, -+ '10507' => { -+ 'BaseType' => '10047', -+ 'Name' => 'struct ibv_cq_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10513' => { -+ 'BaseType' => '9975', -+ 'Name' => 'struct ibv_poll_cq_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10519' => { -+ 'Name' => 'int(*)(struct ibv_cq_ex*, struct ibv_poll_cq_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ }, -+ '1' => { -+ 'type' => '10513' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10540' => { -+ 'Name' => 'int(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10557' => { -+ 'Name' => 'void(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10578' => { -+ 'Name' => 'enum ibv_wc_opcode(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '5590', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10599' => { -+ 'Name' => 'uint32_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '2011', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10620' => { -+ 'Name' => '__be32(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '2165', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10641' => { -+ 'Name' => 'unsigned int(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '59', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10662' => { -+ 'Name' => 'uint8_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '1987', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10683' => { -+ 'Name' => 'uint64_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '2028', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10704' => { -+ 'Name' => 'uint16_t(*)(struct ibv_cq_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ } -+ }, -+ 'Return' => '1999', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10726' => { -+ 'BaseType' => '10004', -+ 'Name' => 'struct ibv_wc_tm_info*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '10732' => { -+ 'Name' => 'void(*)(struct ibv_cq_ex*, struct ibv_wc_tm_info*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '10507' -+ }, -+ '1' => { -+ 'type' => '10726' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '10824' => { -+ 'Header' => undef, -+ 'Line' => '1657', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_FLOW_ATTR_NORMAL', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_FLOW_ATTR_ALL_DEFAULT', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_FLOW_ATTR_MC_DEFAULT', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_FLOW_ATTR_SNIFFER', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum ibv_flow_attr_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '10868' => { -+ 'BaseType' => '1987', -+ 'Name' => 'uint8_t[6]', -+ 'Size' => '6', -+ 'Type' => 'Array' -+ }, -+ '10884' => { -+ 'Header' => undef, -+ 'Line' => '1889', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ } -+ }, -+ 'Name' => 'struct ibv_flow_action', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '10913' => { -+ 'Header' => undef, -+ 'Line' => '2054', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ } -+ }, -+ 'Name' => 'struct ibv_counters', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '10942' => { -+ 'BaseType' => '10913', -+ 'Name' => 'struct ibv_counters*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11061' => { -+ 'Header' => undef, -+ 'Line' => '1883', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'context', -+ 'offset' => '8', -+ 'type' => '2938' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_flow', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '11118' => { -+ 'Header' => undef, -+ 'Line' => '1897', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'esp_attr', -+ 'offset' => '0', -+ 'type' => '11273' -+ }, -+ '1' => { -+ 'name' => 'keymat_proto', -+ 'offset' => '8', -+ 'type' => '2205' -+ }, -+ '2' => { -+ 'name' => 'keymat_len', -+ 'offset' => '12', -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'name' => 'keymat_ptr', -+ 'offset' => '16', -+ 'type' => '267' -+ }, -+ '4' => { -+ 'name' => 'replay_proto', -+ 'offset' => '24', -+ 'type' => '2230' -+ }, -+ '5' => { -+ 'name' => 'replay_len', -+ 'offset' => '28', -+ 'type' => '1999' -+ }, -+ '6' => { -+ 'name' => 'replay_ptr', -+ 'offset' => '32', -+ 'type' => '267' -+ }, -+ '7' => { -+ 'name' => 'esp_encap', -+ 'offset' => '40', -+ 'type' => '2388' -+ }, -+ '8' => { -+ 'name' => 'comp_mask', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'esn', -+ 'offset' => '52', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_flow_action_esp_attr', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '11273' => { -+ 'BaseType' => '2394', -+ 'Name' => 'struct ib_uverbs_flow_action_esp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11279' => { -+ 'Header' => undef, -+ 'Line' => '1918', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_dummy1', -+ 'offset' => '0', -+ 'type' => '11463' -+ }, -+ '1' => { -+ 'name' => '_dummy2', -+ 'offset' => '8', -+ 'type' => '11480' -+ } -+ }, -+ 'Name' => 'struct _ibv_device_ops', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '11342' => { -+ 'BaseType' => '11348', -+ 'Name' => 'struct ibv_device*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11348' => { -+ 'Header' => undef, -+ 'Line' => '1928', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_ops', -+ 'offset' => '0', -+ 'type' => '11279' -+ }, -+ '1' => { -+ 'name' => 'node_type', -+ 'offset' => '16', -+ 'type' => '2528' -+ }, -+ '2' => { -+ 'name' => 'transport_type', -+ 'offset' => '20', -+ 'type' => '2595' -+ }, -+ '3' => { -+ 'name' => 'name', -+ 'offset' => '24', -+ 'type' => '3556' -+ }, -+ '4' => { -+ 'name' => 'dev_name', -+ 'offset' => '88', -+ 'type' => '3556' -+ }, -+ '5' => { -+ 'name' => 'dev_path', -+ 'offset' => '152', -+ 'type' => '11486' -+ }, -+ '6' => { -+ 'name' => 'ibdev_path', -+ 'offset' => '408', -+ 'type' => '11486' -+ } -+ }, -+ 'Name' => 'struct ibv_device', -+ 'Size' => '664', -+ 'Type' => 'Struct' -+ }, -+ '11463' => { -+ 'Name' => 'struct ibv_context*(*)(struct ibv_device*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '11342' -+ }, -+ '1' => { -+ 'type' => '128' -+ } -+ }, -+ 'Return' => '2938', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11480' => { -+ 'Name' => 'void(*)(struct ibv_context*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '2938' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '11486' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[256]', -+ 'Size' => '256', -+ 'Type' => 'Array' -+ }, -+ '11502' => { -+ 'Header' => undef, -+ 'Line' => '1943', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_compat_query_device', -+ 'offset' => '0', -+ 'type' => '11992' -+ }, -+ '1' => { -+ 'name' => '_compat_query_port', -+ 'offset' => '8', -+ 'type' => '12034' -+ }, -+ '10' => { -+ 'name' => '_compat_create_cq', -+ 'offset' => '80', -+ 'type' => '12045' -+ }, -+ '11' => { -+ 'name' => 'poll_cq', -+ 'offset' => '88', -+ 'type' => '12166' -+ }, -+ '12' => { -+ 'name' => 'req_notify_cq', -+ 'offset' => '96', -+ 'type' => '12192' -+ }, -+ '13' => { -+ 'name' => '_compat_cq_event', -+ 'offset' => '104', -+ 'type' => '12045' -+ }, -+ '14' => { -+ 'name' => '_compat_resize_cq', -+ 'offset' => '112', -+ 'type' => '12045' -+ }, -+ '15' => { -+ 'name' => '_compat_destroy_cq', -+ 'offset' => '120', -+ 'type' => '12045' -+ }, -+ '16' => { -+ 'name' => '_compat_create_srq', -+ 'offset' => '128', -+ 'type' => '12045' -+ }, -+ '17' => { -+ 'name' => '_compat_modify_srq', -+ 'offset' => '136', -+ 'type' => '12045' -+ }, -+ '18' => { -+ 'name' => '_compat_query_srq', -+ 'offset' => '144', -+ 'type' => '12045' -+ }, -+ '19' => { -+ 'name' => '_compat_destroy_srq', -+ 'offset' => '152', -+ 'type' => '12045' -+ }, -+ '2' => { -+ 'name' => '_compat_alloc_pd', -+ 'offset' => '16', -+ 'type' => '12045' -+ }, -+ '20' => { -+ 'name' => 'post_srq_recv', -+ 'offset' => '160', -+ 'type' => '12223' -+ }, -+ '21' => { -+ 'name' => '_compat_create_qp', -+ 'offset' => '168', -+ 'type' => '12045' -+ }, -+ '22' => { -+ 'name' => '_compat_query_qp', -+ 'offset' => '176', -+ 'type' => '12045' -+ }, -+ '23' => { -+ 'name' => '_compat_modify_qp', -+ 'offset' => '184', -+ 'type' => '12045' -+ }, -+ '24' => { -+ 'name' => '_compat_destroy_qp', -+ 'offset' => '192', -+ 'type' => '12045' -+ }, -+ '25' => { -+ 'name' => 'post_send', -+ 'offset' => '200', -+ 'type' => '12260' -+ }, -+ '26' => { -+ 'name' => 'post_recv', -+ 'offset' => '208', -+ 'type' => '12291' -+ }, -+ '27' => { -+ 'name' => '_compat_create_ah', -+ 'offset' => '216', -+ 'type' => '12045' -+ }, -+ '28' => { -+ 'name' => '_compat_destroy_ah', -+ 'offset' => '224', -+ 'type' => '12045' -+ }, -+ '29' => { -+ 'name' => '_compat_attach_mcast', -+ 'offset' => '232', -+ 'type' => '12045' -+ }, -+ '3' => { -+ 'name' => '_compat_dealloc_pd', -+ 'offset' => '24', -+ 'type' => '12045' -+ }, -+ '30' => { -+ 'name' => '_compat_detach_mcast', -+ 'offset' => '240', -+ 'type' => '12045' -+ }, -+ '31' => { -+ 'name' => '_compat_async_event', -+ 'offset' => '248', -+ 'type' => '12045' -+ }, -+ '4' => { -+ 'name' => '_compat_reg_mr', -+ 'offset' => '32', -+ 'type' => '12045' -+ }, -+ '5' => { -+ 'name' => '_compat_rereg_mr', -+ 'offset' => '40', -+ 'type' => '12045' -+ }, -+ '6' => { -+ 'name' => '_compat_dereg_mr', -+ 'offset' => '48', -+ 'type' => '12045' -+ }, -+ '7' => { -+ 'name' => 'alloc_mw', -+ 'offset' => '56', -+ 'type' => '12071' -+ }, -+ '8' => { -+ 'name' => 'bind_mw', -+ 'offset' => '64', -+ 'type' => '12108' -+ }, -+ '9' => { -+ 'name' => 'dealloc_mw', -+ 'offset' => '72', -+ 'type' => '12129' -+ } -+ }, -+ 'Name' => 'struct ibv_context_ops', -+ 'Size' => '256', -+ 'Type' => 'Struct' -+ }, -+ '116' => { -+ 'BaseType' => '52', -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Name' => '__uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '11986' => { -+ 'BaseType' => '3022', -+ 'Name' => 'struct ibv_device_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '11992' => { -+ 'Name' => 'int(*)(struct ibv_context*, struct ibv_device_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'type' => '11986' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12023' => { -+ 'BaseType' => '12029', -+ 'Name' => 'struct _compat_ibv_port_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12029' => { -+ 'Name' => 'struct _compat_ibv_port_attr', -+ 'Type' => 'Struct' -+ }, -+ '12034' => { -+ 'Name' => 'int(*)(struct ibv_context*, uint8_t, struct _compat_ibv_port_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'type' => '12023' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12045' => { -+ 'Name' => 'void*(*)()', -+ 'Return' => '267', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12071' => { -+ 'Name' => 'struct ibv_mw*(*)(struct ibv_pd*, enum ibv_mw_type)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6322' -+ }, -+ '1' => { -+ 'type' => '6328' -+ } -+ }, -+ 'Return' => '8428', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12102' => { -+ 'BaseType' => '9013', -+ 'Name' => 'struct ibv_mw_bind*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12108' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_mw*, struct ibv_mw_bind*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'type' => '8428' -+ }, -+ '2' => { -+ 'type' => '12102' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12129' => { -+ 'Name' => 'int(*)(struct ibv_mw*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '8428' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12160' => { -+ 'BaseType' => '5755', -+ 'Name' => 'struct ibv_wc*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12166' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int, struct ibv_wc*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '4899' -+ }, -+ '1' => { -+ 'type' => '128' -+ }, -+ '2' => { -+ 'type' => '12160' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '1218753' => { -+ 'Header' => undef, -+ 'Line' => '1637', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'flags', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_context_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '12192' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '4899' -+ }, -+ '1' => { -+ 'type' => '128' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12223' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '5219' -+ }, -+ '1' => { -+ 'type' => '8745' -+ }, -+ '2' => { -+ 'type' => '9095' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12254' => { -+ 'BaseType' => '8662', -+ 'Name' => 'struct ibv_send_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12260' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_send_wr*, struct ibv_send_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'type' => '8662' -+ }, -+ '2' => { -+ 'type' => '12254' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12291' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'type' => '8745' -+ }, -+ '2' => { -+ 'type' => '9095' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '12297' => { -+ 'Header' => undef, -+ 'Line' => '2006', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cqe', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'cq_context', -+ 'offset' => '8', -+ 'type' => '267' -+ }, -+ '2' => { -+ 'name' => 'channel', -+ 'offset' => '16', -+ 'type' => '9969' -+ }, -+ '3' => { -+ 'name' => 'comp_vector', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'wc_flags', -+ 'offset' => '32', -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'name' => 'comp_mask', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'flags', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'parent_domain', -+ 'offset' => '48', -+ 'type' => '6322' -+ } -+ }, -+ 'Name' => 'struct ibv_cq_init_attr_ex', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '12562' => { -+ 'Name' => 'void*(*)(struct ibv_pd*, void*, size_t, size_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6322' -+ }, -+ '1' => { -+ 'type' => '267' -+ }, -+ '2' => { -+ 'type' => '386' -+ }, -+ '3' => { -+ 'type' => '386' -+ }, -+ '4' => { -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '267', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '1256719' => { -+ 'BaseType' => '1218753', -+ 'Name' => 'struct mlx5dv_context_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '12594' => { -+ 'Name' => 'void(*)(struct ibv_pd*, void*, void*, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '6322' -+ }, -+ '1' => { -+ 'type' => '267' -+ }, -+ '2' => { -+ 'type' => '267' -+ }, -+ '3' => { -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '128' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '1317970' => { -+ 'Header' => undef, -+ 'Line' => '1648', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'pci_name', -+ 'offset' => '0', -+ 'type' => '375' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_vfio_context_attr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '13493' => { -+ 'BaseType' => '2028', -+ 'Name' => 'uint64_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '135' => { -+ 'BaseType' => '128', -+ 'Name' => 'int volatile', -+ 'Size' => '4', -+ 'Type' => 'Volatile' -+ }, -+ '13536' => { -+ 'BaseType' => '11061', -+ 'Name' => 'struct ibv_flow*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1355907' => { -+ 'BaseType' => '11342', -+ 'Name' => 'struct ibv_device**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1355913' => { -+ 'BaseType' => '1317970', -+ 'Name' => 'struct mlx5dv_vfio_context_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '13662' => { -+ 'BaseType' => '2687', -+ 'Name' => 'struct ibv_alloc_dm_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '13715' => { -+ 'BaseType' => '10884', -+ 'Name' => 'struct ibv_flow_action*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '13721' => { -+ 'BaseType' => '11118', -+ 'Name' => 'struct ibv_flow_action_esp_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '140' => { -+ 'BaseType' => '59', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '14092' => { -+ 'BaseType' => '6739', -+ 'Name' => 'struct ibv_wq_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14156' => { -+ 'BaseType' => '12297', -+ 'Name' => 'struct ibv_cq_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1421' => { -+ 'Header' => undef, -+ 'Line' => '49', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_flags', -+ 'offset' => '0', -+ 'type' => '128' -+ }, -+ '1' => { -+ 'name' => '_IO_read_ptr', -+ 'offset' => '8', -+ 'type' => '305' -+ }, -+ '10' => { -+ 'name' => '_IO_backup_base', -+ 'offset' => '80', -+ 'type' => '305' -+ }, -+ '11' => { -+ 'name' => '_IO_save_end', -+ 'offset' => '88', -+ 'type' => '305' -+ }, -+ '12' => { -+ 'name' => '_markers', -+ 'offset' => '96', -+ 'type' => '1837' -+ }, -+ '13' => { -+ 'name' => '_chain', -+ 'offset' => '104', -+ 'type' => '1843' -+ }, -+ '14' => { -+ 'name' => '_fileno', -+ 'offset' => '112', -+ 'type' => '128' -+ }, -+ '15' => { -+ 'name' => '_flags2', -+ 'offset' => '116', -+ 'type' => '128' -+ }, -+ '16' => { -+ 'name' => '_old_offset', -+ 'offset' => '120', -+ 'type' => '207' -+ }, -+ '17' => { -+ 'name' => '_cur_column', -+ 'offset' => '128', -+ 'type' => '52' -+ }, -+ '18' => { -+ 'name' => '_vtable_offset', -+ 'offset' => '130', -+ 'type' => '90' -+ }, -+ '19' => { -+ 'name' => '_shortbuf', -+ 'offset' => '131', -+ 'type' => '1849' -+ }, -+ '2' => { -+ 'name' => '_IO_read_end', -+ 'offset' => '16', -+ 'type' => '305' -+ }, -+ '20' => { -+ 'name' => '_lock', -+ 'offset' => '136', -+ 'type' => '1865' -+ }, -+ '21' => { -+ 'name' => '_offset', -+ 'offset' => '144', -+ 'type' => '219' -+ }, -+ '22' => { -+ 'name' => '_codecvt', -+ 'offset' => '152', -+ 'type' => '1876' -+ }, -+ '23' => { -+ 'name' => '_wide_data', -+ 'offset' => '160', -+ 'type' => '1887' -+ }, -+ '24' => { -+ 'name' => '_freeres_list', -+ 'offset' => '168', -+ 'type' => '1843' -+ }, -+ '25' => { -+ 'name' => '_freeres_buf', -+ 'offset' => '176', -+ 'type' => '267' -+ }, -+ '26' => { -+ 'name' => '__pad5', -+ 'offset' => '184', -+ 'type' => '386' -+ }, -+ '27' => { -+ 'name' => '_mode', -+ 'offset' => '192', -+ 'type' => '128' -+ }, -+ '28' => { -+ 'name' => '_unused2', -+ 'offset' => '196', -+ 'type' => '1893' -+ }, -+ '3' => { -+ 'name' => '_IO_read_base', -+ 'offset' => '24', -+ 'type' => '305' -+ }, -+ '4' => { -+ 'name' => '_IO_write_base', -+ 'offset' => '32', -+ 'type' => '305' -+ }, -+ '5' => { -+ 'name' => '_IO_write_ptr', -+ 'offset' => '40', -+ 'type' => '305' -+ }, -+ '6' => { -+ 'name' => '_IO_write_end', -+ 'offset' => '48', -+ 'type' => '305' -+ }, -+ '7' => { -+ 'name' => '_IO_buf_base', -+ 'offset' => '56', -+ 'type' => '305' -+ }, -+ '8' => { -+ 'name' => '_IO_buf_end', -+ 'offset' => '64', -+ 'type' => '305' -+ }, -+ '9' => { -+ 'name' => '_IO_save_base', -+ 'offset' => '72', -+ 'type' => '305' -+ } -+ }, -+ 'Name' => 'struct _IO_FILE', -+ 'Size' => '216', -+ 'Type' => 'Struct' -+ }, -+ '14332' => { -+ 'BaseType' => '7351', -+ 'Name' => 'struct ibv_qp_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14364' => { -+ 'BaseType' => '2011', -+ 'Name' => 'uint32_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14461' => { -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next', -+ 'offset' => '0', -+ 'type' => '14501' -+ }, -+ '1' => { -+ 'name' => 'prev', -+ 'offset' => '8', -+ 'type' => '14501' -+ } -+ }, -+ 'Name' => 'struct list_node', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14501' => { -+ 'BaseType' => '14461', -+ 'Name' => 'struct list_node*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '14507' => { -+ 'Header' => undef, -+ 'Line' => '41', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'n', -+ 'offset' => '0', -+ 'type' => '14461' -+ } -+ }, -+ 'Name' => 'struct list_head', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '14752' => { -+ 'Name' => 'atomic_int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '152' => { -+ 'Name' => 'long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '15413' => { -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_RX', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_RX', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TX', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum mlx5_ib_uapi_flow_table_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '15462' => { -+ 'Header' => undef, -+ 'Line' => '50', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TUNNEL_TO_L2', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L2_TUNNEL', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L3_TUNNEL_TO_L2', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum mlx5_ib_uapi_flow_action_packet_reformat_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '15505' => { -+ 'Header' => undef, -+ 'Line' => '57', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2141' -+ }, -+ '1' => { -+ 'name' => 'out_data', -+ 'offset' => '8', -+ 'type' => '15547' -+ } -+ }, -+ 'Name' => 'struct mlx5_ib_uapi_devx_async_cmd_hdr', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '15547' => { -+ 'BaseType' => '2105', -+ 'Name' => '__u8[]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '15562' => { -+ 'Header' => undef, -+ 'Line' => '62', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5_IB_UAPI_DM_TYPE_MEMIC', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5_IB_UAPI_DM_TYPE_STEERING_SW_ICM', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum mlx5_ib_uapi_dm_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '15599' => { -+ 'Header' => undef, -+ 'Line' => '68', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5_IB_UAPI_DEVX_CR_EV_CH_FLAGS_OMIT_DATA', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5_ib_uapi_devx_create_event_channel_flags', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '15624' => { -+ 'Header' => undef, -+ 'Line' => '72', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cookie', -+ 'offset' => '0', -+ 'type' => '2141' -+ }, -+ '1' => { -+ 'name' => 'out_data', -+ 'offset' => '8', -+ 'type' => '15547' -+ } -+ }, -+ 'Name' => 'struct mlx5_ib_uapi_devx_async_event_hdr', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '15666' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'value', -+ 'offset' => '0', -+ 'type' => '2129' -+ }, -+ '1' => { -+ 'name' => 'mask', -+ 'offset' => '4', -+ 'type' => '2129' -+ } -+ }, -+ 'Name' => 'struct mlx5_ib_uapi_reg', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '15706' => { -+ 'Header' => undef, -+ 'Line' => '100', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'flags', -+ 'offset' => '0', -+ 'type' => '2141' -+ }, -+ '1' => { -+ 'name' => 'vport', -+ 'offset' => '8', -+ 'type' => '2117' -+ }, -+ '2' => { -+ 'name' => 'vport_vhca_id', -+ 'offset' => '10', -+ 'type' => '2117' -+ }, -+ '3' => { -+ 'name' => 'esw_owner_vhca_id', -+ 'offset' => '12', -+ 'type' => '2117' -+ }, -+ '4' => { -+ 'name' => 'rsvd0', -+ 'offset' => '14', -+ 'type' => '2117' -+ }, -+ '5' => { -+ 'name' => 'vport_steering_icm_rx', -+ 'offset' => '16', -+ 'type' => '2141' -+ }, -+ '6' => { -+ 'name' => 'vport_steering_icm_tx', -+ 'offset' => '24', -+ 'type' => '2141' -+ }, -+ '7' => { -+ 'name' => 'reg_c0', -+ 'offset' => '32', -+ 'type' => '15666' -+ } -+ }, -+ 'Name' => 'struct mlx5_ib_uapi_query_port', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '15828' => { -+ 'Header' => undef, -+ 'Line' => '91', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_num', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'supported_format', -+ 'offset' => '4', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_cqe_comp_caps', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '15868' => { -+ 'Header' => undef, -+ 'Line' => '96', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sw_parsing_offloads', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '4', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sw_parsing_caps', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '159' => { -+ 'BaseType' => '66', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '15908' => { -+ 'Header' => undef, -+ 'Line' => '101', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'min_single_stride_log_num_of_bytes', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'max_single_stride_log_num_of_bytes', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'min_single_wqe_log_num_of_strides', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'max_single_wqe_log_num_of_strides', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_striding_rq_caps', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '15987' => { -+ 'Header' => undef, -+ 'Line' => '109', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_log_num_concurent', -+ 'offset' => '0', -+ 'type' => '1987' -+ }, -+ '1' => { -+ 'name' => 'max_log_num_errored', -+ 'offset' => '1', -+ 'type' => '1987' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dci_streams_caps', -+ 'Size' => '2', -+ 'Type' => 'Struct' -+ }, -+ '16027' => { -+ 'Header' => undef, -+ 'Line' => '130', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_SIG_TYPE_T10DIF', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_SIG_TYPE_CRC', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_sig_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '16058' => { -+ 'Header' => undef, -+ 'Line' => '140', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_SIG_T10DIF_CRC', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_SIG_T10DIF_CSUM', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_sig_t10dif_bg_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '16089' => { -+ 'Header' => undef, -+ 'Line' => '150', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_SIG_CRC_TYPE_CRC32', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_SIG_CRC_TYPE_CRC32C', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5DV_SIG_CRC_TYPE_CRC64_XP10', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_sig_crc_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '16126' => { -+ 'Header' => undef, -+ 'Line' => '162', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_BLOCK_SIZE_512', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_BLOCK_SIZE_520', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5DV_BLOCK_SIZE_4048', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'MLX5DV_BLOCK_SIZE_4096', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'MLX5DV_BLOCK_SIZE_4160', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_block_size', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '16175' => { -+ 'Header' => undef, -+ 'Line' => '178', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'block_size', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'block_prot', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 't10dif_bg', -+ 'offset' => '12', -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'name' => 'crc_type', -+ 'offset' => '14', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sig_caps', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '16241' => { -+ 'Header' => undef, -+ 'Line' => '199', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'failed_selftests', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'crypto_engines', -+ 'offset' => '2', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'wrapped_import_method', -+ 'offset' => '3', -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'name' => 'log_max_num_deks', -+ 'offset' => '4', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_crypto_caps', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '1624226' => { -+ 'Header' => undef, -+ 'Line' => '578', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_MKEY_NO_ERR', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_MKEY_SIG_BLOCK_BAD_GUARD', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5DV_MKEY_SIG_BLOCK_BAD_REFTAG', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'MLX5DV_MKEY_SIG_BLOCK_BAD_APPTAG', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_mkey_err_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '1624270' => { -+ 'Header' => undef, -+ 'Line' => '585', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'actual_value', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'expected_value', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'offset', -+ 'offset' => '16', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sig_err', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '1624327' => { -+ 'Header' => undef, -+ 'Line' => '593', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sig', -+ 'offset' => '0', -+ 'type' => '1624270' -+ } -+ }, -+ 'Size' => '24', -+ 'Type' => 'Union' -+ }, -+ '1624351' => { -+ 'Header' => undef, -+ 'Line' => '591', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'err_type', -+ 'offset' => '0', -+ 'type' => '1624226' -+ }, -+ '1' => { -+ 'name' => 'err', -+ 'offset' => '8', -+ 'type' => '1624327' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_mkey_err', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '16320' => { -+ 'Header' => undef, -+ 'Line' => '215', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'version', -+ 'offset' => '0', -+ 'type' => '1987' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '10' => { -+ 'name' => 'dc_odp_caps', -+ 'offset' => '84', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'name' => 'hca_core_clock', -+ 'offset' => '88', -+ 'type' => '267' -+ }, -+ '12' => { -+ 'name' => 'num_lag_ports', -+ 'offset' => '96', -+ 'type' => '1987' -+ }, -+ '13' => { -+ 'name' => 'sig_caps', -+ 'offset' => '104', -+ 'type' => '16175' -+ }, -+ '14' => { -+ 'name' => 'dci_streams_caps', -+ 'offset' => '120', -+ 'type' => '15987' -+ }, -+ '15' => { -+ 'name' => 'max_wr_memcpy_length', -+ 'offset' => '128', -+ 'type' => '386' -+ }, -+ '16' => { -+ 'name' => 'crypto_caps', -+ 'offset' => '136', -+ 'type' => '16241' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'cqe_comp_caps', -+ 'offset' => '24', -+ 'type' => '15828' -+ }, -+ '4' => { -+ 'name' => 'sw_parsing_caps', -+ 'offset' => '32', -+ 'type' => '15868' -+ }, -+ '5' => { -+ 'name' => 'striding_rq_caps', -+ 'offset' => '40', -+ 'type' => '15908' -+ }, -+ '6' => { -+ 'name' => 'tunnel_offloads_caps', -+ 'offset' => '60', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'max_dynamic_bfregs', -+ 'offset' => '64', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'max_clock_info_update_nsec', -+ 'offset' => '72', -+ 'type' => '2028' -+ }, -+ '9' => { -+ 'name' => 'flow_action_flags', -+ 'offset' => '80', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_context', -+ 'Size' => '152', -+ 'Type' => 'Struct' -+ }, -+ '16555' => { -+ 'Header' => undef, -+ 'Line' => '260', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'cqe_comp_res_format', -+ 'offset' => '8', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'cqe_size', -+ 'offset' => '16', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_cq_init_attr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '16626' => { -+ 'Header' => undef, -+ 'Line' => '287', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'pd', -+ 'offset' => '0', -+ 'type' => '6322' -+ }, -+ '1' => { -+ 'name' => 'create_flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'max_entries', -+ 'offset' => '12', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_mkey_init_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '16682' => { -+ 'Header' => undef, -+ 'Line' => '293', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'lkey', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '4', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_mkey', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '16725' => { -+ 'Header' => undef, -+ 'Line' => '308', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_DCTYPE_DCT', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_DCTYPE_DCI', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_dc_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '16757' => { -+ 'Header' => undef, -+ 'Line' => '313', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'log_num_concurent', -+ 'offset' => '0', -+ 'type' => '1987' -+ }, -+ '1' => { -+ 'name' => 'log_num_errored', -+ 'offset' => '1', -+ 'type' => '1987' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dci_streams', -+ 'Size' => '2', -+ 'Type' => 'Struct' -+ }, -+ '1676566' => { -+ 'BaseType' => '1624351', -+ 'Name' => 'struct mlx5dv_mkey_err*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '16800' => { -+ 'Header' => undef, -+ 'Line' => '320', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dct_access_key', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'dci_streams', -+ 'offset' => '0', -+ 'type' => '16757' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '16837' => { -+ 'Header' => undef, -+ 'Line' => '318', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dc_type', -+ 'offset' => '0', -+ 'type' => '16725' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '16800' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dc_init_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '16872' => { -+ 'Header' => undef, -+ 'Line' => '334', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'create_flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'dc_init_attr', -+ 'offset' => '16', -+ 'type' => '16837' -+ }, -+ '3' => { -+ 'name' => 'send_ops_flags', -+ 'offset' => '32', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_qp_init_attr', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '16943' => { -+ 'Header' => undef, -+ 'Line' => '345', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'bytes_count', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'bytes_skip', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'lkey', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_mr_interleaved', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '17014' => { -+ 'BaseType' => '16943', -+ 'Name' => 'struct mlx5dv_mr_interleaved const', -+ 'Size' => '24', -+ 'Type' => 'Const' -+ }, -+ '17019' => { -+ 'Header' => undef, -+ 'Line' => '358', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'bg_type', -+ 'offset' => '0', -+ 'type' => '16058' -+ }, -+ '1' => { -+ 'name' => 'bg', -+ 'offset' => '4', -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'name' => 'app_tag', -+ 'offset' => '6', -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'name' => 'ref_tag', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'flags', -+ 'offset' => '12', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sig_t10dif', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '17103' => { -+ 'BaseType' => '17019', -+ 'Name' => 'struct mlx5dv_sig_t10dif const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '17108' => { -+ 'Header' => undef, -+ 'Line' => '366', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'type', -+ 'offset' => '0', -+ 'type' => '16089' -+ }, -+ '1' => { -+ 'name' => 'seed', -+ 'offset' => '8', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sig_crc', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '17151' => { -+ 'BaseType' => '17108', -+ 'Name' => 'struct mlx5dv_sig_crc const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '17156' => { -+ 'Header' => undef, -+ 'Line' => '373', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dif', -+ 'offset' => '0', -+ 'type' => '17193' -+ }, -+ '1' => { -+ 'name' => 'crc', -+ 'offset' => '0', -+ 'type' => '17199' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '17193' => { -+ 'BaseType' => '17103', -+ 'Name' => 'struct mlx5dv_sig_t10dif const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '17199' => { -+ 'BaseType' => '17151', -+ 'Name' => 'struct mlx5dv_sig_crc const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '17205' => { -+ 'Header' => undef, -+ 'Line' => '371', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sig_type', -+ 'offset' => '0', -+ 'type' => '16027' -+ }, -+ '1' => { -+ 'name' => 'sig', -+ 'offset' => '8', -+ 'type' => '17156' -+ }, -+ '2' => { -+ 'name' => 'block_size', -+ 'offset' => '16', -+ 'type' => '16126' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '24', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sig_block_domain', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '17276' => { -+ 'BaseType' => '17205', -+ 'Name' => 'struct mlx5dv_sig_block_domain const', -+ 'Size' => '32', -+ 'Type' => 'Const' -+ }, -+ '17281' => { -+ 'Header' => undef, -+ 'Line' => '394', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mem', -+ 'offset' => '0', -+ 'type' => '17385' -+ }, -+ '1' => { -+ 'name' => 'wire', -+ 'offset' => '8', -+ 'type' => '17385' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'check_mask', -+ 'offset' => '20', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'copy_mask', -+ 'offset' => '21', -+ 'type' => '1987' -+ }, -+ '5' => { -+ 'name' => 'comp_mask', -+ 'offset' => '24', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sig_block_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '17380' => { -+ 'BaseType' => '17281', -+ 'Name' => 'struct mlx5dv_sig_block_attr const', -+ 'Size' => '32', -+ 'Type' => 'Const' -+ }, -+ '17385' => { -+ 'BaseType' => '17276', -+ 'Name' => 'struct mlx5dv_sig_block_domain const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '17391' => { -+ 'Header' => undef, -+ 'Line' => '403', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_CRYPTO_STANDARD_AES_XTS', -+ 'value' => '0' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_crypto_standard', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '17417' => { -+ 'Header' => undef, -+ 'Line' => '407', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_SIGNATURE_CRYPTO_ORDER_SIGNATURE_AFTER_CRYPTO_ON_TX', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_SIGNATURE_CRYPTO_ORDER_SIGNATURE_BEFORE_CRYPTO_ON_TX', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_signature_crypto_order', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '17449' => { -+ 'Header' => undef, -+ 'Line' => '412', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'crypto_standard', -+ 'offset' => '0', -+ 'type' => '17391' -+ }, -+ '1' => { -+ 'name' => 'encrypt_on_tx', -+ 'offset' => '4', -+ 'type' => '2098' -+ }, -+ '2' => { -+ 'name' => 'signature_crypto_order', -+ 'offset' => '8', -+ 'type' => '17417' -+ }, -+ '3' => { -+ 'name' => 'data_unit_size', -+ 'offset' => '12', -+ 'type' => '16126' -+ }, -+ '4' => { -+ 'name' => 'initial_tweak', -+ 'offset' => '16', -+ 'type' => '17581' -+ }, -+ '5' => { -+ 'name' => 'dek', -+ 'offset' => '32', -+ 'type' => '17626' -+ }, -+ '6' => { -+ 'name' => 'keytag', -+ 'offset' => '40', -+ 'type' => '983' -+ }, -+ '7' => { -+ 'name' => 'comp_mask', -+ 'offset' => '48', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_crypto_attr', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '17576' => { -+ 'BaseType' => '17449', -+ 'Name' => 'struct mlx5dv_crypto_attr const', -+ 'Size' => '56', -+ 'Type' => 'Const' -+ }, -+ '17581' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '17597' => { -+ 'Header' => undef, -+ 'Line' => '895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'devx_obj', -+ 'offset' => '0', -+ 'type' => '19143' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dek', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '17626' => { -+ 'BaseType' => '17597', -+ 'Name' => 'struct mlx5dv_dek*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '17632' => { -+ 'Header' => undef, -+ 'Line' => '427', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'conf_flags', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_mkey_conf_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '17675' => { -+ 'Header' => undef, -+ 'Line' => '438', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'wr_set_dc_addr', -+ 'offset' => '8', -+ 'type' => '17904' -+ }, -+ '10' => { -+ 'name' => 'wr_set_dc_addr_stream', -+ 'offset' => '80', -+ 'type' => '18207' -+ }, -+ '11' => { -+ 'name' => 'wr_memcpy', -+ 'offset' => '88', -+ 'type' => '18249' -+ }, -+ '12' => { -+ 'name' => 'wr_set_mkey_crypto', -+ 'offset' => '96', -+ 'type' => '18277' -+ }, -+ '2' => { -+ 'name' => 'wr_mr_interleaved', -+ 'offset' => '16', -+ 'type' => '17958' -+ }, -+ '3' => { -+ 'name' => 'wr_mr_list', -+ 'offset' => '24', -+ 'type' => '17995' -+ }, -+ '4' => { -+ 'name' => 'wr_mkey_configure', -+ 'offset' => '32', -+ 'type' => '18033' -+ }, -+ '5' => { -+ 'name' => 'wr_set_mkey_access_flags', -+ 'offset' => '40', -+ 'type' => '18055' -+ }, -+ '6' => { -+ 'name' => 'wr_set_mkey_layout_list', -+ 'offset' => '48', -+ 'type' => '18082' -+ }, -+ '7' => { -+ 'name' => 'wr_set_mkey_layout_interleaved', -+ 'offset' => '56', -+ 'type' => '18120' -+ }, -+ '8' => { -+ 'name' => 'wr_set_mkey_sig_block', -+ 'offset' => '64', -+ 'type' => '18148' -+ }, -+ '9' => { -+ 'name' => 'wr_raw_wqe', -+ 'offset' => '72', -+ 'type' => '18170' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_qp_ex', -+ 'Size' => '104', -+ 'Type' => 'Struct' -+ }, -+ '17898' => { -+ 'BaseType' => '17675', -+ 'Name' => 'struct mlx5dv_qp_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '17904' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, struct ibv_ah*, uint32_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '8272' -+ }, -+ '2' => { -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '17946' => { -+ 'BaseType' => '16682', -+ 'Name' => 'struct mlx5dv_mkey*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '17952' => { -+ 'BaseType' => '16943', -+ 'Name' => 'struct mlx5dv_mr_interleaved*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '17958' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, struct mlx5dv_mkey*, uint32_t, uint32_t, uint16_t, struct mlx5dv_mr_interleaved*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '17946' -+ }, -+ '2' => { -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'type' => '1999' -+ }, -+ '5' => { -+ 'type' => '17952' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '17995' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, struct mlx5dv_mkey*, uint32_t, uint16_t, struct ibv_sge*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '17946' -+ }, -+ '2' => { -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'type' => '1999' -+ }, -+ '4' => { -+ 'type' => '8668' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18027' => { -+ 'BaseType' => '17632', -+ 'Name' => 'struct mlx5dv_mkey_conf_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18033' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, struct mlx5dv_mkey*, uint8_t, struct mlx5dv_mkey_conf_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '17946' -+ }, -+ '2' => { -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'type' => '18027' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18055' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18082' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, uint16_t, struct ibv_sge const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'type' => '9880' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18114' => { -+ 'BaseType' => '17014', -+ 'Name' => 'struct mlx5dv_mr_interleaved const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1812' => { -+ 'BaseType' => '1421', -+ 'Header' => undef, -+ 'Line' => '7', -+ 'Name' => 'FILE', -+ 'Size' => '216', -+ 'Type' => 'Typedef' -+ }, -+ '18120' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, uint32_t, uint16_t, struct mlx5dv_mr_interleaved const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'type' => '18114' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18142' => { -+ 'BaseType' => '17380', -+ 'Name' => 'struct mlx5dv_sig_block_attr const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18148' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, struct mlx5dv_sig_block_attr const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '18142' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18170' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, void const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '1980' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18207' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, struct ibv_ah*, uint32_t, uint64_t, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '8272' -+ }, -+ '2' => { -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '1824' => { -+ 'BaseType' => '1', -+ 'Header' => undef, -+ 'Line' => '43', -+ 'Name' => '_IO_lock_t', -+ 'Type' => 'Typedef' -+ }, -+ '18249' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, uint32_t, uint64_t, uint32_t, uint64_t, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18271' => { -+ 'BaseType' => '17576', -+ 'Name' => 'struct mlx5dv_crypto_attr const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18277' => { -+ 'Name' => 'void(*)(struct mlx5dv_qp_ex*, struct mlx5dv_crypto_attr const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '17898' -+ }, -+ '1' => { -+ 'type' => '18271' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '18283' => { -+ 'Header' => undef, -+ 'Line' => '615', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'credential_id', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'import_kek_id', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'credential', -+ 'offset' => '8', -+ 'type' => '955' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '56', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_crypto_login_attr', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '1832' => { -+ 'Name' => 'struct _IO_marker', -+ 'Type' => 'Struct' -+ }, -+ '18354' => { -+ 'Header' => undef, -+ 'Line' => '622', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_CRYPTO_LOGIN_STATE_VALID', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_CRYPTO_LOGIN_STATE_NO_LOGIN', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5DV_CRYPTO_LOGIN_STATE_INVALID', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_crypto_login_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '1837' => { -+ 'BaseType' => '1832', -+ 'Name' => 'struct _IO_marker*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18392' => { -+ 'Header' => undef, -+ 'Line' => '636', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_CRYPTO_KEY_SIZE_128', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_CRYPTO_KEY_SIZE_256', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_crypto_key_size', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '18424' => { -+ 'Header' => undef, -+ 'Line' => '641', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_CRYPTO_KEY_PURPOSE_AES_XTS', -+ 'value' => '0' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_crypto_key_purpose', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '1843' => { -+ 'BaseType' => '1421', -+ 'Name' => 'struct _IO_FILE*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18450' => { -+ 'Header' => undef, -+ 'Line' => '645', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_DEK_STATE_READY', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_DEK_STATE_ERROR', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_dek_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '18482' => { -+ 'Header' => undef, -+ 'Line' => '650', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'key_size', -+ 'offset' => '0', -+ 'type' => '18392' -+ }, -+ '1' => { -+ 'name' => 'has_keytag', -+ 'offset' => '4', -+ 'type' => '2098' -+ }, -+ '2' => { -+ 'name' => 'key_purpose', -+ 'offset' => '8', -+ 'type' => '18424' -+ }, -+ '3' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '6322' -+ }, -+ '4' => { -+ 'name' => 'opaque', -+ 'offset' => '24', -+ 'type' => '983' -+ }, -+ '5' => { -+ 'name' => 'key', -+ 'offset' => '32', -+ 'type' => '18594' -+ }, -+ '6' => { -+ 'name' => 'comp_mask', -+ 'offset' => '160', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dek_init_attr', -+ 'Size' => '168', -+ 'Type' => 'Struct' -+ }, -+ '1849' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[1]', -+ 'Size' => '1', -+ 'Type' => 'Array' -+ }, -+ '18594' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[128]', -+ 'Size' => '128', -+ 'Type' => 'Array' -+ }, -+ '18610' => { -+ 'Header' => undef, -+ 'Line' => '660', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'state', -+ 'offset' => '0', -+ 'type' => '18450' -+ }, -+ '1' => { -+ 'name' => 'opaque', -+ 'offset' => '4', -+ 'type' => '983' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dek_attr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '1865' => { -+ 'BaseType' => '1824', -+ 'Name' => '_IO_lock_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18667' => { -+ 'Header' => undef, -+ 'Line' => '679', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'action_flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_flow_action_esp', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '1871' => { -+ 'Name' => 'struct _IO_codecvt', -+ 'Type' => 'Struct' -+ }, -+ '18710' => { -+ 'Header' => undef, -+ 'Line' => '684', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'match_sz', -+ 'offset' => '0', -+ 'type' => '386' -+ }, -+ '1' => { -+ 'name' => 'match_buf', -+ 'offset' => '8', -+ 'type' => '18753' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_flow_match_parameters', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '18753' => { -+ 'BaseType' => '2028', -+ 'Name' => 'uint64_t[]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '1876' => { -+ 'BaseType' => '1871', -+ 'Name' => 'struct _IO_codecvt*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18768' => { -+ 'Header' => undef, -+ 'Line' => '693', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'type', -+ 'offset' => '0', -+ 'type' => '10824' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'priority', -+ 'offset' => '8', -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'name' => 'match_criteria_enable', -+ 'offset' => '10', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'match_mask', -+ 'offset' => '16', -+ 'type' => '18881' -+ }, -+ '5' => { -+ 'name' => 'comp_mask', -+ 'offset' => '24', -+ 'type' => '2028' -+ }, -+ '6' => { -+ 'name' => 'ft_type', -+ 'offset' => '32', -+ 'type' => '15413' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_flow_matcher_attr', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '1882' => { -+ 'Name' => 'struct _IO_wide_data', -+ 'Type' => 'Struct' -+ }, -+ '1887' => { -+ 'BaseType' => '1882', -+ 'Name' => 'struct _IO_wide_data*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18881' => { -+ 'BaseType' => '18710', -+ 'Name' => 'struct mlx5dv_flow_match_parameters*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '18887' => { -+ 'Header' => undef, -+ 'Line' => '711', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_DEST_IBV_QP', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_DROP', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_IBV_COUNTER', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_IBV_FLOW_ACTION', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_TAG', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_DEST_DEVX', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_COUNTERS_DEVX', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'MLX5DV_FLOW_ACTION_DEFAULT_MISS', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_flow_action_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '1893' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[20]', -+ 'Size' => '20', -+ 'Type' => 'Array' -+ }, -+ '18955' => { -+ 'Header' => undef, -+ 'Line' => '724', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp', -+ 'offset' => '0', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'counter', -+ 'offset' => '0', -+ 'type' => '10942' -+ }, -+ '2' => { -+ 'name' => 'action', -+ 'offset' => '0', -+ 'type' => '13715' -+ }, -+ '3' => { -+ 'name' => 'tag_value', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'obj', -+ 'offset' => '0', -+ 'type' => '19143' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '19030' => { -+ 'Header' => undef, -+ 'Line' => '774', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'type', -+ 'offset' => '12', -+ 'type' => '27892' -+ }, -+ '3' => { -+ 'name' => 'object_id', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'rx_icm_addr', -+ 'offset' => '24', -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'name' => 'log_obj_range', -+ 'offset' => '32', -+ 'type' => '1987' -+ }, -+ '6' => { -+ 'name' => 'priv', -+ 'offset' => '40', -+ 'type' => '267' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_obj', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '19143' => { -+ 'BaseType' => '19030', -+ 'Name' => 'struct mlx5dv_devx_obj*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19149' => { -+ 'Header' => undef, -+ 'Line' => '722', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'type', -+ 'offset' => '0', -+ 'type' => '18887' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '18955' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_flow_action_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '19184' => { -+ 'Header' => undef, -+ 'Line' => '793', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'wqe_cnt', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'stride', -+ 'offset' => '12', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '1921' => { -+ 'BaseType' => '207', -+ 'Header' => undef, -+ 'Line' => '63', -+ 'Name' => 'off_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '19237' => { -+ 'Header' => undef, -+ 'Line' => '798', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'wqe_cnt', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'stride', -+ 'offset' => '12', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '19290' => { -+ 'Header' => undef, -+ 'Line' => '803', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'reg', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'size', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '19329' => { -+ 'Header' => undef, -+ 'Line' => '791', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dbrec', -+ 'offset' => '0', -+ 'type' => '19495' -+ }, -+ '1' => { -+ 'name' => 'sq', -+ 'offset' => '8', -+ 'type' => '19184' -+ }, -+ '10' => { -+ 'name' => 'tir_icm_addr', -+ 'offset' => '88', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'rq', -+ 'offset' => '24', -+ 'type' => '19237' -+ }, -+ '3' => { -+ 'name' => 'bf', -+ 'offset' => '40', -+ 'type' => '19290' -+ }, -+ '4' => { -+ 'name' => 'comp_mask', -+ 'offset' => '56', -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'name' => 'uar_mmap_offset', -+ 'offset' => '64', -+ 'type' => '1921' -+ }, -+ '6' => { -+ 'name' => 'tirn', -+ 'offset' => '72', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'tisn', -+ 'offset' => '76', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'rqn', -+ 'offset' => '80', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'sqn', -+ 'offset' => '84', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_qp', -+ 'Size' => '96', -+ 'Type' => 'Struct' -+ }, -+ '1933' => { -+ 'BaseType' => '269', -+ 'Header' => undef, -+ 'Line' => '77', -+ 'Name' => 'ssize_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1945' => { -+ 'BaseType' => '1812', -+ 'Name' => 'FILE*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19495' => { -+ 'BaseType' => '2165', -+ 'Name' => '__be32*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19501' => { -+ 'Header' => undef, -+ 'Line' => '816', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'dbrec', -+ 'offset' => '8', -+ 'type' => '19495' -+ }, -+ '2' => { -+ 'name' => 'cqe_cnt', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'cqe_size', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'cq_uar', -+ 'offset' => '24', -+ 'type' => '267' -+ }, -+ '5' => { -+ 'name' => 'cqn', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'comp_mask', -+ 'offset' => '40', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_cq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '19614' => { -+ 'Header' => undef, -+ 'Line' => '830', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'dbrec', -+ 'offset' => '8', -+ 'type' => '19495' -+ }, -+ '2' => { -+ 'name' => 'stride', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'head', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'tail', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'comp_mask', -+ 'offset' => '32', -+ 'type' => '2028' -+ }, -+ '6' => { -+ 'name' => 'srqn', -+ 'offset' => '40', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_srq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '19727' => { -+ 'Header' => undef, -+ 'Line' => '840', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'dbrec', -+ 'offset' => '8', -+ 'type' => '19495' -+ }, -+ '2' => { -+ 'name' => 'wqe_cnt', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'stride', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'comp_mask', -+ 'offset' => '24', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_rwq', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '1980' => { -+ 'BaseType' => '1986', -+ 'Name' => 'void const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '19812' => { -+ 'Header' => undef, -+ 'Line' => '848', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'type', -+ 'offset' => '0', -+ 'type' => '15562' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_alloc_dm_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '19855' => { -+ 'Header' => undef, -+ 'Line' => '857', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'remote_va', -+ 'offset' => '24', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dm', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '1986' => { -+ 'BaseType' => '1', -+ 'Name' => 'void const', -+ 'Type' => 'Const' -+ }, -+ '1987' => { -+ 'BaseType' => '97', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '19926' => { -+ 'Header' => undef, -+ 'Line' => '872', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'av', -+ 'offset' => '0', -+ 'type' => '20137' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_ah', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '19968' => { -+ 'Header' => undef, -+ 'Line' => '1216', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'key', -+ 'offset' => '0', -+ 'type' => '20873' -+ }, -+ '1' => { -+ 'name' => 'dqp_dct', -+ 'offset' => '8', -+ 'type' => '2165' -+ }, -+ '10' => { -+ 'name' => 'rgid', -+ 'offset' => '32', -+ 'type' => '2512' -+ }, -+ '2' => { -+ 'name' => 'stat_rate_sl', -+ 'offset' => '12', -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'name' => 'fl_mlid', -+ 'offset' => '13', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'rlid', -+ 'offset' => '14', -+ 'type' => '2153' -+ }, -+ '5' => { -+ 'name' => 'reserved0', -+ 'offset' => '16', -+ 'type' => '20718' -+ }, -+ '6' => { -+ 'name' => 'rmac', -+ 'offset' => '20', -+ 'type' => '10868' -+ }, -+ '7' => { -+ 'name' => 'tclass', -+ 'offset' => '26', -+ 'type' => '1987' -+ }, -+ '8' => { -+ 'name' => 'hop_limit', -+ 'offset' => '27', -+ 'type' => '1987' -+ }, -+ '9' => { -+ 'name' => 'grh_gid_fl', -+ 'offset' => '28', -+ 'type' => '2165' -+ } -+ }, -+ 'Name' => 'struct mlx5_wqe_av', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '1999' => { -+ 'BaseType' => '116', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => 'uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '2011' => { -+ 'BaseType' => '140', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '20137' => { -+ 'BaseType' => '19968', -+ 'Name' => 'struct mlx5_wqe_av*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20143' => { -+ 'Header' => undef, -+ 'Line' => '877', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'pdn', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_pd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20186' => { -+ 'Header' => undef, -+ 'Line' => '883', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '5101' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '20224' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20224' => { -+ 'BaseType' => '19329', -+ 'Name' => 'struct mlx5dv_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20230' => { -+ 'Header' => undef, -+ 'Line' => '887', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '4899' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '20268' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20268' => { -+ 'BaseType' => '19501', -+ 'Name' => 'struct mlx5dv_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20274' => { -+ 'Header' => undef, -+ 'Line' => '891', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '5219' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '20312' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '2028' => { -+ 'BaseType' => '159', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '20312' => { -+ 'BaseType' => '19614', -+ 'Name' => 'struct mlx5dv_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20318' => { -+ 'Header' => undef, -+ 'Line' => '895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '5420' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '20356' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20356' => { -+ 'BaseType' => '19727', -+ 'Name' => 'struct mlx5dv_rwq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20362' => { -+ 'Header' => undef, -+ 'Line' => '899', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '2974' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '20400' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20400' => { -+ 'BaseType' => '19855', -+ 'Name' => 'struct mlx5dv_dm*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20406' => { -+ 'Header' => undef, -+ 'Line' => '903', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '8272' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '20444' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20444' => { -+ 'BaseType' => '19926', -+ 'Name' => 'struct mlx5dv_ah*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20450' => { -+ 'Header' => undef, -+ 'Line' => '907', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'in', -+ 'offset' => '0', -+ 'type' => '6322' -+ }, -+ '1' => { -+ 'name' => 'out', -+ 'offset' => '8', -+ 'type' => '20488' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '20488' => { -+ 'BaseType' => '20143', -+ 'Name' => 'struct mlx5dv_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20494' => { -+ 'Header' => undef, -+ 'Line' => '882', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp', -+ 'offset' => '0', -+ 'type' => '20186' -+ }, -+ '1' => { -+ 'name' => 'cq', -+ 'offset' => '16', -+ 'type' => '20230' -+ }, -+ '2' => { -+ 'name' => 'srq', -+ 'offset' => '32', -+ 'type' => '20274' -+ }, -+ '3' => { -+ 'name' => 'rwq', -+ 'offset' => '48', -+ 'type' => '20318' -+ }, -+ '4' => { -+ 'name' => 'dm', -+ 'offset' => '64', -+ 'type' => '20362' -+ }, -+ '5' => { -+ 'name' => 'ah', -+ 'offset' => '80', -+ 'type' => '20406' -+ }, -+ '6' => { -+ 'name' => 'pd', -+ 'offset' => '96', -+ 'type' => '20450' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_obj', -+ 'Size' => '112', -+ 'Type' => 'Struct' -+ }, -+ '20602' => { -+ 'Header' => undef, -+ 'Line' => '927', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'single_stride_log_num_of_bytes', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'single_wqe_log_num_of_strides', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'two_byte_shift_en', -+ 'offset' => '8', -+ 'type' => '1987' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_striding_rq_init_attr', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '20659' => { -+ 'Header' => undef, -+ 'Line' => '933', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'striding_rq_attrs', -+ 'offset' => '8', -+ 'type' => '20602' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_wq_init_attr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '207' => { -+ 'BaseType' => '152', -+ 'Header' => undef, -+ 'Line' => '152', -+ 'Name' => '__off_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '20718' => { -+ 'BaseType' => '1987', -+ 'Name' => 'uint8_t[4]', -+ 'Size' => '4', -+ 'Type' => 'Array' -+ }, -+ '20834' => { -+ 'Header' => undef, -+ 'Line' => '1218', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qkey', -+ 'offset' => '0', -+ 'type' => '2165' -+ }, -+ '1' => { -+ 'name' => 'reserved', -+ 'offset' => '4', -+ 'type' => '2165' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '20873' => { -+ 'Header' => undef, -+ 'Line' => '1217', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qkey', -+ 'offset' => '0', -+ 'type' => '20834' -+ }, -+ '1' => { -+ 'name' => 'dc_key', -+ 'offset' => '0', -+ 'type' => '2177' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '20910' => { -+ 'Header' => undef, -+ 'Line' => '1547', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_CTX_ATTR_BUF_ALLOCATORS', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_set_ctx_attr_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '2098' => { -+ 'Name' => '_Bool', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '21041' => { -+ 'Header' => undef, -+ 'Line' => '1571', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'nsec', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'last_cycles', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'frac', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'mult', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'shift', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'mask', -+ 'offset' => '32', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_clock_info', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '2105' => { -+ 'BaseType' => '45', -+ 'Header' => undef, -+ 'Line' => '21', -+ 'Name' => '__u8', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '21140' => { -+ 'Header' => undef, -+ 'Line' => '1693', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'umem_id', -+ 'offset' => '0', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_umem', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '21169' => { -+ 'Header' => undef, -+ 'Line' => '1700', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'size', -+ 'offset' => '8', -+ 'type' => '386' -+ }, -+ '2' => { -+ 'name' => 'access', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'pgsz_bitmap', -+ 'offset' => '24', -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'name' => 'comp_mask', -+ 'offset' => '32', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_umem_in', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '2117' => { -+ 'BaseType' => '52', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => '__u16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '21254' => { -+ 'Header' => undef, -+ 'Line' => '1713', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'reg_addr', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'base_addr', -+ 'offset' => '8', -+ 'type' => '267' -+ }, -+ '2' => { -+ 'name' => 'page_id', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'mmap_off', -+ 'offset' => '24', -+ 'type' => '1921' -+ }, -+ '4' => { -+ 'name' => 'comp_mask', -+ 'offset' => '32', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_uar', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '2129' => { -+ 'BaseType' => '59', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__u32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '21339' => { -+ 'Header' => undef, -+ 'Line' => '1726', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'page_id', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'mmap_off', -+ 'offset' => '8', -+ 'type' => '1921' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_var', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '2141' => { -+ 'BaseType' => '405', -+ 'Header' => undef, -+ 'Line' => '31', -+ 'Name' => '__u64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '21410' => { -+ 'Header' => undef, -+ 'Line' => '1763', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fd', -+ 'offset' => '0', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_cmd_comp', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '21438' => { -+ 'Header' => undef, -+ 'Line' => '1779', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fd', -+ 'offset' => '0', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_event_channel', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '21466' => { -+ 'Header' => undef, -+ 'Line' => '2069', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'index', -+ 'offset' => '0', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_pp', -+ 'Size' => '2', -+ 'Type' => 'Struct' -+ }, -+ '21495' => { -+ 'Header' => undef, -+ 'Line' => '2095', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'parent', -+ 'offset' => '0', -+ 'type' => '21628' -+ }, -+ '1' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'bw_share', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'max_avg_bw', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'comp_mask', -+ 'offset' => '24', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sched_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '2153' => { -+ 'BaseType' => '2117', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => '__be16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '21580' => { -+ 'BaseType' => '21495', -+ 'Name' => 'struct mlx5dv_sched_attr const', -+ 'Size' => '32', -+ 'Type' => 'Const' -+ }, -+ '21585' => { -+ 'Header' => undef, -+ 'Line' => '913', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'parent', -+ 'offset' => '0', -+ 'type' => '21628' -+ }, -+ '1' => { -+ 'name' => 'obj', -+ 'offset' => '8', -+ 'type' => '19143' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sched_node', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '21628' => { -+ 'BaseType' => '21585', -+ 'Name' => 'struct mlx5dv_sched_node*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '21634' => { -+ 'Header' => undef, -+ 'Line' => '2138', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'vector', -+ 'offset' => '0', -+ 'type' => '128' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '4', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_msi_vector', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '2165' => { -+ 'BaseType' => '2129', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__be32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '21676' => { -+ 'Header' => undef, -+ 'Line' => '2148', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'vaddr', -+ 'offset' => '0', -+ 'type' => '267' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_devx_eq', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '2177' => { -+ 'BaseType' => '2141', -+ 'Header' => undef, -+ 'Line' => '29', -+ 'Name' => '__be64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '21789' => { -+ 'Header' => undef, -+ 'Line' => '197', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5_ALLOC_TYPE_ANON', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5_ALLOC_TYPE_HUGE', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5_ALLOC_TYPE_CONTIG', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'MLX5_ALLOC_TYPE_PREFER_HUGE', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'MLX5_ALLOC_TYPE_PREFER_CONTIG', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'MLX5_ALLOC_TYPE_EXTERNAL', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'MLX5_ALLOC_TYPE_CUSTOM', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'MLX5_ALLOC_TYPE_ALL', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum mlx5_alloc_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '219' => { -+ 'BaseType' => '152', -+ 'Header' => undef, -+ 'Line' => '153', -+ 'Name' => '__off64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '21945' => { -+ 'Header' => undef, -+ 'Line' => '243', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'lock', -+ 'offset' => '0', -+ 'type' => '999' -+ }, -+ '1' => { -+ 'name' => 'in_use', -+ 'offset' => '4', -+ 'type' => '128' -+ }, -+ '2' => { -+ 'name' => 'need_lock', -+ 'offset' => '8', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct mlx5_spinlock', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '2205' => { -+ 'Header' => undef, -+ 'Line' => '144', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM', -+ 'value' => '0' -+ } -+ }, -+ 'Name' => 'enum ib_uverbs_flow_action_esp_keymat', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '2230' => { -+ 'Header' => undef, -+ 'Line' => '163', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IB_UVERBS_FLOW_ACTION_ESP_REPLAY_NONE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IB_UVERBS_FLOW_ACTION_ESP_REPLAY_BMP', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum ib_uverbs_flow_action_esp_replay', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '22314' => { -+ 'BaseType' => '66', -+ 'Name' => 'unsigned long*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2261' => { -+ 'Header' => undef, -+ 'Line' => '189', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'val_ptr', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'val_ptr_data_u64', -+ 'offset' => '0', -+ 'type' => '2141' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '2297' => { -+ 'Header' => undef, -+ 'Line' => '190', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next_ptr', -+ 'offset' => '0', -+ 'type' => '2388' -+ }, -+ '1' => { -+ 'name' => 'next_ptr_data_u64', -+ 'offset' => '0', -+ 'type' => '2141' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '2333' => { -+ 'Header' => undef, -+ 'Line' => '185', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '2261' -+ }, -+ '1' => { -+ 'name' => 'unnamed1', -+ 'offset' => '8', -+ 'type' => '2297' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'offset' => '16', -+ 'type' => '2117' -+ }, -+ '3' => { -+ 'name' => 'type', -+ 'offset' => '18', -+ 'type' => '2117' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_flow_action_esp_encap', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '2388' => { -+ 'BaseType' => '2333', -+ 'Name' => 'struct ib_uverbs_flow_action_esp_encap*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2394' => { -+ 'Header' => undef, -+ 'Line' => '195', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'spi', -+ 'offset' => '0', -+ 'type' => '2129' -+ }, -+ '1' => { -+ 'name' => 'seq', -+ 'offset' => '4', -+ 'type' => '2129' -+ }, -+ '2' => { -+ 'name' => 'tfc_pad', -+ 'offset' => '8', -+ 'type' => '2129' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'offset' => '12', -+ 'type' => '2129' -+ }, -+ '4' => { -+ 'name' => 'hard_limit_pkts', -+ 'offset' => '16', -+ 'type' => '2141' -+ } -+ }, -+ 'Name' => 'struct ib_uverbs_flow_action_esp', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '2512' => { -+ 'BaseType' => '1987', -+ 'Name' => 'uint8_t[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '2528' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_NODE_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_NODE_CA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_NODE_SWITCH', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_NODE_ROUTER', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_NODE_RNIC', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_NODE_USNIC', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_NODE_USNIC_UDP', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_NODE_UNSPECIFIED', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_node_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '25436' => { -+ 'Header' => undef, -+ 'Line' => '603', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'reg', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'need_lock', -+ 'offset' => '8', -+ 'type' => '128' -+ }, -+ '10' => { -+ 'bitfield' => '1', -+ 'name' => 'dyn_alloc_uar', -+ 'offset' => '112', -+ 'type' => '1987' -+ }, -+ '11' => { -+ 'bitfield' => '1', -+ 'name' => 'mmaped_entry', -+ 'offset' => '112', -+ 'type' => '1987' -+ }, -+ '12' => { -+ 'bitfield' => '1', -+ 'name' => 'nc_mode', -+ 'offset' => '112', -+ 'type' => '1987' -+ }, -+ '13' => { -+ 'bitfield' => '1', -+ 'name' => 'qp_dedicated', -+ 'offset' => '112', -+ 'type' => '1987' -+ }, -+ '14' => { -+ 'bitfield' => '1', -+ 'name' => 'qp_shared', -+ 'offset' => '112', -+ 'type' => '1987' -+ }, -+ '15' => { -+ 'name' => 'count', -+ 'offset' => '116', -+ 'type' => '2011' -+ }, -+ '16' => { -+ 'name' => 'uar_entry', -+ 'offset' => '120', -+ 'type' => '14461' -+ }, -+ '17' => { -+ 'name' => 'uar_handle', -+ 'offset' => '136', -+ 'type' => '2011' -+ }, -+ '18' => { -+ 'name' => 'length', -+ 'offset' => '140', -+ 'type' => '2011' -+ }, -+ '19' => { -+ 'name' => 'page_id', -+ 'offset' => '144', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'lock', -+ 'offset' => '12', -+ 'type' => '21945' -+ }, -+ '3' => { -+ 'name' => 'offset', -+ 'offset' => '24', -+ 'type' => '59' -+ }, -+ '4' => { -+ 'name' => 'buf_size', -+ 'offset' => '28', -+ 'type' => '59' -+ }, -+ '5' => { -+ 'name' => 'uuarn', -+ 'offset' => '32', -+ 'type' => '59' -+ }, -+ '6' => { -+ 'name' => 'uar_mmap_offset', -+ 'offset' => '40', -+ 'type' => '1921' -+ }, -+ '7' => { -+ 'name' => 'uar', -+ 'offset' => '48', -+ 'type' => '267' -+ }, -+ '8' => { -+ 'name' => 'bfreg_dyn_index', -+ 'offset' => '56', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'devx_uar', -+ 'offset' => '64', -+ 'type' => '27800' -+ } -+ }, -+ 'Name' => 'struct mlx5_bf', -+ 'Size' => '152', -+ 'Type' => 'Struct' -+ }, -+ '25746' => { -+ 'BaseType' => '25436', -+ 'Name' => 'struct mlx5_bf*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2595' => { -+ 'Header' => undef, -+ 'Line' => '106', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_TRANSPORT_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_TRANSPORT_IB', -+ 'value' => '0' -+ }, -+ '2' => { -+ 'name' => 'IBV_TRANSPORT_IWARP', -+ 'value' => '1' -+ }, -+ '3' => { -+ 'name' => 'IBV_TRANSPORT_USNIC', -+ 'value' => '2' -+ }, -+ '4' => { -+ 'name' => 'IBV_TRANSPORT_USNIC_UDP', -+ 'value' => '3' -+ }, -+ '5' => { -+ 'name' => 'IBV_TRANSPORT_UNSPECIFIED', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum ibv_transport_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '2650' => { -+ 'Header' => undef, -+ 'Line' => '155', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_ATOMIC_NONE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_ATOMIC_HCA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_ATOMIC_GLOB', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_atomic_cap', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '267' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2687' => { -+ 'Header' => undef, -+ 'Line' => '161', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'length', -+ 'offset' => '0', -+ 'type' => '386' -+ }, -+ '1' => { -+ 'name' => 'log_align_req', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '12', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_alloc_dm_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '26888' => { -+ 'Header' => undef, -+ 'Line' => '423', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'shmid', -+ 'offset' => '0', -+ 'type' => '128' -+ }, -+ '1' => { -+ 'name' => 'shmaddr', -+ 'offset' => '8', -+ 'type' => '267' -+ }, -+ '2' => { -+ 'name' => 'bitmap', -+ 'offset' => '16', -+ 'type' => '22314' -+ }, -+ '3' => { -+ 'name' => 'bmp_size', -+ 'offset' => '24', -+ 'type' => '66' -+ }, -+ '4' => { -+ 'name' => 'entry', -+ 'offset' => '32', -+ 'type' => '14461' -+ } -+ }, -+ 'Name' => 'struct mlx5_hugetlb_mem', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '269' => { -+ 'BaseType' => '152', -+ 'Header' => undef, -+ 'Line' => '193', -+ 'Name' => '__ssize_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '26973' => { -+ 'Header' => undef, -+ 'Line' => '431', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '386' -+ }, -+ '2' => { -+ 'name' => 'base', -+ 'offset' => '16', -+ 'type' => '128' -+ }, -+ '3' => { -+ 'name' => 'hmem', -+ 'offset' => '24', -+ 'type' => '27100' -+ }, -+ '4' => { -+ 'name' => 'type', -+ 'offset' => '32', -+ 'type' => '21789' -+ }, -+ '5' => { -+ 'name' => 'resource_type', -+ 'offset' => '40', -+ 'type' => '2028' -+ }, -+ '6' => { -+ 'name' => 'req_alignment', -+ 'offset' => '48', -+ 'type' => '386' -+ }, -+ '7' => { -+ 'name' => 'mparent_domain', -+ 'offset' => '56', -+ 'type' => '27191' -+ } -+ }, -+ 'Name' => 'struct mlx5_buf', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '27100' => { -+ 'BaseType' => '26888', -+ 'Name' => 'struct mlx5_hugetlb_mem*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '27106' => { -+ 'Header' => undef, -+ 'Line' => '460', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mpd', -+ 'offset' => '0', -+ 'type' => '27313' -+ }, -+ '1' => { -+ 'name' => 'mtd', -+ 'offset' => '88', -+ 'type' => '27403' -+ }, -+ '2' => { -+ 'name' => 'alloc', -+ 'offset' => '96', -+ 'type' => '12562' -+ }, -+ '3' => { -+ 'name' => 'free', -+ 'offset' => '104', -+ 'type' => '12594' -+ }, -+ '4' => { -+ 'name' => 'pd_context', -+ 'offset' => '112', -+ 'type' => '267' -+ } -+ }, -+ 'Name' => 'struct mlx5_parent_domain', -+ 'Size' => '120', -+ 'Type' => 'Struct' -+ }, -+ '27191' => { -+ 'BaseType' => '27106', -+ 'Name' => 'struct mlx5_parent_domain*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '27197' => { -+ 'Header' => undef, -+ 'Line' => '442', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ibv_td', -+ 'offset' => '0', -+ 'type' => '6208' -+ }, -+ '1' => { -+ 'name' => 'bf', -+ 'offset' => '8', -+ 'type' => '25746' -+ }, -+ '2' => { -+ 'name' => 'refcount', -+ 'offset' => '16', -+ 'type' => '14752' -+ } -+ }, -+ 'Name' => 'struct mlx5_td', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '27260' => { -+ 'Header' => undef, -+ 'Line' => '453', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'opaque_buf', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'opaque_mr', -+ 'offset' => '8', -+ 'type' => '6130' -+ }, -+ '2' => { -+ 'name' => 'opaque_mr_mutex', -+ 'offset' => '16', -+ 'type' => '897' -+ } -+ }, -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '27313' => { -+ 'Header' => undef, -+ 'Line' => '448', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ibv_pd', -+ 'offset' => '0', -+ 'type' => '6136' -+ }, -+ '1' => { -+ 'name' => 'pdn', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'refcount', -+ 'offset' => '20', -+ 'type' => '14752' -+ }, -+ '3' => { -+ 'name' => 'mprotection_domain', -+ 'offset' => '24', -+ 'type' => '27397' -+ }, -+ '4' => { -+ 'name' => 'unnamed0', -+ 'offset' => '32', -+ 'type' => '27260' -+ } -+ }, -+ 'Name' => 'struct mlx5_pd', -+ 'Size' => '88', -+ 'Type' => 'Struct' -+ }, -+ '27397' => { -+ 'BaseType' => '27313', -+ 'Name' => 'struct mlx5_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2740' => { -+ 'Header' => undef, -+ 'Line' => '171', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'memcpy_to_dm', -+ 'offset' => '8', -+ 'type' => '2980' -+ }, -+ '2' => { -+ 'name' => 'memcpy_from_dm', -+ 'offset' => '16', -+ 'type' => '3016' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'handle', -+ 'offset' => '28', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_dm', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '27403' => { -+ 'BaseType' => '27197', -+ 'Name' => 'struct mlx5_td*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '27794' => { -+ 'BaseType' => '59', -+ 'Name' => 'unsigned int*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '27800' => { -+ 'Header' => undef, -+ 'Line' => '598', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dv_devx_uar', -+ 'offset' => '0', -+ 'type' => '21254' -+ }, -+ '1' => { -+ 'name' => 'context', -+ 'offset' => '40', -+ 'type' => '2938' -+ } -+ }, -+ 'Name' => 'struct mlx5_devx_uar', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '27849' => { -+ 'Header' => undef, -+ 'Line' => '754', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_flow_matcher', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '27892' => { -+ 'Header' => undef, -+ 'Line' => '759', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5_DEVX_FLOW_TABLE', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'MLX5_DEVX_FLOW_COUNTER', -+ 'value' => '2' -+ }, -+ '10' => { -+ 'name' => 'MLX5_DEVX_ASO_FLOW_METER', -+ 'value' => '11' -+ }, -+ '11' => { -+ 'name' => 'MLX5_DEVX_ASO_CT', -+ 'value' => '12' -+ }, -+ '2' => { -+ 'name' => 'MLX5_DEVX_FLOW_METER', -+ 'value' => '3' -+ }, -+ '3' => { -+ 'name' => 'MLX5_DEVX_QP', -+ 'value' => '4' -+ }, -+ '4' => { -+ 'name' => 'MLX5_DEVX_PKT_REFORMAT_CTX', -+ 'value' => '5' -+ }, -+ '5' => { -+ 'name' => 'MLX5_DEVX_TIR', -+ 'value' => '6' -+ }, -+ '6' => { -+ 'name' => 'MLX5_DEVX_FLOW_GROUP', -+ 'value' => '7' -+ }, -+ '7' => { -+ 'name' => 'MLX5_DEVX_FLOW_TABLE_ENTRY', -+ 'value' => '8' -+ }, -+ '8' => { -+ 'name' => 'MLX5_DEVX_FLOW_SAMPLER', -+ 'value' => '9' -+ }, -+ '9' => { -+ 'name' => 'MLX5_DEVX_ASO_FIRST_HIT', -+ 'value' => '10' -+ } -+ }, -+ 'Name' => 'enum mlx5_devx_obj_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '2819' => { -+ 'Header' => undef, -+ 'Line' => '1986', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'device', -+ 'offset' => '0', -+ 'type' => '11342' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'offset' => '8', -+ 'type' => '11502' -+ }, -+ '2' => { -+ 'name' => 'cmd_fd', -+ 'offset' => '264', -+ 'type' => '128' -+ }, -+ '3' => { -+ 'name' => 'async_fd', -+ 'offset' => '268', -+ 'type' => '128' -+ }, -+ '4' => { -+ 'name' => 'num_comp_vectors', -+ 'offset' => '272', -+ 'type' => '128' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '280', -+ 'type' => '897' -+ }, -+ '6' => { -+ 'name' => 'abi_compat', -+ 'offset' => '320', -+ 'type' => '267' -+ } -+ }, -+ 'Name' => 'struct ibv_context', -+ 'Size' => '328', -+ 'Type' => 'Struct' -+ }, -+ '28757' => { -+ 'Header' => undef, -+ 'Line' => '918', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'parent', -+ 'offset' => '0', -+ 'type' => '21628' -+ }, -+ '1' => { -+ 'name' => 'obj', -+ 'offset' => '8', -+ 'type' => '19143' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_sched_leaf', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '28800' => { -+ 'BaseType' => '28757', -+ 'Name' => 'struct mlx5dv_sched_leaf const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '28943' => { -+ 'Name' => 'int(*)(struct mlx5dv_devx_obj*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '19143' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29200' => { -+ 'BaseType' => '21410', -+ 'Name' => 'struct mlx5dv_devx_cmd_comp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29249' => { -+ 'BaseType' => '21438', -+ 'Name' => 'struct mlx5dv_devx_event_channel*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '292994' => { -+ 'Header' => undef, -+ 'Line' => '1875', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_DR_DOMAIN_TYPE_NIC_RX', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_DR_DOMAIN_TYPE_NIC_TX', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'MLX5DV_DR_DOMAIN_TYPE_FDB', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_dr_domain_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '293032' => { -+ 'Header' => undef, -+ 'Line' => '1887', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next_table', -+ 'offset' => '0', -+ 'type' => '293256' -+ }, -+ '1' => { -+ 'name' => 'active', -+ 'offset' => '8', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'reg_c_index', -+ 'offset' => '9', -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'name' => 'flow_meter_parameter_sz', -+ 'offset' => '16', -+ 'type' => '386' -+ }, -+ '4' => { -+ 'name' => 'flow_meter_parameter', -+ 'offset' => '24', -+ 'type' => '267' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_flow_meter_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '293117' => { -+ 'Header' => undef, -+ 'Line' => '1107', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'rx', -+ 'offset' => '8', -+ 'type' => '313434' -+ }, -+ '2' => { -+ 'name' => 'tx', -+ 'offset' => '24', -+ 'type' => '313434' -+ }, -+ '3' => { -+ 'name' => 'level', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'table_type', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'matcher_list', -+ 'offset' => '48', -+ 'type' => '14507' -+ }, -+ '6' => { -+ 'name' => 'devx_obj', -+ 'offset' => '64', -+ 'type' => '19143' -+ }, -+ '7' => { -+ 'name' => 'refcount', -+ 'offset' => '72', -+ 'type' => '128' -+ }, -+ '8' => { -+ 'name' => 'tbl_list', -+ 'offset' => '80', -+ 'type' => '14461' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_table', -+ 'Size' => '96', -+ 'Type' => 'Struct' -+ }, -+ '29313' => { -+ 'BaseType' => '1999', -+ 'Name' => 'uint16_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '293256' => { -+ 'BaseType' => '293117', -+ 'Name' => 'struct mlx5dv_dr_table*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '293262' => { -+ 'Header' => undef, -+ 'Line' => '1895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sample_ratio', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'default_next_table', -+ 'offset' => '8', -+ 'type' => '293256' -+ }, -+ '2' => { -+ 'name' => 'num_sample_actions', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'sample_actions', -+ 'offset' => '24', -+ 'type' => '293396' -+ }, -+ '4' => { -+ 'name' => 'action', -+ 'offset' => '32', -+ 'type' => '2177' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_flow_sampler_attr', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '293347' => { -+ 'Header' => undef, -+ 'Line' => '1172', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'action_type', -+ 'offset' => '0', -+ 'type' => '305966' -+ }, -+ '1' => { -+ 'name' => 'refcount', -+ 'offset' => '4', -+ 'type' => '128' -+ }, -+ '2' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '314933' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_action', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '293396' => { -+ 'BaseType' => '293402', -+ 'Name' => 'struct mlx5dv_dr_action**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '293402' => { -+ 'BaseType' => '293347', -+ 'Name' => 'struct mlx5dv_dr_action*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '293434' => { -+ 'Header' => undef, -+ 'Line' => '1972', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'MLX5DV_DR_ACTION_DEST', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'MLX5DV_DR_ACTION_DEST_REFORMAT', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum mlx5dv_dr_action_dest_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '293466' => { -+ 'Header' => undef, -+ 'Line' => '1977', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'reformat', -+ 'offset' => '0', -+ 'type' => '293402' -+ }, -+ '1' => { -+ 'name' => 'dest', -+ 'offset' => '8', -+ 'type' => '293402' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_action_dest_reformat', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '293509' => { -+ 'Header' => undef, -+ 'Line' => '1984', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dest', -+ 'offset' => '0', -+ 'type' => '293402' -+ }, -+ '1' => { -+ 'name' => 'dest_reformat', -+ 'offset' => '0', -+ 'type' => '293546' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '293546' => { -+ 'BaseType' => '293466', -+ 'Name' => 'struct mlx5dv_dr_action_dest_reformat*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '293552' => { -+ 'Header' => undef, -+ 'Line' => '1982', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'type', -+ 'offset' => '0', -+ 'type' => '293434' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '293509' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_action_dest_attr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '2938' => { -+ 'BaseType' => '2819', -+ 'Name' => 'struct ibv_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29432' => { -+ 'BaseType' => '15505', -+ 'Name' => 'struct mlx5_ib_uapi_devx_async_cmd_hdr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29469' => { -+ 'BaseType' => '15624', -+ 'Name' => 'struct mlx5_ib_uapi_devx_async_event_hdr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29501' => { -+ 'BaseType' => '21254', -+ 'Name' => 'struct mlx5dv_devx_uar*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29560' => { -+ 'BaseType' => '21140', -+ 'Name' => 'struct mlx5dv_devx_umem*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29592' => { -+ 'BaseType' => '21169', -+ 'Name' => 'struct mlx5dv_devx_umem_in*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29640' => { -+ 'BaseType' => '16626', -+ 'Name' => 'struct mlx5dv_mkey_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29693' => { -+ 'BaseType' => '18283', -+ 'Name' => 'struct mlx5dv_crypto_login_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29725' => { -+ 'BaseType' => '18354', -+ 'Name' => 'enum mlx5dv_crypto_login_state*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2974' => { -+ 'BaseType' => '2740', -+ 'Name' => 'struct ibv_dm*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29778' => { -+ 'BaseType' => '18482', -+ 'Name' => 'struct mlx5dv_dek_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '2980' => { -+ 'Name' => 'int(*)(struct ibv_dm*, uint64_t, void const*, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '2974' -+ }, -+ '1' => { -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'type' => '1980' -+ }, -+ '3' => { -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29810' => { -+ 'BaseType' => '18610', -+ 'Name' => 'struct mlx5dv_dek_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29863' => { -+ 'BaseType' => '21339', -+ 'Name' => 'struct mlx5dv_var*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29922' => { -+ 'BaseType' => '21466', -+ 'Name' => 'struct mlx5dv_pp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29971' => { -+ 'BaseType' => '20494', -+ 'Name' => 'struct mlx5dv_obj*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30008' => { -+ 'BaseType' => '16555', -+ 'Name' => 'struct mlx5dv_cq_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30045' => { -+ 'BaseType' => '16872', -+ 'Name' => 'struct mlx5dv_qp_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30103' => { -+ 'BaseType' => '20659', -+ 'Name' => 'struct mlx5dv_wq_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30140' => { -+ 'BaseType' => '19812', -+ 'Name' => 'struct mlx5dv_alloc_dm_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3016' => { -+ 'Name' => 'int(*)(void*, struct ibv_dm*, uint64_t, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '267' -+ }, -+ '1' => { -+ 'type' => '2974' -+ }, -+ '2' => { -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '30203' => { -+ 'BaseType' => '18667', -+ 'Name' => 'struct mlx5dv_flow_action_esp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3022' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fw_ver', -+ 'offset' => '0', -+ 'type' => '3556' -+ }, -+ '1' => { -+ 'name' => 'node_guid', -+ 'offset' => '64', -+ 'type' => '2177' -+ }, -+ '10' => { -+ 'name' => 'device_cap_flags', -+ 'offset' => '116', -+ 'type' => '59' -+ }, -+ '11' => { -+ 'name' => 'max_sge', -+ 'offset' => '120', -+ 'type' => '128' -+ }, -+ '12' => { -+ 'name' => 'max_sge_rd', -+ 'offset' => '124', -+ 'type' => '128' -+ }, -+ '13' => { -+ 'name' => 'max_cq', -+ 'offset' => '128', -+ 'type' => '128' -+ }, -+ '14' => { -+ 'name' => 'max_cqe', -+ 'offset' => '132', -+ 'type' => '128' -+ }, -+ '15' => { -+ 'name' => 'max_mr', -+ 'offset' => '136', -+ 'type' => '128' -+ }, -+ '16' => { -+ 'name' => 'max_pd', -+ 'offset' => '140', -+ 'type' => '128' -+ }, -+ '17' => { -+ 'name' => 'max_qp_rd_atom', -+ 'offset' => '144', -+ 'type' => '128' -+ }, -+ '18' => { -+ 'name' => 'max_ee_rd_atom', -+ 'offset' => '148', -+ 'type' => '128' -+ }, -+ '19' => { -+ 'name' => 'max_res_rd_atom', -+ 'offset' => '152', -+ 'type' => '128' -+ }, -+ '2' => { -+ 'name' => 'sys_image_guid', -+ 'offset' => '72', -+ 'type' => '2177' -+ }, -+ '20' => { -+ 'name' => 'max_qp_init_rd_atom', -+ 'offset' => '156', -+ 'type' => '128' -+ }, -+ '21' => { -+ 'name' => 'max_ee_init_rd_atom', -+ 'offset' => '160', -+ 'type' => '128' -+ }, -+ '22' => { -+ 'name' => 'atomic_cap', -+ 'offset' => '164', -+ 'type' => '2650' -+ }, -+ '23' => { -+ 'name' => 'max_ee', -+ 'offset' => '168', -+ 'type' => '128' -+ }, -+ '24' => { -+ 'name' => 'max_rdd', -+ 'offset' => '172', -+ 'type' => '128' -+ }, -+ '25' => { -+ 'name' => 'max_mw', -+ 'offset' => '176', -+ 'type' => '128' -+ }, -+ '26' => { -+ 'name' => 'max_raw_ipv6_qp', -+ 'offset' => '180', -+ 'type' => '128' -+ }, -+ '27' => { -+ 'name' => 'max_raw_ethy_qp', -+ 'offset' => '184', -+ 'type' => '128' -+ }, -+ '28' => { -+ 'name' => 'max_mcast_grp', -+ 'offset' => '188', -+ 'type' => '128' -+ }, -+ '29' => { -+ 'name' => 'max_mcast_qp_attach', -+ 'offset' => '192', -+ 'type' => '128' -+ }, -+ '3' => { -+ 'name' => 'max_mr_size', -+ 'offset' => '80', -+ 'type' => '2028' -+ }, -+ '30' => { -+ 'name' => 'max_total_mcast_qp_attach', -+ 'offset' => '196', -+ 'type' => '128' -+ }, -+ '31' => { -+ 'name' => 'max_ah', -+ 'offset' => '200', -+ 'type' => '128' -+ }, -+ '32' => { -+ 'name' => 'max_fmr', -+ 'offset' => '204', -+ 'type' => '128' -+ }, -+ '33' => { -+ 'name' => 'max_map_per_fmr', -+ 'offset' => '208', -+ 'type' => '128' -+ }, -+ '34' => { -+ 'name' => 'max_srq', -+ 'offset' => '212', -+ 'type' => '128' -+ }, -+ '35' => { -+ 'name' => 'max_srq_wr', -+ 'offset' => '216', -+ 'type' => '128' -+ }, -+ '36' => { -+ 'name' => 'max_srq_sge', -+ 'offset' => '220', -+ 'type' => '128' -+ }, -+ '37' => { -+ 'name' => 'max_pkeys', -+ 'offset' => '224', -+ 'type' => '1999' -+ }, -+ '38' => { -+ 'name' => 'local_ca_ack_delay', -+ 'offset' => '226', -+ 'type' => '1987' -+ }, -+ '39' => { -+ 'name' => 'phys_port_cnt', -+ 'offset' => '227', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'page_size_cap', -+ 'offset' => '88', -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'name' => 'vendor_id', -+ 'offset' => '96', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'vendor_part_id', -+ 'offset' => '100', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'hw_ver', -+ 'offset' => '104', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'max_qp', -+ 'offset' => '108', -+ 'type' => '128' -+ }, -+ '9' => { -+ 'name' => 'max_qp_wr', -+ 'offset' => '112', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct ibv_device_attr', -+ 'Size' => '232', -+ 'Type' => 'Struct' -+ }, -+ '30312' => { -+ 'BaseType' => '27849', -+ 'Name' => 'struct mlx5dv_flow_matcher*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30318' => { -+ 'BaseType' => '18768', -+ 'Name' => 'struct mlx5dv_flow_matcher_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30386' => { -+ 'BaseType' => '19149', -+ 'Name' => 'struct mlx5dv_flow_action_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30424' => { -+ 'BaseType' => '16320', -+ 'Name' => 'struct mlx5dv_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '305' => { -+ 'BaseType' => '316', -+ 'Name' => 'char*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30539' => { -+ 'BaseType' => '21580', -+ 'Name' => 'struct mlx5dv_sched_attr const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '305664' => { -+ 'Header' => undef, -+ 'Line' => '66', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'DR_CHUNK_SIZE_1', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'DR_CHUNK_SIZE_MIN', -+ 'value' => '0' -+ }, -+ '10' => { -+ 'name' => 'DR_CHUNK_SIZE_512', -+ 'value' => '9' -+ }, -+ '11' => { -+ 'name' => 'DR_CHUNK_SIZE_1K', -+ 'value' => '10' -+ }, -+ '12' => { -+ 'name' => 'DR_CHUNK_SIZE_2K', -+ 'value' => '11' -+ }, -+ '13' => { -+ 'name' => 'DR_CHUNK_SIZE_4K', -+ 'value' => '12' -+ }, -+ '14' => { -+ 'name' => 'DR_CHUNK_SIZE_8K', -+ 'value' => '13' -+ }, -+ '15' => { -+ 'name' => 'DR_CHUNK_SIZE_16K', -+ 'value' => '14' -+ }, -+ '16' => { -+ 'name' => 'DR_CHUNK_SIZE_32K', -+ 'value' => '15' -+ }, -+ '17' => { -+ 'name' => 'DR_CHUNK_SIZE_64K', -+ 'value' => '16' -+ }, -+ '18' => { -+ 'name' => 'DR_CHUNK_SIZE_128K', -+ 'value' => '17' -+ }, -+ '19' => { -+ 'name' => 'DR_CHUNK_SIZE_256K', -+ 'value' => '18' -+ }, -+ '2' => { -+ 'name' => 'DR_CHUNK_SIZE_2', -+ 'value' => '1' -+ }, -+ '20' => { -+ 'name' => 'DR_CHUNK_SIZE_512K', -+ 'value' => '19' -+ }, -+ '21' => { -+ 'name' => 'DR_CHUNK_SIZE_1024K', -+ 'value' => '20' -+ }, -+ '22' => { -+ 'name' => 'DR_CHUNK_SIZE_2048K', -+ 'value' => '21' -+ }, -+ '23' => { -+ 'name' => 'DR_CHUNK_SIZE_MAX', -+ 'value' => '22' -+ }, -+ '3' => { -+ 'name' => 'DR_CHUNK_SIZE_4', -+ 'value' => '2' -+ }, -+ '4' => { -+ 'name' => 'DR_CHUNK_SIZE_8', -+ 'value' => '3' -+ }, -+ '5' => { -+ 'name' => 'DR_CHUNK_SIZE_16', -+ 'value' => '4' -+ }, -+ '6' => { -+ 'name' => 'DR_CHUNK_SIZE_32', -+ 'value' => '5' -+ }, -+ '7' => { -+ 'name' => 'DR_CHUNK_SIZE_64', -+ 'value' => '6' -+ }, -+ '8' => { -+ 'name' => 'DR_CHUNK_SIZE_128', -+ 'value' => '7' -+ }, -+ '9' => { -+ 'name' => 'DR_CHUNK_SIZE_256', -+ 'value' => '8' -+ } -+ }, -+ 'Name' => 'enum dr_icm_chunk_size', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '30571' => { -+ 'BaseType' => '28757', -+ 'Name' => 'struct mlx5dv_sched_leaf*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '305966' => { -+ 'Header' => undef, -+ 'Line' => '161', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'DR_ACTION_TYP_TNL_L2_TO_L2', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'DR_ACTION_TYP_L2_TO_TNL_L2', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'DR_ACTION_TYP_VPORT', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'DR_ACTION_TYP_METER', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'DR_ACTION_TYP_MISS', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'DR_ACTION_TYP_SAMPLER', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'DR_ACTION_TYP_DEST_ARRAY', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'DR_ACTION_TYP_POP_VLAN', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'DR_ACTION_TYP_PUSH_VLAN', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'DR_ACTION_TYP_ASO_FIRST_HIT', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'DR_ACTION_TYP_ASO_FLOW_METER', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'DR_ACTION_TYP_ASO_CT', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'DR_ACTION_TYP_TNL_L3_TO_L2', -+ 'value' => '2' -+ }, -+ '20' => { -+ 'name' => 'DR_ACTION_TYP_MAX', -+ 'value' => '20' -+ }, -+ '3' => { -+ 'name' => 'DR_ACTION_TYP_L2_TO_TNL_L3', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'DR_ACTION_TYP_DROP', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'DR_ACTION_TYP_QP', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'DR_ACTION_TYP_FT', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'DR_ACTION_TYP_CTR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'DR_ACTION_TYP_TAG', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'DR_ACTION_TYP_MODIFY_HDR', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum dr_action_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '306111' => { -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hw_ste', -+ 'offset' => '0', -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'name' => 'refcount', -+ 'offset' => '8', -+ 'type' => '14752' -+ }, -+ '2' => { -+ 'name' => 'miss_list_node', -+ 'offset' => '16', -+ 'type' => '14461' -+ }, -+ '3' => { -+ 'name' => 'htbl', -+ 'offset' => '32', -+ 'type' => '306396' -+ }, -+ '4' => { -+ 'name' => 'next_htbl', -+ 'offset' => '40', -+ 'type' => '306396' -+ }, -+ '5' => { -+ 'name' => 'rule_rx_tx', -+ 'offset' => '48', -+ 'type' => '306459' -+ }, -+ '6' => { -+ 'name' => 'ste_chain_location', -+ 'offset' => '56', -+ 'type' => '1987' -+ }, -+ '7' => { -+ 'name' => 'size', -+ 'offset' => '57', -+ 'type' => '1987' -+ } -+ }, -+ 'Name' => 'struct dr_ste', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '306236' => { -+ 'Header' => undef, -+ 'Line' => '245', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'type', -+ 'offset' => '0', -+ 'type' => '306505' -+ }, -+ '1' => { -+ 'name' => 'lu_type', -+ 'offset' => '4', -+ 'type' => '1999' -+ }, -+ '10' => { -+ 'name' => 'ctrl', -+ 'offset' => '64', -+ 'type' => '306465' -+ }, -+ '2' => { -+ 'name' => 'byte_mask', -+ 'offset' => '6', -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'name' => 'refcount', -+ 'offset' => '8', -+ 'type' => '14752' -+ }, -+ '4' => { -+ 'name' => 'chunk', -+ 'offset' => '16', -+ 'type' => '306712' -+ }, -+ '5' => { -+ 'name' => 'ste_arr', -+ 'offset' => '24', -+ 'type' => '306718' -+ }, -+ '6' => { -+ 'name' => 'hw_ste_arr', -+ 'offset' => '32', -+ 'type' => '7345' -+ }, -+ '7' => { -+ 'name' => 'miss_list', -+ 'offset' => '40', -+ 'type' => '39434' -+ }, -+ '8' => { -+ 'name' => 'chunk_size', -+ 'offset' => '48', -+ 'type' => '305664' -+ }, -+ '9' => { -+ 'name' => 'pointing_ste', -+ 'offset' => '56', -+ 'type' => '306718' -+ } -+ }, -+ 'Name' => 'struct dr_ste_htbl', -+ 'Size' => '72', -+ 'Type' => 'Struct' -+ }, -+ '306396' => { -+ 'BaseType' => '306236', -+ 'Name' => 'struct dr_ste_htbl*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '306402' => { -+ 'Header' => undef, -+ 'Line' => '1267', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'nic_matcher', -+ 'offset' => '0', -+ 'type' => '315156' -+ }, -+ '1' => { -+ 'name' => 'last_rule_ste', -+ 'offset' => '8', -+ 'type' => '306718' -+ }, -+ '2' => { -+ 'name' => 'lock_index', -+ 'offset' => '16', -+ 'type' => '1987' -+ } -+ }, -+ 'Name' => 'struct dr_rule_rx_tx', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '306459' => { -+ 'BaseType' => '306402', -+ 'Name' => 'struct dr_rule_rx_tx*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '306465' => { -+ 'Header' => undef, -+ 'Line' => '230', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'num_of_valid_entries', -+ 'offset' => '0', -+ 'type' => '128' -+ }, -+ '1' => { -+ 'name' => 'num_of_collisions', -+ 'offset' => '4', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct dr_ste_htbl_ctrl', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '306505' => { -+ 'Header' => undef, -+ 'Line' => '240', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'DR_STE_HTBL_TYPE_LEGACY', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'DR_STE_HTBL_TYPE_MATCH', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum dr_ste_htbl_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '306543' => { -+ 'Header' => undef, -+ 'Line' => '1330', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buddy_mem', -+ 'offset' => '0', -+ 'type' => '315439' -+ }, -+ '1' => { -+ 'name' => 'chunk_list', -+ 'offset' => '8', -+ 'type' => '14461' -+ }, -+ '10' => { -+ 'name' => 'miss_list', -+ 'offset' => '80', -+ 'type' => '39434' -+ }, -+ '2' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'num_of_entries', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'byte_size', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'icm_addr', -+ 'offset' => '40', -+ 'type' => '2028' -+ }, -+ '6' => { -+ 'name' => 'mr_addr', -+ 'offset' => '48', -+ 'type' => '2028' -+ }, -+ '7' => { -+ 'name' => 'seg', -+ 'offset' => '56', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'ste_arr', -+ 'offset' => '64', -+ 'type' => '306718' -+ }, -+ '9' => { -+ 'name' => 'hw_ste_arr', -+ 'offset' => '72', -+ 'type' => '7345' -+ } -+ }, -+ 'Name' => 'struct dr_icm_chunk', -+ 'Size' => '88', -+ 'Type' => 'Struct' -+ }, -+ '306712' => { -+ 'BaseType' => '306543', -+ 'Name' => 'struct dr_icm_chunk*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '306718' => { -+ 'BaseType' => '306111', -+ 'Name' => 'struct dr_ste*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '306730' => { -+ 'Header' => undef, -+ 'Line' => '284', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'byte_mask', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'bit_mask', -+ 'offset' => '2', -+ 'type' => '2512' -+ } -+ }, -+ 'Size' => '18', -+ 'Type' => 'Struct' -+ }, -+ '306769' => { -+ 'Header' => undef, -+ 'Line' => '288', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'format_id', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'match', -+ 'offset' => '2', -+ 'type' => '63227' -+ }, -+ '2' => { -+ 'name' => 'definer_obj', -+ 'offset' => '40', -+ 'type' => '19143' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '306822' => { -+ 'Header' => undef, -+ 'Line' => '283', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '306730' -+ }, -+ '1' => { -+ 'name' => 'unnamed1', -+ 'offset' => '0', -+ 'type' => '306769' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '306843' => { -+ 'Header' => undef, -+ 'Line' => '277', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'inner', -+ 'offset' => '0', -+ 'type' => '2098' -+ }, -+ '1' => { -+ 'name' => 'rx', -+ 'offset' => '1', -+ 'type' => '2098' -+ }, -+ '2' => { -+ 'name' => 'caps', -+ 'offset' => '8', -+ 'type' => '307536' -+ }, -+ '3' => { -+ 'name' => 'lu_type', -+ 'offset' => '16', -+ 'type' => '1999' -+ }, -+ '4' => { -+ 'name' => 'htbl_type', -+ 'offset' => '20', -+ 'type' => '306505' -+ }, -+ '5' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '306822' -+ }, -+ '6' => { -+ 'name' => 'ste_build_tag_func', -+ 'offset' => '72', -+ 'type' => '307696' -+ } -+ }, -+ 'Name' => 'struct dr_ste_build', -+ 'Size' => '80', -+ 'Type' => 'Struct' -+ }, -+ '306947' => { -+ 'Header' => undef, -+ 'Line' => '898', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'gvmi', -+ 'offset' => '8', -+ 'type' => '1999' -+ }, -+ '10' => { -+ 'name' => 'flex_protocols', -+ 'offset' => '72', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'name' => 'flex_parser_header_modify', -+ 'offset' => '76', -+ 'type' => '1987' -+ }, -+ '12' => { -+ 'name' => 'flex_parser_id_icmp_dw0', -+ 'offset' => '77', -+ 'type' => '1987' -+ }, -+ '13' => { -+ 'name' => 'flex_parser_id_icmp_dw1', -+ 'offset' => '78', -+ 'type' => '1987' -+ }, -+ '14' => { -+ 'name' => 'flex_parser_id_icmpv6_dw0', -+ 'offset' => '79', -+ 'type' => '1987' -+ }, -+ '15' => { -+ 'name' => 'flex_parser_id_icmpv6_dw1', -+ 'offset' => '80', -+ 'type' => '1987' -+ }, -+ '16' => { -+ 'name' => 'flex_parser_id_geneve_opt_0', -+ 'offset' => '81', -+ 'type' => '1987' -+ }, -+ '17' => { -+ 'name' => 'flex_parser_id_mpls_over_gre', -+ 'offset' => '82', -+ 'type' => '1987' -+ }, -+ '18' => { -+ 'name' => 'flex_parser_id_mpls_over_udp', -+ 'offset' => '83', -+ 'type' => '1987' -+ }, -+ '19' => { -+ 'name' => 'flex_parser_id_gtpu_dw_0', -+ 'offset' => '84', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'nic_rx_drop_address', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '20' => { -+ 'name' => 'flex_parser_id_gtpu_teid', -+ 'offset' => '85', -+ 'type' => '1987' -+ }, -+ '21' => { -+ 'name' => 'flex_parser_id_gtpu_dw_2', -+ 'offset' => '86', -+ 'type' => '1987' -+ }, -+ '22' => { -+ 'name' => 'flex_parser_id_gtpu_first_ext_dw_0', -+ 'offset' => '87', -+ 'type' => '1987' -+ }, -+ '23' => { -+ 'name' => 'flex_parser_ok_bits_supp', -+ 'offset' => '88', -+ 'type' => '1987' -+ }, -+ '24' => { -+ 'name' => 'definer_supp_checksum', -+ 'offset' => '89', -+ 'type' => '1987' -+ }, -+ '25' => { -+ 'name' => 'max_ft_level', -+ 'offset' => '90', -+ 'type' => '1987' -+ }, -+ '26' => { -+ 'name' => 'sw_format_ver', -+ 'offset' => '91', -+ 'type' => '1987' -+ }, -+ '27' => { -+ 'name' => 'isolate_vl_tc', -+ 'offset' => '92', -+ 'type' => '2098' -+ }, -+ '28' => { -+ 'name' => 'eswitch_manager', -+ 'offset' => '93', -+ 'type' => '2098' -+ }, -+ '29' => { -+ 'name' => 'rx_sw_owner', -+ 'offset' => '94', -+ 'type' => '2098' -+ }, -+ '3' => { -+ 'name' => 'nic_tx_drop_address', -+ 'offset' => '24', -+ 'type' => '2028' -+ }, -+ '30' => { -+ 'name' => 'tx_sw_owner', -+ 'offset' => '95', -+ 'type' => '2098' -+ }, -+ '31' => { -+ 'name' => 'fdb_sw_owner', -+ 'offset' => '96', -+ 'type' => '2098' -+ }, -+ '32' => { -+ 'name' => 'rx_sw_owner_v2', -+ 'offset' => '97', -+ 'type' => '2098' -+ }, -+ '33' => { -+ 'name' => 'tx_sw_owner_v2', -+ 'offset' => '98', -+ 'type' => '2098' -+ }, -+ '34' => { -+ 'name' => 'fdb_sw_owner_v2', -+ 'offset' => '99', -+ 'type' => '2098' -+ }, -+ '35' => { -+ 'name' => 'roce_caps', -+ 'offset' => '100', -+ 'type' => '311227' -+ }, -+ '36' => { -+ 'name' => 'definer_format_sup', -+ 'offset' => '104', -+ 'type' => '2028' -+ }, -+ '37' => { -+ 'name' => 'prio_tag_required', -+ 'offset' => '112', -+ 'type' => '2098' -+ }, -+ '38' => { -+ 'name' => 'is_ecpf', -+ 'offset' => '113', -+ 'type' => '2098' -+ }, -+ '39' => { -+ 'name' => 'vports', -+ 'offset' => '120', -+ 'type' => '311344' -+ }, -+ '4' => { -+ 'name' => 'nic_tx_allow_address', -+ 'offset' => '32', -+ 'type' => '2028' -+ }, -+ '40' => { -+ 'name' => 'support_full_tnl_hdr', -+ 'offset' => '240', -+ 'type' => '2098' -+ }, -+ '5' => { -+ 'name' => 'esw_rx_drop_address', -+ 'offset' => '40', -+ 'type' => '2028' -+ }, -+ '6' => { -+ 'name' => 'esw_tx_drop_address', -+ 'offset' => '48', -+ 'type' => '2028' -+ }, -+ '7' => { -+ 'name' => 'log_icm_size', -+ 'offset' => '56', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'log_modify_hdr_icm_size', -+ 'offset' => '60', -+ 'type' => '1987' -+ }, -+ '9' => { -+ 'name' => 'hdr_modify_icm_addr', -+ 'offset' => '64', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct dr_devx_caps', -+ 'Size' => '248', -+ 'Type' => 'Struct' -+ }, -+ '30702' => { -+ 'BaseType' => '28800', -+ 'Name' => 'struct mlx5dv_sched_leaf const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '307536' => { -+ 'BaseType' => '306947', -+ 'Name' => 'struct dr_devx_caps*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '307567' => { -+ 'BaseType' => '307573', -+ 'Name' => 'struct dr_match_param*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '307573' => { -+ 'Header' => undef, -+ 'Line' => '837', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'outer', -+ 'offset' => '0', -+ 'type' => '308529' -+ }, -+ '1' => { -+ 'name' => 'misc', -+ 'offset' => '64', -+ 'type' => '309109' -+ }, -+ '2' => { -+ 'name' => 'inner', -+ 'offset' => '128', -+ 'type' => '308529' -+ }, -+ '3' => { -+ 'name' => 'misc2', -+ 'offset' => '192', -+ 'type' => '309828' -+ }, -+ '4' => { -+ 'name' => 'misc3', -+ 'offset' => '256', -+ 'type' => '310323' -+ }, -+ '5' => { -+ 'name' => 'misc4', -+ 'offset' => '320', -+ 'type' => '310698' -+ }, -+ '6' => { -+ 'name' => 'misc5', -+ 'offset' => '384', -+ 'type' => '310937' -+ } -+ }, -+ 'Name' => 'struct dr_match_param', -+ 'Size' => '448', -+ 'Type' => 'Struct' -+ }, -+ '307690' => { -+ 'BaseType' => '306843', -+ 'Name' => 'struct dr_ste_build*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '307696' => { -+ 'Name' => 'int(*)(struct dr_match_param*, struct dr_ste_build*, uint8_t*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '307567' -+ }, -+ '1' => { -+ 'type' => '307690' -+ }, -+ '2' => { -+ 'type' => '7345' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '307751' => { -+ 'Header' => undef, -+ 'Line' => '356', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'set', -+ 'offset' => '0', -+ 'type' => '2098' -+ } -+ }, -+ 'Size' => '1', -+ 'Type' => 'Struct' -+ }, -+ '307776' => { -+ 'Header' => undef, -+ 'Line' => '359', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'initial_color', -+ 'offset' => '0', -+ 'type' => '1987' -+ } -+ }, -+ 'Size' => '1', -+ 'Type' => 'Struct' -+ }, -+ '307801' => { -+ 'Header' => undef, -+ 'Line' => '362', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'direction', -+ 'offset' => '0', -+ 'type' => '2098' -+ } -+ }, -+ 'Size' => '1', -+ 'Type' => 'Struct' -+ }, -+ '307826' => { -+ 'Header' => undef, -+ 'Line' => '355', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'first_hit', -+ 'offset' => '0', -+ 'type' => '307751' -+ }, -+ '1' => { -+ 'name' => 'flow_meter', -+ 'offset' => '0', -+ 'type' => '307776' -+ }, -+ '2' => { -+ 'name' => 'ct', -+ 'offset' => '0', -+ 'type' => '307801' -+ } -+ }, -+ 'Size' => '1', -+ 'Type' => 'Union' -+ }, -+ '307875' => { -+ 'Header' => undef, -+ 'Line' => '350', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'devx_obj', -+ 'offset' => '8', -+ 'type' => '19143' -+ }, -+ '2' => { -+ 'name' => 'offset', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'dest_reg_id', -+ 'offset' => '20', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'unnamed0', -+ 'offset' => '21', -+ 'type' => '307826' -+ } -+ }, -+ 'Name' => 'struct dr_action_aso', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '307952' => { -+ 'Header' => undef, -+ 'Line' => '1028', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ctx', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'ste_ctx', -+ 'offset' => '8', -+ 'type' => '313215' -+ }, -+ '10' => { -+ 'name' => 'tbl_list', -+ 'offset' => '1008', -+ 'type' => '14507' -+ }, -+ '11' => { -+ 'name' => 'flags', -+ 'offset' => '1024', -+ 'type' => '2011' -+ }, -+ '12' => { -+ 'name' => 'debug_lock', -+ 'offset' => '1028', -+ 'type' => '999' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '6322' -+ }, -+ '3' => { -+ 'name' => 'uar', -+ 'offset' => '24', -+ 'type' => '29501' -+ }, -+ '4' => { -+ 'name' => 'type', -+ 'offset' => '32', -+ 'type' => '292994' -+ }, -+ '5' => { -+ 'name' => 'refcount', -+ 'offset' => '36', -+ 'type' => '128' -+ }, -+ '6' => { -+ 'name' => 'ste_icm_pool', -+ 'offset' => '40', -+ 'type' => '313226' -+ }, -+ '7' => { -+ 'name' => 'action_icm_pool', -+ 'offset' => '48', -+ 'type' => '313226' -+ }, -+ '8' => { -+ 'name' => 'send_ring', -+ 'offset' => '56', -+ 'type' => '313232' -+ }, -+ '9' => { -+ 'name' => 'info', -+ 'offset' => '168', -+ 'type' => '312178' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_domain', -+ 'Size' => '1032', -+ 'Type' => 'Struct' -+ }, -+ '308152' => { -+ 'BaseType' => '307952', -+ 'Name' => 'struct mlx5dv_dr_domain*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '308158' => { -+ 'Header' => undef, -+ 'Line' => '383', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'count_pop', -+ 'offset' => '0', -+ 'type' => '128' -+ }, -+ '1' => { -+ 'name' => 'count_push', -+ 'offset' => '4', -+ 'type' => '128' -+ }, -+ '2' => { -+ 'name' => 'headers', -+ 'offset' => '8', -+ 'type' => '308211' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '30817' => { -+ 'BaseType' => '21041', -+ 'Name' => 'struct mlx5dv_clock_info*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '308211' => { -+ 'BaseType' => '2011', -+ 'Name' => 'uint32_t[2]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '308227' => { -+ 'Header' => undef, -+ 'Line' => '368', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'modify_index', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'modify_actions', -+ 'offset' => '4', -+ 'type' => '1999' -+ }, -+ '10' => { -+ 'name' => 'hit_gvmi', -+ 'offset' => '42', -+ 'type' => '1999' -+ }, -+ '11' => { -+ 'name' => 'reformat_id', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '12' => { -+ 'name' => 'reformat_size', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '13' => { -+ 'name' => 'prio_tag_required', -+ 'offset' => '52', -+ 'type' => '2098' -+ }, -+ '14' => { -+ 'name' => 'vlans', -+ 'offset' => '56', -+ 'type' => '308158' -+ }, -+ '15' => { -+ 'name' => 'aso', -+ 'offset' => '72', -+ 'type' => '308480' -+ }, -+ '16' => { -+ 'name' => 'aso_ste_loc', -+ 'offset' => '80', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'single_modify_action', -+ 'offset' => '8', -+ 'type' => '7345' -+ }, -+ '3' => { -+ 'name' => 'decap_index', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'decap_actions', -+ 'offset' => '20', -+ 'type' => '1999' -+ }, -+ '5' => { -+ 'name' => 'decap_with_vlan', -+ 'offset' => '22', -+ 'type' => '2098' -+ }, -+ '6' => { -+ 'name' => 'final_icm_addr', -+ 'offset' => '24', -+ 'type' => '2028' -+ }, -+ '7' => { -+ 'name' => 'flow_tag', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'ctr_id', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'gvmi', -+ 'offset' => '40', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct dr_ste_actions_attr', -+ 'Size' => '88', -+ 'Type' => 'Struct' -+ }, -+ '308480' => { -+ 'BaseType' => '307875', -+ 'Name' => 'struct dr_action_aso*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '308529' => { -+ 'Header' => undef, -+ 'Line' => '664', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'smac_47_16', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'bitfield' => '16', -+ 'name' => 'smac_15_0', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '10' => { -+ 'bitfield' => '2', -+ 'name' => 'ip_ecn', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'bitfield' => '1', -+ 'name' => 'cvlan_tag', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '12' => { -+ 'bitfield' => '1', -+ 'name' => 'svlan_tag', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '13' => { -+ 'bitfield' => '1', -+ 'name' => 'frag', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '14' => { -+ 'bitfield' => '4', -+ 'name' => 'ip_version', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '15' => { -+ 'bitfield' => '9', -+ 'name' => 'tcp_flags', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '16' => { -+ 'bitfield' => '16', -+ 'name' => 'tcp_sport', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '17' => { -+ 'bitfield' => '16', -+ 'name' => 'tcp_dport', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '18' => { -+ 'bitfield' => '16', -+ 'name' => 'reserved_at_c0', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '19' => { -+ 'bitfield' => '4', -+ 'name' => 'ipv4_ihl', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'bitfield' => '16', -+ 'name' => 'ethertype', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '20' => { -+ 'bitfield' => '1', -+ 'name' => 'l3_ok', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '21' => { -+ 'bitfield' => '1', -+ 'name' => 'l4_ok', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '22' => { -+ 'bitfield' => '1', -+ 'name' => 'ipv4_checksum_ok', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '23' => { -+ 'bitfield' => '1', -+ 'name' => 'l4_checksum_ok', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '24' => { -+ 'bitfield' => '8', -+ 'name' => 'ip_ttl_hoplimit', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '25' => { -+ 'bitfield' => '16', -+ 'name' => 'udp_sport', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '26' => { -+ 'bitfield' => '16', -+ 'name' => 'udp_dport', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '27' => { -+ 'name' => 'src_ip_127_96', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '28' => { -+ 'name' => 'src_ip_95_64', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '29' => { -+ 'name' => 'src_ip_63_32', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'dmac_47_16', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '30' => { -+ 'name' => 'src_ip_31_0', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '31' => { -+ 'name' => 'dst_ip_127_96', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '32' => { -+ 'name' => 'dst_ip_95_64', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '33' => { -+ 'name' => 'dst_ip_63_32', -+ 'offset' => '56', -+ 'type' => '2011' -+ }, -+ '34' => { -+ 'name' => 'dst_ip_31_0', -+ 'offset' => '60', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'bitfield' => '16', -+ 'name' => 'dmac_15_0', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'bitfield' => '3', -+ 'name' => 'first_prio', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'bitfield' => '1', -+ 'name' => 'first_cfi', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'bitfield' => '12', -+ 'name' => 'first_vid', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'bitfield' => '8', -+ 'name' => 'ip_protocol', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'bitfield' => '6', -+ 'name' => 'ip_dscp', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_match_spec', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '30859' => { -+ 'BaseType' => '15706', -+ 'Name' => 'struct mlx5_ib_uapi_query_port*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '309109' => { -+ 'Header' => undef, -+ 'Line' => '702', -+ 'Memb' => { -+ '0' => { -+ 'bitfield' => '1', -+ 'name' => 'gre_c_present', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'bitfield' => '1', -+ 'name' => 'reserved_at1', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '10' => { -+ 'bitfield' => '12', -+ 'name' => 'outer_second_vid', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'bitfield' => '3', -+ 'name' => 'inner_second_prio', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '12' => { -+ 'bitfield' => '1', -+ 'name' => 'inner_second_cfi', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '13' => { -+ 'bitfield' => '12', -+ 'name' => 'inner_second_vid', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '14' => { -+ 'bitfield' => '1', -+ 'name' => 'outer_second_cvlan_tag', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '15' => { -+ 'bitfield' => '1', -+ 'name' => 'inner_second_cvlan_tag', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '16' => { -+ 'bitfield' => '1', -+ 'name' => 'outer_second_svlan_tag', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '17' => { -+ 'bitfield' => '1', -+ 'name' => 'inner_second_svlan_tag', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '18' => { -+ 'bitfield' => '1', -+ 'name' => 'outer_emd_tag', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '19' => { -+ 'bitfield' => '11', -+ 'name' => 'reserved_at_65', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'bitfield' => '1', -+ 'name' => 'gre_k_present', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '20' => { -+ 'bitfield' => '16', -+ 'name' => 'gre_protocol', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '21' => { -+ 'bitfield' => '24', -+ 'name' => 'gre_key_h', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '22' => { -+ 'bitfield' => '8', -+ 'name' => 'gre_key_l', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '23' => { -+ 'bitfield' => '24', -+ 'name' => 'vxlan_vni', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '24' => { -+ 'bitfield' => '8', -+ 'name' => 'reserved_at_b8', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '25' => { -+ 'bitfield' => '24', -+ 'name' => 'geneve_vni', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '26' => { -+ 'bitfield' => '6', -+ 'name' => 'reserved_at_e4', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '27' => { -+ 'bitfield' => '1', -+ 'name' => 'geneve_tlv_option_0_exist', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '28' => { -+ 'bitfield' => '1', -+ 'name' => 'geneve_oam', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '29' => { -+ 'bitfield' => '12', -+ 'name' => 'reserved_at_ec', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'bitfield' => '1', -+ 'name' => 'gre_s_present', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '30' => { -+ 'bitfield' => '20', -+ 'name' => 'outer_ipv6_flow_label', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '31' => { -+ 'bitfield' => '12', -+ 'name' => 'reserved_at_100', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '32' => { -+ 'bitfield' => '20', -+ 'name' => 'inner_ipv6_flow_label', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '33' => { -+ 'bitfield' => '10', -+ 'name' => 'reserved_at_120', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '34' => { -+ 'bitfield' => '6', -+ 'name' => 'geneve_opt_len', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '35' => { -+ 'bitfield' => '16', -+ 'name' => 'geneve_protocol_type', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '36' => { -+ 'bitfield' => '8', -+ 'name' => 'reserved_at_140', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '37' => { -+ 'bitfield' => '24', -+ 'name' => 'bth_dst_qp', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '38' => { -+ 'name' => 'inner_esp_spi', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '39' => { -+ 'name' => 'outer_esp_spi', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'bitfield' => '4', -+ 'name' => 'source_vhca_port', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '40' => { -+ 'name' => 'reserved_at_1a0', -+ 'offset' => '52', -+ 'type' => '309812' -+ }, -+ '5' => { -+ 'bitfield' => '24', -+ 'name' => 'source_sqn', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'bitfield' => '16', -+ 'name' => 'source_eswitch_owner_vhca_id', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'bitfield' => '16', -+ 'name' => 'source_port', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'bitfield' => '3', -+ 'name' => 'outer_second_prio', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'bitfield' => '1', -+ 'name' => 'outer_second_cfi', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_match_misc', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '30912' => { -+ 'BaseType' => '21634', -+ 'Name' => 'struct mlx5dv_devx_msi_vector*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '30980' => { -+ 'BaseType' => '21676', -+ 'Name' => 'struct mlx5dv_devx_eq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '309812' => { -+ 'BaseType' => '2011', -+ 'Name' => 'uint32_t[3]', -+ 'Size' => '12', -+ 'Type' => 'Array' -+ }, -+ '309828' => { -+ 'Header' => undef, -+ 'Line' => '746', -+ 'Memb' => { -+ '0' => { -+ 'bitfield' => '20', -+ 'name' => 'outer_first_mpls_label', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'bitfield' => '3', -+ 'name' => 'outer_first_mpls_exp', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '10' => { -+ 'bitfield' => '1', -+ 'name' => 'outer_first_mpls_over_gre_s_bos', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'bitfield' => '8', -+ 'name' => 'outer_first_mpls_over_gre_ttl', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '12' => { -+ 'bitfield' => '20', -+ 'name' => 'outer_first_mpls_over_udp_label', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '13' => { -+ 'bitfield' => '3', -+ 'name' => 'outer_first_mpls_over_udp_exp', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '14' => { -+ 'bitfield' => '1', -+ 'name' => 'outer_first_mpls_over_udp_s_bos', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '15' => { -+ 'bitfield' => '8', -+ 'name' => 'outer_first_mpls_over_udp_ttl', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '16' => { -+ 'name' => 'metadata_reg_c_7', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '17' => { -+ 'name' => 'metadata_reg_c_6', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '18' => { -+ 'name' => 'metadata_reg_c_5', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '19' => { -+ 'name' => 'metadata_reg_c_4', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'bitfield' => '1', -+ 'name' => 'outer_first_mpls_s_bos', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '20' => { -+ 'name' => 'metadata_reg_c_3', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '21' => { -+ 'name' => 'metadata_reg_c_2', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '22' => { -+ 'name' => 'metadata_reg_c_1', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '23' => { -+ 'name' => 'metadata_reg_c_0', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '24' => { -+ 'name' => 'metadata_reg_a', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '25' => { -+ 'bitfield' => '8', -+ 'name' => 'psp_syndrome', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '26' => { -+ 'bitfield' => '8', -+ 'name' => 'reserved_at_1a8', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '27' => { -+ 'bitfield' => '8', -+ 'name' => 'ipsec_syndrome', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '28' => { -+ 'bitfield' => '8', -+ 'name' => 'ipsec_next_header', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '29' => { -+ 'name' => 'reserved_at_260', -+ 'offset' => '56', -+ 'type' => '308211' -+ }, -+ '3' => { -+ 'bitfield' => '8', -+ 'name' => 'outer_first_mpls_ttl', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'bitfield' => '20', -+ 'name' => 'inner_first_mpls_label', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'bitfield' => '3', -+ 'name' => 'inner_first_mpls_exp', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'bitfield' => '1', -+ 'name' => 'inner_first_mpls_s_bos', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'bitfield' => '8', -+ 'name' => 'inner_first_mpls_ttl', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'bitfield' => '20', -+ 'name' => 'outer_first_mpls_over_gre_label', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'bitfield' => '3', -+ 'name' => 'outer_first_mpls_over_gre_exp', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_match_misc2', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '310323' => { -+ 'Header' => undef, -+ 'Line' => '779', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'inner_tcp_seq_num', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'outer_tcp_seq_num', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '10' => { -+ 'name' => 'icmpv6_header_data', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'name' => 'icmpv4_type', -+ 'offset' => '32', -+ 'type' => '1987' -+ }, -+ '12' => { -+ 'name' => 'icmpv4_code', -+ 'offset' => '33', -+ 'type' => '1987' -+ }, -+ '13' => { -+ 'name' => 'icmpv6_type', -+ 'offset' => '34', -+ 'type' => '1987' -+ }, -+ '14' => { -+ 'name' => 'icmpv6_code', -+ 'offset' => '35', -+ 'type' => '1987' -+ }, -+ '15' => { -+ 'name' => 'geneve_tlv_option_0_data', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '16' => { -+ 'name' => 'gtpu_teid', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '17' => { -+ 'bitfield' => '8', -+ 'name' => 'gtpu_msg_type', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '18' => { -+ 'bitfield' => '8', -+ 'name' => 'gtpu_msg_flags', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '19' => { -+ 'bitfield' => '16', -+ 'name' => 'reserved_at_150', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'inner_tcp_ack_num', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '20' => { -+ 'name' => 'gtpu_dw_2', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '21' => { -+ 'name' => 'gtpu_first_ext_dw_0', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '22' => { -+ 'name' => 'gtpu_dw_0', -+ 'offset' => '56', -+ 'type' => '2011' -+ }, -+ '23' => { -+ 'name' => 'reserved_at_1c0', -+ 'offset' => '60', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'outer_tcp_ack_num', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'bitfield' => '8', -+ 'name' => 'reserved_at_80', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'bitfield' => '24', -+ 'name' => 'outer_vxlan_gpe_vni', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'bitfield' => '8', -+ 'name' => 'outer_vxlan_gpe_next_protocol', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'bitfield' => '8', -+ 'name' => 'outer_vxlan_gpe_flags', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'bitfield' => '16', -+ 'name' => 'reserved_at_b0', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'icmpv4_header_data', -+ 'offset' => '24', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_match_misc3', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '310698' => { -+ 'Header' => undef, -+ 'Line' => '806', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'prog_sample_field_value_0', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'prog_sample_field_id_0', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '10' => { -+ 'name' => 'prog_sample_field_value_5', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'name' => 'prog_sample_field_id_5', -+ 'offset' => '44', -+ 'type' => '2011' -+ }, -+ '12' => { -+ 'name' => 'prog_sample_field_value_6', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '13' => { -+ 'name' => 'prog_sample_field_id_6', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '14' => { -+ 'name' => 'prog_sample_field_value_7', -+ 'offset' => '56', -+ 'type' => '2011' -+ }, -+ '15' => { -+ 'name' => 'prog_sample_field_id_7', -+ 'offset' => '60', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'prog_sample_field_value_1', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'prog_sample_field_id_1', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'prog_sample_field_value_2', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'prog_sample_field_id_2', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'prog_sample_field_value_3', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'prog_sample_field_id_3', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'prog_sample_field_value_4', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'prog_sample_field_id_4', -+ 'offset' => '36', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_match_misc4', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '310937' => { -+ 'Header' => undef, -+ 'Line' => '825', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'macsec_tag_0', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'macsec_tag_1', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'macsec_tag_2', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'macsec_tag_3', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'tunnel_header_0', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'tunnel_header_1', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'tunnel_header_2', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'tunnel_header_3', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'reserved', -+ 'offset' => '32', -+ 'type' => '311078' -+ } -+ }, -+ 'Name' => 'struct dr_match_misc5', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '311078' => { -+ 'BaseType' => '2011', -+ 'Name' => 'uint32_t[8]', -+ 'Size' => '32', -+ 'Type' => 'Array' -+ }, -+ '311094' => { -+ 'Header' => undef, -+ 'Line' => '860', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'vport_gvmi', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'vhca_gvmi', -+ 'offset' => '2', -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'name' => 'icm_address_rx', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'icm_address_tx', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'name' => 'num', -+ 'offset' => '24', -+ 'type' => '1999' -+ }, -+ '5' => { -+ 'name' => 'metadata_c', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'metadata_c_mask', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'next', -+ 'offset' => '40', -+ 'type' => '311221' -+ } -+ }, -+ 'Name' => 'struct dr_devx_vport_cap', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '311221' => { -+ 'BaseType' => '311094', -+ 'Name' => 'struct dr_devx_vport_cap*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '311227' => { -+ 'Header' => undef, -+ 'Line' => '872', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'roce_en', -+ 'offset' => '0', -+ 'type' => '2098' -+ }, -+ '1' => { -+ 'name' => 'fl_rc_qp_when_roce_disabled', -+ 'offset' => '1', -+ 'type' => '2098' -+ }, -+ '2' => { -+ 'name' => 'fl_rc_qp_when_roce_enabled', -+ 'offset' => '2', -+ 'type' => '2098' -+ }, -+ '3' => { -+ 'name' => 'qp_ts_format', -+ 'offset' => '3', -+ 'type' => '1987' -+ } -+ }, -+ 'Name' => 'struct dr_devx_roce_cap', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '311298' => { -+ 'Header' => undef, -+ 'Line' => '879', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buckets', -+ 'offset' => '0', -+ 'type' => '311328' -+ } -+ }, -+ 'Name' => 'struct dr_vports_table', -+ 'Size' => '2048', -+ 'Type' => 'Struct' -+ }, -+ '311328' => { -+ 'BaseType' => '311221', -+ 'Name' => 'struct dr_devx_vport_cap*[256]', -+ 'Size' => '2048', -+ 'Type' => 'Array' -+ }, -+ '311344' => { -+ 'Header' => undef, -+ 'Line' => '883', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'esw_mngr', -+ 'offset' => '0', -+ 'type' => '311094' -+ }, -+ '1' => { -+ 'name' => 'wire', -+ 'offset' => '48', -+ 'type' => '311094' -+ }, -+ '2' => { -+ 'name' => 'vports', -+ 'offset' => '96', -+ 'type' => '311443' -+ }, -+ '3' => { -+ 'name' => 'ib_ports', -+ 'offset' => '104', -+ 'type' => '311449' -+ }, -+ '4' => { -+ 'name' => 'num_ports', -+ 'offset' => '112', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'lock', -+ 'offset' => '116', -+ 'type' => '999' -+ } -+ }, -+ 'Name' => 'struct dr_devx_vports', -+ 'Size' => '120', -+ 'Type' => 'Struct' -+ }, -+ '311443' => { -+ 'BaseType' => '311298', -+ 'Name' => 'struct dr_vports_table*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '311449' => { -+ 'BaseType' => '311221', -+ 'Name' => 'struct dr_devx_vport_cap**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '311870' => { -+ 'Header' => undef, -+ 'Line' => '980', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'type', -+ 'offset' => '0', -+ 'type' => '1987' -+ }, -+ '1' => { -+ 'name' => 'level', -+ 'offset' => '1', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'ft_dvo', -+ 'offset' => '8', -+ 'type' => '19143' -+ }, -+ '3' => { -+ 'name' => 'fg_dvo', -+ 'offset' => '16', -+ 'type' => '19143' -+ }, -+ '4' => { -+ 'name' => 'fte_dvo', -+ 'offset' => '24', -+ 'type' => '19143' -+ } -+ }, -+ 'Name' => 'struct dr_devx_tbl', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '312054' => { -+ 'Header' => undef, -+ 'Line' => '997', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'DR_DOMAIN_NIC_TYPE_RX', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'DR_DOMAIN_NIC_TYPE_TX', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum dr_domain_nic_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '312086' => { -+ 'Header' => undef, -+ 'Line' => '1002', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'drop_icm_addr', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'default_icm_addr', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'type', -+ 'offset' => '16', -+ 'type' => '312054' -+ }, -+ '3' => { -+ 'name' => 'locks', -+ 'offset' => '20', -+ 'type' => '312173' -+ } -+ }, -+ 'Name' => 'struct dr_domain_rx_tx', -+ 'Size' => '80', -+ 'Type' => 'Struct' -+ }, -+ '312157' => { -+ 'BaseType' => '999', -+ 'Name' => 'pthread_spinlock_t[14]', -+ 'Size' => '56', -+ 'Type' => 'Array' -+ }, -+ '312173' => { -+ 'BaseType' => '312157', -+ 'Name' => 'pthread_spinlock_t[14] volatile', -+ 'Size' => '56', -+ 'Type' => 'Volatile' -+ }, -+ '312178' => { -+ 'Header' => undef, -+ 'Line' => '1010', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'supp_sw_steering', -+ 'offset' => '0', -+ 'type' => '2098' -+ }, -+ '1' => { -+ 'name' => 'max_inline_size', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'max_log_sw_icm_sz', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'max_log_action_icm_sz', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'max_send_size', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'rx', -+ 'offset' => '24', -+ 'type' => '312086' -+ }, -+ '6' => { -+ 'name' => 'tx', -+ 'offset' => '104', -+ 'type' => '312086' -+ }, -+ '7' => { -+ 'name' => 'attr', -+ 'offset' => '184', -+ 'type' => '4061' -+ }, -+ '8' => { -+ 'name' => 'caps', -+ 'offset' => '584', -+ 'type' => '306947' -+ }, -+ '9' => { -+ 'name' => 'use_mqs', -+ 'offset' => '832', -+ 'type' => '2098' -+ } -+ }, -+ 'Name' => 'struct dr_domain_info', -+ 'Size' => '840', -+ 'Type' => 'Struct' -+ }, -+ '312334' => { -+ 'Header' => undef, -+ 'Line' => '155', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'build_eth_l2_src_dst_init', -+ 'offset' => '0', -+ 'type' => '315931' -+ }, -+ '1' => { -+ 'name' => 'build_eth_l3_ipv6_src_init', -+ 'offset' => '8', -+ 'type' => '315931' -+ }, -+ '10' => { -+ 'name' => 'build_tnl_gre_init', -+ 'offset' => '80', -+ 'type' => '315931' -+ }, -+ '11' => { -+ 'name' => 'build_tnl_mpls_over_gre_init', -+ 'offset' => '88', -+ 'type' => '315931' -+ }, -+ '12' => { -+ 'name' => 'build_tnl_mpls_over_udp_init', -+ 'offset' => '96', -+ 'type' => '315931' -+ }, -+ '13' => { -+ 'name' => 'build_icmp_init', -+ 'offset' => '104', -+ 'type' => '315931' -+ }, -+ '14' => { -+ 'name' => 'build_general_purpose_init', -+ 'offset' => '112', -+ 'type' => '315931' -+ }, -+ '15' => { -+ 'name' => 'build_eth_l4_misc_init', -+ 'offset' => '120', -+ 'type' => '315931' -+ }, -+ '16' => { -+ 'name' => 'build_tnl_vxlan_gpe_init', -+ 'offset' => '128', -+ 'type' => '315931' -+ }, -+ '17' => { -+ 'name' => 'build_tnl_geneve_init', -+ 'offset' => '136', -+ 'type' => '315931' -+ }, -+ '18' => { -+ 'name' => 'build_tnl_geneve_tlv_opt_init', -+ 'offset' => '144', -+ 'type' => '315931' -+ }, -+ '19' => { -+ 'name' => 'build_tnl_geneve_tlv_opt_exist_init', -+ 'offset' => '152', -+ 'type' => '315931' -+ }, -+ '2' => { -+ 'name' => 'build_eth_l3_ipv6_dst_init', -+ 'offset' => '16', -+ 'type' => '315931' -+ }, -+ '20' => { -+ 'name' => 'build_tnl_gtpu_init', -+ 'offset' => '160', -+ 'type' => '315931' -+ }, -+ '21' => { -+ 'name' => 'build_tnl_gtpu_flex_parser_0', -+ 'offset' => '168', -+ 'type' => '315931' -+ }, -+ '22' => { -+ 'name' => 'build_tnl_gtpu_flex_parser_1', -+ 'offset' => '176', -+ 'type' => '315931' -+ }, -+ '23' => { -+ 'name' => 'build_register_0_init', -+ 'offset' => '184', -+ 'type' => '315931' -+ }, -+ '24' => { -+ 'name' => 'build_register_1_init', -+ 'offset' => '192', -+ 'type' => '315931' -+ }, -+ '25' => { -+ 'name' => 'build_src_gvmi_qpn_init', -+ 'offset' => '200', -+ 'type' => '315931' -+ }, -+ '26' => { -+ 'name' => 'build_flex_parser_0_init', -+ 'offset' => '208', -+ 'type' => '315931' -+ }, -+ '27' => { -+ 'name' => 'build_flex_parser_1_init', -+ 'offset' => '216', -+ 'type' => '315931' -+ }, -+ '28' => { -+ 'name' => 'build_tunnel_header_init', -+ 'offset' => '224', -+ 'type' => '315931' -+ }, -+ '29' => { -+ 'name' => 'build_def0_init', -+ 'offset' => '232', -+ 'type' => '315931' -+ }, -+ '3' => { -+ 'name' => 'build_eth_l3_ipv4_5_tuple_init', -+ 'offset' => '24', -+ 'type' => '315931' -+ }, -+ '30' => { -+ 'name' => 'build_def2_init', -+ 'offset' => '240', -+ 'type' => '315931' -+ }, -+ '31' => { -+ 'name' => 'build_def6_init', -+ 'offset' => '248', -+ 'type' => '315931' -+ }, -+ '32' => { -+ 'name' => 'build_def16_init', -+ 'offset' => '256', -+ 'type' => '315931' -+ }, -+ '33' => { -+ 'name' => 'build_def22_init', -+ 'offset' => '264', -+ 'type' => '315931' -+ }, -+ '34' => { -+ 'name' => 'build_def24_init', -+ 'offset' => '272', -+ 'type' => '315931' -+ }, -+ '35' => { -+ 'name' => 'build_def25_init', -+ 'offset' => '280', -+ 'type' => '315931' -+ }, -+ '36' => { -+ 'name' => 'build_def26_init', -+ 'offset' => '288', -+ 'type' => '315931' -+ }, -+ '37' => { -+ 'name' => 'build_def28_init', -+ 'offset' => '296', -+ 'type' => '315931' -+ }, -+ '38' => { -+ 'name' => 'build_def33_init', -+ 'offset' => '304', -+ 'type' => '315931' -+ }, -+ '39' => { -+ 'name' => 'aso_other_domain_link', -+ 'offset' => '312', -+ 'type' => '316000' -+ }, -+ '4' => { -+ 'name' => 'build_eth_l2_src_init', -+ 'offset' => '32', -+ 'type' => '315931' -+ }, -+ '40' => { -+ 'name' => 'aso_other_domain_unlink', -+ 'offset' => '320', -+ 'type' => '28943' -+ }, -+ '41' => { -+ 'name' => 'ste_init', -+ 'offset' => '328', -+ 'type' => '316032' -+ }, -+ '42' => { -+ 'name' => 'set_next_lu_type', -+ 'offset' => '336', -+ 'type' => '316054' -+ }, -+ '43' => { -+ 'name' => 'get_next_lu_type', -+ 'offset' => '344', -+ 'type' => '316075' -+ }, -+ '44' => { -+ 'name' => 'set_miss_addr', -+ 'offset' => '352', -+ 'type' => '316097' -+ }, -+ '45' => { -+ 'name' => 'get_miss_addr', -+ 'offset' => '360', -+ 'type' => '316118' -+ }, -+ '46' => { -+ 'name' => 'set_hit_addr', -+ 'offset' => '368', -+ 'type' => '316145' -+ }, -+ '47' => { -+ 'name' => 'set_byte_mask', -+ 'offset' => '376', -+ 'type' => '316054' -+ }, -+ '48' => { -+ 'name' => 'get_byte_mask', -+ 'offset' => '384', -+ 'type' => '316075' -+ }, -+ '49' => { -+ 'name' => 'set_ctrl_always_hit_htbl', -+ 'offset' => '392', -+ 'type' => '316187' -+ }, -+ '5' => { -+ 'name' => 'build_eth_l2_dst_init', -+ 'offset' => '40', -+ 'type' => '315931' -+ }, -+ '50' => { -+ 'name' => 'set_ctrl_always_miss', -+ 'offset' => '400', -+ 'type' => '316214' -+ }, -+ '51' => { -+ 'name' => 'set_hit_gvmi', -+ 'offset' => '408', -+ 'type' => '316054' -+ }, -+ '52' => { -+ 'name' => 'actions_caps', -+ 'offset' => '416', -+ 'type' => '2011' -+ }, -+ '53' => { -+ 'name' => 'action_modify_field_arr', -+ 'offset' => '424', -+ 'type' => '316220' -+ }, -+ '54' => { -+ 'name' => 'action_modify_field_arr_size', -+ 'offset' => '432', -+ 'type' => '386' -+ }, -+ '55' => { -+ 'name' => 'set_actions_rx', -+ 'offset' => '440', -+ 'type' => '316263' -+ }, -+ '56' => { -+ 'name' => 'set_actions_tx', -+ 'offset' => '448', -+ 'type' => '316263' -+ }, -+ '57' => { -+ 'name' => 'set_action_set', -+ 'offset' => '456', -+ 'type' => '316300' -+ }, -+ '58' => { -+ 'name' => 'set_action_add', -+ 'offset' => '464', -+ 'type' => '316300' -+ }, -+ '59' => { -+ 'name' => 'set_action_copy', -+ 'offset' => '472', -+ 'type' => '316342' -+ }, -+ '6' => { -+ 'name' => 'build_eth_l2_tnl_init', -+ 'offset' => '48', -+ 'type' => '315931' -+ }, -+ '60' => { -+ 'name' => 'get_action_hw_field', -+ 'offset' => '480', -+ 'type' => '316373' -+ }, -+ '61' => { -+ 'name' => 'set_action_decap_l3_list', -+ 'offset' => '488', -+ 'type' => '316414' -+ }, -+ '62' => { -+ 'name' => 'set_aso_ct_cross_dmn', -+ 'offset' => '496', -+ 'type' => '316451' -+ }, -+ '63' => { -+ 'name' => 'prepare_for_postsend', -+ 'offset' => '504', -+ 'type' => '316473' -+ }, -+ '7' => { -+ 'name' => 'build_eth_l3_ipv4_misc_init', -+ 'offset' => '56', -+ 'type' => '315931' -+ }, -+ '8' => { -+ 'name' => 'build_eth_ipv6_l3_l4_init', -+ 'offset' => '64', -+ 'type' => '315931' -+ }, -+ '9' => { -+ 'name' => 'build_mpls_init', -+ 'offset' => '72', -+ 'type' => '315931' -+ } -+ }, -+ 'Name' => 'struct dr_ste_ctx', -+ 'Size' => '512', -+ 'Type' => 'Struct' -+ }, -+ '313215' => { -+ 'BaseType' => '312334', -+ 'Name' => 'struct dr_ste_ctx*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '313221' => { -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'icm_type', -+ 'offset' => '0', -+ 'type' => '507926' -+ }, -+ '1' => { -+ 'name' => 'dmn', -+ 'offset' => '8', -+ 'type' => '308152' -+ }, -+ '2' => { -+ 'name' => 'max_log_chunk_sz', -+ 'offset' => '16', -+ 'type' => '305664' -+ }, -+ '3' => { -+ 'name' => 'lock', -+ 'offset' => '20', -+ 'type' => '999' -+ }, -+ '4' => { -+ 'name' => 'buddy_mem_list', -+ 'offset' => '24', -+ 'type' => '14507' -+ }, -+ '5' => { -+ 'name' => 'hot_memory_size', -+ 'offset' => '40', -+ 'type' => '2028' -+ }, -+ '6' => { -+ 'name' => 'syncing', -+ 'offset' => '48', -+ 'type' => '2098' -+ } -+ }, -+ 'Name' => 'struct dr_icm_pool', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '313226' => { -+ 'BaseType' => '313221', -+ 'Name' => 'struct dr_icm_pool*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '313232' => { -+ 'BaseType' => '313248', -+ 'Name' => 'struct dr_send_ring*[14]', -+ 'Size' => '112', -+ 'Type' => 'Array' -+ }, -+ '313248' => { -+ 'BaseType' => '313254', -+ 'Name' => 'struct dr_send_ring*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '313254' => { -+ 'Header' => undef, -+ 'Line' => '1588', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'cq', -+ 'offset' => '0', -+ 'type' => '315783' -+ }, -+ '1' => { -+ 'name' => 'qp', -+ 'offset' => '48', -+ 'type' => '315908' -+ }, -+ '10' => { -+ 'name' => 'sync_buff', -+ 'offset' => '104', -+ 'type' => '267' -+ }, -+ '11' => { -+ 'name' => 'sync_mr', -+ 'offset' => '112', -+ 'type' => '6130' -+ }, -+ '2' => { -+ 'name' => 'mr', -+ 'offset' => '56', -+ 'type' => '6130' -+ }, -+ '3' => { -+ 'name' => 'pending_wqe', -+ 'offset' => '64', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'signal_th', -+ 'offset' => '68', -+ 'type' => '1999' -+ }, -+ '5' => { -+ 'name' => 'max_inline_size', -+ 'offset' => '72', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'tx_head', -+ 'offset' => '76', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'lock', -+ 'offset' => '80', -+ 'type' => '999' -+ }, -+ '8' => { -+ 'name' => 'buf', -+ 'offset' => '88', -+ 'type' => '267' -+ }, -+ '9' => { -+ 'name' => 'buf_size', -+ 'offset' => '96', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_send_ring', -+ 'Size' => '120', -+ 'Type' => 'Struct' -+ }, -+ '313434' => { -+ 'Header' => undef, -+ 'Line' => '1102', -+ 'Memb' => { -+ '0' => { -+ 'name' => 's_anchor', -+ 'offset' => '0', -+ 'type' => '306396' -+ }, -+ '1' => { -+ 'name' => 'nic_dmn', -+ 'offset' => '8', -+ 'type' => '313477' -+ } -+ }, -+ 'Name' => 'struct dr_table_rx_tx', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '313477' => { -+ 'BaseType' => '312086', -+ 'Name' => 'struct dr_domain_rx_tx*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '313483' => { -+ 'Header' => undef, -+ 'Line' => '1119', -+ 'Memb' => { -+ '0' => { -+ 'name' => 's_htbl', -+ 'offset' => '0', -+ 'type' => '306396' -+ }, -+ '1' => { -+ 'name' => 'e_anchor', -+ 'offset' => '8', -+ 'type' => '306396' -+ }, -+ '2' => { -+ 'name' => 'ste_builder', -+ 'offset' => '16', -+ 'type' => '313601' -+ }, -+ '3' => { -+ 'name' => 'num_of_builders', -+ 'offset' => '1616', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'default_icm_addr', -+ 'offset' => '1624', -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'name' => 'nic_tbl', -+ 'offset' => '1632', -+ 'type' => '313617' -+ }, -+ '6' => { -+ 'name' => 'fixed_size', -+ 'offset' => '1640', -+ 'type' => '2098' -+ } -+ }, -+ 'Name' => 'struct dr_matcher_rx_tx', -+ 'Size' => '1648', -+ 'Type' => 'Struct' -+ }, -+ '313601' => { -+ 'BaseType' => '306843', -+ 'Name' => 'struct dr_ste_build[20]', -+ 'Size' => '1600', -+ 'Type' => 'Array' -+ }, -+ '313617' => { -+ 'BaseType' => '313434', -+ 'Name' => 'struct dr_table_rx_tx*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '313623' => { -+ 'Header' => undef, -+ 'Line' => '1129', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'tbl', -+ 'offset' => '0', -+ 'type' => '293256' -+ }, -+ '1' => { -+ 'name' => 'rx', -+ 'offset' => '8', -+ 'type' => '313483' -+ }, -+ '2' => { -+ 'name' => 'tx', -+ 'offset' => '1656', -+ 'type' => '313483' -+ }, -+ '3' => { -+ 'name' => 'matcher_list', -+ 'offset' => '3304', -+ 'type' => '14461' -+ }, -+ '4' => { -+ 'name' => 'prio', -+ 'offset' => '3320', -+ 'type' => '1999' -+ }, -+ '5' => { -+ 'name' => 'mask', -+ 'offset' => '3324', -+ 'type' => '307573' -+ }, -+ '6' => { -+ 'name' => 'match_criteria', -+ 'offset' => '3772', -+ 'type' => '1987' -+ }, -+ '7' => { -+ 'name' => 'refcount', -+ 'offset' => '3776', -+ 'type' => '128' -+ }, -+ '8' => { -+ 'name' => 'dv_matcher', -+ 'offset' => '3784', -+ 'type' => '30312' -+ }, -+ '9' => { -+ 'name' => 'rule_list', -+ 'offset' => '3792', -+ 'type' => '14507' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_matcher', -+ 'Size' => '3808', -+ 'Type' => 'Struct' -+ }, -+ '313785' => { -+ 'Header' => undef, -+ 'Line' => '1142', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hw_field', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'start', -+ 'offset' => '2', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'end', -+ 'offset' => '3', -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'name' => 'l3_type', -+ 'offset' => '4', -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'name' => 'l4_type', -+ 'offset' => '5', -+ 'type' => '1987' -+ }, -+ '5' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_ste_action_modify_field', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '313884' => { -+ 'BaseType' => '313785', -+ 'Name' => 'struct dr_ste_action_modify_field const', -+ 'Size' => '12', -+ 'Type' => 'Const' -+ }, -+ '313889' => { -+ 'Header' => undef, -+ 'Line' => '1151', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ref_actions_num', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'ref_actions', -+ 'offset' => '8', -+ 'type' => '293396' -+ }, -+ '2' => { -+ 'name' => 'devx_tbl', -+ 'offset' => '16', -+ 'type' => '313946' -+ } -+ }, -+ 'Name' => 'struct dr_devx_tbl_with_refs', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '313946' => { -+ 'BaseType' => '311870', -+ 'Name' => 'struct dr_devx_tbl*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '313952' => { -+ 'Header' => undef, -+ 'Line' => '1157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'devx_obj', -+ 'offset' => '0', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'rx_icm_addr', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'tx_icm_addr', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'next_ft', -+ 'offset' => '24', -+ 'type' => '293256' -+ } -+ }, -+ 'Name' => 'struct dr_flow_sampler', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '314023' => { -+ 'Header' => undef, -+ 'Line' => '1164', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'tbl', -+ 'offset' => '0', -+ 'type' => '293256' -+ }, -+ '1' => { -+ 'name' => 'matcher', -+ 'offset' => '8', -+ 'type' => '314108' -+ }, -+ '2' => { -+ 'name' => 'rule', -+ 'offset' => '16', -+ 'type' => '314191' -+ }, -+ '3' => { -+ 'name' => 'actions', -+ 'offset' => '24', -+ 'type' => '293396' -+ }, -+ '4' => { -+ 'name' => 'num_of_actions', -+ 'offset' => '32', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct dr_flow_sampler_restore_tbl', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '314108' => { -+ 'BaseType' => '313623', -+ 'Name' => 'struct mlx5dv_dr_matcher*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314114' => { -+ 'Header' => undef, -+ 'Line' => '1273', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'matcher', -+ 'offset' => '0', -+ 'type' => '314108' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '315199' -+ }, -+ '2' => { -+ 'name' => 'rule_list', -+ 'offset' => '56', -+ 'type' => '14461' -+ }, -+ '3' => { -+ 'name' => 'actions', -+ 'offset' => '72', -+ 'type' => '293396' -+ }, -+ '4' => { -+ 'name' => 'num_actions', -+ 'offset' => '80', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_rule', -+ 'Size' => '88', -+ 'Type' => 'Struct' -+ }, -+ '314191' => { -+ 'BaseType' => '314114', -+ 'Name' => 'struct mlx5dv_dr_rule*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314197' => { -+ 'Header' => undef, -+ 'Line' => '1181', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'chunk', -+ 'offset' => '0', -+ 'type' => '306712' -+ }, -+ '1' => { -+ 'name' => 'data', -+ 'offset' => '8', -+ 'type' => '7345' -+ }, -+ '2' => { -+ 'name' => 'data_size', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'index', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'num_of_actions', -+ 'offset' => '24', -+ 'type' => '1999' -+ }, -+ '5' => { -+ 'bitfield' => '1', -+ 'name' => 'single_action_opt', -+ 'offset' => '26', -+ 'type' => '1987' -+ }, -+ '6' => { -+ 'bitfield' => '1', -+ 'name' => 'allow_rx', -+ 'offset' => '26', -+ 'type' => '1987' -+ }, -+ '7' => { -+ 'bitfield' => '1', -+ 'name' => 'allow_tx', -+ 'offset' => '26', -+ 'type' => '1987' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '314329' => { -+ 'Header' => undef, -+ 'Line' => '1179', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'flow_action', -+ 'offset' => '0', -+ 'type' => '13715' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '314197' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '314358' => { -+ 'Header' => undef, -+ 'Line' => '1176', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'is_root_level', -+ 'offset' => '8', -+ 'type' => '2098' -+ }, -+ '2' => { -+ 'name' => 'unnamed0', -+ 'offset' => '16', -+ 'type' => '314329' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '314403' => { -+ 'Header' => undef, -+ 'Line' => '1198', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dvo', -+ 'offset' => '0', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'reformat_size', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '314442' => { -+ 'Header' => undef, -+ 'Line' => '1196', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'flow_action', -+ 'offset' => '0', -+ 'type' => '13715' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '314403' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '314471' => { -+ 'Header' => undef, -+ 'Line' => '1193', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'is_root_level', -+ 'offset' => '8', -+ 'type' => '2098' -+ }, -+ '2' => { -+ 'name' => 'unnamed0', -+ 'offset' => '16', -+ 'type' => '314442' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '314516' => { -+ 'Header' => undef, -+ 'Line' => '1204', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'next_ft', -+ 'offset' => '0', -+ 'type' => '293256' -+ }, -+ '1' => { -+ 'name' => 'devx_obj', -+ 'offset' => '8', -+ 'type' => '19143' -+ }, -+ '2' => { -+ 'name' => 'rx_icm_addr', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'tx_icm_addr', -+ 'offset' => '24', -+ 'type' => '2028' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '314583' => { -+ 'Header' => undef, -+ 'Line' => '1210', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'term_tbl', -+ 'offset' => '8', -+ 'type' => '314664' -+ }, -+ '2' => { -+ 'name' => 'sampler_default', -+ 'offset' => '16', -+ 'type' => '314670' -+ }, -+ '3' => { -+ 'name' => 'restore_tbl', -+ 'offset' => '24', -+ 'type' => '314676' -+ }, -+ '4' => { -+ 'name' => 'sampler_restore', -+ 'offset' => '32', -+ 'type' => '314670' -+ } -+ }, -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '314664' => { -+ 'BaseType' => '313889', -+ 'Name' => 'struct dr_devx_tbl_with_refs*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314670' => { -+ 'BaseType' => '313952', -+ 'Name' => 'struct dr_flow_sampler*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314676' => { -+ 'BaseType' => '314023', -+ 'Name' => 'struct dr_flow_sampler_restore_tbl*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '314682' => { -+ 'Header' => undef, -+ 'Line' => '1218', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'actions_list', -+ 'offset' => '8', -+ 'type' => '14507' -+ }, -+ '2' => { -+ 'name' => 'devx_tbl', -+ 'offset' => '24', -+ 'type' => '313946' -+ }, -+ '3' => { -+ 'name' => 'rx_icm_addr', -+ 'offset' => '32', -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'name' => 'tx_icm_addr', -+ 'offset' => '40', -+ 'type' => '2028' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '314763' => { -+ 'Header' => undef, -+ 'Line' => '1225', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'devx_obj', -+ 'offset' => '0', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'offset', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '314802' => { -+ 'Header' => undef, -+ 'Line' => '1229', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dmn', -+ 'offset' => '0', -+ 'type' => '308152' -+ }, -+ '1' => { -+ 'name' => 'caps', -+ 'offset' => '8', -+ 'type' => '311221' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '314841' => { -+ 'Header' => undef, -+ 'Line' => '1233', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'vlan_hdr', -+ 'offset' => '0', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '314866' => { -+ 'Header' => undef, -+ 'Line' => '1238', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'devx_tir', -+ 'offset' => '0', -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'name' => 'qp', -+ 'offset' => '0', -+ 'type' => '5101' -+ } -+ }, -+ 'Size' => '8', -+ 'Type' => 'Union' -+ }, -+ '314902' => { -+ 'Header' => undef, -+ 'Line' => '1236', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'is_qp', -+ 'offset' => '0', -+ 'type' => '2098' -+ }, -+ '1' => { -+ 'name' => 'unnamed0', -+ 'offset' => '8', -+ 'type' => '314866' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '314933' => { -+ 'Header' => undef, -+ 'Line' => '1175', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rewrite', -+ 'offset' => '0', -+ 'type' => '314358' -+ }, -+ '1' => { -+ 'name' => 'reformat', -+ 'offset' => '0', -+ 'type' => '314471' -+ }, -+ '10' => { -+ 'name' => 'aso', -+ 'offset' => '0', -+ 'type' => '307875' -+ }, -+ '11' => { -+ 'name' => 'devx_obj', -+ 'offset' => '0', -+ 'type' => '19143' -+ }, -+ '12' => { -+ 'name' => 'flow_tag', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'meter', -+ 'offset' => '0', -+ 'type' => '314516' -+ }, -+ '3' => { -+ 'name' => 'sampler', -+ 'offset' => '0', -+ 'type' => '314583' -+ }, -+ '4' => { -+ 'name' => 'dest_tbl', -+ 'offset' => '0', -+ 'type' => '293256' -+ }, -+ '5' => { -+ 'name' => 'dest_array', -+ 'offset' => '0', -+ 'type' => '314682' -+ }, -+ '6' => { -+ 'name' => 'ctr', -+ 'offset' => '0', -+ 'type' => '314763' -+ }, -+ '7' => { -+ 'name' => 'vport', -+ 'offset' => '0', -+ 'type' => '314802' -+ }, -+ '8' => { -+ 'name' => 'push_vlan', -+ 'offset' => '0', -+ 'type' => '314841' -+ }, -+ '9' => { -+ 'name' => 'dest_qp', -+ 'offset' => '0', -+ 'type' => '314902' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '315156' => { -+ 'BaseType' => '313483', -+ 'Name' => 'struct dr_matcher_rx_tx*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315162' => { -+ 'Header' => undef, -+ 'Line' => '1276', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rx', -+ 'offset' => '0', -+ 'type' => '306402' -+ }, -+ '1' => { -+ 'name' => 'tx', -+ 'offset' => '24', -+ 'type' => '306402' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '315199' => { -+ 'Header' => undef, -+ 'Line' => '1275', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '315162' -+ }, -+ '1' => { -+ 'name' => 'flow', -+ 'offset' => '0', -+ 'type' => '13536' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '315228' => { -+ 'Header' => undef, -+ 'Line' => '1627', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'bits', -+ 'offset' => '0', -+ 'type' => '315914' -+ }, -+ '1' => { -+ 'name' => 'num_free', -+ 'offset' => '8', -+ 'type' => '27794' -+ }, -+ '10' => { -+ 'name' => 'ste_arr', -+ 'offset' => '104', -+ 'type' => '306718' -+ }, -+ '11' => { -+ 'name' => 'miss_list', -+ 'offset' => '112', -+ 'type' => '39434' -+ }, -+ '12' => { -+ 'name' => 'hw_ste_arr', -+ 'offset' => '120', -+ 'type' => '7345' -+ }, -+ '13' => { -+ 'name' => 'hw_ste_sz', -+ 'offset' => '128', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'set_bit', -+ 'offset' => '16', -+ 'type' => '315914' -+ }, -+ '3' => { -+ 'name' => 'max_order', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'list_node', -+ 'offset' => '32', -+ 'type' => '14461' -+ }, -+ '5' => { -+ 'name' => 'icm_mr', -+ 'offset' => '48', -+ 'type' => '315925' -+ }, -+ '6' => { -+ 'name' => 'pool', -+ 'offset' => '56', -+ 'type' => '313226' -+ }, -+ '7' => { -+ 'name' => 'used_list', -+ 'offset' => '64', -+ 'type' => '14507' -+ }, -+ '8' => { -+ 'name' => 'used_memory', -+ 'offset' => '80', -+ 'type' => '386' -+ }, -+ '9' => { -+ 'name' => 'hot_list', -+ 'offset' => '88', -+ 'type' => '14507' -+ } -+ }, -+ 'Name' => 'struct dr_icm_buddy_mem', -+ 'Size' => '136', -+ 'Type' => 'Struct' -+ }, -+ '315439' => { -+ 'BaseType' => '315228', -+ 'Name' => 'struct dr_icm_buddy_mem*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315445' => { -+ 'Header' => undef, -+ 'Line' => '1547', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wqe_head', -+ 'offset' => '0', -+ 'type' => '27794' -+ }, -+ '1' => { -+ 'name' => 'wqe_cnt', -+ 'offset' => '8', -+ 'type' => '59' -+ }, -+ '2' => { -+ 'name' => 'max_post', -+ 'offset' => '12', -+ 'type' => '59' -+ }, -+ '3' => { -+ 'name' => 'head', -+ 'offset' => '16', -+ 'type' => '59' -+ }, -+ '4' => { -+ 'name' => 'tail', -+ 'offset' => '20', -+ 'type' => '59' -+ }, -+ '5' => { -+ 'name' => 'cur_post', -+ 'offset' => '24', -+ 'type' => '59' -+ }, -+ '6' => { -+ 'name' => 'max_gs', -+ 'offset' => '28', -+ 'type' => '128' -+ }, -+ '7' => { -+ 'name' => 'wqe_shift', -+ 'offset' => '32', -+ 'type' => '128' -+ }, -+ '8' => { -+ 'name' => 'offset', -+ 'offset' => '36', -+ 'type' => '128' -+ }, -+ '9' => { -+ 'name' => 'qend', -+ 'offset' => '40', -+ 'type' => '267' -+ } -+ }, -+ 'Name' => 'struct dr_wq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '315600' => { -+ 'Header' => undef, -+ 'Line' => '1560', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '26973' -+ }, -+ '1' => { -+ 'name' => 'sq', -+ 'offset' => '64', -+ 'type' => '315445' -+ }, -+ '10' => { -+ 'name' => 'db_umem', -+ 'offset' => '216', -+ 'type' => '29560' -+ }, -+ '11' => { -+ 'bitfield' => '1', -+ 'name' => 'nc_uar', -+ 'offset' => '224', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'rq', -+ 'offset' => '112', -+ 'type' => '315445' -+ }, -+ '3' => { -+ 'name' => 'sq_size', -+ 'offset' => '160', -+ 'type' => '128' -+ }, -+ '4' => { -+ 'name' => 'sq_start', -+ 'offset' => '168', -+ 'type' => '267' -+ }, -+ '5' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '176', -+ 'type' => '128' -+ }, -+ '6' => { -+ 'name' => 'db', -+ 'offset' => '184', -+ 'type' => '19495' -+ }, -+ '7' => { -+ 'name' => 'obj', -+ 'offset' => '192', -+ 'type' => '19143' -+ }, -+ '8' => { -+ 'name' => 'uar', -+ 'offset' => '200', -+ 'type' => '29501' -+ }, -+ '9' => { -+ 'name' => 'buf_umem', -+ 'offset' => '208', -+ 'type' => '29560' -+ } -+ }, -+ 'Name' => 'struct dr_qp', -+ 'Size' => '232', -+ 'Type' => 'Struct' -+ }, -+ '315783' => { -+ 'Header' => undef, -+ 'Line' => '1575', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'buf', -+ 'offset' => '0', -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'name' => 'cons_index', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'ncqe', -+ 'offset' => '12', -+ 'type' => '128' -+ }, -+ '3' => { -+ 'name' => 'qp', -+ 'offset' => '16', -+ 'type' => '315908' -+ }, -+ '4' => { -+ 'name' => 'db', -+ 'offset' => '24', -+ 'type' => '19495' -+ }, -+ '5' => { -+ 'name' => 'ibv_cq', -+ 'offset' => '32', -+ 'type' => '4899' -+ }, -+ '6' => { -+ 'name' => 'cqn', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'cqe_sz', -+ 'offset' => '44', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct dr_cq', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '315908' => { -+ 'BaseType' => '315600', -+ 'Name' => 'struct dr_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315914' => { -+ 'BaseType' => '22314', -+ 'Name' => 'unsigned long**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315920' => { -+ 'Header' => undef, -+ 'Line' => '49', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mr', -+ 'offset' => '0', -+ 'type' => '6130' -+ }, -+ '1' => { -+ 'name' => 'dm', -+ 'offset' => '8', -+ 'type' => '2974' -+ }, -+ '2' => { -+ 'name' => 'icm_start_addr', -+ 'offset' => '16', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct dr_icm_mr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '315925' => { -+ 'BaseType' => '315920', -+ 'Name' => 'struct dr_icm_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '315931' => { -+ 'BaseType' => '315943', -+ 'Header' => undef, -+ 'Line' => '152', -+ 'Name' => 'dr_ste_builder_void_init', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '315943' => { -+ 'Name' => 'void(*)(struct dr_ste_build*, struct dr_match_param*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '307690' -+ }, -+ '1' => { -+ 'type' => '307567' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '316000' => { -+ 'Name' => 'int(*)(struct mlx5dv_devx_obj*, struct mlx5dv_dr_domain*, struct mlx5dv_dr_domain*, uint32_t, uint8_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '19143' -+ }, -+ '1' => { -+ 'type' => '308152' -+ }, -+ '2' => { -+ 'type' => '308152' -+ }, -+ '3' => { -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'type' => '1987' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316032' => { -+ 'Name' => 'void(*)(uint8_t*, uint16_t, _Bool, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'type' => '2098' -+ }, -+ '3' => { -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316054' => { -+ 'Name' => 'void(*)(uint8_t*, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316075' => { -+ 'Name' => 'uint16_t(*)(uint8_t*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ } -+ }, -+ 'Return' => '1999', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316097' => { -+ 'Name' => 'void(*)(uint8_t*, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316118' => { -+ 'Name' => 'uint64_t(*)(uint8_t*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ } -+ }, -+ 'Return' => '2028', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316145' => { -+ 'Name' => 'void(*)(uint8_t*, uint64_t, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316187' => { -+ 'Name' => 'void(*)(uint8_t*, uint16_t, uint16_t, uint64_t, uint32_t, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316214' => { -+ 'Name' => 'void(*)(uint8_t*, uint64_t, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316220' => { -+ 'BaseType' => '313884', -+ 'Name' => 'struct dr_ste_action_modify_field const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '316257' => { -+ 'BaseType' => '308227', -+ 'Name' => 'struct dr_ste_actions_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '316263' => { -+ 'Name' => 'void(*)(uint8_t*, uint32_t, uint8_t*, struct dr_ste_actions_attr*, uint32_t*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '7345' -+ }, -+ '3' => { -+ 'type' => '316257' -+ }, -+ '4' => { -+ 'type' => '14364' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316300' => { -+ 'Name' => 'void(*)(uint8_t*, uint8_t, uint8_t, uint8_t, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316342' => { -+ 'Name' => 'void(*)(uint8_t*, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'type' => '1987' -+ }, -+ '3' => { -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'type' => '1987' -+ }, -+ '5' => { -+ 'type' => '1987' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316373' => { -+ 'Name' => 'struct dr_ste_action_modify_field const*(*)(struct dr_ste_ctx*, uint16_t, struct dr_devx_caps*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '313215' -+ }, -+ '1' => { -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'type' => '307536' -+ } -+ }, -+ 'Return' => '316220', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316414' => { -+ 'Name' => 'int(*)(void*, uint32_t, uint8_t*, uint32_t, uint16_t*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '267' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '7345' -+ }, -+ '3' => { -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'type' => '29313' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316451' => { -+ 'Name' => 'void(*)(uint8_t*, uint32_t, uint32_t, uint8_t, _Bool)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'type' => '1987' -+ }, -+ '4' => { -+ 'type' => '2098' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '316473' => { -+ 'Name' => 'void(*)(uint8_t*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '7345' -+ }, -+ '1' => { -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '317189' => { -+ 'BaseType' => '293032', -+ 'Name' => 'struct mlx5dv_dr_flow_meter_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '317277' => { -+ 'BaseType' => '2177', -+ 'Name' => '__be64*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '319715' => { -+ 'BaseType' => '319721', -+ 'Name' => 'struct mlx5dv_dr_action_dest_attr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '319721' => { -+ 'BaseType' => '293552', -+ 'Name' => 'struct mlx5dv_dr_action_dest_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '322458' => { -+ 'BaseType' => '293262', -+ 'Name' => 'struct mlx5dv_dr_flow_sampler_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '323' => { -+ 'BaseType' => '316', -+ 'Name' => 'char const', -+ 'Size' => '1', -+ 'Type' => 'Const' -+ }, -+ '3556' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[64]', -+ 'Size' => '64', -+ 'Type' => 'Array' -+ }, -+ '3604' => { -+ 'Header' => undef, -+ 'Line' => '242', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rc_odp_caps', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'uc_odp_caps', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'ud_odp_caps', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '3653' => { -+ 'Header' => undef, -+ 'Line' => '240', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'general_caps', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'per_transport_caps', -+ 'offset' => '8', -+ 'type' => '3604' -+ } -+ }, -+ 'Name' => 'struct ibv_odp_caps', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '3693' => { -+ 'Header' => undef, -+ 'Line' => '254', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_tso', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '4', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_tso_caps', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '3734' => { -+ 'Header' => undef, -+ 'Line' => '285', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'max_rwq_indirection_tables', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'max_rwq_indirection_table_size', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'rx_hash_fields_mask', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'name' => 'rx_hash_function', -+ 'offset' => '24', -+ 'type' => '1987' -+ } -+ }, -+ 'Name' => 'struct ibv_rss_caps', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '375' => { -+ 'BaseType' => '323', -+ 'Name' => 'char const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3819' => { -+ 'Header' => undef, -+ 'Line' => '293', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_rate_limit_min', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'qp_rate_limit_max', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'supported_qpts', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_packet_pacing_caps', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '386' => { -+ 'BaseType' => '66', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '3876' => { -+ 'Header' => undef, -+ 'Line' => '310', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_rndv_hdr_size', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'max_num_tags', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'max_ops', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'max_sge', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_tm_caps', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '39434' => { -+ 'BaseType' => '14507', -+ 'Name' => 'struct list_head*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '3961' => { -+ 'Header' => undef, -+ 'Line' => '323', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_cq_count', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'max_cq_period', -+ 'offset' => '2', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct ibv_cq_moderation_caps', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '4004' => { -+ 'Header' => undef, -+ 'Line' => '338', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fetch_add', -+ 'offset' => '0', -+ 'type' => '1999' -+ }, -+ '1' => { -+ 'name' => 'swap', -+ 'offset' => '2', -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'name' => 'compare_swap', -+ 'offset' => '4', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct ibv_pci_atomic_caps', -+ 'Size' => '6', -+ 'Type' => 'Struct' -+ }, -+ '405' => { -+ 'Name' => 'unsigned long long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '4061' => { -+ 'Header' => undef, -+ 'Line' => '344', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'orig_attr', -+ 'offset' => '0', -+ 'type' => '3022' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '232', -+ 'type' => '2011' -+ }, -+ '10' => { -+ 'name' => 'raw_packet_caps', -+ 'offset' => '344', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'name' => 'tm_caps', -+ 'offset' => '348', -+ 'type' => '3876' -+ }, -+ '12' => { -+ 'name' => 'cq_mod_caps', -+ 'offset' => '368', -+ 'type' => '3961' -+ }, -+ '13' => { -+ 'name' => 'max_dm_size', -+ 'offset' => '376', -+ 'type' => '2028' -+ }, -+ '14' => { -+ 'name' => 'pci_atomic_caps', -+ 'offset' => '384', -+ 'type' => '4004' -+ }, -+ '15' => { -+ 'name' => 'xrc_odp_caps', -+ 'offset' => '392', -+ 'type' => '2011' -+ }, -+ '16' => { -+ 'name' => 'phys_port_cnt_ex', -+ 'offset' => '396', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'odp_caps', -+ 'offset' => '240', -+ 'type' => '3653' -+ }, -+ '3' => { -+ 'name' => 'completion_timestamp_mask', -+ 'offset' => '264', -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'name' => 'hca_core_clock', -+ 'offset' => '272', -+ 'type' => '2028' -+ }, -+ '5' => { -+ 'name' => 'device_cap_flags_ex', -+ 'offset' => '280', -+ 'type' => '2028' -+ }, -+ '6' => { -+ 'name' => 'tso_caps', -+ 'offset' => '288', -+ 'type' => '3693' -+ }, -+ '7' => { -+ 'name' => 'rss_caps', -+ 'offset' => '296', -+ 'type' => '3734' -+ }, -+ '8' => { -+ 'name' => 'max_wq_type_rq', -+ 'offset' => '328', -+ 'type' => '2011' -+ }, -+ '9' => { -+ 'name' => 'packet_pacing_caps', -+ 'offset' => '332', -+ 'type' => '3819' -+ } -+ }, -+ 'Name' => 'struct ibv_device_attr_ex', -+ 'Size' => '400', -+ 'Type' => 'Struct' -+ }, -+ '45' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '4758' => { -+ 'Header' => undef, -+ 'Line' => '1458', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '9969' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'offset' => '16', -+ 'type' => '267' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'cqe', -+ 'offset' => '28', -+ 'type' => '128' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '897' -+ }, -+ '6' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '971' -+ }, -+ '7' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '120', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '124', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_cq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '4899' => { -+ 'BaseType' => '4758', -+ 'Name' => 'struct ibv_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '4905' => { -+ 'Header' => undef, -+ 'Line' => '1252', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'qp_context', -+ 'offset' => '8', -+ 'type' => '267' -+ }, -+ '10' => { -+ 'name' => 'mutex', -+ 'offset' => '64', -+ 'type' => '897' -+ }, -+ '11' => { -+ 'name' => 'cond', -+ 'offset' => '104', -+ 'type' => '971' -+ }, -+ '12' => { -+ 'name' => 'events_completed', -+ 'offset' => '152', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '6322' -+ }, -+ '3' => { -+ 'name' => 'send_cq', -+ 'offset' => '24', -+ 'type' => '4899' -+ }, -+ '4' => { -+ 'name' => 'recv_cq', -+ 'offset' => '32', -+ 'type' => '4899' -+ }, -+ '5' => { -+ 'name' => 'srq', -+ 'offset' => '40', -+ 'type' => '5219' -+ }, -+ '6' => { -+ 'name' => 'handle', -+ 'offset' => '48', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'qp_num', -+ 'offset' => '52', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'state', -+ 'offset' => '56', -+ 'type' => '7680' -+ }, -+ '9' => { -+ 'name' => 'qp_type', -+ 'offset' => '60', -+ 'type' => '7127' -+ } -+ }, -+ 'Name' => 'struct ibv_qp', -+ 'Size' => '160', -+ 'Type' => 'Struct' -+ }, -+ '507926' => { -+ 'Header' => undef, -+ 'Line' => '93', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'DR_ICM_TYPE_STE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'DR_ICM_TYPE_MODIFY_ACTION', -+ 'value' => '1' -+ } -+ }, -+ 'Name' => 'enum dr_icm_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '5101' => { -+ 'BaseType' => '4905', -+ 'Name' => 'struct ibv_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5107' => { -+ 'Header' => undef, -+ 'Line' => '1212', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'srq_context', -+ 'offset' => '8', -+ 'type' => '267' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '6322' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '897' -+ }, -+ '5' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '971' -+ }, -+ '6' => { -+ 'name' => 'events_completed', -+ 'offset' => '120', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_srq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '52' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '5219' => { -+ 'BaseType' => '5107', -+ 'Name' => 'struct ibv_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5225' => { -+ 'Header' => undef, -+ 'Line' => '1234', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'wq_context', -+ 'offset' => '8', -+ 'type' => '267' -+ }, -+ '10' => { -+ 'name' => 'cond', -+ 'offset' => '96', -+ 'type' => '971' -+ }, -+ '11' => { -+ 'name' => 'events_completed', -+ 'offset' => '144', -+ 'type' => '2011' -+ }, -+ '12' => { -+ 'name' => 'comp_mask', -+ 'offset' => '148', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '6322' -+ }, -+ '3' => { -+ 'name' => 'cq', -+ 'offset' => '24', -+ 'type' => '4899' -+ }, -+ '4' => { -+ 'name' => 'wq_num', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'handle', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'state', -+ 'offset' => '40', -+ 'type' => '6864' -+ }, -+ '7' => { -+ 'name' => 'wq_type', -+ 'offset' => '44', -+ 'type' => '6713' -+ }, -+ '8' => { -+ 'name' => 'post_recv', -+ 'offset' => '48', -+ 'type' => '9101' -+ }, -+ '9' => { -+ 'name' => 'mutex', -+ 'offset' => '56', -+ 'type' => '897' -+ } -+ }, -+ 'Name' => 'struct ibv_wq', -+ 'Size' => '152', -+ 'Type' => 'Struct' -+ }, -+ '5420' => { -+ 'BaseType' => '5225', -+ 'Name' => 'struct ibv_wq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5426' => { -+ 'Header' => undef, -+ 'Line' => '483', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SUCCESS', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_LOC_LEN_ERR', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_REM_ACCESS_ERR', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_REM_OP_ERR', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_RETRY_EXC_ERR', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_RNR_RETRY_EXC_ERR', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_LOC_RDD_VIOL_ERR', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_REM_INV_RD_REQ_ERR', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_REM_ABORT_ERR', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_INV_EECN_ERR', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'IBV_WC_INV_EEC_STATE_ERR', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'IBV_WC_FATAL_ERR', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_LOC_QP_OP_ERR', -+ 'value' => '2' -+ }, -+ '20' => { -+ 'name' => 'IBV_WC_RESP_TIMEOUT_ERR', -+ 'value' => '20' -+ }, -+ '21' => { -+ 'name' => 'IBV_WC_GENERAL_ERR', -+ 'value' => '21' -+ }, -+ '22' => { -+ 'name' => 'IBV_WC_TM_ERR', -+ 'value' => '22' -+ }, -+ '23' => { -+ 'name' => 'IBV_WC_TM_RNDV_INCOMPLETE', -+ 'value' => '23' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_LOC_EEC_OP_ERR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_LOC_PROT_ERR', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_WR_FLUSH_ERR', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_MW_BIND_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_BAD_RESP_ERR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_LOC_ACCESS_ERR', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_REM_INV_REQ_ERR', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_status', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '543815' => { -+ 'Header' => undef, -+ 'Line' => '1935', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'flags', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'log_num_of_rules_hint', -+ 'offset' => '4', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct mlx5dv_dr_matcher_layout', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '5590' => { -+ 'Header' => undef, -+ 'Line' => '511', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SEND', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_RDMA_WRITE', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_TM_ADD', -+ 'value' => '130' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_TM_DEL', -+ 'value' => '131' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_TM_SYNC', -+ 'value' => '132' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_TM_RECV', -+ 'value' => '133' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_TM_NO_TAG', -+ 'value' => '134' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_DRIVER1', -+ 'value' => '135' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_DRIVER2', -+ 'value' => '136' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_DRIVER3', -+ 'value' => '137' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_RDMA_READ', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_COMP_SWAP', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_FETCH_ADD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_BIND_MW', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_LOCAL_INV', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_TSO', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_RECV', -+ 'value' => '128' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_RECV_RDMA_WITH_IMM', -+ 'value' => '129' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '567800' => { -+ 'BaseType' => '543815', -+ 'Name' => 'struct mlx5dv_dr_matcher_layout*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '5718' => { -+ 'Header' => undef, -+ 'Line' => '594', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '2165' -+ }, -+ '1' => { -+ 'name' => 'invalidated_rkey', -+ 'offset' => '0', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '5755' => { -+ 'Header' => undef, -+ 'Line' => '585', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'status', -+ 'offset' => '8', -+ 'type' => '5426' -+ }, -+ '10' => { -+ 'name' => 'slid', -+ 'offset' => '42', -+ 'type' => '1999' -+ }, -+ '11' => { -+ 'name' => 'sl', -+ 'offset' => '44', -+ 'type' => '1987' -+ }, -+ '12' => { -+ 'name' => 'dlid_path_bits', -+ 'offset' => '45', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'opcode', -+ 'offset' => '12', -+ 'type' => '5590' -+ }, -+ '3' => { -+ 'name' => 'vendor_err', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'byte_len', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '5718' -+ }, -+ '6' => { -+ 'name' => 'qp_num', -+ 'offset' => '28', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'src_qp', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'wc_flags', -+ 'offset' => '36', -+ 'type' => '59' -+ }, -+ '9' => { -+ 'name' => 'pkey_index', -+ 'offset' => '40', -+ 'type' => '1999' -+ } -+ }, -+ 'Name' => 'struct ibv_wc', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '59' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '5943' => { -+ 'Header' => undef, -+ 'Line' => '619', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mr', -+ 'offset' => '0', -+ 'type' => '6130' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'mw_access_flags', -+ 'offset' => '24', -+ 'type' => '59' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind_info', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '6013' => { -+ 'BaseType' => '5943', -+ 'Name' => 'struct ibv_mw_bind_info const', -+ 'Size' => '32', -+ 'Type' => 'Const' -+ }, -+ '6018' => { -+ 'Header' => undef, -+ 'Line' => '662', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '6322' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'offset' => '16', -+ 'type' => '267' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'offset' => '24', -+ 'type' => '386' -+ }, -+ '4' => { -+ 'name' => 'handle', -+ 'offset' => '32', -+ 'type' => '2011' -+ }, -+ '5' => { -+ 'name' => 'lkey', -+ 'offset' => '36', -+ 'type' => '2011' -+ }, -+ '6' => { -+ 'name' => 'rkey', -+ 'offset' => '40', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_mr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '6130' => { -+ 'BaseType' => '6018', -+ 'Name' => 'struct ibv_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6136' => { -+ 'Header' => undef, -+ 'Line' => '626', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_pd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '6208' => { -+ 'Header' => undef, -+ 'Line' => '635', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ } -+ }, -+ 'Name' => 'struct ibv_td', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '6293' => { -+ 'Header' => undef, -+ 'Line' => '651', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ } -+ }, -+ 'Name' => 'struct ibv_xrcd', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '6322' => { -+ 'BaseType' => '6136', -+ 'Name' => 'struct ibv_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '63227' => { -+ 'BaseType' => '1987', -+ 'Name' => 'uint8_t[32]', -+ 'Size' => '32', -+ 'Type' => 'Array' -+ }, -+ '6328' => { -+ 'Header' => undef, -+ 'Line' => '672', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MW_TYPE_1', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'IBV_MW_TYPE_2', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_mw_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '6360' => { -+ 'Header' => undef, -+ 'Line' => '677', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '6322' -+ }, -+ '2' => { -+ 'name' => 'rkey', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '20', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'type', -+ 'offset' => '24', -+ 'type' => '6328' -+ } -+ }, -+ 'Name' => 'struct ibv_mw', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '66' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '6707' => { -+ 'BaseType' => '6293', -+ 'Name' => 'struct ibv_xrcd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '6713' => { -+ 'Header' => undef, -+ 'Line' => '814', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WQT_RQ', -+ 'value' => '0' -+ } -+ }, -+ 'Name' => 'enum ibv_wq_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '6739' => { -+ 'Header' => undef, -+ 'Line' => '831', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wq_context', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'wq_type', -+ 'offset' => '8', -+ 'type' => '6713' -+ }, -+ '2' => { -+ 'name' => 'max_wr', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'max_sge', -+ 'offset' => '16', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'pd', -+ 'offset' => '24', -+ 'type' => '6322' -+ }, -+ '5' => { -+ 'name' => 'cq', -+ 'offset' => '32', -+ 'type' => '4899' -+ }, -+ '6' => { -+ 'name' => 'comp_mask', -+ 'offset' => '40', -+ 'type' => '2011' -+ }, -+ '7' => { -+ 'name' => 'create_flags', -+ 'offset' => '44', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_wq_init_attr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '6864' => { -+ 'Header' => undef, -+ 'Line' => '842', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WQS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WQS_RDY', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_WQS_ERR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WQS_UNKNOWN', -+ 'value' => '3' -+ } -+ }, -+ 'Name' => 'enum ibv_wq_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '6993' => { -+ 'Header' => undef, -+ 'Line' => '874', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'ind_tbl_handle', -+ 'offset' => '8', -+ 'type' => '128' -+ }, -+ '2' => { -+ 'name' => 'ind_tbl_num', -+ 'offset' => '12', -+ 'type' => '128' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_rwq_ind_table', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '7127' => { -+ 'Header' => undef, -+ 'Line' => '895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPT_RC', -+ 'value' => '2' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPT_UC', -+ 'value' => '3' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPT_UD', -+ 'value' => '4' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPT_RAW_PACKET', -+ 'value' => '8' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPT_XRC_SEND', -+ 'value' => '9' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPT_XRC_RECV', -+ 'value' => '10' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPT_DRIVER', -+ 'value' => '255' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '7189' => { -+ 'Header' => undef, -+ 'Line' => '905', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '0', -+ 'type' => '2011' -+ }, -+ '1' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '4', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '12', -+ 'type' => '2011' -+ }, -+ '4' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_cap', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '7274' => { -+ 'Header' => undef, -+ 'Line' => '955', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rx_hash_function', -+ 'offset' => '0', -+ 'type' => '1987' -+ }, -+ '1' => { -+ 'name' => 'rx_hash_key_len', -+ 'offset' => '1', -+ 'type' => '1987' -+ }, -+ '2' => { -+ 'name' => 'rx_hash_key', -+ 'offset' => '8', -+ 'type' => '7345' -+ }, -+ '3' => { -+ 'name' => 'rx_hash_fields_mask', -+ 'offset' => '16', -+ 'type' => '2028' -+ } -+ }, -+ 'Name' => 'struct ibv_rx_hash_conf', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '7345' => { -+ 'BaseType' => '1987', -+ 'Name' => 'uint8_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7351' => { -+ 'Header' => undef, -+ 'Line' => '964', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '4899' -+ }, -+ '10' => { -+ 'name' => 'create_flags', -+ 'offset' => '80', -+ 'type' => '2011' -+ }, -+ '11' => { -+ 'name' => 'max_tso_header', -+ 'offset' => '84', -+ 'type' => '1999' -+ }, -+ '12' => { -+ 'name' => 'rwq_ind_tbl', -+ 'offset' => '88', -+ 'type' => '7589' -+ }, -+ '13' => { -+ 'name' => 'rx_hash_conf', -+ 'offset' => '96', -+ 'type' => '7274' -+ }, -+ '14' => { -+ 'name' => 'source_qpn', -+ 'offset' => '120', -+ 'type' => '2011' -+ }, -+ '15' => { -+ 'name' => 'send_ops_flags', -+ 'offset' => '128', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '4899' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '5219' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '7189' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '7127' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '128' -+ }, -+ '7' => { -+ 'name' => 'comp_mask', -+ 'offset' => '60', -+ 'type' => '2011' -+ }, -+ '8' => { -+ 'name' => 'pd', -+ 'offset' => '64', -+ 'type' => '6322' -+ }, -+ '9' => { -+ 'name' => 'xrcd', -+ 'offset' => '72', -+ 'type' => '6707' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr_ex', -+ 'Size' => '136', -+ 'Type' => 'Struct' -+ }, -+ '7589' => { -+ 'BaseType' => '6993', -+ 'Name' => 'struct ibv_rwq_ind_table*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7680' => { -+ 'Header' => undef, -+ 'Line' => '1033', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPS_INIT', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPS_RTR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPS_RTS', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPS_SQD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPS_SQE', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPS_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_QPS_UNKNOWN', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '7819' => { -+ 'Header' => undef, -+ 'Line' => '1086', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WR_RDMA_WRITE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WR_RDMA_WRITE_WITH_IMM', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WR_TSO', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WR_DRIVER1', -+ 'value' => '11' -+ }, -+ '2' => { -+ 'name' => 'IBV_WR_SEND', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WR_SEND_WITH_IMM', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WR_RDMA_READ', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WR_ATOMIC_CMP_AND_SWP', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WR_ATOMIC_FETCH_AND_ADD', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WR_LOCAL_INV', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WR_BIND_MW', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WR_SEND_WITH_INV', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wr_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '7911' => { -+ 'Header' => undef, -+ 'Line' => '1109', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '386' -+ } -+ }, -+ 'Name' => 'struct ibv_data_buf', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '7954' => { -+ 'BaseType' => '7911', -+ 'Name' => 'struct ibv_data_buf const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '7959' => { -+ 'Header' => undef, -+ 'Line' => '1114', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'lkey', -+ 'offset' => '12', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_sge', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '8016' => { -+ 'BaseType' => '7959', -+ 'Name' => 'struct ibv_sge const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '8021' => { -+ 'Header' => undef, -+ 'Line' => '1130', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '2165' -+ }, -+ '1' => { -+ 'name' => 'invalidate_rkey', -+ 'offset' => '0', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '8058' => { -+ 'Header' => undef, -+ 'Line' => '1135', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '8097' => { -+ 'Header' => undef, -+ 'Line' => '1139', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'compare_add', -+ 'offset' => '8', -+ 'type' => '2028' -+ }, -+ '2' => { -+ 'name' => 'swap', -+ 'offset' => '16', -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '8164' => { -+ 'Header' => undef, -+ 'Line' => '1145', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ah', -+ 'offset' => '0', -+ 'type' => '8272' -+ }, -+ '1' => { -+ 'name' => 'remote_qpn', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'remote_qkey', -+ 'offset' => '12', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '8216' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '6322' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_ah', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '8272' => { -+ 'BaseType' => '8216', -+ 'Name' => 'struct ibv_ah*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8278' => { -+ 'Header' => undef, -+ 'Line' => '1134', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdma', -+ 'offset' => '0', -+ 'type' => '8058' -+ }, -+ '1' => { -+ 'name' => 'atomic', -+ 'offset' => '0', -+ 'type' => '8097' -+ }, -+ '2' => { -+ 'name' => 'ud', -+ 'offset' => '0', -+ 'type' => '8164' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '8327' => { -+ 'Header' => undef, -+ 'Line' => '1152', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_srqn', -+ 'offset' => '0', -+ 'type' => '2011' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '8352' => { -+ 'Header' => undef, -+ 'Line' => '1151', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'xrc', -+ 'offset' => '0', -+ 'type' => '8327' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '8376' => { -+ 'Header' => undef, -+ 'Line' => '1157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mw', -+ 'offset' => '0', -+ 'type' => '8428' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '5943' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '8428' => { -+ 'BaseType' => '6360', -+ 'Name' => 'struct ibv_mw*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8434' => { -+ 'Header' => undef, -+ 'Line' => '1162', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '267' -+ }, -+ '1' => { -+ 'name' => 'hdr_sz', -+ 'offset' => '8', -+ 'type' => '1999' -+ }, -+ '2' => { -+ 'name' => 'mss', -+ 'offset' => '10', -+ 'type' => '1999' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '8487' => { -+ 'Header' => undef, -+ 'Line' => '1156', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'bind_mw', -+ 'offset' => '0', -+ 'type' => '8376' -+ }, -+ '1' => { -+ 'name' => 'tso', -+ 'offset' => '0', -+ 'type' => '8434' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '8524' => { -+ 'Header' => undef, -+ 'Line' => '1120', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '8662' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '8668' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '128' -+ }, -+ '4' => { -+ 'name' => 'opcode', -+ 'offset' => '28', -+ 'type' => '7819' -+ }, -+ '5' => { -+ 'name' => 'send_flags', -+ 'offset' => '32', -+ 'type' => '59' -+ }, -+ '6' => { -+ 'name' => 'unnamed0', -+ 'offset' => '36', -+ 'type' => '8021' -+ }, -+ '7' => { -+ 'name' => 'wr', -+ 'offset' => '40', -+ 'type' => '8278' -+ }, -+ '8' => { -+ 'name' => 'qp_type', -+ 'offset' => '72', -+ 'type' => '8352' -+ }, -+ '9' => { -+ 'name' => 'unnamed1', -+ 'offset' => '80', -+ 'type' => '8487' -+ } -+ }, -+ 'Name' => 'struct ibv_send_wr', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '8662' => { -+ 'BaseType' => '8524', -+ 'Name' => 'struct ibv_send_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8668' => { -+ 'BaseType' => '7959', -+ 'Name' => 'struct ibv_sge*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '8674' => { -+ 'Header' => undef, -+ 'Line' => '1170', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '8745' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '8668' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct ibv_recv_wr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '8745' => { -+ 'BaseType' => '8674', -+ 'Name' => 'struct ibv_recv_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '90' => { -+ 'Name' => 'signed char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '9013' => { -+ 'Header' => undef, -+ 'Line' => '1206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '2028' -+ }, -+ '1' => { -+ 'name' => 'send_flags', -+ 'offset' => '8', -+ 'type' => '59' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '5943' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '9095' => { -+ 'BaseType' => '8745', -+ 'Name' => 'struct ibv_recv_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9101' => { -+ 'Name' => 'int(*)(struct ibv_wq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '5420' -+ }, -+ '1' => { -+ 'type' => '8745' -+ }, -+ '2' => { -+ 'type' => '9095' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9107' => { -+ 'Header' => undef, -+ 'Line' => '1269', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_base', -+ 'offset' => '0', -+ 'type' => '4905' -+ }, -+ '1' => { -+ 'name' => 'comp_mask', -+ 'offset' => '160', -+ 'type' => '2028' -+ }, -+ '10' => { -+ 'name' => 'wr_rdma_write_imm', -+ 'offset' => '232', -+ 'type' => '9658' -+ }, -+ '11' => { -+ 'name' => 'wr_send', -+ 'offset' => '240', -+ 'type' => '9675' -+ }, -+ '12' => { -+ 'name' => 'wr_send_imm', -+ 'offset' => '248', -+ 'type' => '9697' -+ }, -+ '13' => { -+ 'name' => 'wr_send_inv', -+ 'offset' => '256', -+ 'type' => '9599' -+ }, -+ '14' => { -+ 'name' => 'wr_send_tso', -+ 'offset' => '264', -+ 'type' => '9729' -+ }, -+ '15' => { -+ 'name' => 'wr_set_ud_addr', -+ 'offset' => '272', -+ 'type' => '9761' -+ }, -+ '16' => { -+ 'name' => 'wr_set_xrc_srqn', -+ 'offset' => '280', -+ 'type' => '9599' -+ }, -+ '17' => { -+ 'name' => 'wr_set_inline_data', -+ 'offset' => '288', -+ 'type' => '9788' -+ }, -+ '18' => { -+ 'name' => 'wr_set_inline_data_list', -+ 'offset' => '296', -+ 'type' => '9821' -+ }, -+ '19' => { -+ 'name' => 'wr_set_sge', -+ 'offset' => '304', -+ 'type' => '9853' -+ }, -+ '2' => { -+ 'name' => 'wr_id', -+ 'offset' => '168', -+ 'type' => '2028' -+ }, -+ '20' => { -+ 'name' => 'wr_set_sge_list', -+ 'offset' => '312', -+ 'type' => '9886' -+ }, -+ '21' => { -+ 'name' => 'wr_start', -+ 'offset' => '320', -+ 'type' => '9675' -+ }, -+ '22' => { -+ 'name' => 'wr_complete', -+ 'offset' => '328', -+ 'type' => '9907' -+ }, -+ '23' => { -+ 'name' => 'wr_abort', -+ 'offset' => '336', -+ 'type' => '9675' -+ }, -+ '3' => { -+ 'name' => 'wr_flags', -+ 'offset' => '176', -+ 'type' => '59' -+ }, -+ '4' => { -+ 'name' => 'wr_atomic_cmp_swp', -+ 'offset' => '184', -+ 'type' => '9507' -+ }, -+ '5' => { -+ 'name' => 'wr_atomic_fetch_add', -+ 'offset' => '192', -+ 'type' => '9539' -+ }, -+ '6' => { -+ 'name' => 'wr_bind_mw', -+ 'offset' => '200', -+ 'type' => '9577' -+ }, -+ '7' => { -+ 'name' => 'wr_local_inv', -+ 'offset' => '208', -+ 'type' => '9599' -+ }, -+ '8' => { -+ 'name' => 'wr_rdma_read', -+ 'offset' => '216', -+ 'type' => '9626' -+ }, -+ '9' => { -+ 'name' => 'wr_rdma_write', -+ 'offset' => '224', -+ 'type' => '9626' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_ex', -+ 'Size' => '344', -+ 'Type' => 'Struct' -+ }, -+ '9501' => { -+ 'BaseType' => '9107', -+ 'Name' => 'struct ibv_qp_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9507' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, uint64_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'type' => '2028' -+ }, -+ '4' => { -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9539' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '955' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[48]', -+ 'Size' => '48', -+ 'Type' => 'Array' -+ }, -+ '9571' => { -+ 'BaseType' => '6013', -+ 'Name' => 'struct ibv_mw_bind_info const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9577' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, struct ibv_mw*, uint32_t, struct ibv_mw_bind_info const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '8428' -+ }, -+ '2' => { -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'type' => '9571' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9599' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9626' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '2028' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9658' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, __be32)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'type' => '2165' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9675' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9697' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, __be32)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '2165' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '97' => { -+ 'BaseType' => '45', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '9729' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, void*, uint16_t, uint16_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '267' -+ }, -+ '2' => { -+ 'type' => '1999' -+ }, -+ '3' => { -+ 'type' => '1999' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9761' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, struct ibv_ah*, uint32_t, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '8272' -+ }, -+ '2' => { -+ 'type' => '2011' -+ }, -+ '3' => { -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9788' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, void*, size_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '267' -+ }, -+ '2' => { -+ 'type' => '386' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9815' => { -+ 'BaseType' => '7954', -+ 'Name' => 'struct ibv_data_buf const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9821' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, size_t, struct ibv_data_buf const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '386' -+ }, -+ '2' => { -+ 'type' => '9815' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '983' => { -+ 'BaseType' => '316', -+ 'Name' => 'char[8]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '9853' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, uint32_t, uint64_t, uint32_t)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '2011' -+ }, -+ '2' => { -+ 'type' => '2028' -+ }, -+ '3' => { -+ 'type' => '2011' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9880' => { -+ 'BaseType' => '8016', -+ 'Name' => 'struct ibv_sge const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9886' => { -+ 'Name' => 'void(*)(struct ibv_qp_ex*, size_t, struct ibv_sge const*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ }, -+ '1' => { -+ 'type' => '386' -+ }, -+ '2' => { -+ 'type' => '9880' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9907' => { -+ 'Name' => 'int(*)(struct ibv_qp_ex*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '9501' -+ } -+ }, -+ 'Return' => '128', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '9913' => { -+ 'Header' => undef, -+ 'Line' => '1452', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '2938' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '8', -+ 'type' => '128' -+ }, -+ '2' => { -+ 'name' => 'refcnt', -+ 'offset' => '12', -+ 'type' => '128' -+ } -+ }, -+ 'Name' => 'struct ibv_comp_channel', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '9969' => { -+ 'BaseType' => '9913', -+ 'Name' => 'struct ibv_comp_channel*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '9975' => { -+ 'Header' => undef, -+ 'Line' => '1471', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '2011' -+ } -+ }, -+ 'Name' => 'struct ibv_poll_cq_attr', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '999' => { -+ 'BaseType' => '135', -+ 'Header' => undef, -+ 'Line' => '103', -+ 'Name' => 'pthread_spinlock_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'libmlx5.so.1.23.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__fprintf_chk@GLIBC_2.3.4' => 0, -+ '__gmon_start__' => 0, -+ '__isoc99_sscanf@GLIBC_2.7' => 0, -+ '__memcpy_chk@GLIBC_2.3.4' => 0, -+ '__pread_chk@GLIBC_2.4' => 0, -+ '__snprintf_chk@GLIBC_2.3.4' => 0, -+ '__sprintf_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ '__strncat_chk@GLIBC_2.3.4' => 0, -+ '__vfprintf_chk@GLIBC_2.3.4' => 0, -+ '__xstat@GLIBC_2.2.5' => 0, -+ '_verbs_init_and_alloc_context@IBVERBS_PRIVATE_34' => 0, -+ 'abort@GLIBC_2.2.5' => 0, -+ 'basename@GLIBC_2.2.5' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'close@GLIBC_2.2.5' => 0, -+ 'eventfd@GLIBC_2.7' => 0, -+ 'execute_ioctl@IBVERBS_PRIVATE_34' => 0, -+ 'fclose@GLIBC_2.2.5' => 0, -+ 'fcntl@GLIBC_2.2.5' => 0, -+ 'fgets@GLIBC_2.2.5' => 0, -+ 'fopen@GLIBC_2.2.5' => 0, -+ 'fputc@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'fwrite@GLIBC_2.2.5' => 0, -+ 'getenv@GLIBC_2.2.5' => 0, -+ 'gethostname@GLIBC_2.2.5' => 0, -+ 'getpid@GLIBC_2.2.5' => 0, -+ 'getrandom@GLIBC_2.25' => 0, -+ 'gettimeofday@GLIBC_2.2.5' => 0, -+ 'ibv_alloc_pd@IBVERBS_1.1' => 0, -+ 'ibv_cmd_advise_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_alloc_dm@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_alloc_mw@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_alloc_pd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_attach_mcast@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_close_xrcd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_ah@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_counters@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_cq_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_flow@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_flow_action_esp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_qp_ex2@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_qp_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_rwq_ind_table@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_srq_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_create_wq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dealloc_mw@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dealloc_pd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_dereg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_ah@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_counters@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_flow@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_flow_action@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_rwq_ind_table@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_destroy_wq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_detach_mcast@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_free_dm@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_get_context@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_flow_action_esp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_qp_ex@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_modify_wq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_open_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_open_xrcd@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_context@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_device_any@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_port@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_qp@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_query_srq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_read_counters@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_reg_dm_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_reg_dmabuf_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_reg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_rereg_mr@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_cmd_resize_cq@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_create_cq@IBVERBS_1.1' => 0, -+ 'ibv_dealloc_pd@IBVERBS_1.1' => 0, -+ 'ibv_dereg_mr@IBVERBS_1.1' => 0, -+ 'ibv_destroy_cq@IBVERBS_1.1' => 0, -+ 'ibv_dofork_range@IBVERBS_1.1' => 0, -+ 'ibv_dontfork_range@IBVERBS_1.1' => 0, -+ 'ibv_get_device_name@IBVERBS_1.1' => 0, -+ 'ibv_qp_to_qp_ex@IBVERBS_1.6' => 0, -+ 'ibv_query_device@IBVERBS_1.1' => 0, -+ 'ibv_query_gid_type@IBVERBS_PRIVATE_34' => 0, -+ 'ibv_query_port@IBVERBS_1.1' => 0, -+ 'ibv_reg_mr@IBVERBS_1.1' => 0, -+ 'ibv_resolve_eth_l2_from_gid@IBVERBS_1.1' => 0, -+ 'ioctl@GLIBC_2.2.5' => 0, -+ 'malloc@GLIBC_2.2.5' => 0, -+ 'memcmp@GLIBC_2.2.5' => 0, -+ 'memcpy@GLIBC_2.14' => 0, -+ 'memset@GLIBC_2.2.5' => 0, -+ 'mmap@GLIBC_2.2.5' => 0, -+ 'munmap@GLIBC_2.2.5' => 0, -+ 'open@GLIBC_2.2.5' => 0, -+ 'poll@GLIBC_2.2.5' => 0, -+ 'posix_memalign@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_init@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_lock@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_unlock@GLIBC_2.2.5' => 0, -+ 'pthread_spin_destroy@GLIBC_2.2.5' => 0, -+ 'pthread_spin_init@GLIBC_2.2.5' => 0, -+ 'pthread_spin_lock@GLIBC_2.2.5' => 0, -+ 'pthread_spin_unlock@GLIBC_2.2.5' => 0, -+ 'pwrite@GLIBC_2.2.5' => 0, -+ 'rand_r@GLIBC_2.2.5' => 0, -+ 'read@GLIBC_2.2.5' => 0, -+ 'readlink@GLIBC_2.2.5' => 0, -+ 'realloc@GLIBC_2.2.5' => 0, -+ 'sched_getaffinity@GLIBC_2.3.4' => 0, -+ 'sched_yield@GLIBC_2.2.5' => 0, -+ 'shmat@GLIBC_2.2.5' => 0, -+ 'shmctl@GLIBC_2.2.5' => 0, -+ 'shmdt@GLIBC_2.2.5' => 0, -+ 'shmget@GLIBC_2.2.5' => 0, -+ 'sleep@GLIBC_2.2.5' => 0, -+ 'stderr@GLIBC_2.2.5' => 0, -+ 'strcasecmp@GLIBC_2.2.5' => 0, -+ 'strchr@GLIBC_2.2.5' => 0, -+ 'strdup@GLIBC_2.2.5' => 0, -+ 'strerror@GLIBC_2.2.5' => 0, -+ 'strlen@GLIBC_2.2.5' => 0, -+ 'strncpy@GLIBC_2.2.5' => 0, -+ 'strrchr@GLIBC_2.2.5' => 0, -+ 'strtol@GLIBC_2.2.5' => 0, -+ 'strtoul@GLIBC_2.2.5' => 0, -+ 'sysconf@GLIBC_2.2.5' => 0, -+ 'time@GLIBC_2.2.5' => 0, -+ 'usleep@GLIBC_2.2.5' => 0, -+ 'verbs_allow_disassociate_destroy@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_init_cq@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_open_device@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_register_driver_34@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_set_ops@IBVERBS_PRIVATE_34' => 0, -+ 'verbs_uninit_context@IBVERBS_PRIVATE_34' => 0, -+ 'write@GLIBC_2.2.5' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; -diff --git a/ABI/rdmacm.dump b/ABI/rdmacm.dump -new file mode 100644 -index 0000000..c83a163 ---- /dev/null -+++ b/ABI/rdmacm.dump -@@ -0,0 +1,5867 @@ -+$VAR1 = { -+ 'ABI_DUMPER_VERSION' => '1.1', -+ 'ABI_DUMP_VERSION' => '3.5', -+ 'Arch' => 'x86_64', -+ 'GccVersion' => '11.1.0', -+ 'Headers' => {}, -+ 'Language' => 'C', -+ 'LibraryName' => 'librdmacm.so.1.3.41.0', -+ 'LibraryVersion' => 'rdmacm', -+ 'MissedOffsets' => '1', -+ 'MissedRegs' => '1', -+ 'NameSpaces' => {}, -+ 'Needed' => { -+ 'ld-linux-x86-64.so.2' => 1, -+ 'libc.so.6' => 1, -+ 'libibverbs.so.1' => 1, -+ 'libnl-3.so.200' => 1, -+ 'libpthread.so.0' => 1 -+ }, -+ 'Sources' => {}, -+ 'SymbolInfo' => { -+ '112284' => { -+ 'Header' => undef, -+ 'Line' => '4125', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '1839' -+ }, -+ '2' => { -+ 'name' => 'count', -+ 'type' => '45' -+ }, -+ '3' => { -+ 'name' => 'offset', -+ 'type' => '82081' -+ }, -+ '4' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '45', -+ 'ShortName' => 'riowrite' -+ }, -+ '114082' => { -+ 'Header' => undef, -+ 'Line' => '4078', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'type' => '45' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'riounmap' -+ }, -+ '114627' => { -+ 'Header' => undef, -+ 'Line' => '4029', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'type' => '45' -+ }, -+ '3' => { -+ 'name' => 'prot', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'offset', -+ 'type' => '82081' -+ } -+ }, -+ 'Return' => '82081', -+ 'ShortName' => 'riomap' -+ }, -+ '115863' => { -+ 'Header' => undef, -+ 'Line' => '3972', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'cmd', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'type' => '-1' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rfcntl' -+ }, -+ '116334' => { -+ 'Header' => undef, -+ 'Line' => '3827', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'level', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'optname', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'optval', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'optlen', -+ 'type' => '14411' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rgetsockopt' -+ }, -+ '117325' => { -+ 'Header' => undef, -+ 'Line' => '3646', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'level', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'optname', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'optval', -+ 'type' => '1839' -+ }, -+ '4' => { -+ 'name' => 'optlen', -+ 'type' => '1073' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rsetsockopt' -+ }, -+ '118987' => { -+ 'Header' => undef, -+ 'Line' => '3604', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '1833' -+ }, -+ '2' => { -+ 'name' => 'addrlen', -+ 'type' => '14411' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rgetsockname' -+ }, -+ '119638' => { -+ 'Header' => undef, -+ 'Line' => '3589', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '1833' -+ }, -+ '2' => { -+ 'name' => 'addrlen', -+ 'type' => '14411' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rgetpeername' -+ }, -+ '119888' => { -+ 'Header' => undef, -+ 'Line' => '3551', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rclose' -+ }, -+ '120481' => { -+ 'Header' => undef, -+ 'Line' => '3480', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'how', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rshutdown' -+ }, -+ '121220' => { -+ 'Header' => undef, -+ 'Line' => '3449', -+ 'Param' => { -+ '0' => { -+ 'name' => 'nfds', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'readfds', -+ 'type' => '122188' -+ }, -+ '2' => { -+ 'name' => 'writefds', -+ 'type' => '122188' -+ }, -+ '3' => { -+ 'name' => 'exceptfds', -+ 'type' => '122188' -+ }, -+ '4' => { -+ 'name' => 'timeout', -+ 'type' => '122194' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rselect' -+ }, -+ '12234' => { -+ 'Header' => undef, -+ 'Line' => '748', -+ 'Param' => { -+ '0' => { -+ 'name' => 'node', -+ 'type' => '750' -+ }, -+ '1' => { -+ 'name' => 'service', -+ 'type' => '750' -+ }, -+ '2' => { -+ 'name' => 'hints', -+ 'type' => '7878' -+ }, -+ '3' => { -+ 'name' => 'res', -+ 'type' => '7872' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_getaddrinfo' -+ }, -+ '122553' => { -+ 'Header' => undef, -+ 'Line' => '3334', -+ 'Param' => { -+ '0' => { -+ 'name' => 'fds', -+ 'type' => '102454' -+ }, -+ '1' => { -+ 'name' => 'nfds', -+ 'type' => '101211' -+ }, -+ '2' => { -+ 'name' => 'timeout', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rpoll' -+ }, -+ '126542' => { -+ 'Header' => undef, -+ 'Line' => '3031', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'iov', -+ 'type' => '126681' -+ }, -+ '2' => { -+ 'name' => 'iovcnt', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rwritev' -+ }, -+ '126687' => { -+ 'Header' => undef, -+ 'Line' => '3026', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '1839' -+ }, -+ '2' => { -+ 'name' => 'count', -+ 'type' => '45' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rwrite' -+ }, -+ '126826' => { -+ 'Header' => undef, -+ 'Line' => '3018', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'msg', -+ 'type' => '105672' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rsendmsg' -+ }, -+ '128470' => { -+ 'Header' => undef, -+ 'Line' => '2877', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '1839' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'type' => '45' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'dest_addr', -+ 'type' => '4547' -+ }, -+ '5' => { -+ 'name' => 'addrlen', -+ 'type' => '1073' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rsendto' -+ }, -+ '129282' => { -+ 'Header' => undef, -+ 'Line' => '2788', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '1839' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'type' => '45' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rsend' -+ }, -+ '133587' => { -+ 'Header' => undef, -+ 'Line' => '2630', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'iov', -+ 'type' => '126681' -+ }, -+ '2' => { -+ 'name' => 'iovcnt', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rreadv' -+ }, -+ '133794' => { -+ 'Header' => undef, -+ 'Line' => '2625', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'count', -+ 'type' => '45' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rread' -+ }, -+ '133933' => { -+ 'Header' => undef, -+ 'Line' => '2617', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'msg', -+ 'type' => '134195' -+ }, -+ '2' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rrecvmsg' -+ }, -+ '134272' => { -+ 'Header' => undef, -+ 'Line' => '2585', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'type' => '45' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'src_addr', -+ 'type' => '1833' -+ }, -+ '5' => { -+ 'name' => 'addrlen', -+ 'type' => '14411' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rrecvfrom' -+ }, -+ '134861' => { -+ 'Header' => undef, -+ 'Line' => '2514', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'buf', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'len', -+ 'type' => '45' -+ }, -+ '3' => { -+ 'name' => 'flags', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '727', -+ 'ShortName' => 'rrecv' -+ }, -+ '144114' => { -+ 'Header' => undef, -+ 'Line' => '1713', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '4547' -+ }, -+ '2' => { -+ 'name' => 'addrlen', -+ 'type' => '1073' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rconnect' -+ }, -+ '150026' => { -+ 'Header' => undef, -+ 'Line' => '1348', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '1833' -+ }, -+ '2' => { -+ 'name' => 'addrlen', -+ 'type' => '14411' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'raccept' -+ }, -+ '150695' => { -+ 'Header' => undef, -+ 'Line' => '1257', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'backlog', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rlisten' -+ }, -+ '151157' => { -+ 'Header' => undef, -+ 'Line' => '1234', -+ 'Param' => { -+ '0' => { -+ 'name' => 'socket', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '4547' -+ }, -+ '2' => { -+ 'name' => 'addrlen', -+ 'type' => '1073' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rbind' -+ }, -+ '151560' => { -+ 'Header' => undef, -+ 'Line' => '1192', -+ 'Param' => { -+ '0' => { -+ 'name' => 'domain', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'type', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'protocol', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rsocket' -+ }, -+ '40994' => { -+ 'Header' => undef, -+ 'Line' => '2909', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'ece', -+ 'type' => '34038' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_get_remote_ece' -+ }, -+ '41142' => { -+ 'Header' => undef, -+ 'Line' => '2895', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'ece', -+ 'type' => '34038' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_set_local_ece' -+ }, -+ '4119' => { -+ 'Header' => undef, -+ 'Line' => '752', -+ 'Param' => { -+ '0' => { -+ 'name' => 'res', -+ 'type' => '3116' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'rdma_freeaddrinfo' -+ }, -+ '41290' => { -+ 'Header' => undef, -+ 'Line' => '2890', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '1976', -+ 'ShortName' => 'rdma_get_dst_port' -+ }, -+ '41370' => { -+ 'Header' => undef, -+ 'Line' => '2885', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '1976', -+ 'ShortName' => 'rdma_get_src_port' -+ }, -+ '42238' => { -+ 'Header' => undef, -+ 'Line' => '2833', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'rdma_destroy_ep' -+ }, -+ '42393' => { -+ 'Header' => undef, -+ 'Line' => '2769', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '43365' -+ }, -+ '1' => { -+ 'name' => 'res', -+ 'type' => '3116' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'type' => '22902' -+ }, -+ '3' => { -+ 'name' => 'qp_init_attr', -+ 'type' => '34020' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_create_ep' -+ }, -+ '43466' => { -+ 'Header' => undef, -+ 'Line' => '2685', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'type' => '32561' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_migrate_id' -+ }, -+ '44100' => { -+ 'Header' => undef, -+ 'Line' => '735', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'level', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'optname', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'optval', -+ 'type' => '71' -+ }, -+ '4' => { -+ 'name' => 'optlen', -+ 'type' => '45' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_set_option' -+ }, -+ '44474' => { -+ 'Header' => undef, -+ 'Line' => '2623', -+ 'Param' => { -+ '0' => { -+ 'name' => 'event', -+ 'type' => '31863' -+ } -+ }, -+ 'Return' => '750', -+ 'ShortName' => 'rdma_event_str' -+ }, -+ '44525' => { -+ 'Header' => undef, -+ 'Line' => '2478', -+ 'Param' => { -+ '0' => { -+ 'name' => 'channel', -+ 'type' => '32561' -+ }, -+ '1' => { -+ 'name' => 'event', -+ 'type' => '48543' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_get_cm_event' -+ }, -+ '48555' => { -+ 'Header' => undef, -+ 'Line' => '2466', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_establish' -+ }, -+ '49802' => { -+ 'Header' => undef, -+ 'Line' => '2229', -+ 'Param' => { -+ '0' => { -+ 'name' => 'event', -+ 'type' => '32645' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_ack_cm_event' -+ }, -+ '49902' => { -+ 'Header' => undef, -+ 'Line' => '2161', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '1833' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_leave_multicast' -+ }, -+ '50740' => { -+ 'Header' => undef, -+ 'Line' => '2148', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '1833' -+ }, -+ '2' => { -+ 'name' => 'context', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_join_multicast' -+ }, -+ '50989' => { -+ 'Header' => undef, -+ 'Line' => '2124', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'mc_join_attr', -+ 'type' => '51281' -+ }, -+ '2' => { -+ 'name' => 'context', -+ 'type' => '71' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_join_multicast_ex' -+ }, -+ '52523' => { -+ 'Header' => undef, -+ 'Line' => '2029', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_disconnect' -+ }, -+ '53283' => { -+ 'Header' => undef, -+ 'Line' => '1996', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'event', -+ 'type' => '21025' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_notify' -+ }, -+ '53593' => { -+ 'Header' => undef, -+ 'Line' => '1989', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'private_data', -+ 'type' => '1839' -+ }, -+ '2' => { -+ 'name' => 'private_data_len', -+ 'type' => '761' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_reject_ece' -+ }, -+ '53735' => { -+ 'Header' => undef, -+ 'Line' => '524', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'private_data', -+ 'type' => '1839' -+ }, -+ '2' => { -+ 'name' => 'private_data_len', -+ 'type' => '761' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_reject' -+ }, -+ '54343' => { -+ 'Header' => undef, -+ 'Line' => '506', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'conn_param', -+ 'type' => '48812' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_accept' -+ }, -+ '55420' => { -+ 'Header' => undef, -+ 'Line' => '485', -+ 'Param' => { -+ '0' => { -+ 'name' => 'listen', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'id', -+ 'type' => '43365' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_get_request' -+ }, -+ '55888' => { -+ 'Header' => undef, -+ 'Line' => '480', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'backlog', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_listen' -+ }, -+ '56235' => { -+ 'Header' => undef, -+ 'Line' => '442', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'conn_param', -+ 'type' => '48812' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_connect' -+ }, -+ '57224' => { -+ 'Header' => undef, -+ 'Line' => '424', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'rdma_destroy_qp' -+ }, -+ '57310' => { -+ 'Header' => undef, -+ 'Line' => '408', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'type' => '22902' -+ }, -+ '2' => { -+ 'name' => 'qp_init_attr', -+ 'type' => '34020' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_create_qp' -+ }, -+ '57629' => { -+ 'Header' => undef, -+ 'Line' => '1621', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '31212' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_create_qp_ex' -+ }, -+ '58805' => { -+ 'Header' => undef, -+ 'Line' => '1559', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'rdma_destroy_srq' -+ }, -+ '58891' => { -+ 'Header' => undef, -+ 'Line' => '1540', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'type' => '22902' -+ }, -+ '2' => { -+ 'name' => 'attr', -+ 'type' => '34026' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_create_srq' -+ }, -+ '59205' => { -+ 'Header' => undef, -+ 'Line' => '1495', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'type' => '31276' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_create_srq_ex' -+ }, -+ '61412' => { -+ 'Header' => undef, -+ 'Line' => '1242', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'qp_attr', -+ 'type' => '34032' -+ }, -+ '2' => { -+ 'name' => 'qp_attr_mask', -+ 'type' => '4113' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_init_qp_attr' -+ }, -+ '61802' => { -+ 'Header' => undef, -+ 'Line' => '385', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'timeout_ms', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_resolve_route' -+ }, -+ '62511' => { -+ 'Header' => undef, -+ 'Line' => '368', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'src_addr', -+ 'type' => '1833' -+ }, -+ '2' => { -+ 'name' => 'dst_addr', -+ 'type' => '1833' -+ }, -+ '3' => { -+ 'name' => 'timeout_ms', -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_resolve_addr' -+ }, -+ '64238' => { -+ 'Header' => undef, -+ 'Line' => '343', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'type' => '1833' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_bind_addr' -+ }, -+ '67751' => { -+ 'Header' => undef, -+ 'Line' => '325', -+ 'Param' => { -+ '0' => { -+ 'name' => 'id', -+ 'type' => '32921' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_destroy_id' -+ }, -+ '68332' => { -+ 'Header' => undef, -+ 'Line' => '272', -+ 'Param' => { -+ '0' => { -+ 'name' => 'channel', -+ 'type' => '32561' -+ }, -+ '1' => { -+ 'name' => 'id', -+ 'type' => '43365' -+ }, -+ '2' => { -+ 'name' => 'context', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'ps', -+ 'type' => '2856' -+ } -+ }, -+ 'Return' => '130', -+ 'ShortName' => 'rdma_create_id' -+ }, -+ '71389' => { -+ 'Header' => undef, -+ 'Line' => '587', -+ 'Param' => { -+ '0' => { -+ 'name' => 'channel', -+ 'type' => '32561' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'rdma_destroy_event_channel' -+ }, -+ '71476' => { -+ 'Header' => undef, -+ 'Line' => '566', -+ 'Return' => '32561', -+ 'ShortName' => 'rdma_create_event_channel' -+ }, -+ '71637' => { -+ 'Header' => undef, -+ 'Line' => '542', -+ 'Param' => { -+ '0' => { -+ 'name' => 'list', -+ 'type' => '72119' -+ } -+ }, -+ 'Return' => '1', -+ 'ShortName' => 'rdma_free_devices' -+ }, -+ '72125' => { -+ 'Header' => undef, -+ 'Line' => '496', -+ 'Param' => { -+ '0' => { -+ 'name' => 'num_devices', -+ 'type' => '4113' -+ } -+ }, -+ 'Return' => '72119', -+ 'ShortName' => 'rdma_get_devices' -+ } -+ }, -+ 'SymbolVersion' => { -+ 'raccept' => 'raccept@@RDMACM_1.0', -+ 'rbind' => 'rbind@@RDMACM_1.0', -+ 'rclose' => 'rclose@@RDMACM_1.0', -+ 'rconnect' => 'rconnect@@RDMACM_1.0', -+ 'rdma_accept' => 'rdma_accept@@RDMACM_1.0', -+ 'rdma_ack_cm_event' => 'rdma_ack_cm_event@@RDMACM_1.0', -+ 'rdma_bind_addr' => 'rdma_bind_addr@@RDMACM_1.0', -+ 'rdma_connect' => 'rdma_connect@@RDMACM_1.0', -+ 'rdma_create_ep' => 'rdma_create_ep@@RDMACM_1.0', -+ 'rdma_create_event_channel' => 'rdma_create_event_channel@@RDMACM_1.0', -+ 'rdma_create_id' => 'rdma_create_id@@RDMACM_1.0', -+ 'rdma_create_qp' => 'rdma_create_qp@@RDMACM_1.0', -+ 'rdma_create_qp_ex' => 'rdma_create_qp_ex@@RDMACM_1.0', -+ 'rdma_create_srq' => 'rdma_create_srq@@RDMACM_1.0', -+ 'rdma_create_srq_ex' => 'rdma_create_srq_ex@@RDMACM_1.0', -+ 'rdma_destroy_ep' => 'rdma_destroy_ep@@RDMACM_1.0', -+ 'rdma_destroy_event_channel' => 'rdma_destroy_event_channel@@RDMACM_1.0', -+ 'rdma_destroy_id' => 'rdma_destroy_id@@RDMACM_1.0', -+ 'rdma_destroy_qp' => 'rdma_destroy_qp@@RDMACM_1.0', -+ 'rdma_destroy_srq' => 'rdma_destroy_srq@@RDMACM_1.0', -+ 'rdma_disconnect' => 'rdma_disconnect@@RDMACM_1.0', -+ 'rdma_establish' => 'rdma_establish@@RDMACM_1.2', -+ 'rdma_event_str' => 'rdma_event_str@@RDMACM_1.0', -+ 'rdma_free_devices' => 'rdma_free_devices@@RDMACM_1.0', -+ 'rdma_freeaddrinfo' => 'rdma_freeaddrinfo@@RDMACM_1.0', -+ 'rdma_get_cm_event' => 'rdma_get_cm_event@@RDMACM_1.0', -+ 'rdma_get_devices' => 'rdma_get_devices@@RDMACM_1.0', -+ 'rdma_get_dst_port' => 'rdma_get_dst_port@@RDMACM_1.0', -+ 'rdma_get_remote_ece' => 'rdma_get_remote_ece@@RDMACM_1.3', -+ 'rdma_get_request' => 'rdma_get_request@@RDMACM_1.0', -+ 'rdma_get_src_port' => 'rdma_get_src_port@@RDMACM_1.0', -+ 'rdma_getaddrinfo' => 'rdma_getaddrinfo@@RDMACM_1.0', -+ 'rdma_init_qp_attr' => 'rdma_init_qp_attr@@RDMACM_1.2', -+ 'rdma_join_multicast' => 'rdma_join_multicast@@RDMACM_1.0', -+ 'rdma_join_multicast_ex' => 'rdma_join_multicast_ex@@RDMACM_1.1', -+ 'rdma_leave_multicast' => 'rdma_leave_multicast@@RDMACM_1.0', -+ 'rdma_listen' => 'rdma_listen@@RDMACM_1.0', -+ 'rdma_migrate_id' => 'rdma_migrate_id@@RDMACM_1.0', -+ 'rdma_notify' => 'rdma_notify@@RDMACM_1.0', -+ 'rdma_reject' => 'rdma_reject@@RDMACM_1.0', -+ 'rdma_reject_ece' => 'rdma_reject_ece@@RDMACM_1.3', -+ 'rdma_resolve_addr' => 'rdma_resolve_addr@@RDMACM_1.0', -+ 'rdma_resolve_route' => 'rdma_resolve_route@@RDMACM_1.0', -+ 'rdma_set_local_ece' => 'rdma_set_local_ece@@RDMACM_1.3', -+ 'rdma_set_option' => 'rdma_set_option@@RDMACM_1.0', -+ 'rfcntl' => 'rfcntl@@RDMACM_1.0', -+ 'rgetpeername' => 'rgetpeername@@RDMACM_1.0', -+ 'rgetsockname' => 'rgetsockname@@RDMACM_1.0', -+ 'rgetsockopt' => 'rgetsockopt@@RDMACM_1.0', -+ 'riomap' => 'riomap@@RDMACM_1.0', -+ 'riounmap' => 'riounmap@@RDMACM_1.0', -+ 'riowrite' => 'riowrite@@RDMACM_1.0', -+ 'rlisten' => 'rlisten@@RDMACM_1.0', -+ 'rpoll' => 'rpoll@@RDMACM_1.0', -+ 'rread' => 'rread@@RDMACM_1.0', -+ 'rreadv' => 'rreadv@@RDMACM_1.0', -+ 'rrecv' => 'rrecv@@RDMACM_1.0', -+ 'rrecvfrom' => 'rrecvfrom@@RDMACM_1.0', -+ 'rrecvmsg' => 'rrecvmsg@@RDMACM_1.0', -+ 'rselect' => 'rselect@@RDMACM_1.0', -+ 'rsend' => 'rsend@@RDMACM_1.0', -+ 'rsendmsg' => 'rsendmsg@@RDMACM_1.0', -+ 'rsendto' => 'rsendto@@RDMACM_1.0', -+ 'rsetsockopt' => 'rsetsockopt@@RDMACM_1.0', -+ 'rshutdown' => 'rshutdown@@RDMACM_1.0', -+ 'rsocket' => 'rsocket@@RDMACM_1.0', -+ 'rwrite' => 'rwrite@@RDMACM_1.0', -+ 'rwritev' => 'rwritev@@RDMACM_1.0' -+ }, -+ 'Symbols' => { -+ 'librdmacm.so.1.3.41.0' => { -+ 'raccept@@RDMACM_1.0' => 1, -+ 'rbind@@RDMACM_1.0' => 1, -+ 'rclose@@RDMACM_1.0' => 1, -+ 'rconnect@@RDMACM_1.0' => 1, -+ 'rdma_accept@@RDMACM_1.0' => 1, -+ 'rdma_ack_cm_event@@RDMACM_1.0' => 1, -+ 'rdma_bind_addr@@RDMACM_1.0' => 1, -+ 'rdma_connect@@RDMACM_1.0' => 1, -+ 'rdma_create_ep@@RDMACM_1.0' => 1, -+ 'rdma_create_event_channel@@RDMACM_1.0' => 1, -+ 'rdma_create_id@@RDMACM_1.0' => 1, -+ 'rdma_create_qp@@RDMACM_1.0' => 1, -+ 'rdma_create_qp_ex@@RDMACM_1.0' => 1, -+ 'rdma_create_srq@@RDMACM_1.0' => 1, -+ 'rdma_create_srq_ex@@RDMACM_1.0' => 1, -+ 'rdma_destroy_ep@@RDMACM_1.0' => 1, -+ 'rdma_destroy_event_channel@@RDMACM_1.0' => 1, -+ 'rdma_destroy_id@@RDMACM_1.0' => 1, -+ 'rdma_destroy_qp@@RDMACM_1.0' => 1, -+ 'rdma_destroy_srq@@RDMACM_1.0' => 1, -+ 'rdma_disconnect@@RDMACM_1.0' => 1, -+ 'rdma_establish@@RDMACM_1.2' => 1, -+ 'rdma_event_str@@RDMACM_1.0' => 1, -+ 'rdma_free_devices@@RDMACM_1.0' => 1, -+ 'rdma_freeaddrinfo@@RDMACM_1.0' => 1, -+ 'rdma_get_cm_event@@RDMACM_1.0' => 1, -+ 'rdma_get_devices@@RDMACM_1.0' => 1, -+ 'rdma_get_dst_port@@RDMACM_1.0' => 1, -+ 'rdma_get_remote_ece@@RDMACM_1.3' => 1, -+ 'rdma_get_request@@RDMACM_1.0' => 1, -+ 'rdma_get_src_port@@RDMACM_1.0' => 1, -+ 'rdma_getaddrinfo@@RDMACM_1.0' => 1, -+ 'rdma_init_qp_attr@@RDMACM_1.2' => 1, -+ 'rdma_join_multicast@@RDMACM_1.0' => 1, -+ 'rdma_join_multicast_ex@@RDMACM_1.1' => 1, -+ 'rdma_leave_multicast@@RDMACM_1.0' => 1, -+ 'rdma_listen@@RDMACM_1.0' => 1, -+ 'rdma_migrate_id@@RDMACM_1.0' => 1, -+ 'rdma_notify@@RDMACM_1.0' => 1, -+ 'rdma_reject@@RDMACM_1.0' => 1, -+ 'rdma_reject_ece@@RDMACM_1.3' => 1, -+ 'rdma_resolve_addr@@RDMACM_1.0' => 1, -+ 'rdma_resolve_route@@RDMACM_1.0' => 1, -+ 'rdma_set_local_ece@@RDMACM_1.3' => 1, -+ 'rdma_set_option@@RDMACM_1.0' => 1, -+ 'rfcntl@@RDMACM_1.0' => 1, -+ 'rgetpeername@@RDMACM_1.0' => 1, -+ 'rgetsockname@@RDMACM_1.0' => 1, -+ 'rgetsockopt@@RDMACM_1.0' => 1, -+ 'riomap@@RDMACM_1.0' => 1, -+ 'riounmap@@RDMACM_1.0' => 1, -+ 'riowrite@@RDMACM_1.0' => 1, -+ 'rlisten@@RDMACM_1.0' => 1, -+ 'rpoll@@RDMACM_1.0' => 1, -+ 'rread@@RDMACM_1.0' => 1, -+ 'rreadv@@RDMACM_1.0' => 1, -+ 'rrecv@@RDMACM_1.0' => 1, -+ 'rrecvfrom@@RDMACM_1.0' => 1, -+ 'rrecvmsg@@RDMACM_1.0' => 1, -+ 'rselect@@RDMACM_1.0' => 1, -+ 'rsend@@RDMACM_1.0' => 1, -+ 'rsendmsg@@RDMACM_1.0' => 1, -+ 'rsendto@@RDMACM_1.0' => 1, -+ 'rsetsockopt@@RDMACM_1.0' => 1, -+ 'rshutdown@@RDMACM_1.0' => 1, -+ 'rsocket@@RDMACM_1.0' => 1, -+ 'rwrite@@RDMACM_1.0' => 1, -+ 'rwritev@@RDMACM_1.0' => 1 -+ } -+ }, -+ 'Target' => 'unix', -+ 'TypeInfo' => { -+ '-1' => { -+ 'Name' => '...', -+ 'Type' => 'Intrinsic' -+ }, -+ '1' => { -+ 'Name' => 'void', -+ 'Type' => 'Intrinsic' -+ }, -+ '101211' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '33', -+ 'Name' => 'nfds_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '101223' => { -+ 'Header' => undef, -+ 'Line' => '36', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fd', -+ 'offset' => '0', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'events', -+ 'offset' => '4', -+ 'type' => '111' -+ }, -+ '2' => { -+ 'name' => 'revents', -+ 'offset' => '6', -+ 'type' => '111' -+ } -+ }, -+ 'Name' => 'struct pollfd', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '102454' => { -+ 'BaseType' => '101223', -+ 'Name' => 'struct pollfd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '105672' => { -+ 'BaseType' => '83515', -+ 'Name' => 'struct msghdr const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1073' => { -+ 'BaseType' => '227', -+ 'Header' => undef, -+ 'Line' => '33', -+ 'Name' => 'socklen_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '111' => { -+ 'Name' => 'short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '11187' => { -+ 'Header' => undef, -+ 'Line' => '895', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPT_RC', -+ 'value' => '2' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPT_UC', -+ 'value' => '3' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPT_UD', -+ 'value' => '4' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPT_RAW_PACKET', -+ 'value' => '8' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPT_XRC_SEND', -+ 'value' => '9' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPT_XRC_RECV', -+ 'value' => '10' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPT_DRIVER', -+ 'value' => '255' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '1162' => { -+ 'BaseType' => '85', -+ 'Header' => undef, -+ 'Line' => '28', -+ 'Name' => 'sa_family_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '1174' => { -+ 'Header' => undef, -+ 'Line' => '178', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sa_family', -+ 'offset' => '0', -+ 'type' => '1162' -+ }, -+ '1' => { -+ 'name' => 'sa_data', -+ 'offset' => '2', -+ 'type' => '1219' -+ } -+ }, -+ 'Name' => 'struct sockaddr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '118' => { -+ 'BaseType' => '85', -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Name' => '__uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '1214' => { -+ 'BaseType' => '1174', -+ 'Name' => 'struct sockaddr const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '1219' => { -+ 'BaseType' => '215', -+ 'Name' => 'char[14]', -+ 'Size' => '14', -+ 'Type' => 'Array' -+ }, -+ '122194' => { -+ 'BaseType' => '82129', -+ 'Name' => 'struct timeval*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '126681' => { -+ 'BaseType' => '82996', -+ 'Name' => 'struct iovec const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '130' => { -+ 'Name' => 'int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '1324' => { -+ 'BaseType' => '785', -+ 'Header' => undef, -+ 'Line' => '30', -+ 'Name' => 'in_addr_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '1336' => { -+ 'Header' => undef, -+ 'Line' => '31', -+ 'Memb' => { -+ '0' => { -+ 'name' => 's_addr', -+ 'offset' => '0', -+ 'type' => '1324' -+ } -+ }, -+ 'Name' => 'struct in_addr', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '134195' => { -+ 'BaseType' => '83402', -+ 'Name' => 'struct msghdr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '137' => { -+ 'BaseType' => '64', -+ 'Header' => undef, -+ 'Line' => '42', -+ 'Name' => '__uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '14411' => { -+ 'BaseType' => '1073', -+ 'Name' => 'socklen_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '149' => { -+ 'Name' => 'long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '1535' => { -+ 'BaseType' => '773', -+ 'Header' => undef, -+ 'Line' => '119', -+ 'Name' => 'in_port_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '1547' => { -+ 'Header' => undef, -+ 'Line' => '214', -+ 'Memb' => { -+ '0' => { -+ 'name' => '__u6_addr8', -+ 'offset' => '0', -+ 'type' => '1593' -+ }, -+ '1' => { -+ 'name' => '__u6_addr16', -+ 'offset' => '0', -+ 'type' => '1609' -+ }, -+ '2' => { -+ 'name' => '__u6_addr32', -+ 'offset' => '0', -+ 'type' => '1625' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '15524' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '160', -+ 'Name' => '__time_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '156' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '45', -+ 'Name' => '__uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1593' => { -+ 'BaseType' => '761', -+ 'Name' => 'uint8_t[16]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '1609' => { -+ 'BaseType' => '773', -+ 'Name' => 'uint16_t[8]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '1625' => { -+ 'BaseType' => '785', -+ 'Name' => 'uint32_t[4]', -+ 'Size' => '16', -+ 'Type' => 'Array' -+ }, -+ '1641' => { -+ 'Header' => undef, -+ 'Line' => '212', -+ 'Memb' => { -+ '0' => { -+ 'name' => '__in6_u', -+ 'offset' => '0', -+ 'type' => '1547' -+ } -+ }, -+ 'Name' => 'struct in6_addr', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '16678' => { -+ 'Header' => undef, -+ 'Line' => '191', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ss_family', -+ 'offset' => '0', -+ 'type' => '1162' -+ }, -+ '1' => { -+ 'name' => '__ss_padding', -+ 'offset' => '2', -+ 'type' => '16731' -+ }, -+ '2' => { -+ 'name' => '__ss_align', -+ 'offset' => '120', -+ 'type' => '57' -+ } -+ }, -+ 'Name' => 'struct sockaddr_storage', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '1668' => { -+ 'Header' => undef, -+ 'Line' => '238', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sin_family', -+ 'offset' => '0', -+ 'type' => '1162' -+ }, -+ '1' => { -+ 'name' => 'sin_port', -+ 'offset' => '2', -+ 'type' => '1535' -+ }, -+ '2' => { -+ 'name' => 'sin_addr', -+ 'offset' => '4', -+ 'type' => '1336' -+ }, -+ '3' => { -+ 'name' => 'sin_zero', -+ 'offset' => '8', -+ 'type' => '1734' -+ } -+ }, -+ 'Name' => 'struct sockaddr_in', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '16731' => { -+ 'BaseType' => '215', -+ 'Name' => 'char[118]', -+ 'Size' => '118', -+ 'Type' => 'Array' -+ }, -+ '168' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '152', -+ 'Name' => '__off_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1734' => { -+ 'BaseType' => '78', -+ 'Name' => 'unsigned char[8]', -+ 'Size' => '8', -+ 'Type' => 'Array' -+ }, -+ '1750' => { -+ 'Header' => undef, -+ 'Line' => '253', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sin6_family', -+ 'offset' => '0', -+ 'type' => '1162' -+ }, -+ '1' => { -+ 'name' => 'sin6_port', -+ 'offset' => '2', -+ 'type' => '1535' -+ }, -+ '2' => { -+ 'name' => 'sin6_flowinfo', -+ 'offset' => '4', -+ 'type' => '785' -+ }, -+ '3' => { -+ 'name' => 'sin6_addr', -+ 'offset' => '8', -+ 'type' => '1641' -+ }, -+ '4' => { -+ 'name' => 'sin6_scope_id', -+ 'offset' => '24', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct sockaddr_in6', -+ 'Size' => '28', -+ 'Type' => 'Struct' -+ }, -+ '1833' => { -+ 'BaseType' => '1174', -+ 'Name' => 'struct sockaddr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1839' => { -+ 'BaseType' => '1850', -+ 'Name' => 'void const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '1850' => { -+ 'BaseType' => '1', -+ 'Name' => 'void const', -+ 'Type' => 'Const' -+ }, -+ '18761' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_NODE_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_NODE_CA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_NODE_SWITCH', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_NODE_ROUTER', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_NODE_RNIC', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_NODE_USNIC', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_NODE_USNIC_UDP', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_NODE_UNSPECIFIED', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_node_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '18828' => { -+ 'Header' => undef, -+ 'Line' => '106', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_TRANSPORT_UNKNOWN', -+ 'value' => '18446744073709551615 (-1)' -+ }, -+ '1' => { -+ 'name' => 'IBV_TRANSPORT_IB', -+ 'value' => '0' -+ }, -+ '2' => { -+ 'name' => 'IBV_TRANSPORT_IWARP', -+ 'value' => '1' -+ }, -+ '3' => { -+ 'name' => 'IBV_TRANSPORT_USNIC', -+ 'value' => '2' -+ }, -+ '4' => { -+ 'name' => 'IBV_TRANSPORT_USNIC_UDP', -+ 'value' => '3' -+ }, -+ '5' => { -+ 'name' => 'IBV_TRANSPORT_UNSPECIFIED', -+ 'value' => '4' -+ } -+ }, -+ 'Name' => 'enum ibv_transport_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '18883' => { -+ 'Header' => undef, -+ 'Line' => '155', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_ATOMIC_NONE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_ATOMIC_HCA', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_ATOMIC_GLOB', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_atomic_cap', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '19052' => { -+ 'Header' => undef, -+ 'Line' => '1986', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'device', -+ 'offset' => '0', -+ 'type' => '28186' -+ }, -+ '1' => { -+ 'name' => 'ops', -+ 'offset' => '8', -+ 'type' => '28375' -+ }, -+ '2' => { -+ 'name' => 'cmd_fd', -+ 'offset' => '264', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'async_fd', -+ 'offset' => '268', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'num_comp_vectors', -+ 'offset' => '272', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '280', -+ 'type' => '16276' -+ }, -+ '6' => { -+ 'name' => 'abi_compat', -+ 'offset' => '320', -+ 'type' => '71' -+ } -+ }, -+ 'Name' => 'struct ibv_context', -+ 'Size' => '328', -+ 'Type' => 'Struct' -+ }, -+ '19171' => { -+ 'BaseType' => '19052', -+ 'Name' => 'struct ibv_context*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '192' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '193', -+ 'Name' => '__ssize_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '19255' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fw_ver', -+ 'offset' => '0', -+ 'type' => '19789' -+ }, -+ '1' => { -+ 'name' => 'node_guid', -+ 'offset' => '64', -+ 'type' => '2000' -+ }, -+ '10' => { -+ 'name' => 'device_cap_flags', -+ 'offset' => '116', -+ 'type' => '64' -+ }, -+ '11' => { -+ 'name' => 'max_sge', -+ 'offset' => '120', -+ 'type' => '130' -+ }, -+ '12' => { -+ 'name' => 'max_sge_rd', -+ 'offset' => '124', -+ 'type' => '130' -+ }, -+ '13' => { -+ 'name' => 'max_cq', -+ 'offset' => '128', -+ 'type' => '130' -+ }, -+ '14' => { -+ 'name' => 'max_cqe', -+ 'offset' => '132', -+ 'type' => '130' -+ }, -+ '15' => { -+ 'name' => 'max_mr', -+ 'offset' => '136', -+ 'type' => '130' -+ }, -+ '16' => { -+ 'name' => 'max_pd', -+ 'offset' => '140', -+ 'type' => '130' -+ }, -+ '17' => { -+ 'name' => 'max_qp_rd_atom', -+ 'offset' => '144', -+ 'type' => '130' -+ }, -+ '18' => { -+ 'name' => 'max_ee_rd_atom', -+ 'offset' => '148', -+ 'type' => '130' -+ }, -+ '19' => { -+ 'name' => 'max_res_rd_atom', -+ 'offset' => '152', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'sys_image_guid', -+ 'offset' => '72', -+ 'type' => '2000' -+ }, -+ '20' => { -+ 'name' => 'max_qp_init_rd_atom', -+ 'offset' => '156', -+ 'type' => '130' -+ }, -+ '21' => { -+ 'name' => 'max_ee_init_rd_atom', -+ 'offset' => '160', -+ 'type' => '130' -+ }, -+ '22' => { -+ 'name' => 'atomic_cap', -+ 'offset' => '164', -+ 'type' => '18883' -+ }, -+ '23' => { -+ 'name' => 'max_ee', -+ 'offset' => '168', -+ 'type' => '130' -+ }, -+ '24' => { -+ 'name' => 'max_rdd', -+ 'offset' => '172', -+ 'type' => '130' -+ }, -+ '25' => { -+ 'name' => 'max_mw', -+ 'offset' => '176', -+ 'type' => '130' -+ }, -+ '26' => { -+ 'name' => 'max_raw_ipv6_qp', -+ 'offset' => '180', -+ 'type' => '130' -+ }, -+ '27' => { -+ 'name' => 'max_raw_ethy_qp', -+ 'offset' => '184', -+ 'type' => '130' -+ }, -+ '28' => { -+ 'name' => 'max_mcast_grp', -+ 'offset' => '188', -+ 'type' => '130' -+ }, -+ '29' => { -+ 'name' => 'max_mcast_qp_attach', -+ 'offset' => '192', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'max_mr_size', -+ 'offset' => '80', -+ 'type' => '797' -+ }, -+ '30' => { -+ 'name' => 'max_total_mcast_qp_attach', -+ 'offset' => '196', -+ 'type' => '130' -+ }, -+ '31' => { -+ 'name' => 'max_ah', -+ 'offset' => '200', -+ 'type' => '130' -+ }, -+ '32' => { -+ 'name' => 'max_fmr', -+ 'offset' => '204', -+ 'type' => '130' -+ }, -+ '33' => { -+ 'name' => 'max_map_per_fmr', -+ 'offset' => '208', -+ 'type' => '130' -+ }, -+ '34' => { -+ 'name' => 'max_srq', -+ 'offset' => '212', -+ 'type' => '130' -+ }, -+ '35' => { -+ 'name' => 'max_srq_wr', -+ 'offset' => '216', -+ 'type' => '130' -+ }, -+ '36' => { -+ 'name' => 'max_srq_sge', -+ 'offset' => '220', -+ 'type' => '130' -+ }, -+ '37' => { -+ 'name' => 'max_pkeys', -+ 'offset' => '224', -+ 'type' => '773' -+ }, -+ '38' => { -+ 'name' => 'local_ca_ack_delay', -+ 'offset' => '226', -+ 'type' => '761' -+ }, -+ '39' => { -+ 'name' => 'phys_port_cnt', -+ 'offset' => '227', -+ 'type' => '761' -+ }, -+ '4' => { -+ 'name' => 'page_size_cap', -+ 'offset' => '88', -+ 'type' => '797' -+ }, -+ '5' => { -+ 'name' => 'vendor_id', -+ 'offset' => '96', -+ 'type' => '785' -+ }, -+ '6' => { -+ 'name' => 'vendor_part_id', -+ 'offset' => '100', -+ 'type' => '785' -+ }, -+ '7' => { -+ 'name' => 'hw_ver', -+ 'offset' => '104', -+ 'type' => '785' -+ }, -+ '8' => { -+ 'name' => 'max_qp', -+ 'offset' => '108', -+ 'type' => '130' -+ }, -+ '9' => { -+ 'name' => 'max_qp_wr', -+ 'offset' => '112', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_device_attr', -+ 'Size' => '232', -+ 'Type' => 'Struct' -+ }, -+ '1940' => { -+ 'BaseType' => '85', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => '__u16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '1952' => { -+ 'BaseType' => '64', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__u32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '1964' => { -+ 'BaseType' => '985', -+ 'Header' => undef, -+ 'Line' => '31', -+ 'Name' => '__u64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '1976' => { -+ 'BaseType' => '1940', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => '__be16', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '19789' => { -+ 'BaseType' => '215', -+ 'Name' => 'char[64]', -+ 'Size' => '64', -+ 'Type' => 'Array' -+ }, -+ '1988' => { -+ 'BaseType' => '1952', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => '__be32', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '2000' => { -+ 'BaseType' => '1964', -+ 'Header' => undef, -+ 'Line' => '29', -+ 'Name' => '__be64', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '204' => { -+ 'BaseType' => '215', -+ 'Name' => 'char*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '20562' => { -+ 'Header' => undef, -+ 'Line' => '364', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MTU_256', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'IBV_MTU_512', -+ 'value' => '2' -+ }, -+ '2' => { -+ 'name' => 'IBV_MTU_1024', -+ 'value' => '3' -+ }, -+ '3' => { -+ 'name' => 'IBV_MTU_2048', -+ 'value' => '4' -+ }, -+ '4' => { -+ 'name' => 'IBV_MTU_4096', -+ 'value' => '5' -+ } -+ }, -+ 'Name' => 'enum ibv_mtu', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '21025' => { -+ 'Header' => undef, -+ 'Line' => '449', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_EVENT_CQ_ERR', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_EVENT_QP_FATAL', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_EVENT_PORT_ERR', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_EVENT_LID_CHANGE', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'IBV_EVENT_PKEY_CHANGE', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'IBV_EVENT_SM_CHANGE', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'IBV_EVENT_SRQ_ERR', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'IBV_EVENT_SRQ_LIMIT_REACHED', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'IBV_EVENT_QP_LAST_WQE_REACHED', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'IBV_EVENT_CLIENT_REREGISTER', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'IBV_EVENT_GID_CHANGE', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'IBV_EVENT_WQ_FATAL', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'IBV_EVENT_QP_REQ_ERR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_EVENT_QP_ACCESS_ERR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_EVENT_COMM_EST', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_EVENT_SQ_DRAINED', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_EVENT_PATH_MIG', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_EVENT_PATH_MIG_ERR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_EVENT_DEVICE_FATAL', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_EVENT_PORT_ACTIVE', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_event_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '21165' => { -+ 'Header' => undef, -+ 'Line' => '1458', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '26813' -+ }, -+ '2' => { -+ 'name' => 'cq_context', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '785' -+ }, -+ '4' => { -+ 'name' => 'cqe', -+ 'offset' => '28', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '16276' -+ }, -+ '6' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '16350' -+ }, -+ '7' => { -+ 'name' => 'comp_events_completed', -+ 'offset' => '120', -+ 'type' => '785' -+ }, -+ '8' => { -+ 'name' => 'async_events_completed', -+ 'offset' => '124', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_cq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '21306' => { -+ 'BaseType' => '21165', -+ 'Name' => 'struct ibv_cq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '21312' => { -+ 'Header' => undef, -+ 'Line' => '1252', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'qp_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '10' => { -+ 'name' => 'mutex', -+ 'offset' => '64', -+ 'type' => '16276' -+ }, -+ '11' => { -+ 'name' => 'cond', -+ 'offset' => '104', -+ 'type' => '16350' -+ }, -+ '12' => { -+ 'name' => 'events_completed', -+ 'offset' => '152', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '22902' -+ }, -+ '3' => { -+ 'name' => 'send_cq', -+ 'offset' => '24', -+ 'type' => '21306' -+ }, -+ '4' => { -+ 'name' => 'recv_cq', -+ 'offset' => '32', -+ 'type' => '21306' -+ }, -+ '5' => { -+ 'name' => 'srq', -+ 'offset' => '40', -+ 'type' => '21626' -+ }, -+ '6' => { -+ 'name' => 'handle', -+ 'offset' => '48', -+ 'type' => '785' -+ }, -+ '7' => { -+ 'name' => 'qp_num', -+ 'offset' => '52', -+ 'type' => '785' -+ }, -+ '8' => { -+ 'name' => 'state', -+ 'offset' => '56', -+ 'type' => '24909' -+ }, -+ '9' => { -+ 'name' => 'qp_type', -+ 'offset' => '60', -+ 'type' => '11187' -+ } -+ }, -+ 'Name' => 'struct ibv_qp', -+ 'Size' => '160', -+ 'Type' => 'Struct' -+ }, -+ '215' => { -+ 'Name' => 'char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '21508' => { -+ 'BaseType' => '21312', -+ 'Name' => 'struct ibv_qp*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '21514' => { -+ 'Header' => undef, -+ 'Line' => '1212', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'srq_context', -+ 'offset' => '8', -+ 'type' => '71' -+ }, -+ '2' => { -+ 'name' => 'pd', -+ 'offset' => '16', -+ 'type' => '22902' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '24', -+ 'type' => '785' -+ }, -+ '4' => { -+ 'name' => 'mutex', -+ 'offset' => '32', -+ 'type' => '16276' -+ }, -+ '5' => { -+ 'name' => 'cond', -+ 'offset' => '72', -+ 'type' => '16350' -+ }, -+ '6' => { -+ 'name' => 'events_completed', -+ 'offset' => '120', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_srq', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '21626' => { -+ 'BaseType' => '21514', -+ 'Name' => 'struct ibv_srq*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '21833' => { -+ 'Header' => undef, -+ 'Line' => '483', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SUCCESS', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_LOC_LEN_ERR', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_REM_ACCESS_ERR', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_REM_OP_ERR', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_RETRY_EXC_ERR', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_RNR_RETRY_EXC_ERR', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_LOC_RDD_VIOL_ERR', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_REM_INV_RD_REQ_ERR', -+ 'value' => '15' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_REM_ABORT_ERR', -+ 'value' => '16' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_INV_EECN_ERR', -+ 'value' => '17' -+ }, -+ '18' => { -+ 'name' => 'IBV_WC_INV_EEC_STATE_ERR', -+ 'value' => '18' -+ }, -+ '19' => { -+ 'name' => 'IBV_WC_FATAL_ERR', -+ 'value' => '19' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_LOC_QP_OP_ERR', -+ 'value' => '2' -+ }, -+ '20' => { -+ 'name' => 'IBV_WC_RESP_TIMEOUT_ERR', -+ 'value' => '20' -+ }, -+ '21' => { -+ 'name' => 'IBV_WC_GENERAL_ERR', -+ 'value' => '21' -+ }, -+ '22' => { -+ 'name' => 'IBV_WC_TM_ERR', -+ 'value' => '22' -+ }, -+ '23' => { -+ 'name' => 'IBV_WC_TM_RNDV_INCOMPLETE', -+ 'value' => '23' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_LOC_EEC_OP_ERR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_LOC_PROT_ERR', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_WR_FLUSH_ERR', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_MW_BIND_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_BAD_RESP_ERR', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_LOC_ACCESS_ERR', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_REM_INV_REQ_ERR', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_status', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '21997' => { -+ 'Header' => undef, -+ 'Line' => '511', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WC_SEND', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WC_RDMA_WRITE', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WC_TM_ADD', -+ 'value' => '130' -+ }, -+ '11' => { -+ 'name' => 'IBV_WC_TM_DEL', -+ 'value' => '131' -+ }, -+ '12' => { -+ 'name' => 'IBV_WC_TM_SYNC', -+ 'value' => '132' -+ }, -+ '13' => { -+ 'name' => 'IBV_WC_TM_RECV', -+ 'value' => '133' -+ }, -+ '14' => { -+ 'name' => 'IBV_WC_TM_NO_TAG', -+ 'value' => '134' -+ }, -+ '15' => { -+ 'name' => 'IBV_WC_DRIVER1', -+ 'value' => '135' -+ }, -+ '16' => { -+ 'name' => 'IBV_WC_DRIVER2', -+ 'value' => '136' -+ }, -+ '17' => { -+ 'name' => 'IBV_WC_DRIVER3', -+ 'value' => '137' -+ }, -+ '2' => { -+ 'name' => 'IBV_WC_RDMA_READ', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WC_COMP_SWAP', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WC_FETCH_ADD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WC_BIND_MW', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WC_LOCAL_INV', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WC_TSO', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WC_RECV', -+ 'value' => '128' -+ }, -+ '9' => { -+ 'name' => 'IBV_WC_RECV_RDMA_WITH_IMM', -+ 'value' => '129' -+ } -+ }, -+ 'Name' => 'enum ibv_wc_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '222' => { -+ 'BaseType' => '215', -+ 'Name' => 'char const', -+ 'Size' => '1', -+ 'Type' => 'Const' -+ }, -+ '22265' => { -+ 'Header' => undef, -+ 'Line' => '594', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '1988' -+ }, -+ '1' => { -+ 'name' => 'invalidated_rkey', -+ 'offset' => '0', -+ 'type' => '785' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '22302' => { -+ 'Header' => undef, -+ 'Line' => '585', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '797' -+ }, -+ '1' => { -+ 'name' => 'status', -+ 'offset' => '8', -+ 'type' => '21833' -+ }, -+ '10' => { -+ 'name' => 'slid', -+ 'offset' => '42', -+ 'type' => '773' -+ }, -+ '11' => { -+ 'name' => 'sl', -+ 'offset' => '44', -+ 'type' => '761' -+ }, -+ '12' => { -+ 'name' => 'dlid_path_bits', -+ 'offset' => '45', -+ 'type' => '761' -+ }, -+ '2' => { -+ 'name' => 'opcode', -+ 'offset' => '12', -+ 'type' => '21997' -+ }, -+ '3' => { -+ 'name' => 'vendor_err', -+ 'offset' => '16', -+ 'type' => '785' -+ }, -+ '4' => { -+ 'name' => 'byte_len', -+ 'offset' => '20', -+ 'type' => '785' -+ }, -+ '5' => { -+ 'name' => 'unnamed0', -+ 'offset' => '24', -+ 'type' => '22265' -+ }, -+ '6' => { -+ 'name' => 'qp_num', -+ 'offset' => '28', -+ 'type' => '785' -+ }, -+ '7' => { -+ 'name' => 'src_qp', -+ 'offset' => '32', -+ 'type' => '785' -+ }, -+ '8' => { -+ 'name' => 'wc_flags', -+ 'offset' => '36', -+ 'type' => '64' -+ }, -+ '9' => { -+ 'name' => 'pkey_index', -+ 'offset' => '40', -+ 'type' => '773' -+ } -+ }, -+ 'Name' => 'struct ibv_wc', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '22490' => { -+ 'Header' => undef, -+ 'Line' => '619', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mr', -+ 'offset' => '0', -+ 'type' => '22672' -+ }, -+ '1' => { -+ 'name' => 'addr', -+ 'offset' => '8', -+ 'type' => '797' -+ }, -+ '2' => { -+ 'name' => 'length', -+ 'offset' => '16', -+ 'type' => '797' -+ }, -+ '3' => { -+ 'name' => 'mw_access_flags', -+ 'offset' => '24', -+ 'type' => '64' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind_info', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '22560' => { -+ 'Header' => undef, -+ 'Line' => '662', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '22902' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'length', -+ 'offset' => '24', -+ 'type' => '45' -+ }, -+ '4' => { -+ 'name' => 'handle', -+ 'offset' => '32', -+ 'type' => '785' -+ }, -+ '5' => { -+ 'name' => 'lkey', -+ 'offset' => '36', -+ 'type' => '785' -+ }, -+ '6' => { -+ 'name' => 'rkey', -+ 'offset' => '40', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_mr', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '22672' => { -+ 'BaseType' => '22560', -+ 'Name' => 'struct ibv_mr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '22678' => { -+ 'Header' => undef, -+ 'Line' => '626', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'handle', -+ 'offset' => '8', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_pd', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '227' => { -+ 'BaseType' => '64', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => '__socklen_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '22873' => { -+ 'Header' => undef, -+ 'Line' => '651', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ } -+ }, -+ 'Name' => 'struct ibv_xrcd', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '22902' => { -+ 'BaseType' => '22678', -+ 'Name' => 'struct ibv_pd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '22908' => { -+ 'Header' => undef, -+ 'Line' => '672', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MW_TYPE_1', -+ 'value' => '1' -+ }, -+ '1' => { -+ 'name' => 'IBV_MW_TYPE_2', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_mw_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '22940' => { -+ 'Header' => undef, -+ 'Line' => '677', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '22902' -+ }, -+ '2' => { -+ 'name' => 'rkey', -+ 'offset' => '16', -+ 'type' => '785' -+ }, -+ '3' => { -+ 'name' => 'handle', -+ 'offset' => '20', -+ 'type' => '785' -+ }, -+ '4' => { -+ 'name' => 'type', -+ 'offset' => '24', -+ 'type' => '22908' -+ } -+ }, -+ 'Name' => 'struct ibv_mw', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '23024' => { -+ 'Header' => undef, -+ 'Line' => '685', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dgid', -+ 'offset' => '0', -+ 'type' => '2355' -+ }, -+ '1' => { -+ 'name' => 'flow_label', -+ 'offset' => '16', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'sgid_index', -+ 'offset' => '20', -+ 'type' => '761' -+ }, -+ '3' => { -+ 'name' => 'hop_limit', -+ 'offset' => '21', -+ 'type' => '761' -+ }, -+ '4' => { -+ 'name' => 'traffic_class', -+ 'offset' => '22', -+ 'type' => '761' -+ } -+ }, -+ 'Name' => 'struct ibv_global_route', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '23109' => { -+ 'Header' => undef, -+ 'Line' => '756', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'grh', -+ 'offset' => '0', -+ 'type' => '23024' -+ }, -+ '1' => { -+ 'name' => 'dlid', -+ 'offset' => '24', -+ 'type' => '773' -+ }, -+ '2' => { -+ 'name' => 'sl', -+ 'offset' => '26', -+ 'type' => '761' -+ }, -+ '3' => { -+ 'name' => 'src_path_bits', -+ 'offset' => '27', -+ 'type' => '761' -+ }, -+ '4' => { -+ 'name' => 'static_rate', -+ 'offset' => '28', -+ 'type' => '761' -+ }, -+ '5' => { -+ 'name' => 'is_global', -+ 'offset' => '29', -+ 'type' => '761' -+ }, -+ '6' => { -+ 'name' => 'port_num', -+ 'offset' => '30', -+ 'type' => '761' -+ } -+ }, -+ 'Name' => 'struct ibv_ah_attr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '2319' => { -+ 'Header' => undef, -+ 'Line' => '67', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'subnet_prefix', -+ 'offset' => '0', -+ 'type' => '2000' -+ }, -+ '1' => { -+ 'name' => 'interface_id', -+ 'offset' => '8', -+ 'type' => '2000' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '23221' => { -+ 'Header' => undef, -+ 'Line' => '771', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_wr', -+ 'offset' => '0', -+ 'type' => '785' -+ }, -+ '1' => { -+ 'name' => 'max_sge', -+ 'offset' => '4', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'srq_limit', -+ 'offset' => '8', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_srq_attr', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '23278' => { -+ 'Header' => undef, -+ 'Line' => '777', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'offset' => '8', -+ 'type' => '23221' -+ } -+ }, -+ 'Name' => 'struct ibv_srq_init_attr', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '23321' => { -+ 'Header' => undef, -+ 'Line' => '782', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_SRQT_BASIC', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_SRQT_XRC', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_SRQT_TM', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_srq_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '23415' => { -+ 'Header' => undef, -+ 'Line' => '797', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_num_tags', -+ 'offset' => '0', -+ 'type' => '785' -+ }, -+ '1' => { -+ 'name' => 'max_ops', -+ 'offset' => '4', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_tm_cap', -+ 'Size' => '8', -+ 'Type' => 'Struct' -+ }, -+ '23458' => { -+ 'Header' => undef, -+ 'Line' => '802', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'srq_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'attr', -+ 'offset' => '8', -+ 'type' => '23221' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '20', -+ 'type' => '785' -+ }, -+ '3' => { -+ 'name' => 'srq_type', -+ 'offset' => '24', -+ 'type' => '23321' -+ }, -+ '4' => { -+ 'name' => 'pd', -+ 'offset' => '32', -+ 'type' => '22902' -+ }, -+ '5' => { -+ 'name' => 'xrcd', -+ 'offset' => '40', -+ 'type' => '23583' -+ }, -+ '6' => { -+ 'name' => 'cq', -+ 'offset' => '48', -+ 'type' => '21306' -+ }, -+ '7' => { -+ 'name' => 'tm_cap', -+ 'offset' => '56', -+ 'type' => '23415' -+ } -+ }, -+ 'Name' => 'struct ibv_srq_init_attr_ex', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '2355' => { -+ 'Header' => undef, -+ 'Line' => '65', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'raw', -+ 'offset' => '0', -+ 'type' => '1593' -+ }, -+ '1' => { -+ 'name' => 'global', -+ 'offset' => '0', -+ 'type' => '2319' -+ } -+ }, -+ 'Name' => 'union ibv_gid', -+ 'Size' => '16', -+ 'Type' => 'Union' -+ }, -+ '23583' => { -+ 'BaseType' => '22873', -+ 'Name' => 'struct ibv_xrcd*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '23869' => { -+ 'Header' => undef, -+ 'Line' => '874', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'ind_tbl_handle', -+ 'offset' => '8', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'ind_tbl_num', -+ 'offset' => '12', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'comp_mask', -+ 'offset' => '16', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_rwq_ind_table', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '24065' => { -+ 'Header' => undef, -+ 'Line' => '905', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'max_send_wr', -+ 'offset' => '0', -+ 'type' => '785' -+ }, -+ '1' => { -+ 'name' => 'max_recv_wr', -+ 'offset' => '4', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'max_send_sge', -+ 'offset' => '8', -+ 'type' => '785' -+ }, -+ '3' => { -+ 'name' => 'max_recv_sge', -+ 'offset' => '12', -+ 'type' => '785' -+ }, -+ '4' => { -+ 'name' => 'max_inline_data', -+ 'offset' => '16', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_cap', -+ 'Size' => '20', -+ 'Type' => 'Struct' -+ }, -+ '24150' => { -+ 'Header' => undef, -+ 'Line' => '913', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '21306' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '21306' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '21626' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '24065' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '11187' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '24325' => { -+ 'Header' => undef, -+ 'Line' => '955', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rx_hash_function', -+ 'offset' => '0', -+ 'type' => '761' -+ }, -+ '1' => { -+ 'name' => 'rx_hash_key_len', -+ 'offset' => '1', -+ 'type' => '761' -+ }, -+ '2' => { -+ 'name' => 'rx_hash_key', -+ 'offset' => '8', -+ 'type' => '24396' -+ }, -+ '3' => { -+ 'name' => 'rx_hash_fields_mask', -+ 'offset' => '16', -+ 'type' => '797' -+ } -+ }, -+ 'Name' => 'struct ibv_rx_hash_conf', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '24396' => { -+ 'BaseType' => '761', -+ 'Name' => 'uint8_t*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24402' => { -+ 'Header' => undef, -+ 'Line' => '964', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_context', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'send_cq', -+ 'offset' => '8', -+ 'type' => '21306' -+ }, -+ '10' => { -+ 'name' => 'create_flags', -+ 'offset' => '80', -+ 'type' => '785' -+ }, -+ '11' => { -+ 'name' => 'max_tso_header', -+ 'offset' => '84', -+ 'type' => '773' -+ }, -+ '12' => { -+ 'name' => 'rwq_ind_tbl', -+ 'offset' => '88', -+ 'type' => '24640' -+ }, -+ '13' => { -+ 'name' => 'rx_hash_conf', -+ 'offset' => '96', -+ 'type' => '24325' -+ }, -+ '14' => { -+ 'name' => 'source_qpn', -+ 'offset' => '120', -+ 'type' => '785' -+ }, -+ '15' => { -+ 'name' => 'send_ops_flags', -+ 'offset' => '128', -+ 'type' => '797' -+ }, -+ '2' => { -+ 'name' => 'recv_cq', -+ 'offset' => '16', -+ 'type' => '21306' -+ }, -+ '3' => { -+ 'name' => 'srq', -+ 'offset' => '24', -+ 'type' => '21626' -+ }, -+ '4' => { -+ 'name' => 'cap', -+ 'offset' => '32', -+ 'type' => '24065' -+ }, -+ '5' => { -+ 'name' => 'qp_type', -+ 'offset' => '52', -+ 'type' => '11187' -+ }, -+ '6' => { -+ 'name' => 'sq_sig_all', -+ 'offset' => '56', -+ 'type' => '130' -+ }, -+ '7' => { -+ 'name' => 'comp_mask', -+ 'offset' => '60', -+ 'type' => '785' -+ }, -+ '8' => { -+ 'name' => 'pd', -+ 'offset' => '64', -+ 'type' => '22902' -+ }, -+ '9' => { -+ 'name' => 'xrcd', -+ 'offset' => '72', -+ 'type' => '23583' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_init_attr_ex', -+ 'Size' => '136', -+ 'Type' => 'Struct' -+ }, -+ '24640' => { -+ 'BaseType' => '23869', -+ 'Name' => 'struct ibv_rwq_ind_table*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '24909' => { -+ 'Header' => undef, -+ 'Line' => '1033', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_QPS_RESET', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_QPS_INIT', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_QPS_RTR', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_QPS_RTS', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_QPS_SQD', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_QPS_SQE', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_QPS_ERR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_QPS_UNKNOWN', -+ 'value' => '7' -+ } -+ }, -+ 'Name' => 'enum ibv_qp_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '24977' => { -+ 'Header' => undef, -+ 'Line' => '1044', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_MIG_MIGRATED', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_MIG_REARM', -+ 'value' => '1' -+ }, -+ '2' => { -+ 'name' => 'IBV_MIG_ARMED', -+ 'value' => '2' -+ } -+ }, -+ 'Name' => 'enum ibv_mig_state', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '25015' => { -+ 'Header' => undef, -+ 'Line' => '1050', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'qp_state', -+ 'offset' => '0', -+ 'type' => '24909' -+ }, -+ '1' => { -+ 'name' => 'cur_qp_state', -+ 'offset' => '4', -+ 'type' => '24909' -+ }, -+ '10' => { -+ 'name' => 'ah_attr', -+ 'offset' => '56', -+ 'type' => '23109' -+ }, -+ '11' => { -+ 'name' => 'alt_ah_attr', -+ 'offset' => '88', -+ 'type' => '23109' -+ }, -+ '12' => { -+ 'name' => 'pkey_index', -+ 'offset' => '120', -+ 'type' => '773' -+ }, -+ '13' => { -+ 'name' => 'alt_pkey_index', -+ 'offset' => '122', -+ 'type' => '773' -+ }, -+ '14' => { -+ 'name' => 'en_sqd_async_notify', -+ 'offset' => '124', -+ 'type' => '761' -+ }, -+ '15' => { -+ 'name' => 'sq_draining', -+ 'offset' => '125', -+ 'type' => '761' -+ }, -+ '16' => { -+ 'name' => 'max_rd_atomic', -+ 'offset' => '126', -+ 'type' => '761' -+ }, -+ '17' => { -+ 'name' => 'max_dest_rd_atomic', -+ 'offset' => '127', -+ 'type' => '761' -+ }, -+ '18' => { -+ 'name' => 'min_rnr_timer', -+ 'offset' => '128', -+ 'type' => '761' -+ }, -+ '19' => { -+ 'name' => 'port_num', -+ 'offset' => '129', -+ 'type' => '761' -+ }, -+ '2' => { -+ 'name' => 'path_mtu', -+ 'offset' => '8', -+ 'type' => '20562' -+ }, -+ '20' => { -+ 'name' => 'timeout', -+ 'offset' => '130', -+ 'type' => '761' -+ }, -+ '21' => { -+ 'name' => 'retry_cnt', -+ 'offset' => '131', -+ 'type' => '761' -+ }, -+ '22' => { -+ 'name' => 'rnr_retry', -+ 'offset' => '132', -+ 'type' => '761' -+ }, -+ '23' => { -+ 'name' => 'alt_port_num', -+ 'offset' => '133', -+ 'type' => '761' -+ }, -+ '24' => { -+ 'name' => 'alt_timeout', -+ 'offset' => '134', -+ 'type' => '761' -+ }, -+ '25' => { -+ 'name' => 'rate_limit', -+ 'offset' => '136', -+ 'type' => '785' -+ }, -+ '3' => { -+ 'name' => 'path_mig_state', -+ 'offset' => '12', -+ 'type' => '24977' -+ }, -+ '4' => { -+ 'name' => 'qkey', -+ 'offset' => '16', -+ 'type' => '785' -+ }, -+ '5' => { -+ 'name' => 'rq_psn', -+ 'offset' => '20', -+ 'type' => '785' -+ }, -+ '6' => { -+ 'name' => 'sq_psn', -+ 'offset' => '24', -+ 'type' => '785' -+ }, -+ '7' => { -+ 'name' => 'dest_qp_num', -+ 'offset' => '28', -+ 'type' => '785' -+ }, -+ '8' => { -+ 'name' => 'qp_access_flags', -+ 'offset' => '32', -+ 'type' => '64' -+ }, -+ '9' => { -+ 'name' => 'cap', -+ 'offset' => '36', -+ 'type' => '24065' -+ } -+ }, -+ 'Name' => 'struct ibv_qp_attr', -+ 'Size' => '144', -+ 'Type' => 'Struct' -+ }, -+ '25465' => { -+ 'Header' => undef, -+ 'Line' => '1086', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'IBV_WR_RDMA_WRITE', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'IBV_WR_RDMA_WRITE_WITH_IMM', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'IBV_WR_TSO', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'IBV_WR_DRIVER1', -+ 'value' => '11' -+ }, -+ '2' => { -+ 'name' => 'IBV_WR_SEND', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'IBV_WR_SEND_WITH_IMM', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'IBV_WR_RDMA_READ', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'IBV_WR_ATOMIC_CMP_AND_SWP', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'IBV_WR_ATOMIC_FETCH_AND_ADD', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'IBV_WR_LOCAL_INV', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'IBV_WR_BIND_MW', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'IBV_WR_SEND_WITH_INV', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum ibv_wr_opcode', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '25557' => { -+ 'Header' => undef, -+ 'Line' => '1114', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '797' -+ }, -+ '1' => { -+ 'name' => 'length', -+ 'offset' => '8', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'lkey', -+ 'offset' => '12', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_sge', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '25614' => { -+ 'Header' => undef, -+ 'Line' => '1130', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'imm_data', -+ 'offset' => '0', -+ 'type' => '1988' -+ }, -+ '1' => { -+ 'name' => 'invalidate_rkey', -+ 'offset' => '0', -+ 'type' => '785' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '25651' => { -+ 'Header' => undef, -+ 'Line' => '1135', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '797' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '785' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '25690' => { -+ 'Header' => undef, -+ 'Line' => '1139', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_addr', -+ 'offset' => '0', -+ 'type' => '797' -+ }, -+ '1' => { -+ 'name' => 'compare_add', -+ 'offset' => '8', -+ 'type' => '797' -+ }, -+ '2' => { -+ 'name' => 'swap', -+ 'offset' => '16', -+ 'type' => '797' -+ }, -+ '3' => { -+ 'name' => 'rkey', -+ 'offset' => '24', -+ 'type' => '785' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '25757' => { -+ 'Header' => undef, -+ 'Line' => '1145', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ah', -+ 'offset' => '0', -+ 'type' => '25865' -+ }, -+ '1' => { -+ 'name' => 'remote_qpn', -+ 'offset' => '8', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'remote_qkey', -+ 'offset' => '12', -+ 'type' => '785' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '25809' => { -+ 'Header' => undef, -+ 'Line' => '1645', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'pd', -+ 'offset' => '8', -+ 'type' => '22902' -+ }, -+ '2' => { -+ 'name' => 'handle', -+ 'offset' => '16', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_ah', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '25865' => { -+ 'BaseType' => '25809', -+ 'Name' => 'struct ibv_ah*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '25871' => { -+ 'Header' => undef, -+ 'Line' => '1134', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'rdma', -+ 'offset' => '0', -+ 'type' => '25651' -+ }, -+ '1' => { -+ 'name' => 'atomic', -+ 'offset' => '0', -+ 'type' => '25690' -+ }, -+ '2' => { -+ 'name' => 'ud', -+ 'offset' => '0', -+ 'type' => '25757' -+ } -+ }, -+ 'Size' => '32', -+ 'Type' => 'Union' -+ }, -+ '25920' => { -+ 'Header' => undef, -+ 'Line' => '1152', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'remote_srqn', -+ 'offset' => '0', -+ 'type' => '785' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '25945' => { -+ 'Header' => undef, -+ 'Line' => '1151', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'xrc', -+ 'offset' => '0', -+ 'type' => '25920' -+ } -+ }, -+ 'Size' => '4', -+ 'Type' => 'Union' -+ }, -+ '25969' => { -+ 'Header' => undef, -+ 'Line' => '1157', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'mw', -+ 'offset' => '0', -+ 'type' => '26021' -+ }, -+ '1' => { -+ 'name' => 'rkey', -+ 'offset' => '8', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '22490' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '26021' => { -+ 'BaseType' => '22940', -+ 'Name' => 'struct ibv_mw*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '26027' => { -+ 'Header' => undef, -+ 'Line' => '1162', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'hdr', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'hdr_sz', -+ 'offset' => '8', -+ 'type' => '773' -+ }, -+ '2' => { -+ 'name' => 'mss', -+ 'offset' => '10', -+ 'type' => '773' -+ } -+ }, -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '26080' => { -+ 'Header' => undef, -+ 'Line' => '1156', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'bind_mw', -+ 'offset' => '0', -+ 'type' => '25969' -+ }, -+ '1' => { -+ 'name' => 'tso', -+ 'offset' => '0', -+ 'type' => '26027' -+ } -+ }, -+ 'Size' => '48', -+ 'Type' => 'Union' -+ }, -+ '26117' => { -+ 'Header' => undef, -+ 'Line' => '1120', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '797' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '26255' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '26261' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'opcode', -+ 'offset' => '28', -+ 'type' => '25465' -+ }, -+ '5' => { -+ 'name' => 'send_flags', -+ 'offset' => '32', -+ 'type' => '64' -+ }, -+ '6' => { -+ 'name' => 'unnamed0', -+ 'offset' => '36', -+ 'type' => '25614' -+ }, -+ '7' => { -+ 'name' => 'wr', -+ 'offset' => '40', -+ 'type' => '25871' -+ }, -+ '8' => { -+ 'name' => 'qp_type', -+ 'offset' => '72', -+ 'type' => '25945' -+ }, -+ '9' => { -+ 'name' => 'unnamed1', -+ 'offset' => '80', -+ 'type' => '26080' -+ } -+ }, -+ 'Name' => 'struct ibv_send_wr', -+ 'Size' => '128', -+ 'Type' => 'Struct' -+ }, -+ '26255' => { -+ 'BaseType' => '26117', -+ 'Name' => 'struct ibv_send_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '26261' => { -+ 'BaseType' => '25557', -+ 'Name' => 'struct ibv_sge*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '26267' => { -+ 'Header' => undef, -+ 'Line' => '1170', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '797' -+ }, -+ '1' => { -+ 'name' => 'next', -+ 'offset' => '8', -+ 'type' => '26338' -+ }, -+ '2' => { -+ 'name' => 'sg_list', -+ 'offset' => '16', -+ 'type' => '26261' -+ }, -+ '3' => { -+ 'name' => 'num_sge', -+ 'offset' => '24', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_recv_wr', -+ 'Size' => '32', -+ 'Type' => 'Struct' -+ }, -+ '26338' => { -+ 'BaseType' => '26267', -+ 'Name' => 'struct ibv_recv_wr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '26606' => { -+ 'Header' => undef, -+ 'Line' => '1206', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'wr_id', -+ 'offset' => '0', -+ 'type' => '797' -+ }, -+ '1' => { -+ 'name' => 'send_flags', -+ 'offset' => '8', -+ 'type' => '64' -+ }, -+ '2' => { -+ 'name' => 'bind_info', -+ 'offset' => '16', -+ 'type' => '22490' -+ } -+ }, -+ 'Name' => 'struct ibv_mw_bind', -+ 'Size' => '48', -+ 'Type' => 'Struct' -+ }, -+ '26688' => { -+ 'BaseType' => '26338', -+ 'Name' => 'struct ibv_recv_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '26700' => { -+ 'Header' => undef, -+ 'Line' => '1437', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'vendor_id', -+ 'offset' => '0', -+ 'type' => '785' -+ }, -+ '1' => { -+ 'name' => 'options', -+ 'offset' => '4', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'comp_mask', -+ 'offset' => '8', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct ibv_ece', -+ 'Size' => '12', -+ 'Type' => 'Struct' -+ }, -+ '26757' => { -+ 'Header' => undef, -+ 'Line' => '1452', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'context', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'fd', -+ 'offset' => '8', -+ 'type' => '130' -+ }, -+ '2' => { -+ 'name' => 'refcnt', -+ 'offset' => '12', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct ibv_comp_channel', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '26813' => { -+ 'BaseType' => '26757', -+ 'Name' => 'struct ibv_comp_channel*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '28123' => { -+ 'Header' => undef, -+ 'Line' => '1918', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_dummy1', -+ 'offset' => '0', -+ 'type' => '28307' -+ }, -+ '1' => { -+ 'name' => '_dummy2', -+ 'offset' => '8', -+ 'type' => '28324' -+ } -+ }, -+ 'Name' => 'struct _ibv_device_ops', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '28186' => { -+ 'BaseType' => '28192', -+ 'Name' => 'struct ibv_device*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '28192' => { -+ 'Header' => undef, -+ 'Line' => '1928', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_ops', -+ 'offset' => '0', -+ 'type' => '28123' -+ }, -+ '1' => { -+ 'name' => 'node_type', -+ 'offset' => '16', -+ 'type' => '18761' -+ }, -+ '2' => { -+ 'name' => 'transport_type', -+ 'offset' => '20', -+ 'type' => '18828' -+ }, -+ '3' => { -+ 'name' => 'name', -+ 'offset' => '24', -+ 'type' => '19789' -+ }, -+ '4' => { -+ 'name' => 'dev_name', -+ 'offset' => '88', -+ 'type' => '19789' -+ }, -+ '5' => { -+ 'name' => 'dev_path', -+ 'offset' => '152', -+ 'type' => '28359' -+ }, -+ '6' => { -+ 'name' => 'ibdev_path', -+ 'offset' => '408', -+ 'type' => '28359' -+ } -+ }, -+ 'Name' => 'struct ibv_device', -+ 'Size' => '664', -+ 'Type' => 'Struct' -+ }, -+ '28307' => { -+ 'Name' => 'struct ibv_context*(*)(struct ibv_device*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '28186' -+ }, -+ '1' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '19171', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '28324' => { -+ 'Name' => 'void(*)(struct ibv_context*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '19171' -+ } -+ }, -+ 'Return' => '1', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '28359' => { -+ 'BaseType' => '215', -+ 'Name' => 'char[256]', -+ 'Size' => '256', -+ 'Type' => 'Array' -+ }, -+ '28375' => { -+ 'Header' => undef, -+ 'Line' => '1943', -+ 'Memb' => { -+ '0' => { -+ 'name' => '_compat_query_device', -+ 'offset' => '0', -+ 'type' => '28865' -+ }, -+ '1' => { -+ 'name' => '_compat_query_port', -+ 'offset' => '8', -+ 'type' => '28907' -+ }, -+ '10' => { -+ 'name' => '_compat_create_cq', -+ 'offset' => '80', -+ 'type' => '28918' -+ }, -+ '11' => { -+ 'name' => 'poll_cq', -+ 'offset' => '88', -+ 'type' => '29039' -+ }, -+ '12' => { -+ 'name' => 'req_notify_cq', -+ 'offset' => '96', -+ 'type' => '29065' -+ }, -+ '13' => { -+ 'name' => '_compat_cq_event', -+ 'offset' => '104', -+ 'type' => '28918' -+ }, -+ '14' => { -+ 'name' => '_compat_resize_cq', -+ 'offset' => '112', -+ 'type' => '28918' -+ }, -+ '15' => { -+ 'name' => '_compat_destroy_cq', -+ 'offset' => '120', -+ 'type' => '28918' -+ }, -+ '16' => { -+ 'name' => '_compat_create_srq', -+ 'offset' => '128', -+ 'type' => '28918' -+ }, -+ '17' => { -+ 'name' => '_compat_modify_srq', -+ 'offset' => '136', -+ 'type' => '28918' -+ }, -+ '18' => { -+ 'name' => '_compat_query_srq', -+ 'offset' => '144', -+ 'type' => '28918' -+ }, -+ '19' => { -+ 'name' => '_compat_destroy_srq', -+ 'offset' => '152', -+ 'type' => '28918' -+ }, -+ '2' => { -+ 'name' => '_compat_alloc_pd', -+ 'offset' => '16', -+ 'type' => '28918' -+ }, -+ '20' => { -+ 'name' => 'post_srq_recv', -+ 'offset' => '160', -+ 'type' => '29096' -+ }, -+ '21' => { -+ 'name' => '_compat_create_qp', -+ 'offset' => '168', -+ 'type' => '28918' -+ }, -+ '22' => { -+ 'name' => '_compat_query_qp', -+ 'offset' => '176', -+ 'type' => '28918' -+ }, -+ '23' => { -+ 'name' => '_compat_modify_qp', -+ 'offset' => '184', -+ 'type' => '28918' -+ }, -+ '24' => { -+ 'name' => '_compat_destroy_qp', -+ 'offset' => '192', -+ 'type' => '28918' -+ }, -+ '25' => { -+ 'name' => 'post_send', -+ 'offset' => '200', -+ 'type' => '29133' -+ }, -+ '26' => { -+ 'name' => 'post_recv', -+ 'offset' => '208', -+ 'type' => '29164' -+ }, -+ '27' => { -+ 'name' => '_compat_create_ah', -+ 'offset' => '216', -+ 'type' => '28918' -+ }, -+ '28' => { -+ 'name' => '_compat_destroy_ah', -+ 'offset' => '224', -+ 'type' => '28918' -+ }, -+ '29' => { -+ 'name' => '_compat_attach_mcast', -+ 'offset' => '232', -+ 'type' => '28918' -+ }, -+ '3' => { -+ 'name' => '_compat_dealloc_pd', -+ 'offset' => '24', -+ 'type' => '28918' -+ }, -+ '30' => { -+ 'name' => '_compat_detach_mcast', -+ 'offset' => '240', -+ 'type' => '28918' -+ }, -+ '31' => { -+ 'name' => '_compat_async_event', -+ 'offset' => '248', -+ 'type' => '28918' -+ }, -+ '4' => { -+ 'name' => '_compat_reg_mr', -+ 'offset' => '32', -+ 'type' => '28918' -+ }, -+ '5' => { -+ 'name' => '_compat_rereg_mr', -+ 'offset' => '40', -+ 'type' => '28918' -+ }, -+ '6' => { -+ 'name' => '_compat_dereg_mr', -+ 'offset' => '48', -+ 'type' => '28918' -+ }, -+ '7' => { -+ 'name' => 'alloc_mw', -+ 'offset' => '56', -+ 'type' => '28944' -+ }, -+ '8' => { -+ 'name' => 'bind_mw', -+ 'offset' => '64', -+ 'type' => '28981' -+ }, -+ '9' => { -+ 'name' => 'dealloc_mw', -+ 'offset' => '72', -+ 'type' => '29002' -+ } -+ }, -+ 'Name' => 'struct ibv_context_ops', -+ 'Size' => '256', -+ 'Type' => 'Struct' -+ }, -+ '2856' => { -+ 'Header' => undef, -+ 'Line' => '69', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'RDMA_PS_IPOIB', -+ 'value' => '2' -+ }, -+ '1' => { -+ 'name' => 'RDMA_PS_TCP', -+ 'value' => '262' -+ }, -+ '2' => { -+ 'name' => 'RDMA_PS_UDP', -+ 'value' => '273' -+ }, -+ '3' => { -+ 'name' => 'RDMA_PS_IB', -+ 'value' => '319' -+ } -+ }, -+ 'Name' => 'enum rdma_port_space', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '28859' => { -+ 'BaseType' => '19255', -+ 'Name' => 'struct ibv_device_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '28865' => { -+ 'Name' => 'int(*)(struct ibv_context*, struct ibv_device_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'type' => '28859' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '28896' => { -+ 'BaseType' => '28902', -+ 'Name' => 'struct _compat_ibv_port_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '28902' => { -+ 'Name' => 'struct _compat_ibv_port_attr', -+ 'Type' => 'Struct' -+ }, -+ '28907' => { -+ 'Name' => 'int(*)(struct ibv_context*, uint8_t, struct _compat_ibv_port_attr*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'type' => '761' -+ }, -+ '2' => { -+ 'type' => '28896' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '28918' => { -+ 'Name' => 'void*(*)()', -+ 'Return' => '71', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '28944' => { -+ 'Name' => 'struct ibv_mw*(*)(struct ibv_pd*, enum ibv_mw_type)', -+ 'Param' => { -+ '0' => { -+ 'type' => '22902' -+ }, -+ '1' => { -+ 'type' => '22908' -+ } -+ }, -+ 'Return' => '26021', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '28975' => { -+ 'BaseType' => '26606', -+ 'Name' => 'struct ibv_mw_bind*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '28981' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_mw*, struct ibv_mw_bind*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '21508' -+ }, -+ '1' => { -+ 'type' => '26021' -+ }, -+ '2' => { -+ 'type' => '28975' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29002' => { -+ 'Name' => 'int(*)(struct ibv_mw*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '26021' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '2902' => { -+ 'Header' => undef, -+ 'Line' => '182', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ai_flags', -+ 'offset' => '0', -+ 'type' => '130' -+ }, -+ '1' => { -+ 'name' => 'ai_family', -+ 'offset' => '4', -+ 'type' => '130' -+ }, -+ '10' => { -+ 'name' => 'ai_route_len', -+ 'offset' => '56', -+ 'type' => '45' -+ }, -+ '11' => { -+ 'name' => 'ai_route', -+ 'offset' => '64', -+ 'type' => '71' -+ }, -+ '12' => { -+ 'name' => 'ai_connect_len', -+ 'offset' => '72', -+ 'type' => '45' -+ }, -+ '13' => { -+ 'name' => 'ai_connect', -+ 'offset' => '80', -+ 'type' => '71' -+ }, -+ '14' => { -+ 'name' => 'ai_next', -+ 'offset' => '88', -+ 'type' => '3116' -+ }, -+ '2' => { -+ 'name' => 'ai_qp_type', -+ 'offset' => '8', -+ 'type' => '130' -+ }, -+ '3' => { -+ 'name' => 'ai_port_space', -+ 'offset' => '12', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'ai_src_len', -+ 'offset' => '16', -+ 'type' => '1073' -+ }, -+ '5' => { -+ 'name' => 'ai_dst_len', -+ 'offset' => '20', -+ 'type' => '1073' -+ }, -+ '6' => { -+ 'name' => 'ai_src_addr', -+ 'offset' => '24', -+ 'type' => '1833' -+ }, -+ '7' => { -+ 'name' => 'ai_dst_addr', -+ 'offset' => '32', -+ 'type' => '1833' -+ }, -+ '8' => { -+ 'name' => 'ai_src_canonname', -+ 'offset' => '40', -+ 'type' => '204' -+ }, -+ '9' => { -+ 'name' => 'ai_dst_canonname', -+ 'offset' => '48', -+ 'type' => '204' -+ } -+ }, -+ 'Name' => 'struct rdma_addrinfo', -+ 'Size' => '96', -+ 'Type' => 'Struct' -+ }, -+ '29033' => { -+ 'BaseType' => '22302', -+ 'Name' => 'struct ibv_wc*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29039' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int, struct ibv_wc*)', -+ 'Param' => { -+ '0' => { -+ 'type' => '21306' -+ }, -+ '1' => { -+ 'type' => '130' -+ }, -+ '2' => { -+ 'type' => '29033' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29065' => { -+ 'Name' => 'int(*)(struct ibv_cq*, int)', -+ 'Param' => { -+ '0' => { -+ 'type' => '21306' -+ }, -+ '1' => { -+ 'type' => '130' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29096' => { -+ 'Name' => 'int(*)(struct ibv_srq*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '21626' -+ }, -+ '1' => { -+ 'type' => '26338' -+ }, -+ '2' => { -+ 'type' => '26688' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29127' => { -+ 'BaseType' => '26255', -+ 'Name' => 'struct ibv_send_wr**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '29133' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_send_wr*, struct ibv_send_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '21508' -+ }, -+ '1' => { -+ 'type' => '26255' -+ }, -+ '2' => { -+ 'type' => '29127' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '29164' => { -+ 'Name' => 'int(*)(struct ibv_qp*, struct ibv_recv_wr*, struct ibv_recv_wr**)', -+ 'Param' => { -+ '0' => { -+ 'type' => '21508' -+ }, -+ '1' => { -+ 'type' => '26338' -+ }, -+ '2' => { -+ 'type' => '26688' -+ } -+ }, -+ 'Return' => '130', -+ 'Size' => '8', -+ 'Type' => 'FuncPtr' -+ }, -+ '3111' => { -+ 'BaseType' => '2902', -+ 'Name' => 'struct rdma_addrinfo const', -+ 'Size' => '96', -+ 'Type' => 'Const' -+ }, -+ '3116' => { -+ 'BaseType' => '2902', -+ 'Name' => 'struct rdma_addrinfo*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '31212' => { -+ 'BaseType' => '24402', -+ 'Name' => 'struct ibv_qp_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '31276' => { -+ 'BaseType' => '23458', -+ 'Name' => 'struct ibv_srq_init_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '31341' => { -+ 'Header' => undef, -+ 'Line' => '40', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dgid', -+ 'offset' => '0', -+ 'type' => '2355' -+ }, -+ '1' => { -+ 'name' => 'sgid', -+ 'offset' => '16', -+ 'type' => '2355' -+ }, -+ '10' => { -+ 'name' => 'pkey', -+ 'offset' => '54', -+ 'type' => '1976' -+ }, -+ '11' => { -+ 'name' => 'sl', -+ 'offset' => '56', -+ 'type' => '761' -+ }, -+ '12' => { -+ 'name' => 'mtu_selector', -+ 'offset' => '57', -+ 'type' => '761' -+ }, -+ '13' => { -+ 'name' => 'mtu', -+ 'offset' => '58', -+ 'type' => '761' -+ }, -+ '14' => { -+ 'name' => 'rate_selector', -+ 'offset' => '59', -+ 'type' => '761' -+ }, -+ '15' => { -+ 'name' => 'rate', -+ 'offset' => '60', -+ 'type' => '761' -+ }, -+ '16' => { -+ 'name' => 'packet_life_time_selector', -+ 'offset' => '61', -+ 'type' => '761' -+ }, -+ '17' => { -+ 'name' => 'packet_life_time', -+ 'offset' => '62', -+ 'type' => '761' -+ }, -+ '18' => { -+ 'name' => 'preference', -+ 'offset' => '63', -+ 'type' => '761' -+ }, -+ '2' => { -+ 'name' => 'dlid', -+ 'offset' => '32', -+ 'type' => '1976' -+ }, -+ '3' => { -+ 'name' => 'slid', -+ 'offset' => '34', -+ 'type' => '1976' -+ }, -+ '4' => { -+ 'name' => 'raw_traffic', -+ 'offset' => '36', -+ 'type' => '130' -+ }, -+ '5' => { -+ 'name' => 'flow_label', -+ 'offset' => '40', -+ 'type' => '1988' -+ }, -+ '6' => { -+ 'name' => 'hop_limit', -+ 'offset' => '44', -+ 'type' => '761' -+ }, -+ '7' => { -+ 'name' => 'traffic_class', -+ 'offset' => '45', -+ 'type' => '761' -+ }, -+ '8' => { -+ 'name' => 'reversible', -+ 'offset' => '48', -+ 'type' => '130' -+ }, -+ '9' => { -+ 'name' => 'numb_path', -+ 'offset' => '52', -+ 'type' => '761' -+ } -+ }, -+ 'Name' => 'struct ibv_sa_path_rec', -+ 'Size' => '64', -+ 'Type' => 'Struct' -+ }, -+ '31863' => { -+ 'Header' => undef, -+ 'Line' => '50', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'RDMA_CM_EVENT_ADDR_RESOLVED', -+ 'value' => '0' -+ }, -+ '1' => { -+ 'name' => 'RDMA_CM_EVENT_ADDR_ERROR', -+ 'value' => '1' -+ }, -+ '10' => { -+ 'name' => 'RDMA_CM_EVENT_DISCONNECTED', -+ 'value' => '10' -+ }, -+ '11' => { -+ 'name' => 'RDMA_CM_EVENT_DEVICE_REMOVAL', -+ 'value' => '11' -+ }, -+ '12' => { -+ 'name' => 'RDMA_CM_EVENT_MULTICAST_JOIN', -+ 'value' => '12' -+ }, -+ '13' => { -+ 'name' => 'RDMA_CM_EVENT_MULTICAST_ERROR', -+ 'value' => '13' -+ }, -+ '14' => { -+ 'name' => 'RDMA_CM_EVENT_ADDR_CHANGE', -+ 'value' => '14' -+ }, -+ '15' => { -+ 'name' => 'RDMA_CM_EVENT_TIMEWAIT_EXIT', -+ 'value' => '15' -+ }, -+ '2' => { -+ 'name' => 'RDMA_CM_EVENT_ROUTE_RESOLVED', -+ 'value' => '2' -+ }, -+ '3' => { -+ 'name' => 'RDMA_CM_EVENT_ROUTE_ERROR', -+ 'value' => '3' -+ }, -+ '4' => { -+ 'name' => 'RDMA_CM_EVENT_CONNECT_REQUEST', -+ 'value' => '4' -+ }, -+ '5' => { -+ 'name' => 'RDMA_CM_EVENT_CONNECT_RESPONSE', -+ 'value' => '5' -+ }, -+ '6' => { -+ 'name' => 'RDMA_CM_EVENT_CONNECT_ERROR', -+ 'value' => '6' -+ }, -+ '7' => { -+ 'name' => 'RDMA_CM_EVENT_UNREACHABLE', -+ 'value' => '7' -+ }, -+ '8' => { -+ 'name' => 'RDMA_CM_EVENT_REJECTED', -+ 'value' => '8' -+ }, -+ '9' => { -+ 'name' => 'RDMA_CM_EVENT_ESTABLISHED', -+ 'value' => '9' -+ } -+ }, -+ 'Name' => 'enum rdma_cm_event_type', -+ 'Size' => '4', -+ 'Type' => 'Enum' -+ }, -+ '32024' => { -+ 'Header' => undef, -+ 'Line' => '88', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'sgid', -+ 'offset' => '0', -+ 'type' => '2355' -+ }, -+ '1' => { -+ 'name' => 'dgid', -+ 'offset' => '16', -+ 'type' => '2355' -+ }, -+ '2' => { -+ 'name' => 'pkey', -+ 'offset' => '32', -+ 'type' => '1976' -+ } -+ }, -+ 'Name' => 'struct rdma_ib_addr', -+ 'Size' => '40', -+ 'Type' => 'Struct' -+ }, -+ '32077' => { -+ 'Header' => undef, -+ 'Line' => '95', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'src_addr', -+ 'offset' => '0', -+ 'type' => '1174' -+ }, -+ '1' => { -+ 'name' => 'src_sin', -+ 'offset' => '0', -+ 'type' => '1668' -+ }, -+ '2' => { -+ 'name' => 'src_sin6', -+ 'offset' => '0', -+ 'type' => '1750' -+ }, -+ '3' => { -+ 'name' => 'src_storage', -+ 'offset' => '0', -+ 'type' => '16678' -+ } -+ }, -+ 'Size' => '128', -+ 'Type' => 'Union' -+ }, -+ '32135' => { -+ 'Header' => undef, -+ 'Line' => '101', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'dst_addr', -+ 'offset' => '0', -+ 'type' => '1174' -+ }, -+ '1' => { -+ 'name' => 'dst_sin', -+ 'offset' => '0', -+ 'type' => '1668' -+ }, -+ '2' => { -+ 'name' => 'dst_sin6', -+ 'offset' => '0', -+ 'type' => '1750' -+ }, -+ '3' => { -+ 'name' => 'dst_storage', -+ 'offset' => '0', -+ 'type' => '16678' -+ } -+ }, -+ 'Size' => '128', -+ 'Type' => 'Union' -+ }, -+ '32193' => { -+ 'Header' => undef, -+ 'Line' => '107', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'ibaddr', -+ 'offset' => '0', -+ 'type' => '32024' -+ } -+ }, -+ 'Size' => '40', -+ 'Type' => 'Union' -+ }, -+ '32215' => { -+ 'Header' => undef, -+ 'Line' => '94', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'unnamed0', -+ 'offset' => '0', -+ 'type' => '32077' -+ }, -+ '1' => { -+ 'name' => 'unnamed1', -+ 'offset' => '128', -+ 'type' => '32135' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'offset' => '256', -+ 'type' => '32193' -+ } -+ }, -+ 'Name' => 'struct rdma_addr', -+ 'Size' => '296', -+ 'Type' => 'Struct' -+ }, -+ '32256' => { -+ 'Header' => undef, -+ 'Line' => '112', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'addr', -+ 'offset' => '0', -+ 'type' => '32215' -+ }, -+ '1' => { -+ 'name' => 'path_rec', -+ 'offset' => '296', -+ 'type' => '32312' -+ }, -+ '2' => { -+ 'name' => 'num_paths', -+ 'offset' => '304', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct rdma_route', -+ 'Size' => '312', -+ 'Type' => 'Struct' -+ }, -+ '32312' => { -+ 'BaseType' => '31341', -+ 'Name' => 'struct ibv_sa_path_rec*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '32318' => { -+ 'Header' => undef, -+ 'Line' => '118', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'fd', -+ 'offset' => '0', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct rdma_event_channel', -+ 'Size' => '4', -+ 'Type' => 'Struct' -+ }, -+ '32344' => { -+ 'Header' => undef, -+ 'Line' => '122', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'verbs', -+ 'offset' => '0', -+ 'type' => '19171' -+ }, -+ '1' => { -+ 'name' => 'channel', -+ 'offset' => '8', -+ 'type' => '32561' -+ }, -+ '10' => { -+ 'name' => 'recv_cq_channel', -+ 'offset' => '376', -+ 'type' => '26813' -+ }, -+ '11' => { -+ 'name' => 'recv_cq', -+ 'offset' => '384', -+ 'type' => '21306' -+ }, -+ '12' => { -+ 'name' => 'srq', -+ 'offset' => '392', -+ 'type' => '21626' -+ }, -+ '13' => { -+ 'name' => 'pd', -+ 'offset' => '400', -+ 'type' => '22902' -+ }, -+ '14' => { -+ 'name' => 'qp_type', -+ 'offset' => '408', -+ 'type' => '11187' -+ }, -+ '2' => { -+ 'name' => 'context', -+ 'offset' => '16', -+ 'type' => '71' -+ }, -+ '3' => { -+ 'name' => 'qp', -+ 'offset' => '24', -+ 'type' => '21508' -+ }, -+ '4' => { -+ 'name' => 'route', -+ 'offset' => '32', -+ 'type' => '32256' -+ }, -+ '5' => { -+ 'name' => 'ps', -+ 'offset' => '344', -+ 'type' => '2856' -+ }, -+ '6' => { -+ 'name' => 'port_num', -+ 'offset' => '348', -+ 'type' => '761' -+ }, -+ '7' => { -+ 'name' => 'event', -+ 'offset' => '352', -+ 'type' => '32645' -+ }, -+ '8' => { -+ 'name' => 'send_cq_channel', -+ 'offset' => '360', -+ 'type' => '26813' -+ }, -+ '9' => { -+ 'name' => 'send_cq', -+ 'offset' => '368', -+ 'type' => '21306' -+ } -+ }, -+ 'Name' => 'struct rdma_cm_id', -+ 'Size' => '416', -+ 'Type' => 'Struct' -+ }, -+ '32561' => { -+ 'BaseType' => '32318', -+ 'Name' => 'struct rdma_event_channel*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '32567' => { -+ 'Header' => undef, -+ 'Line' => '166', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'id', -+ 'offset' => '0', -+ 'type' => '32921' -+ }, -+ '1' => { -+ 'name' => 'listen_id', -+ 'offset' => '8', -+ 'type' => '32921' -+ }, -+ '2' => { -+ 'name' => 'event', -+ 'offset' => '16', -+ 'type' => '31863' -+ }, -+ '3' => { -+ 'name' => 'status', -+ 'offset' => '20', -+ 'type' => '130' -+ }, -+ '4' => { -+ 'name' => 'param', -+ 'offset' => '24', -+ 'type' => '32888' -+ } -+ }, -+ 'Name' => 'struct rdma_cm_event', -+ 'Size' => '80', -+ 'Type' => 'Struct' -+ }, -+ '32645' => { -+ 'BaseType' => '32567', -+ 'Name' => 'struct rdma_cm_event*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '32678' => { -+ 'Header' => undef, -+ 'Line' => '145', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'private_data', -+ 'offset' => '0', -+ 'type' => '1839' -+ }, -+ '1' => { -+ 'name' => 'private_data_len', -+ 'offset' => '8', -+ 'type' => '761' -+ }, -+ '2' => { -+ 'name' => 'responder_resources', -+ 'offset' => '9', -+ 'type' => '761' -+ }, -+ '3' => { -+ 'name' => 'initiator_depth', -+ 'offset' => '10', -+ 'type' => '761' -+ }, -+ '4' => { -+ 'name' => 'flow_control', -+ 'offset' => '11', -+ 'type' => '761' -+ }, -+ '5' => { -+ 'name' => 'retry_count', -+ 'offset' => '12', -+ 'type' => '761' -+ }, -+ '6' => { -+ 'name' => 'rnr_retry_count', -+ 'offset' => '13', -+ 'type' => '761' -+ }, -+ '7' => { -+ 'name' => 'srq', -+ 'offset' => '14', -+ 'type' => '761' -+ }, -+ '8' => { -+ 'name' => 'qp_num', -+ 'offset' => '16', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct rdma_conn_param', -+ 'Size' => '24', -+ 'Type' => 'Struct' -+ }, -+ '32809' => { -+ 'Header' => undef, -+ 'Line' => '158', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'private_data', -+ 'offset' => '0', -+ 'type' => '1839' -+ }, -+ '1' => { -+ 'name' => 'private_data_len', -+ 'offset' => '8', -+ 'type' => '761' -+ }, -+ '2' => { -+ 'name' => 'ah_attr', -+ 'offset' => '16', -+ 'type' => '23109' -+ }, -+ '3' => { -+ 'name' => 'qp_num', -+ 'offset' => '48', -+ 'type' => '785' -+ }, -+ '4' => { -+ 'name' => 'qkey', -+ 'offset' => '52', -+ 'type' => '785' -+ } -+ }, -+ 'Name' => 'struct rdma_ud_param', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '32888' => { -+ 'Header' => undef, -+ 'Line' => '171', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'conn', -+ 'offset' => '0', -+ 'type' => '32678' -+ }, -+ '1' => { -+ 'name' => 'ud', -+ 'offset' => '0', -+ 'type' => '32809' -+ } -+ }, -+ 'Size' => '56', -+ 'Type' => 'Union' -+ }, -+ '32921' => { -+ 'BaseType' => '32344', -+ 'Name' => 'struct rdma_cm_id*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '33221' => { -+ 'Header' => undef, -+ 'Line' => '214', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'comp_mask', -+ 'offset' => '0', -+ 'type' => '785' -+ }, -+ '1' => { -+ 'name' => 'join_flags', -+ 'offset' => '4', -+ 'type' => '785' -+ }, -+ '2' => { -+ 'name' => 'addr', -+ 'offset' => '8', -+ 'type' => '1833' -+ } -+ }, -+ 'Name' => 'struct rdma_cm_join_mc_attr_ex', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '34020' => { -+ 'BaseType' => '24150', -+ 'Name' => 'struct ibv_qp_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34026' => { -+ 'BaseType' => '23278', -+ 'Name' => 'struct ibv_srq_init_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34032' => { -+ 'BaseType' => '25015', -+ 'Name' => 'struct ibv_qp_attr*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '34038' => { -+ 'BaseType' => '26700', -+ 'Name' => 'struct ibv_ece*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '4113' => { -+ 'BaseType' => '130', -+ 'Name' => 'int*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '43365' => { -+ 'BaseType' => '32921', -+ 'Name' => 'struct rdma_cm_id**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '45' => { -+ 'BaseType' => '57', -+ 'Header' => undef, -+ 'Line' => '209', -+ 'Name' => 'size_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '4547' => { -+ 'BaseType' => '1214', -+ 'Name' => 'struct sockaddr const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '48543' => { -+ 'BaseType' => '32645', -+ 'Name' => 'struct rdma_cm_event**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '48812' => { -+ 'BaseType' => '32678', -+ 'Name' => 'struct rdma_conn_param*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '51281' => { -+ 'BaseType' => '33221', -+ 'Name' => 'struct rdma_cm_join_mc_attr_ex*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '57' => { -+ 'Name' => 'unsigned long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '64' => { -+ 'Name' => 'unsigned int', -+ 'Size' => '4', -+ 'Type' => 'Intrinsic' -+ }, -+ '71' => { -+ 'BaseType' => '1', -+ 'Name' => 'void*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '72119' => { -+ 'BaseType' => '19171', -+ 'Name' => 'struct ibv_context**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '727' => { -+ 'BaseType' => '192', -+ 'Header' => undef, -+ 'Line' => '77', -+ 'Name' => 'ssize_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '750' => { -+ 'BaseType' => '222', -+ 'Name' => 'char const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '761' => { -+ 'BaseType' => '99', -+ 'Header' => undef, -+ 'Line' => '24', -+ 'Name' => 'uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ }, -+ '773' => { -+ 'BaseType' => '118', -+ 'Header' => undef, -+ 'Line' => '25', -+ 'Name' => 'uint16_t', -+ 'Size' => '2', -+ 'Type' => 'Typedef' -+ }, -+ '78' => { -+ 'Name' => 'unsigned char', -+ 'Size' => '1', -+ 'Type' => 'Intrinsic' -+ }, -+ '785' => { -+ 'BaseType' => '137', -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Name' => 'uint32_t', -+ 'Size' => '4', -+ 'Type' => 'Typedef' -+ }, -+ '7872' => { -+ 'BaseType' => '3116', -+ 'Name' => 'struct rdma_addrinfo**', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '7878' => { -+ 'BaseType' => '3111', -+ 'Name' => 'struct rdma_addrinfo const*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '797' => { -+ 'BaseType' => '156', -+ 'Header' => undef, -+ 'Line' => '27', -+ 'Name' => 'uint64_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '81991' => { -+ 'BaseType' => '149', -+ 'Header' => undef, -+ 'Line' => '162', -+ 'Name' => '__suseconds_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '82081' => { -+ 'BaseType' => '168', -+ 'Header' => undef, -+ 'Line' => '85', -+ 'Name' => 'off_t', -+ 'Size' => '8', -+ 'Type' => 'Typedef' -+ }, -+ '82129' => { -+ 'Header' => undef, -+ 'Line' => '8', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'tv_sec', -+ 'offset' => '0', -+ 'type' => '15524' -+ }, -+ '1' => { -+ 'name' => 'tv_usec', -+ 'offset' => '8', -+ 'type' => '81991' -+ } -+ }, -+ 'Name' => 'struct timeval', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '82956' => { -+ 'Header' => undef, -+ 'Line' => '26', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'iov_base', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'iov_len', -+ 'offset' => '8', -+ 'type' => '45' -+ } -+ }, -+ 'Name' => 'struct iovec', -+ 'Size' => '16', -+ 'Type' => 'Struct' -+ }, -+ '82996' => { -+ 'BaseType' => '82956', -+ 'Name' => 'struct iovec const', -+ 'Size' => '16', -+ 'Type' => 'Const' -+ }, -+ '83402' => { -+ 'Header' => undef, -+ 'Line' => '257', -+ 'Memb' => { -+ '0' => { -+ 'name' => 'msg_name', -+ 'offset' => '0', -+ 'type' => '71' -+ }, -+ '1' => { -+ 'name' => 'msg_namelen', -+ 'offset' => '8', -+ 'type' => '1073' -+ }, -+ '2' => { -+ 'name' => 'msg_iov', -+ 'offset' => '16', -+ 'type' => '83520' -+ }, -+ '3' => { -+ 'name' => 'msg_iovlen', -+ 'offset' => '24', -+ 'type' => '45' -+ }, -+ '4' => { -+ 'name' => 'msg_control', -+ 'offset' => '32', -+ 'type' => '71' -+ }, -+ '5' => { -+ 'name' => 'msg_controllen', -+ 'offset' => '40', -+ 'type' => '45' -+ }, -+ '6' => { -+ 'name' => 'msg_flags', -+ 'offset' => '48', -+ 'type' => '130' -+ } -+ }, -+ 'Name' => 'struct msghdr', -+ 'Size' => '56', -+ 'Type' => 'Struct' -+ }, -+ '83515' => { -+ 'BaseType' => '83402', -+ 'Name' => 'struct msghdr const', -+ 'Size' => '56', -+ 'Type' => 'Const' -+ }, -+ '83520' => { -+ 'BaseType' => '82956', -+ 'Name' => 'struct iovec*', -+ 'Size' => '8', -+ 'Type' => 'Pointer' -+ }, -+ '85' => { -+ 'Name' => 'unsigned short', -+ 'Size' => '2', -+ 'Type' => 'Intrinsic' -+ }, -+ '985' => { -+ 'Name' => 'unsigned long long', -+ 'Size' => '8', -+ 'Type' => 'Intrinsic' -+ }, -+ '99' => { -+ 'BaseType' => '78', -+ 'Header' => undef, -+ 'Line' => '38', -+ 'Name' => '__uint8_t', -+ 'Size' => '1', -+ 'Type' => 'Typedef' -+ } -+ }, -+ 'UndefinedSymbols' => { -+ 'librdmacm.so.1.3.41.0' => { -+ '_ITM_deregisterTMCloneTable' => 0, -+ '_ITM_registerTMCloneTable' => 0, -+ '__asprintf_chk@GLIBC_2.8' => 0, -+ '__cxa_finalize@GLIBC_2.2.5' => 0, -+ '__errno_location@GLIBC_2.2.5' => 0, -+ '__fdelt_chk@GLIBC_2.15' => 0, -+ '__fxstat@GLIBC_2.2.5' => 0, -+ '__gmon_start__' => 0, -+ '__isoc99_fscanf@GLIBC_2.7' => 0, -+ '__memcpy_chk@GLIBC_2.3.4' => 0, -+ '__stack_chk_fail@GLIBC_2.4' => 0, -+ '__syslog_chk@GLIBC_2.4' => 0, -+ '__tls_get_addr@GLIBC_2.3' => 0, -+ 'bind@GLIBC_2.2.5' => 0, -+ 'calloc@GLIBC_2.2.5' => 0, -+ 'clock_gettime@GLIBC_2.17' => 0, -+ 'close@GLIBC_2.2.5' => 0, -+ 'connect@GLIBC_2.2.5' => 0, -+ 'epoll_create@GLIBC_2.3.2' => 0, -+ 'epoll_ctl@GLIBC_2.3.2' => 0, -+ 'epoll_wait@GLIBC_2.3.2' => 0, -+ 'eventfd@GLIBC_2.7' => 0, -+ 'fclose@GLIBC_2.2.5' => 0, -+ 'fcntl@GLIBC_2.2.5' => 0, -+ 'fopen@GLIBC_2.2.5' => 0, -+ 'free@GLIBC_2.2.5' => 0, -+ 'freeaddrinfo@GLIBC_2.2.5' => 0, -+ 'getaddrinfo@GLIBC_2.2.5' => 0, -+ 'getenv@GLIBC_2.2.5' => 0, -+ 'getpeername@GLIBC_2.2.5' => 0, -+ 'getrandom@GLIBC_2.25' => 0, -+ 'getsockname@GLIBC_2.2.5' => 0, -+ 'ibv_ack_cq_events@IBVERBS_1.1' => 0, -+ 'ibv_alloc_pd@IBVERBS_1.1' => 0, -+ 'ibv_attach_mcast@IBVERBS_1.1' => 0, -+ 'ibv_close_device@IBVERBS_1.1' => 0, -+ 'ibv_copy_ah_attr_from_kern@IBVERBS_1.1' => 0, -+ 'ibv_copy_path_rec_from_kern@IBVERBS_1.0' => 0, -+ 'ibv_copy_qp_attr_from_kern@IBVERBS_1.0' => 0, -+ 'ibv_create_ah@IBVERBS_1.1' => 0, -+ 'ibv_create_comp_channel@IBVERBS_1.0' => 0, -+ 'ibv_create_cq@IBVERBS_1.1' => 0, -+ 'ibv_create_qp@IBVERBS_1.1' => 0, -+ 'ibv_create_srq@IBVERBS_1.1' => 0, -+ 'ibv_dealloc_pd@IBVERBS_1.1' => 0, -+ 'ibv_dereg_mr@IBVERBS_1.1' => 0, -+ 'ibv_destroy_ah@IBVERBS_1.1' => 0, -+ 'ibv_destroy_comp_channel@IBVERBS_1.0' => 0, -+ 'ibv_destroy_cq@IBVERBS_1.1' => 0, -+ 'ibv_destroy_qp@IBVERBS_1.1' => 0, -+ 'ibv_destroy_srq@IBVERBS_1.1' => 0, -+ 'ibv_detach_mcast@IBVERBS_1.1' => 0, -+ 'ibv_free_device_list@IBVERBS_1.1' => 0, -+ 'ibv_get_cq_event@IBVERBS_1.1' => 0, -+ 'ibv_get_device_guid@IBVERBS_1.1' => 0, -+ 'ibv_get_device_index@IBVERBS_1.9' => 0, -+ 'ibv_get_device_list@IBVERBS_1.1' => 0, -+ 'ibv_get_pkey_index@IBVERBS_1.5' => 0, -+ 'ibv_get_sysfs_path@IBVERBS_1.0' => 0, -+ 'ibv_modify_qp@IBVERBS_1.1' => 0, -+ 'ibv_open_device@IBVERBS_1.1' => 0, -+ 'ibv_query_device@IBVERBS_1.1' => 0, -+ 'ibv_query_ece@IBVERBS_1.10' => 0, -+ 'ibv_query_gid@IBVERBS_1.1' => 0, -+ 'ibv_query_port@IBVERBS_1.1' => 0, -+ 'ibv_read_sysfs_file@IBVERBS_1.0' => 0, -+ 'ibv_reg_mr@IBVERBS_1.1' => 0, -+ 'ibv_set_ece@IBVERBS_1.10' => 0, -+ 'in6addr_any@GLIBC_2.2.5' => 0, -+ 'in6addr_loopback@GLIBC_2.2.5' => 0, -+ 'inotify_add_watch@GLIBC_2.4' => 0, -+ 'inotify_init1@GLIBC_2.9' => 0, -+ 'malloc@GLIBC_2.2.5' => 0, -+ 'memcmp@GLIBC_2.2.5' => 0, -+ 'memcpy@GLIBC_2.14' => 0, -+ 'memset@GLIBC_2.2.5' => 0, -+ 'nl_connect' => 0, -+ 'nl_recvmsgs_default' => 0, -+ 'nl_send_auto' => 0, -+ 'nl_send_simple' => 0, -+ 'nl_socket_alloc' => 0, -+ 'nl_socket_disable_auto_ack' => 0, -+ 'nl_socket_disable_msg_peek' => 0, -+ 'nl_socket_free' => 0, -+ 'nl_socket_modify_cb' => 0, -+ 'nl_socket_modify_err_cb' => 0, -+ 'nla_get_string' => 0, -+ 'nla_get_u64' => 0, -+ 'nla_put' => 0, -+ 'nlmsg_alloc_simple' => 0, -+ 'nlmsg_free' => 0, -+ 'nlmsg_hdr' => 0, -+ 'nlmsg_parse' => 0, -+ 'open@GLIBC_2.2.5' => 0, -+ 'poll@GLIBC_2.2.5' => 0, -+ 'posix_memalign@GLIBC_2.2.5' => 0, -+ 'pthread_cond_destroy@GLIBC_2.3.2' => 0, -+ 'pthread_cond_init@GLIBC_2.3.2' => 0, -+ 'pthread_cond_signal@GLIBC_2.3.2' => 0, -+ 'pthread_cond_wait@GLIBC_2.3.2' => 0, -+ 'pthread_create@GLIBC_2.2.5' => 0, -+ 'pthread_join@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_destroy@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_init@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_lock@GLIBC_2.2.5' => 0, -+ 'pthread_mutex_unlock@GLIBC_2.2.5' => 0, -+ 'qsort@GLIBC_2.2.5' => 0, -+ 'rand_r@GLIBC_2.2.5' => 0, -+ 'read@GLIBC_2.2.5' => 0, -+ 'recv@GLIBC_2.2.5' => 0, -+ 'recvfrom@GLIBC_2.2.5' => 0, -+ 'sched_yield@GLIBC_2.2.5' => 0, -+ 'sem_destroy@GLIBC_2.2.5' => 0, -+ 'sem_init@GLIBC_2.2.5' => 0, -+ 'sem_post@GLIBC_2.2.5' => 0, -+ 'sem_wait@GLIBC_2.2.5' => 0, -+ 'send@GLIBC_2.2.5' => 0, -+ 'sendmsg@GLIBC_2.2.5' => 0, -+ 'setsockopt@GLIBC_2.2.5' => 0, -+ 'shutdown@GLIBC_2.2.5' => 0, -+ 'snprintf@GLIBC_2.2.5' => 0, -+ 'socket@GLIBC_2.2.5' => 0, -+ 'socketpair@GLIBC_2.2.5' => 0, -+ 'strdup@GLIBC_2.2.5' => 0, -+ 'strlen@GLIBC_2.2.5' => 0, -+ 'strtol@GLIBC_2.2.5' => 0, -+ 'sysconf@GLIBC_2.2.5' => 0, -+ 'tdelete@GLIBC_2.2.5' => 0, -+ 'tdestroy@GLIBC_2.2.5' => 0, -+ 'tfind@GLIBC_2.2.5' => 0, -+ 'time@GLIBC_2.2.5' => 0, -+ 'timerfd_create@GLIBC_2.8' => 0, -+ 'timerfd_settime@GLIBC_2.8' => 0, -+ 'tsearch@GLIBC_2.2.5' => 0, -+ 'write@GLIBC_2.2.5' => 0 -+ } -+ }, -+ 'WordSize' => '8' -+ }; --- -2.34.1 - diff --git a/0056-libhns-assign-doorbell-to-zero-when-allocate-it.patch b/0016-libhns-assign-doorbell-to-zero-when-allocate-it.patch similarity index 74% rename from 0056-libhns-assign-doorbell-to-zero-when-allocate-it.patch rename to 0016-libhns-assign-doorbell-to-zero-when-allocate-it.patch index 970550a904c0ecff9570de4c071fef2bf541546b..f86c1561ea36c20cfc2ee3d33b186b85dd3f03af 100644 --- a/0056-libhns-assign-doorbell-to-zero-when-allocate-it.patch +++ b/0016-libhns-assign-doorbell-to-zero-when-allocate-it.patch @@ -1,7 +1,7 @@ -From 82f027c27a2dc9eddc5c7d8859d5c8e0a8105b71 Mon Sep 17 00:00:00 2001 +From 0939af2a821e0b7b11d2320c11cbf99602dc1d08 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Tue, 26 Sep 2023 19:19:09 +0800 -Subject: [PATCH 4/5] libhns: assign doorbell to zero when allocate it +Subject: [PATCH 16/34] libhns: assign doorbell to zero when allocate it driver inclusion category: cleanup @@ -19,10 +19,10 @@ Signed-off-by: Chengchang Tang 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/providers/hns/hns_roce_u_db.c b/providers/hns/hns_roce_u_db.c -index f5acac2..73a71de 100644 +index 0314254..bbef988 100644 --- a/providers/hns/hns_roce_u_db.c +++ b/providers/hns/hns_roce_u_db.c -@@ -115,6 +115,8 @@ found: +@@ -116,6 +116,8 @@ found: out: pthread_mutex_unlock((pthread_mutex_t *)&ctx->db_list_mutex); @@ -32,10 +32,10 @@ index f5acac2..73a71de 100644 return db; } diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index e7a7388..7b58dd0 100644 +index 6b63f0d..8248b6e 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c -@@ -596,8 +596,6 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, +@@ -609,8 +609,6 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, goto err_db; } @@ -44,16 +44,16 @@ index e7a7388..7b58dd0 100644 ret = hns_roce_init_cq_swc(cq, attr); if (ret) goto err_swc; -@@ -938,8 +936,6 @@ static struct ibv_srq *create_srq(struct ibv_context *context, - if (!srq->db) +@@ -945,8 +943,6 @@ static struct ibv_srq *create_srq(struct ibv_context *context, + if (!srq->rdb) goto err_srq_buf; -- *srq->db = 0; +- *srq->rdb = 0; - ret = exec_srq_create_cmd(context, srq, init_attr); if (ret) goto err_srq_db; -@@ -1591,8 +1587,6 @@ static int qp_alloc_db(struct ibv_qp_init_attr_ex *attr, struct hns_roce_qp *qp, +@@ -1577,8 +1573,6 @@ static int qp_alloc_db(struct ibv_qp_init_attr_ex *attr, struct hns_roce_qp *qp, qp->sdb = hns_roce_alloc_db(ctx, HNS_ROCE_QP_TYPE_DB); if (!qp->sdb) return -ENOMEM; @@ -62,7 +62,7 @@ index e7a7388..7b58dd0 100644 } if (attr->cap.max_recv_sge) { -@@ -1604,8 +1598,6 @@ static int qp_alloc_db(struct ibv_qp_init_attr_ex *attr, struct hns_roce_qp *qp, +@@ -1590,8 +1584,6 @@ static int qp_alloc_db(struct ibv_qp_init_attr_ex *attr, struct hns_roce_qp *qp, return -ENOMEM; } @@ -72,5 +72,5 @@ index e7a7388..7b58dd0 100644 return 0; -- -2.25.1 +2.30.0 diff --git a/0057-libhns-Fix-missing-reset-notification.patch b/0017-libhns-Fix-missing-reset-notification.patch similarity index 79% rename from 0057-libhns-Fix-missing-reset-notification.patch rename to 0017-libhns-Fix-missing-reset-notification.patch index ee85da9d3c9ed411793961a254589cedc158e2ed..74d37c8b8f63423d98b84f0445c0a97b77eaaa58 100644 --- a/0057-libhns-Fix-missing-reset-notification.patch +++ b/0017-libhns-Fix-missing-reset-notification.patch @@ -1,7 +1,7 @@ -From de7b9a04b5bfd5cf40cc6c89dae3757f1823432a Mon Sep 17 00:00:00 2001 +From f842486076827430b4e965755a0d59bd863e3d45 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Tue, 26 Sep 2023 19:19:10 +0800 -Subject: [PATCH 5/5] libhns: Fix missing reset notification. +Subject: [PATCH 17/34] libhns: Fix missing reset notification. driver inclusion category: bugfix @@ -32,10 +32,10 @@ Signed-off-by: Chengchang Tang 3 files changed, 9 insertions(+) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 87f9ed8..0660081 100644 +index 66b64a9..06dd062 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c -@@ -226,6 +226,7 @@ static int init_reset_context(struct hns_roce_context *ctx, int cmd_fd, +@@ -100,6 +100,7 @@ static int init_reset_context(struct hns_roce_context *ctx, int cmd_fd, int page_size) { uint64_t reset_mmap_key = resp->reset_mmap_key; @@ -43,7 +43,7 @@ index 87f9ed8..0660081 100644 /* The reset mmap key is 0, which means it is not supported. */ if (reset_mmap_key == 0) -@@ -236,6 +237,9 @@ static int init_reset_context(struct hns_roce_context *ctx, int cmd_fd, +@@ -110,6 +111,9 @@ static int init_reset_context(struct hns_roce_context *ctx, int cmd_fd, if (ctx->reset_state == MAP_FAILED) return -ENOMEM; @@ -54,30 +54,30 @@ index 87f9ed8..0660081 100644 } diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index b3f21ba..5501d8e 100644 +index c99fd78..50eb678 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -235,6 +235,7 @@ struct hns_roce_dca_ctx { +@@ -214,6 +214,7 @@ struct hns_roce_cmd_flag { struct hns_roce_v2_reset_state { uint32_t is_reset; + uint32_t hw_ready; }; - struct hns_roce_cmd_flag { -@@ -278,6 +279,7 @@ struct hns_roce_context { - - struct hns_roce_dca_ctx dca_ctx; - + struct hns_roce_context { +@@ -249,6 +250,7 @@ struct hns_roce_context { + unsigned int cqe_size; + uint32_t config; + unsigned int max_inline_data; + bool use_new_reset_flag; bool reseted; }; diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 29b6268..ac40d5d 100644 +index db18c08..1ff007e 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1011,6 +1011,9 @@ static bool hns_roce_reseted(struct hns_roce_context *ctx) +@@ -903,6 +903,9 @@ static bool hns_roce_reseted(struct hns_roce_context *ctx) { struct hns_roce_v2_reset_state *state = ctx->reset_state; @@ -88,5 +88,5 @@ index 29b6268..ac40d5d 100644 ctx->reseted = true; -- -2.25.1 +2.30.0 diff --git a/0017-mlx5-Adjust-Crypto-BSF-size-if-signature-is-used.patch b/0017-mlx5-Adjust-Crypto-BSF-size-if-signature-is-used.patch deleted file mode 100644 index f0e5a871d77da9e70ef226f2251c9ca06617c4e5..0000000000000000000000000000000000000000 --- a/0017-mlx5-Adjust-Crypto-BSF-size-if-signature-is-used.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 349d850df17e2287bd6b02766e30be79b701cd6e Mon Sep 17 00:00:00 2001 -From: Maher Sanalla -Date: Sun, 19 Jun 2022 13:34:23 +0300 -Subject: mlx5: Adjust Crypto BSF size if signature is used - -[ Upstream commit b38f3439a983f42dd5ac8f93f0813a969720225f ] - -When a Mkey is configured with crypto and signature offload, the crypto -BSF size and signature BSF size should both be set to 128 Bytes. -Currently, when building the crypto BSF, we do not take into account -if signature mode is configured or not, and we set the crypto BSF size to -64 Bytes. - -The situation above does not affect crypto configuration on CX6 HCA, -but will obstruct crypto traffic in more recent HCA's such as -CX6Dx and onwards. - -Thus, check if signature mode is configured when building crypto bsf, -and set the bsf size accordingly. - -Fixes: b5f0a5875380 ("mlx5: Add crypto setter for MKey") -Signed-off-by: Maher Sanalla -Reviewed-by: Avihai Horon -Signed-off-by: Yishai Hadas -Signed-off-by: Nicolas Morey-Chaisemartin ---- - providers/mlx5/qp.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/providers/mlx5/qp.c b/providers/mlx5/qp.c -index d0e5a49..f9f3d1a 100644 ---- a/providers/mlx5/qp.c -+++ b/providers/mlx5/qp.c -@@ -2414,7 +2414,8 @@ static int mlx5_umr_fill_crypto_bsf(struct mlx5_crypto_bsf *crypto_bsf, - - memset(crypto_bsf, 0, sizeof(*crypto_bsf)); - -- crypto_bsf->bsf_size_type |= MLX5_BSF_SIZE_WITH_INLINE -+ crypto_bsf->bsf_size_type |= (block ? MLX5_BSF_SIZE_SIG_AND_CRYPTO : -+ MLX5_BSF_SIZE_WITH_INLINE) - << MLX5_BSF_SIZE_SHIFT; - crypto_bsf->bsf_size_type |= MLX5_BSF_TYPE_CRYPTO; - order = get_crypto_order(attr->encrypt_on_tx, --- -2.34.1 - diff --git a/0031-Update-kernel-headers.patch b/0018-Update-kernel-headers.patch similarity index 80% rename from 0031-Update-kernel-headers.patch rename to 0018-Update-kernel-headers.patch index 311287c0d227b5b0989bb528e7dccd8ef2688888..f34a7bcd35ed94a975cd113a98664981733901b3 100644 --- a/0031-Update-kernel-headers.patch +++ b/0018-Update-kernel-headers.patch @@ -1,7 +1,7 @@ -From 7d72b40d311875677135289874d4a69e4891b0de Mon Sep 17 00:00:00 2001 +From 5f4e4ff989d4278ef249add52ea2703b506d20fa Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 28 Nov 2022 21:52:20 +0800 -Subject: Update kernel headers +Subject: [PATCH 18/34] Update kernel headers driver inclusion category: feature @@ -15,24 +15,24 @@ mode"). Signed-off-by: Chengchang Tang Reviewed-by: Yangyang Li --- - kernel-headers/rdma/hns-abi.h | 84 ++++++++++++++++++++++++++++++++--- - 1 file changed, 78 insertions(+), 6 deletions(-) + kernel-headers/rdma/hns-abi.h | 72 +++++++++++++++++++++++++++++++++++ + 1 file changed, 72 insertions(+) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 9866c51..6950841 100644 +index 6f3729a..af7a6b0 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h -@@ -77,7 +77,9 @@ enum hns_roce_qp_cap_flags { - HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0, +@@ -105,7 +105,9 @@ enum hns_roce_qp_cap_flags { HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1, HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2, + HNS_ROCE_QP_CAP_SVE_DIRECT_WQE = 1 << 3, + HNS_ROCE_QP_CAP_DYNAMIC_CTX_ATTACH = 1 << 4, HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5, + HNS_ROCE_QP_CAP_DYNAMIC_CTX_DETACH = 1 << 6, }; struct hns_roce_ib_create_qp_resp { -@@ -95,33 +97,46 @@ struct hns_roce_ib_modify_qp_resp { +@@ -117,12 +119,15 @@ struct hns_roce_ib_modify_qp_resp { __u8 tc_mode; __u8 priority; __u8 reserved[6]; @@ -45,39 +45,31 @@ index 9866c51..6950841 100644 HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1, HNS_ROCE_CQE_INLINE_FLAGS = 1 << 2, + HNS_ROCE_UCTX_CONFIG_DCA = 1 << 3, + HNS_ROCE_UCTX_DYN_QP_PGSZ = 1 << 4, }; - enum { +@@ -130,6 +135,7 @@ enum { HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0, HNS_ROCE_RSP_RQ_INLINE_FLAGS = 1 << 1, HNS_ROCE_RSP_CQE_INLINE_FLAGS = 1 << 2, + HNS_ROCE_UCTX_RSP_DCA_FLAGS = HNS_ROCE_UCTX_CONFIG_DCA, + HNS_ROCE_UCTX_RSP_DYN_QP_PGSZ = HNS_ROCE_UCTX_DYN_QP_PGSZ, }; - struct hns_roce_ib_alloc_ucontext_resp { - __u32 qp_tab_size; - __u32 cqe_size; -- __u32 srq_tab_size; -- __u32 reserved; -- __u32 config; -- __u32 max_inline_data; -- __u8 mac_type; -- __u8 rsv1[7]; -+ __u32 srq_tab_size; -+ __u32 reserved; -+ __u32 config; -+ __u32 max_inline_data; -+ __u8 mac_type; -+ __u8 rsv1[7]; +@@ -143,11 +149,20 @@ struct hns_roce_ib_alloc_ucontext_resp { + __u8 rsv1; + __u8 congest_type; + __u8 rsv2[6]; + __u32 dca_qps; + __u32 dca_mmap_size; + __aligned_u64 dca_mmap_key; -+}; -+ -+enum hns_roce_uctx_comp_mask { -+ HNS_ROCE_ALLOC_UCTX_COMP_DCA_MAX_QPS = 1 << 0, + __aligned_u64 reset_mmap_key; }; ++enum hns_roce_uctx_comp_mask { ++ HNS_ROCE_ALLOC_UCTX_COMP_DCA_MAX_QPS = 1 << 0, ++}; ++ struct hns_roce_ib_alloc_ucontext { __u32 config; + __u32 comp; /* use hns_roce_uctx_comp_mask */ @@ -85,8 +77,8 @@ index 9866c51..6950841 100644 __u32 reserved; }; -@@ -129,4 +144,61 @@ struct hns_roce_ib_alloc_pd_resp { - __u32 pdn; +@@ -161,4 +176,61 @@ struct hns_roce_ib_create_ah_resp { + __u8 dmac[6]; }; +#define UVERBS_ID_NS_MASK 0xF000 diff --git a/0018-mlx5-DR-Fix-missing-comma-in-matcher-builder-dump-li.patch b/0018-mlx5-DR-Fix-missing-comma-in-matcher-builder-dump-li.patch deleted file mode 100644 index ecef7d696f0b3fe2d846132a0984b51eeafa7505..0000000000000000000000000000000000000000 --- a/0018-mlx5-DR-Fix-missing-comma-in-matcher-builder-dump-li.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 202637191a96aa1b8f1ee841d71ac8abdfad82bc Mon Sep 17 00:00:00 2001 -From: Muhammad Sammar -Date: Tue, 21 Jun 2022 12:30:39 +0300 -Subject: mlx5: DR, Fix missing comma in matcher builder dump line - -[ Upstream commit f50b33a69f12024d0b998d5d5062656a6aee6a92 ] - -Add missing comma to matcher builder dump line. - -Fixes: 6a1f3b4baa2e ("mlx5: Add support for dr_matcher to the steering dump API") -Reviewed-by: Erez Shitrit -Signed-off-by: Muhammad Sammar -Signed-off-by: Yishai Hadas -Signed-off-by: Nicolas Morey-Chaisemartin ---- - providers/mlx5/dr_dbg.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/providers/mlx5/dr_dbg.c b/providers/mlx5/dr_dbg.c -index 1e82e25..62e3f36 100644 ---- a/providers/mlx5/dr_dbg.c -+++ b/providers/mlx5/dr_dbg.c -@@ -410,7 +410,7 @@ static int dr_dump_matcher_builder(FILE *f, struct dr_ste_build *builder, - bool is_match = builder->htbl_type == DR_STE_HTBL_TYPE_MATCH; - int ret; - -- ret = fprintf(f, "%d,0x%" PRIx64 "%d,%d,0x%x,%d\n", -+ ret = fprintf(f, "%d,0x%" PRIx64 ",%d,%d,0x%x,%d\n", - DR_DUMP_REC_TYPE_MATCHER_BUILDER, - matcher_id, - index, --- -2.34.1 - diff --git a/0019-Install-xprtrdma-svcrdma-kmods-in-redhat-suse-dracut.patch b/0019-Install-xprtrdma-svcrdma-kmods-in-redhat-suse-dracut.patch deleted file mode 100644 index 5e9510ff845be8fd725a34de4dc795794e7f8cd4..0000000000000000000000000000000000000000 --- a/0019-Install-xprtrdma-svcrdma-kmods-in-redhat-suse-dracut.patch +++ /dev/null @@ -1,58 +0,0 @@ -From f6aa0ecbe50a3141d6a3a03f0282df3ec96b76df Mon Sep 17 00:00:00 2001 -From: Benjamin Gilbert -Date: Tue, 16 Aug 2022 23:20:45 -0400 -Subject: Install xprtrdma/svcrdma kmods in redhat/suse dracut modules - -[ Upstream commit aa40d6dab34d2a465e520ddb13858bd47c7b1c06 ] - -The rdma dracut module installs udev rules that can cause -rdma-load-modules@rdma.service to load kernel modules listed in rdma.conf. -That file mentions the xprtrdma and svcrdma modules (both of which are -aliases for rpcrdma in kernel 5.18) but the dracut module doesn't install -them in the initrd. If they're not installed by other means, this causes -warnings in the journal: - - systemd-modules-load[...]: Failed to find module 'xprtrdma' - systemd-modules-load[...]: Failed to find module 'svcrdma' - -Before systemd 244, it also causes rdma-load-modules@rdma.service to fail -entirely. - -Fix by explicitly installing those modules in the initrd. - -See also https://bugzilla.redhat.com/show_bug.cgi?id=2117375. - -Fixes: 8bb38f6cb1b2 ("redhat: update dracut setting") -Fixes: 775241089e26 ("suse: fix dracut support") -Signed-off-by: Benjamin Gilbert -Signed-off-by: Nicolas Morey-Chaisemartin ---- - redhat/rdma.modules-setup.sh | 2 +- - suse/module-setup.sh | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/redhat/rdma.modules-setup.sh b/redhat/rdma.modules-setup.sh -index 1dabb5d..4dab750 100644 ---- a/redhat/rdma.modules-setup.sh -+++ b/redhat/rdma.modules-setup.sh -@@ -29,5 +29,5 @@ install() { - - installkernel() { - hostonly='' instmods =drivers/infiniband =drivers/net/ethernet/mellanox =drivers/net/ethernet/chelsio =drivers/net/ethernet/cisco =drivers/net/ethernet/emulex =drivers/target -- hostonly='' instmods crc-t10dif crct10dif_common -+ hostonly='' instmods crc-t10dif crct10dif_common xprtrdma svcrdma - } -diff --git a/suse/module-setup.sh b/suse/module-setup.sh -index 26419bf..1e5c517 100644 ---- a/suse/module-setup.sh -+++ b/suse/module-setup.sh -@@ -27,5 +27,5 @@ install() { - - installkernel() { - hostonly='' instmods =drivers/infiniband =drivers/net/ethernet/mellanox =drivers/net/ethernet/chelsio =drivers/net/ethernet/cisco =drivers/net/ethernet/emulex =drivers/target -- hostonly='' instmods crc-t10dif crct10dif_common -+ hostonly='' instmods crc-t10dif crct10dif_common xprtrdma svcrdma - } --- -2.34.1 - diff --git a/0032-libhns-Introduce-DCA-for-RC-QP.patch b/0019-libhns-Introduce-DCA-for-RC-QP.patch similarity index 83% rename from 0032-libhns-Introduce-DCA-for-RC-QP.patch rename to 0019-libhns-Introduce-DCA-for-RC-QP.patch index 4799e1989c8d7d02157addf2d387ad8db4d23d22..b79e1993d1244db363cb77d02dfec9d7fa2434b3 100644 --- a/0032-libhns-Introduce-DCA-for-RC-QP.patch +++ b/0019-libhns-Introduce-DCA-for-RC-QP.patch @@ -1,7 +1,7 @@ -From 58de0f69573e8b76affe401a261f17f1a5cedc01 Mon Sep 17 00:00:00 2001 +From 7fb9e1dbd954b4bac065cc97d36d2896dd648f86 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 10 May 2021 17:13:09 +0800 -Subject: libhns: Introduce DCA for RC QP +Subject: [PATCH 19/34] libhns: Introduce DCA for RC QP driver inclusion category: feature @@ -24,16 +24,16 @@ has been polled. Signed-off-by: Chengchang Tang Reviewed-by: Yangyang Li --- - providers/hns/hns_roce_u.c | 59 ++++++++++++- - providers/hns/hns_roce_u.h | 21 +++++ + providers/hns/hns_roce_u.c | 56 ++++++++++--- + providers/hns/hns_roce_u.h | 20 +++++ providers/hns/hns_roce_u_buf.c | 147 +++++++++++++++++++++++++++++++++ - 3 files changed, 223 insertions(+), 4 deletions(-) + 3 files changed, 212 insertions(+), 11 deletions(-) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 3428bda..bd2b251 100644 +index 06dd062..afb14c0 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c -@@ -95,6 +95,53 @@ static const struct verbs_context_ops hns_common_ops = { +@@ -95,6 +95,40 @@ static const struct verbs_context_ops hns_common_ops = { .alloc_parent_domain = hns_roce_u_alloc_pad, }; @@ -71,23 +71,10 @@ index 3428bda..bd2b251 100644 + pthread_spin_destroy(&dca_ctx->lock); +} + -+static int hns_roce_mmap(struct hns_roce_device *hr_dev, -+ struct hns_roce_context *context, int cmd_fd) -+{ -+ int page_size = hr_dev->page_size; -+ -+ context->uar = mmap(NULL, page_size, PROT_READ | PROT_WRITE, -+ MAP_SHARED, cmd_fd, 0); -+ if (context->uar == MAP_FAILED) -+ return -ENOMEM; -+ -+ return 0; -+} -+ - static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) - { - uint32_t count_shift = hr_ilog32(entry_count); -@@ -119,7 +166,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + static int init_reset_context(struct hns_roce_context *ctx, int cmd_fd, + struct hns_roce_alloc_ucontext_resp *resp, + int page_size) +@@ -187,17 +221,11 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, return NULL; cmd.config |= HNS_ROCE_EXSGE_FLAGS | HNS_ROCE_RQ_INLINE_FLAGS | @@ -96,9 +83,19 @@ index 3428bda..bd2b251 100644 if (ibv_cmd_get_context(&context->ibv_ctx, &cmd.ibv_cmd, sizeof(cmd), &resp.ibv_resp, sizeof(resp))) goto err_free; -@@ -165,11 +212,12 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - context->max_srq_wr = dev_attrs.max_srq_wr; - context->max_srq_sge = dev_attrs.max_srq_sge; + +- if (init_reset_context(context, cmd_fd, &resp, hr_dev->page_size)) +- goto err_free; +- +- if (hns_roce_mmap(hr_dev, context, cmd_fd)) +- goto uar_free; +- + hr_dev->congest_type = resp.congest_type; + + if (!resp.cqe_size) +@@ -236,11 +264,15 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) + goto err_free; - context->uar = mmap(NULL, hr_dev->page_size, PROT_READ | PROT_WRITE, - MAP_SHARED, cmd_fd, 0); @@ -106,22 +103,26 @@ index 3428bda..bd2b251 100644 + if (init_dca_context(context, hr_dev->page_size)) goto err_free; -+ if (hns_roce_mmap(hr_dev, context, cmd_fd)) ++ if (init_reset_context(context, cmd_fd, &resp, hr_dev->page_size)) + goto dca_free; ++ ++ if (hns_roce_mmap(hr_dev, context, cmd_fd)) ++ goto uar_free; + pthread_spin_init(&context->uar_lock, PTHREAD_PROCESS_PRIVATE); verbs_set_ops(&context->ibv_ctx, &hns_common_ops); -@@ -177,6 +225,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - - return &context->ibv_ctx; - +@@ -251,7 +283,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + uar_free: + if (context->reset_state) + munmap(context->reset_state, hr_dev->page_size); +- +dca_free: + uninit_dca_context(context); err_free: verbs_uninit_context(&context->ibv_ctx); - free(context); -@@ -189,6 +239,7 @@ static void hns_roce_free_context(struct ibv_context *ibctx) + if (context->reset_state) +@@ -266,6 +299,7 @@ static void hns_roce_free_context(struct ibv_context *ibctx) struct hns_roce_context *context = to_hr_ctx(ibctx); munmap(context->uar, hr_dev->page_size); @@ -130,7 +131,7 @@ index 3428bda..bd2b251 100644 free(context); } diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 2edb07e..0e25ce5 100644 +index 50eb678..cead9ad 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h @@ -147,6 +147,10 @@ @@ -144,10 +145,11 @@ index 2edb07e..0e25ce5 100644 #define HNS_ROCE_QP_TABLE_BITS 8 #define HNS_ROCE_QP_TABLE_SIZE BIT(HNS_ROCE_QP_TABLE_BITS) -@@ -199,6 +203,18 @@ struct hns_roce_spinlock { +@@ -207,6 +211,18 @@ struct hns_roce_spinlock { int need_lock; }; ++ +#define HNS_DCA_MAX_MEM_SIZE ~0UL +#define HNS_DCA_DEFAULT_UNIT_PAGES 16 + @@ -159,20 +161,18 @@ index 2edb07e..0e25ce5 100644 + uint64_t max_size; + uint64_t curr_size; +}; -+ - struct hns_roce_context { - struct verbs_context ibv_ctx; - void *uar; -@@ -231,6 +247,8 @@ struct hns_roce_context { + struct hns_roce_cmd_flag { + uint32_t create_flags; + uint32_t congest_type_flags; +@@ -250,6 +266,7 @@ struct hns_roce_context { unsigned int cqe_size; uint32_t config; unsigned int max_inline_data; -+ + struct hns_roce_dca_ctx dca_ctx; + bool use_new_reset_flag; + bool reseted; }; - - struct hns_roce_td { -@@ -562,6 +580,9 @@ void hns_roce_qp_spinlock_destroy(struct hns_roce_qp *qp); +@@ -597,6 +614,9 @@ void hns_roce_qp_spinlock_destroy(struct hns_roce_qp *qp); void hns_roce_free_qp_buf(struct hns_roce_qp *qp, struct hns_roce_context *ctx); diff --git a/0033-libhns-Add-support-for-shrinking-DCA-memory-pool.patch b/0020-libhns-Add-support-for-shrinking-DCA-memory-pool.patch similarity index 92% rename from 0033-libhns-Add-support-for-shrinking-DCA-memory-pool.patch rename to 0020-libhns-Add-support-for-shrinking-DCA-memory-pool.patch index b2da30b1f16c4e99e5ad1121e46eea7676544a2a..b6a987ade25456ce258dde6496e61b66b7ffcd14 100644 --- a/0033-libhns-Add-support-for-shrinking-DCA-memory-pool.patch +++ b/0020-libhns-Add-support-for-shrinking-DCA-memory-pool.patch @@ -1,7 +1,7 @@ -From c8d7a2dc811a18ffd314b8764c961234e5f2ec77 Mon Sep 17 00:00:00 2001 +From 9f4da4c4d37f207a681a140ca324a2945d563a17 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 10 May 2021 17:13:13 +0800 -Subject: libhns: Add support for shrinking DCA memory pool +Subject: [PATCH 20/34] libhns: Add support for shrinking DCA memory pool driver inclusion category: feature @@ -23,18 +23,18 @@ Reviewed-by: Yangyang Li 3 files changed, 112 insertions(+) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 0e25ce5..7b5c5c9 100644 +index cead9ad..b0e66b1 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -212,6 +212,7 @@ struct hns_roce_dca_ctx { +@@ -221,6 +221,7 @@ struct hns_roce_dca_ctx { int mem_cnt; unsigned int unit_size; uint64_t max_size; + uint64_t min_size; uint64_t curr_size; }; - -@@ -580,6 +581,7 @@ void hns_roce_qp_spinlock_destroy(struct hns_roce_qp *qp); + struct hns_roce_cmd_flag { +@@ -614,6 +615,7 @@ void hns_roce_qp_spinlock_destroy(struct hns_roce_qp *qp); void hns_roce_free_qp_buf(struct hns_roce_qp *qp, struct hns_roce_context *ctx); @@ -175,10 +175,10 @@ index 02c43ae..c0f86e9 100644 + } +} diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 7b2f2d1..f3a7e6b 100644 +index 1ff007e..9609eb9 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -738,6 +738,10 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, +@@ -944,6 +944,10 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, hns_roce_spin_unlock(&cq->hr_lock); @@ -189,7 +189,7 @@ index 7b2f2d1..f3a7e6b 100644 return err == V2_CQ_POLL_ERR ? err : npolled; } -@@ -1674,6 +1678,9 @@ static int hns_roce_u_v2_destroy_qp(struct ibv_qp *ibqp) +@@ -1895,6 +1899,9 @@ static int hns_roce_u_v2_destroy_qp(struct ibv_qp *ibqp) free(qp); diff --git a/0020-providers-irdma-Explicitly-set-QP-modify-attributes-.patch b/0020-providers-irdma-Explicitly-set-QP-modify-attributes-.patch deleted file mode 100644 index 108b6e482288a0afab92a578a74e0d56580f5a41..0000000000000000000000000000000000000000 --- a/0020-providers-irdma-Explicitly-set-QP-modify-attributes-.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 94b468fad35b00bd43d28b9e680a4921baaf75c4 Mon Sep 17 00:00:00 2001 -From: Sindhu-Devale -Date: Thu, 8 Sep 2022 15:44:12 -0400 -Subject: providers/irdma: Explicitly set QP modify attributes for reflush - -[ Upstream commit 1ffbbce65e60ee031be70a2bfb6ec319306e4378 ] - -irdma issues a reflush via a modify QP to ERROR op to report completions for -WR's posted once the QP is in error state. - -However, this reflush modify attributes is incorrectly keyed off the last QP -QP attributes by an application which might or might not be a modify to error. -In the later case, a flush WQE is missed. - -Explicitly set the attr.qp_state and attr_mask during a reflush modify -to move the QP to error state once its in error state. Remove ibv_qp -attributes from irdma_uqp struct - -Fixes: 14a0fc8 ("rdma-core/irdma: Implement device supported verb APIs") -Signed-off-by: Shiraz Saleem -Signed-off-by: Tatyana Nikolova -Signed-off-by: Sindhu-Devale -Signed-off-by: Nicolas Morey-Chaisemartin ---- - providers/irdma/umain.h | 2 -- - providers/irdma/uverbs.c | 9 +++------ - 2 files changed, 3 insertions(+), 8 deletions(-) - -diff --git a/providers/irdma/umain.h b/providers/irdma/umain.h -index 9e802fd..109e2f1 100644 ---- a/providers/irdma/umain.h -+++ b/providers/irdma/umain.h -@@ -88,7 +88,6 @@ struct irdma_ucq { - - struct irdma_uqp { - struct ibv_qp ibv_qp; -- struct ibv_qp_attr attr; - struct irdma_ucq *send_cq; - struct irdma_ucq *recv_cq; - struct verbs_mr vmr; -@@ -103,7 +102,6 @@ struct irdma_uqp { - struct ibv_recv_wr *pend_rx_wr; - struct irdma_qp_uk qp; - enum ibv_qp_type qp_type; -- enum ibv_qp_attr_mask attr_mask; - struct irdma_sge *recv_sges; - }; - -diff --git a/providers/irdma/uverbs.c b/providers/irdma/uverbs.c -index 040b4ec..c2b326d 100644 ---- a/providers/irdma/uverbs.c -+++ b/providers/irdma/uverbs.c -@@ -1416,12 +1416,9 @@ int irdma_umodify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, int attr_mask) - struct irdma_uvcontext *iwctx; - struct irdma_uqp *iwuqp; - -- - iwuqp = container_of(qp, struct irdma_uqp, ibv_qp); - iwctx = container_of(qp->context, struct irdma_uvcontext, - ibv_ctx.context); -- iwuqp->attr_mask = attr_mask; -- memcpy(&iwuqp->attr, attr, sizeof(iwuqp->attr)); - - if (iwuqp->qp.qp_caps & IRDMA_PUSH_MODE && - attr_mask & IBV_QP_STATE && iwctx->uk_attrs.hw_rev > IRDMA_GEN_1) { -@@ -1464,13 +1461,13 @@ static void irdma_issue_flush(struct ibv_qp *qp, bool sq_flush, bool rq_flush) - { - struct ib_uverbs_ex_modify_qp_resp resp = {}; - struct irdma_umodify_qp cmd_ex = {}; -- struct irdma_uqp *iwuqp; -+ struct ibv_qp_attr attr = {}; - -+ attr.qp_state = IBV_QPS_ERR; - cmd_ex.sq_flush = sq_flush; - cmd_ex.rq_flush = rq_flush; -- iwuqp = container_of(qp, struct irdma_uqp, ibv_qp); - -- ibv_cmd_modify_qp_ex(qp, &iwuqp->attr, iwuqp->attr_mask, -+ ibv_cmd_modify_qp_ex(qp, &attr, IBV_QP_STATE, - &cmd_ex.ibv_cmd, sizeof(cmd_ex), - &resp, sizeof(resp)); - } --- -2.34.1 - diff --git a/0034-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch b/0021-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch similarity index 81% rename from 0034-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch rename to 0021-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch index 65aa2b237acd7ce9b1e6c687b78f26762f63611a..9cd55a3a97065f02215a94f98c6e88efb0f98cd0 100644 --- a/0034-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch +++ b/0021-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch @@ -1,7 +1,7 @@ -From 835bc1a62dfc3398ef9da23de07348a353f67214 Mon Sep 17 00:00:00 2001 +From 1d7c4684574699a66399ec2b817269453856c2a2 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 10 May 2021 17:13:17 +0800 -Subject: libhns: Add support for attaching QP's WQE buffer +Subject: [PATCH 21/34] libhns: Add support for attaching QP's WQE buffer driver inclusion category: feature @@ -19,16 +19,16 @@ Reviewed-by: Yangyang Li --- providers/hns/hns_roce_u.h | 26 ++++- providers/hns/hns_roce_u_buf.c | 173 ++++++++++++++++++++++++++++++- - providers/hns/hns_roce_u_hw_v2.c | 151 ++++++++++++++++++++++++--- + providers/hns/hns_roce_u_hw_v2.c | 125 +++++++++++++++++++++- providers/hns/hns_roce_u_hw_v2.h | 2 + providers/hns/hns_roce_u_verbs.c | 32 ++++-- - 5 files changed, 358 insertions(+), 26 deletions(-) + 5 files changed, 345 insertions(+), 13 deletions(-) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 7b5c5c9..44a733f 100644 +index b0e66b1..cd16d17 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -348,11 +348,18 @@ struct hns_roce_sge_ex { +@@ -375,11 +375,18 @@ struct hns_roce_sge_ex { unsigned int sge_shift; }; @@ -48,7 +48,7 @@ index 7b5c5c9..44a733f 100644 unsigned int sq_signal_bits; struct hns_roce_wq sq; struct hns_roce_wq rq; -@@ -401,11 +408,22 @@ struct hns_roce_u_hw { +@@ -433,11 +440,22 @@ struct hns_roce_u_hw { struct verbs_context_ops hw_ops; }; @@ -71,7 +71,7 @@ index 7b5c5c9..44a733f 100644 static inline unsigned int to_hr_hem_entries_size(int count, int buf_shift) { -@@ -581,9 +599,13 @@ void hns_roce_qp_spinlock_destroy(struct hns_roce_qp *qp); +@@ -615,9 +633,13 @@ void hns_roce_qp_spinlock_destroy(struct hns_roce_qp *qp); void hns_roce_free_qp_buf(struct hns_roce_qp *qp, struct hns_roce_context *ctx); @@ -282,10 +282,10 @@ index c0f86e9..3d41b89 100644 + return setup_dca_buf(ctx, handle, buf, buf_pages); +} diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index f3a7e6b..7e3ad92 100644 +index 9609eb9..b58556e 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -197,19 +197,35 @@ static struct hns_roce_v2_cqe *next_cqe_sw_v2(struct hns_roce_cq *cq) +@@ -199,19 +199,35 @@ static struct hns_roce_v2_cqe *next_cqe_sw_v2(struct hns_roce_cq *cq) return get_sw_cqe_v2(cq, cq->cons_index); } @@ -324,7 +324,7 @@ index f3a7e6b..7e3ad92 100644 } static void *get_srq_wqe(struct hns_roce_srq *srq, unsigned int n) -@@ -569,6 +585,73 @@ static void parse_cqe_for_req(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, +@@ -592,6 +608,73 @@ static void parse_cqe_for_req(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, wc->opcode = wc_send_op_map[opcode]; } @@ -398,7 +398,7 @@ index f3a7e6b..7e3ad92 100644 static void cqe_proc_sq(struct hns_roce_qp *hr_qp, uint32_t wqe_idx, struct hns_roce_cq *cq) { -@@ -725,6 +808,9 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, +@@ -931,6 +1014,9 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, for (npolled = 0; npolled < ne; ++npolled) { err = hns_roce_poll_one(ctx, &qp, cq, wc + npolled); @@ -408,33 +408,19 @@ index f3a7e6b..7e3ad92 100644 if (err != V2_CQ_OK) break; } -@@ -768,19 +854,30 @@ static int hns_roce_u_v2_arm_cq(struct ibv_cq *ibvcq, int solicited) - return 0; - } - --static int check_qp_send(struct ibv_qp *qp, struct hns_roce_context *ctx) -+static int check_qp_send(struct hns_roce_qp *qp, struct hns_roce_context *ctx) - { -- if (unlikely(qp->qp_type != IBV_QPT_RC && -- qp->qp_type != IBV_QPT_UD) && -- qp->qp_type != IBV_QPT_XRC_SEND) -+ struct ibv_qp *ibvqp = &qp->verbs_qp.qp; -+ int ret = 0; -+ -+ if (unlikely(ibvqp->qp_type != IBV_QPT_RC && -+ ibvqp->qp_type != IBV_QPT_UD) && -+ ibvqp->qp_type != IBV_QPT_XRC_SEND) - return -EINVAL; - -- if (unlikely(qp->state == IBV_QPS_RESET || -- qp->state == IBV_QPS_INIT || -- qp->state == IBV_QPS_RTR)) -+ if (unlikely(ibvqp->state == IBV_QPS_RESET || -+ ibvqp->state == IBV_QPS_INIT || -+ ibvqp->state == IBV_QPS_RTR)) - return -EINVAL; +@@ -982,7 +1068,7 @@ static int check_qp_send(struct hns_roce_qp *qp, struct hns_roce_context *ctx) + + if (unlikely(ibvqp->state == IBV_QPS_RESET || + ibvqp->state == IBV_QPS_INIT || +- ibvqp->state == IBV_QPS_RTR)){ ++ ibvqp->state == IBV_QPS_RTR)) { + verbs_err(verbs_get_ctx(qp->verbs_qp.qp.context), + "unsupported qp state, state = %d.\n", ibvqp->state); + return EINVAL; +@@ -992,6 +1078,14 @@ static int check_qp_send(struct hns_roce_qp *qp, struct hns_roce_context *ctx) + return EIO; + } -- return 0; + if (check_dca_attach_enable(qp)) { + ret = dca_attach_qp_buf(ctx, qp); + if (ret) @@ -443,11 +429,10 @@ index f3a7e6b..7e3ad92 100644 + qp->verbs_qp.qp.qp_num, ret); + } + -+ return ret; + return ret; } - static void set_rc_sge(struct hns_roce_v2_wqe_data_seg *dseg, -@@ -1148,6 +1245,13 @@ static int set_rc_inl(struct hns_roce_qp *qp, const struct ibv_send_wr *wr, +@@ -1363,6 +1457,13 @@ static int set_rc_inl(struct hns_roce_qp *qp, const struct ibv_send_wr *wr, return 0; } @@ -461,7 +446,7 @@ index f3a7e6b..7e3ad92 100644 static void set_bind_mw_seg(struct hns_roce_rc_sq_wqe *wqe, const struct ibv_send_wr *wr) { -@@ -1259,6 +1363,9 @@ static int set_rc_wqe(void *wqe, struct hns_roce_qp *qp, struct ibv_send_wr *wr, +@@ -1470,6 +1571,9 @@ static int set_rc_wqe(void *wqe, struct hns_roce_qp *qp, struct ibv_send_wr *wr, return ret; wqe_valid: @@ -471,50 +456,22 @@ index f3a7e6b..7e3ad92 100644 enable_wqe(qp, rc_sq_wqe, qp->sq.head + nreq); return 0; -@@ -1275,7 +1382,7 @@ int hns_roce_u_v2_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr, - struct ibv_qp_attr attr; - int ret; - -- ret = check_qp_send(ibvqp, ctx); -+ ret = check_qp_send(qp, ctx); - if (unlikely(ret)) { - *bad_wr = wr; - return ret; -@@ -1352,15 +1459,20 @@ out: - return ret; - } - --static int check_qp_recv(struct ibv_qp *qp, struct hns_roce_context *ctx) -+static int check_qp_recv(struct hns_roce_qp *qp, struct hns_roce_context *ctx) - { -- if (unlikely(qp->qp_type != IBV_QPT_RC && -- qp->qp_type != IBV_QPT_UD)) -+ struct ibv_qp *ibvqp = &qp->verbs_qp.qp; -+ -+ if (unlikely(ibvqp->qp_type != IBV_QPT_RC && -+ ibvqp->qp_type != IBV_QPT_UD)) - return -EINVAL; - -- if (qp->state == IBV_QPS_RESET || qp->srq) -+ if (ibvqp->state == IBV_QPS_RESET || ibvqp->srq) - return -EINVAL; +@@ -1579,6 +1683,14 @@ static int check_qp_recv(struct hns_roce_qp *qp, struct hns_roce_context *ctx) + return EIO; + } -+ if (check_dca_attach_enable(qp)) -+ return dca_attach_qp_buf(ctx, qp); ++ if (check_dca_attach_enable(qp)) { ++ ret = dca_attach_qp_buf(ctx, qp); ++ if (ret) ++ verbs_err_datapath(&ctx->ibv_ctx, ++ "failed to attach QP-%u recv, ret = %d.\n", ++ qp->verbs_qp.qp.qp_num, ret); ++ } + - return 0; + return ret; } -@@ -1428,7 +1540,7 @@ static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, - struct ibv_qp_attr attr; - int ret; - -- ret = check_qp_recv(ibvqp, ctx); -+ ret = check_qp_recv(qp, ctx); - if (unlikely(ret)) { - *bad_wr = wr; - return ret; -@@ -1551,6 +1663,7 @@ static void record_qp_attr(struct ibv_qp *qp, struct ibv_qp_attr *attr, +@@ -1770,6 +1882,7 @@ static void record_qp_attr(struct ibv_qp *qp, struct ibv_qp_attr *attr, static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, int attr_mask) { @@ -522,7 +479,7 @@ index f3a7e6b..7e3ad92 100644 struct hns_roce_modify_qp_ex_resp resp_ex = {}; struct hns_roce_modify_qp_ex cmd_ex = {}; struct hns_roce_qp *hr_qp = to_hr_qp(qp); -@@ -1598,6 +1711,10 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, +@@ -1819,6 +1932,10 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, if (hr_qp->tc_mode == HNS_ROCE_TC_MAP_MODE_DSCP) hr_qp->sl = hr_qp->priority; @@ -534,10 +491,10 @@ index f3a7e6b..7e3ad92 100644 return ret; diff --git a/providers/hns/hns_roce_u_hw_v2.h b/providers/hns/hns_roce_u_hw_v2.h -index d71c695..a22995d 100644 +index 1a7b828..50a920f 100644 --- a/providers/hns/hns_roce_u_hw_v2.h +++ b/providers/hns/hns_roce_u_hw_v2.h -@@ -239,6 +239,8 @@ struct hns_roce_rc_sq_wqe { +@@ -237,6 +237,8 @@ struct hns_roce_rc_sq_wqe { #define RCWQE_MW_RR_EN RCWQE_FIELD_LOC(259, 259) #define RCWQE_MW_RW_EN RCWQE_FIELD_LOC(260, 260) @@ -547,10 +504,10 @@ index d71c695..a22995d 100644 __le32 len; __le32 lkey; diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index f6c7423..749b01b 100644 +index 8248b6e..fed39aa 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c -@@ -1165,6 +1165,14 @@ static int calc_qp_buff_size(struct hns_roce_device *hr_dev, +@@ -1383,6 +1383,14 @@ static int calc_qp_buff_size(struct hns_roce_device *hr_dev, return 0; } @@ -565,7 +522,7 @@ index f6c7423..749b01b 100644 static void qp_free_wqe(struct hns_roce_qp *qp) { free_recv_rinl_buf(&qp->rq_rinl_buf); -@@ -1176,8 +1184,8 @@ static void qp_free_wqe(struct hns_roce_qp *qp) +@@ -1394,8 +1402,8 @@ static void qp_free_wqe(struct hns_roce_qp *qp) hns_roce_free_buf(&qp->buf); } @@ -576,7 +533,7 @@ index f6c7423..749b01b 100644 { struct hns_roce_device *hr_dev = to_hr_dev(ctx->ibv_ctx.context.device); -@@ -1195,12 +1203,24 @@ static int qp_alloc_wqe(struct ibv_qp_cap *cap, struct hns_roce_qp *qp, +@@ -1413,12 +1421,24 @@ static int qp_alloc_wqe(struct ibv_qp_cap *cap, struct hns_roce_qp *qp, } if (qp->rq_rinl_buf.wqe_cnt) { @@ -586,7 +543,7 @@ index f6c7423..749b01b 100644 goto err_alloc; } -- if (hns_roce_alloc_buf(&qp->buf, qp->buf_size, HNS_HW_PAGE_SIZE)) +- if (hns_roce_alloc_buf(&qp->buf, qp->buf_size, 1 << qp->pageshift)) - goto err_alloc; + if (check_qp_support_dca(ctx->dca_ctx.max_size != 0, attr->qp_type)) { + /* when DCA is enabled, use a buffer list to store page addr */ @@ -604,9 +561,9 @@ index f6c7423..749b01b 100644 return 0; -@@ -1467,7 +1487,7 @@ static int hns_roce_alloc_qp_buf(struct ibv_qp_init_attr_ex *attr, - pthread_spin_init(&qp->rq.hr_lock.lock, PTHREAD_PROCESS_PRIVATE)) - return -ENOMEM; +@@ -1682,7 +1702,7 @@ static int hns_roce_alloc_qp_buf(struct ibv_qp_init_attr_ex *attr, + { + int ret; - ret = qp_alloc_wqe(&attr->cap, qp, ctx); + ret = qp_alloc_wqe(attr, qp, ctx); diff --git a/0021-providers-irdma-Use-s-g-array-in-post-send-only-when.patch b/0021-providers-irdma-Use-s-g-array-in-post-send-only-when.patch deleted file mode 100644 index be9d4af5104fe3ac22d50e5b93233b39ac916121..0000000000000000000000000000000000000000 --- a/0021-providers-irdma-Use-s-g-array-in-post-send-only-when.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 660ac56e1ee71a177554432e9b9994aea1bdd0d4 Mon Sep 17 00:00:00 2001 -From: Sindhu-Devale -Date: Thu, 8 Sep 2022 17:22:32 -0400 -Subject: providers/irdma: Use s/g array in post send only when its valid - -[ Upstream commit 7bc6e3b49cdac9776e740e9d886e3676524996f8 ] - -Send with invalidate verb call can pass in an -uninitialized s/g array with 0 sge's which is -filled into irdma WQE and causes a HW asynchronous event. - -Fix this by using the s/g array in irdma post send only when its valid. - -Fixes: 3bebdf5 ("rdma-core/irdma: Add user/kernel shared libraries") -Signed-off-by: Tatyana Nikolova tatyana.e.nikolova@intel.com -Signed-off-by: Sindhu-Devale -Signed-off-by: Nicolas Morey-Chaisemartin ---- - providers/irdma/uk.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/providers/irdma/uk.c b/providers/irdma/uk.c -index beda34b..43ea45a 100644 ---- a/providers/irdma/uk.c -+++ b/providers/irdma/uk.c -@@ -476,7 +476,8 @@ enum irdma_status_code irdma_uk_send(struct irdma_qp_uk *qp, - FIELD_PREP(IRDMAQPSQ_IMMDATA, info->imm_data)); - i = 0; - } else { -- qp->wqe_ops.iw_set_fragment(wqe, 0, op_info->sg_list, -+ qp->wqe_ops.iw_set_fragment(wqe, 0, -+ frag_cnt ? op_info->sg_list : NULL, - qp->swqe_polarity); - i = 1; - } --- -2.34.1 - diff --git a/0035-libhns-Use-shared-memory-to-sync-DCA-status.patch b/0022-libhns-Use-shared-memory-to-sync-DCA-status.patch similarity index 88% rename from 0035-libhns-Use-shared-memory-to-sync-DCA-status.patch rename to 0022-libhns-Use-shared-memory-to-sync-DCA-status.patch index 635c0807ee0242800cb9cc6079425bcc64dff91b..9849b1e8120fd4ab18424ff6e49f0f051aedf80b 100644 --- a/0035-libhns-Use-shared-memory-to-sync-DCA-status.patch +++ b/0022-libhns-Use-shared-memory-to-sync-DCA-status.patch @@ -1,7 +1,7 @@ -From a5e62921afc2fcc152e8b0584f2d04d1a4db4f10 Mon Sep 17 00:00:00 2001 +From aeff290c2006401a1bb030c9a641c06a855feca1 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Tue, 29 Jun 2021 20:06:47 +0800 -Subject: libhns: Use shared memory to sync DCA status +Subject: [PATCH 22/34] libhns: Use shared memory to sync DCA status driver inclusion category: feature @@ -22,7 +22,7 @@ Reviewed-by: Yangyang Li 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index bd2b251..fe30cda 100644 +index afb14c0..7437584 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c @@ -95,9 +95,33 @@ static const struct verbs_context_ops hns_common_ops = { @@ -86,7 +86,7 @@ index bd2b251..fe30cda 100644 pthread_spin_destroy(&dca_ctx->lock); } -@@ -149,6 +185,14 @@ static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) +@@ -204,6 +240,14 @@ static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) return count_shift > size_shift ? count_shift - size_shift : 0; } @@ -101,7 +101,7 @@ index bd2b251..fe30cda 100644 static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, int cmd_fd, void *private_data) -@@ -165,8 +209,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, +@@ -220,8 +264,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, if (!context) return NULL; @@ -111,17 +111,17 @@ index bd2b251..fe30cda 100644 if (ibv_cmd_get_context(&context->ibv_ctx, &cmd.ibv_cmd, sizeof(cmd), &resp.ibv_resp, sizeof(resp))) goto err_free; -@@ -212,7 +255,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - context->max_srq_wr = dev_attrs.max_srq_wr; - context->max_srq_sge = dev_attrs.max_srq_sge; +@@ -264,7 +307,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) + goto err_free; - if (init_dca_context(context, hr_dev->page_size)) + if (init_dca_context(context, cmd_fd, &resp, hr_dev->page_size)) goto err_free; - if (hns_roce_mmap(hr_dev, context, cmd_fd)) + if (init_reset_context(context, cmd_fd, &resp, hr_dev->page_size)) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 44a733f..a8f811e 100644 +index cd16d17..966afb0 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h @@ -35,6 +35,7 @@ @@ -149,7 +149,7 @@ index 44a733f..a8f811e 100644 /* The minimum page size is 4K for hardware */ #define HNS_HW_PAGE_SHIFT 12 #define HNS_HW_PAGE_SIZE (1 << HNS_HW_PAGE_SHIFT) -@@ -214,6 +218,12 @@ struct hns_roce_dca_ctx { +@@ -223,6 +227,12 @@ struct hns_roce_dca_ctx { uint64_t max_size; uint64_t min_size; uint64_t curr_size; @@ -160,8 +160,8 @@ index 44a733f..a8f811e 100644 + atomic_bitmap_t *buf_status; + atomic_bitmap_t *sync_status; }; - - struct hns_roce_context { + struct hns_roce_cmd_flag { + uint32_t create_flags; -- 2.30.0 diff --git a/0022-providers-irdma-Report-correct-WC-errors.patch b/0022-providers-irdma-Report-correct-WC-errors.patch deleted file mode 100644 index 97f4292db59acade2d535749e879c07afa603fb6..0000000000000000000000000000000000000000 --- a/0022-providers-irdma-Report-correct-WC-errors.patch +++ /dev/null @@ -1,52 +0,0 @@ -From b3dd8cf57c07055372f93aba508572274a59f7b5 Mon Sep 17 00:00:00 2001 -From: Sindhu-Devale -Date: Thu, 8 Sep 2022 17:39:40 -0400 -Subject: providers/irdma: Report correct WC errors - -[ Upstream commit 7f9761eb541413bf113a6ba841791bd5fd47872e ] - -Return specific WC errors for certain type of error -events. - -In particular, - -Return IBV_WC_REM_INV_REQ_ERR for an invalid -request related asynchronous event. - -Fixes: 14a0fc8 ("rdma-core/irdma: Implement device supported verb APIs") -Signed-off-by: Tatyana Nikolova -Signed-off-by: Sindhu-Devale -Signed-off-by: Nicolas Morey-Chaisemartin ---- - providers/irdma/user.h | 1 + - providers/irdma/uverbs.c | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/providers/irdma/user.h b/providers/irdma/user.h -index 2506d48..f8bbc27 100644 ---- a/providers/irdma/user.h -+++ b/providers/irdma/user.h -@@ -106,6 +106,7 @@ enum irdma_flush_opcode { - FLUSH_FATAL_ERR, - FLUSH_RETRY_EXC_ERR, - FLUSH_MW_BIND_ERR, -+ FLUSH_REM_INV_REQ_ERR, - }; - - enum irdma_cmpl_status { -diff --git a/providers/irdma/uverbs.c b/providers/irdma/uverbs.c -index c2b326d..1b36bca 100644 ---- a/providers/irdma/uverbs.c -+++ b/providers/irdma/uverbs.c -@@ -560,6 +560,8 @@ static enum ibv_wc_status irdma_flush_err_to_ib_wc_status(enum irdma_flush_opcod - return IBV_WC_RETRY_EXC_ERR; - case FLUSH_MW_BIND_ERR: - return IBV_WC_MW_BIND_ERR; -+ case FLUSH_REM_INV_REQ_ERR: -+ return IBV_WC_REM_INV_REQ_ERR; - case FLUSH_FATAL_ERR: - default: - return IBV_WC_FATAL_ERR; --- -2.34.1 - diff --git a/0036-libhns-Sync-DCA-status-by-shared-memory.patch b/0023-libhns-Sync-DCA-status-by-shared-memory.patch similarity index 89% rename from 0036-libhns-Sync-DCA-status-by-shared-memory.patch rename to 0023-libhns-Sync-DCA-status-by-shared-memory.patch index e9108f8811707b0cd926b3a84a0127873a24d476..6987c13db4fab7ea7f3d82acbfa1c2def9860ded 100644 --- a/0036-libhns-Sync-DCA-status-by-shared-memory.patch +++ b/0023-libhns-Sync-DCA-status-by-shared-memory.patch @@ -1,7 +1,7 @@ -From 13d4b60fcd0880fae54b1af627eeb7297d7b086d Mon Sep 17 00:00:00 2001 +From 604a78a190525ea184fdfaaffe895443d8391981 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Tue, 29 Jun 2021 21:01:27 +0800 -Subject: libhns: Sync DCA status by shared memory +Subject: [PATCH 23/34] libhns: Sync DCA status by shared memory driver inclusion category: feature @@ -27,10 +27,10 @@ Reviewed-by: Yangyang Li 3 files changed, 92 insertions(+), 1 deletion(-) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index a8f811e..91b0c8f 100644 +index 966afb0..7dd8199 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -362,6 +362,7 @@ struct hns_roce_dca_buf { +@@ -389,6 +389,7 @@ struct hns_roce_dca_buf { void **bufs; unsigned int max_cnt; unsigned int shift; @@ -38,7 +38,7 @@ index a8f811e..91b0c8f 100644 }; struct hns_roce_qp { -@@ -422,6 +423,7 @@ struct hns_roce_dca_attach_attr { +@@ -454,6 +455,7 @@ struct hns_roce_dca_attach_attr { uint32_t sq_offset; uint32_t sge_offset; uint32_t rq_offset; @@ -46,9 +46,9 @@ index a8f811e..91b0c8f 100644 }; struct hns_roce_dca_detach_attr { -@@ -534,6 +536,32 @@ static inline int hns_roce_spin_unlock(struct hns_roce_spinlock *hr_lock) - return 0; - } +@@ -568,6 +570,32 @@ static inline int hns_roce_spin_unlock(struct hns_roce_spinlock *hr_lock) + + bool is_hns_dev(struct ibv_device *device); +#define HNS_ROCE_BIT_MASK(nr) (1UL << ((nr) % 64)) +#define HNS_ROCE_BIT_WORD(nr) ((nr) / 64) @@ -79,7 +79,7 @@ index a8f811e..91b0c8f 100644 int hns_roce_u_query_device(struct ibv_context *context, const struct ibv_query_device_ex_input *input, struct ibv_device_attr_ex *attr, size_t attr_size); -@@ -614,6 +642,9 @@ int hns_roce_attach_dca_mem(struct hns_roce_context *ctx, uint32_t handle, +@@ -648,6 +676,9 @@ int hns_roce_attach_dca_mem(struct hns_roce_context *ctx, uint32_t handle, uint32_t size, struct hns_roce_dca_buf *buf); void hns_roce_detach_dca_mem(struct hns_roce_context *ctx, uint32_t handle, struct hns_roce_dca_detach_attr *attr); @@ -150,10 +150,10 @@ index 3d41b89..08c0fbc 100644 resp.alloc_pages = 0; ret = attach_dca_mem(ctx, handle, attr, &resp); diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 7e3ad92..028d20c 100644 +index b58556e..913e300 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -601,6 +601,7 @@ static int dca_attach_qp_buf(struct hns_roce_context *ctx, +@@ -624,6 +624,7 @@ static int dca_attach_qp_buf(struct hns_roce_context *ctx, struct hns_roce_qp *qp) { struct hns_roce_dca_attach_attr attr = {}; @@ -161,7 +161,7 @@ index 7e3ad92..028d20c 100644 uint32_t idx; int ret; -@@ -622,9 +623,16 @@ static int dca_attach_qp_buf(struct hns_roce_context *ctx, +@@ -645,9 +646,16 @@ static int dca_attach_qp_buf(struct hns_roce_context *ctx, attr.rq_offset = idx << qp->rq.wqe_shift; } @@ -179,7 +179,7 @@ index 7e3ad92..028d20c 100644 hns_roce_spin_unlock(&qp->rq.hr_lock); hns_roce_spin_unlock(&qp->sq.hr_lock); -@@ -1450,6 +1458,9 @@ out: +@@ -1659,6 +1667,9 @@ out: hns_roce_spin_unlock(&qp->sq.hr_lock); @@ -189,7 +189,7 @@ index 7e3ad92..028d20c 100644 if (ibvqp->state == IBV_QPS_ERR) { attr.qp_state = IBV_QPS_ERR; -@@ -1582,6 +1593,9 @@ out: +@@ -1800,6 +1811,9 @@ out: hns_roce_spin_unlock(&qp->rq.hr_lock); @@ -199,7 +199,7 @@ index 7e3ad92..028d20c 100644 if (ibvqp->state == IBV_QPS_ERR) { attr.qp_state = IBV_QPS_ERR; hns_roce_u_v2_modify_qp(ibvqp, &attr, IBV_QP_STATE); -@@ -1693,6 +1707,7 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, +@@ -1914,6 +1928,7 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, if (attr->qp_state == IBV_QPS_RTR) { hr_qp->tc_mode = resp_ex.drv_payload.tc_mode; hr_qp->priority = resp_ex.drv_payload.priority; @@ -207,7 +207,7 @@ index 7e3ad92..028d20c 100644 } } -@@ -2721,6 +2736,9 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) +@@ -2964,6 +2979,9 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) out: hns_roce_spin_unlock(&qp->sq.hr_lock); diff --git a/0023-pyverbs-Increment-the-correct-rkey-in-test_qpex.patch b/0023-pyverbs-Increment-the-correct-rkey-in-test_qpex.patch deleted file mode 100644 index 4f199203d79a7385aa8a8cba8bcd2dde52e0d920..0000000000000000000000000000000000000000 --- a/0023-pyverbs-Increment-the-correct-rkey-in-test_qpex.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ef27ae99376e5b672c12e856fb72c2d94d8d2cf5 Mon Sep 17 00:00:00 2001 -From: Bob Pearson -Date: Thu, 19 May 2022 10:58:11 -0500 -Subject: pyverbs: Increment the correct rkey in test_qpex - -[ Upstream commit 0c4d91db686ef4e4364aae2514d22e8462335bd9 ] - -The local bind is manipulating the local rkey, not the server rkey. Bind -doesn't check that the high bits are correct so this was missed. - -Fixes: 9fca2824b5ec ("tests: Retrieve tests that generates mlx5 CQE errors") -Signed-off-by: Bob Pearson -Signed-off-by: Jason Gunthorpe -Signed-off-by: Nicolas Morey-Chaisemartin ---- - tests/test_qpex.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test_qpex.py b/tests/test_qpex.py -index 8f3f338..a4c9991 100644 ---- a/tests/test_qpex.py -+++ b/tests/test_qpex.py -@@ -300,7 +300,7 @@ class QpExTestCase(RDMATestCase): - if ex.error_code == errno.EOPNOTSUPP: - raise unittest.SkipTest('Memory Window allocation is not supported') - raise ex -- new_key = inc_rkey(server.mr.rkey) -+ new_key = inc_rkey(mw.rkey) - server.qp.wr_bind_mw(mw, new_key, bind_info) - server.qp.wr_complete() - u.poll_cq(server.cq) --- -2.34.1 - diff --git a/0037-libhns-Add-direct-verbs-support-to-config-DCA.patch b/0024-libhns-Add-direct-verbs-support-to-config-DCA.patch similarity index 59% rename from 0037-libhns-Add-direct-verbs-support-to-config-DCA.patch rename to 0024-libhns-Add-direct-verbs-support-to-config-DCA.patch index 87e9ddf2583bafa9cbfb72820d71dcf734132124..55d8a48509487b4cd1cb4b16c5768aaa7b76a835 100644 --- a/0037-libhns-Add-direct-verbs-support-to-config-DCA.patch +++ b/0024-libhns-Add-direct-verbs-support-to-config-DCA.patch @@ -1,7 +1,7 @@ -From 6aa5efb3059c66d3d0f49804551b38c5ed827ec1 Mon Sep 17 00:00:00 2001 +From 4e50ead3adb3c5c222613cf09dad61f6e27abe8c Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 10 May 2021 17:13:49 +0800 -Subject: libhns: Add direct verbs support to config DCA +Subject: [PATCH 24/34] libhns: Add direct verbs support to config DCA driver inclusion category: feature @@ -21,70 +21,68 @@ Reviewed-by: Yangyang Li debian/ibverbs-providers.lintian-overrides | 4 +- debian/ibverbs-providers.symbols | 6 ++ debian/libibverbs-dev.install | 4 + - providers/hns/CMakeLists.txt | 9 ++- - providers/hns/hns_roce_u.c | 92 +++++++++++++++++++--- - providers/hns/hns_roce_u.h | 2 + - providers/hns/hns_roce_u_abi.h | 1 + + providers/hns/hns_roce_u.c | 85 +++++++++++++++++++--- + providers/hns/hns_roce_u.h | 4 +- providers/hns/hns_roce_u_buf.c | 3 + - providers/hns/hns_roce_u_hw_v2.c | 33 +++++++- - providers/hns/hns_roce_u_verbs.c | 58 ++++++++++++-- - providers/hns/hnsdv.h | 65 +++++++++++++++ - providers/hns/libhns.map | 9 +++ + providers/hns/hns_roce_u_verbs.c | 39 ++++++++-- + providers/hns/hnsdv.h | 23 +++++- redhat/rdma-core.spec | 5 +- - suse/rdma-core.spec | 21 ++++- - 16 files changed, 289 insertions(+), 26 deletions(-) - create mode 100644 providers/hns/hnsdv.h - create mode 100644 providers/hns/libhns.map + suse/rdma-core.spec | 20 +++++ + 12 files changed, 175 insertions(+), 21 deletions(-) diff --git a/debian/control b/debian/control -index 7485ad3..22eb6cd 100644 +index 160824f..2a55372 100644 --- a/debian/control +++ b/debian/control -@@ -94,7 +94,7 @@ Description: User space provider drivers for libibverbs - - cxgb4: Chelsio T4 iWARP HCAs +@@ -87,7 +87,7 @@ Description: User space provider drivers for libibverbs - efa: Amazon Elastic Fabric Adapter + - erdma: Alibaba Elastic RDMA (iWarp) Adapter - hfi1verbs: Intel Omni-Path HFI - - hns: HiSilicon Hip06 SoC + - hns: HiSilicon Hip08+ SoC - ipathverbs: QLogic InfiniPath HCAs - irdma: Intel Ethernet Connection RDMA - - mlx4: Mellanox ConnectX-3 InfiniBand HCAs + - mana: Microsoft Azure Network Adapter diff --git a/debian/ibverbs-providers.install b/debian/ibverbs-providers.install -index 4f971fb..c6ecbbc 100644 +index a003a30..6af92f5 100644 --- a/debian/ibverbs-providers.install +++ b/debian/ibverbs-providers.install -@@ -1,5 +1,6 @@ - etc/libibverbs.d/ +@@ -2,5 +2,6 @@ etc/libibverbs.d/ usr/lib/*/libefa.so.* usr/lib/*/libibverbs/lib*-rdmav*.so + usr/lib/*/libmana.so.* +usr/lib/*/libhns.so.* usr/lib/*/libmlx4.so.* usr/lib/*/libmlx5.so.* diff --git a/debian/ibverbs-providers.lintian-overrides b/debian/ibverbs-providers.lintian-overrides -index 8a44d54..f6afb70 100644 +index 5815058..20e6557 100644 --- a/debian/ibverbs-providers.lintian-overrides +++ b/debian/ibverbs-providers.lintian-overrides @@ -1,2 +1,2 @@ --# libefa, libmlx4 and libmlx5 are ibverbs provider that provides more functions. --ibverbs-providers: package-name-doesnt-match-sonames libefa1 libmlx4-1 libmlx5-1 +-# libefa, libmana, libmlx4 and libmlx5 are ibverbs provider that provides more functions. +-ibverbs-providers: package-name-doesnt-match-sonames libefa1 libmana1 libmlx4-1 libmlx5-1 +# libefa, libhns, libmlx4 and libmlx5 are ibverbs provider that provides more functions. +ibverbs-providers: package-name-doesnt-match-sonames libefa1 libhns-1 libmlx4-1 libmlx5-1 +\ No newline at end of file diff --git a/debian/ibverbs-providers.symbols b/debian/ibverbs-providers.symbols -index 2c6b330..1844369 100644 +index 72361bd..a30a4fa 100644 --- a/debian/ibverbs-providers.symbols +++ b/debian/ibverbs-providers.symbols -@@ -162,3 +162,9 @@ libefa.so.1 ibverbs-providers #MINVER# - efadv_create_qp_ex@EFA_1.1 26 - efadv_query_device@EFA_1.1 26 - efadv_query_ah@EFA_1.1 26 +@@ -174,6 +174,12 @@ libefa.so.1 ibverbs-providers #MINVER# + efadv_cq_from_ibv_cq_ex@EFA_1.2 43 + efadv_create_cq@EFA_1.2 43 + efadv_query_mr@EFA_1.3 50 +libhns.so.1 ibverbs-providers #MINVER# +* Build-Depends-Package: libibverbs-dev + HNS_1.0@HNS_1.0 36 + hnsdv_is_supported@HNS_1.0 36 + hnsdv_open_device@HNS_1.0 36 + hnsdv_create_qp@HNS_1.0 36 + libmana.so.1 ibverbs-providers #MINVER# + * Build-Depends-Package: libibverbs-dev + MANA_1.0@MANA_1.0 41 diff --git a/debian/libibverbs-dev.install b/debian/libibverbs-dev.install -index bc8caa5..7d6e6a2 100644 +index 5f2ffd5..ef5b9a4 100644 --- a/debian/libibverbs-dev.install +++ b/debian/libibverbs-dev.install @@ -1,5 +1,6 @@ @@ -92,9 +90,9 @@ index bc8caa5..7d6e6a2 100644 usr/include/infiniband/efadv.h +usr/include/infiniband/hnsdv.h usr/include/infiniband/ib_user_ioctl_verbs.h + usr/include/infiniband/manadv.h usr/include/infiniband/mlx4dv.h - usr/include/infiniband/mlx5_api.h -@@ -14,6 +15,8 @@ usr/include/infiniband/verbs_api.h +@@ -15,6 +16,8 @@ usr/include/infiniband/verbs_api.h usr/lib/*/lib*-rdmav*.a usr/lib/*/libefa.a usr/lib/*/libefa.so @@ -102,37 +100,17 @@ index bc8caa5..7d6e6a2 100644 +usr/lib/*/libhns.so usr/lib/*/libibverbs*.so usr/lib/*/libibverbs.a - usr/lib/*/libmlx4.a -@@ -21,6 +24,7 @@ usr/lib/*/libmlx4.so + usr/lib/*/libmana.a +@@ -24,6 +27,7 @@ usr/lib/*/libmlx4.so usr/lib/*/libmlx5.a usr/lib/*/libmlx5.so usr/lib/*/pkgconfig/libefa.pc +usr/lib/*/pkgconfig/libhns.pc usr/lib/*/pkgconfig/libibverbs.pc + usr/lib/*/pkgconfig/libmana.pc usr/lib/*/pkgconfig/libmlx4.pc - usr/lib/*/pkgconfig/libmlx5.pc -diff --git a/providers/hns/CMakeLists.txt b/providers/hns/CMakeLists.txt -index 7aaca75..160e1ff 100644 ---- a/providers/hns/CMakeLists.txt -+++ b/providers/hns/CMakeLists.txt -@@ -1,7 +1,14 @@ --rdma_provider(hns -+rdma_shared_provider(hns libhns.map -+ 1 1.0.${PACKAGE_VERSION} - hns_roce_u.c - hns_roce_u_buf.c - hns_roce_u_db.c - hns_roce_u_hw_v2.c - hns_roce_u_verbs.c - ) -+ -+publish_headers(infiniband -+ hnsdv.h -+) -+ -+rdma_pkg_config("hns" "libibverbs" "${CMAKE_THREAD_LIBS_INIT}") diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index fe30cda..0cf6d4b 100644 +index 7437584..fc14525 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c @@ -114,8 +114,60 @@ static int mmap_dca(struct hns_roce_context *ctx, int cmd_fd, @@ -218,7 +196,7 @@ index fe30cda..0cf6d4b 100644 if (mmap_key) { const unsigned int bits_per_qp = 2 * HNS_DCA_BITS_PER_STATUS; -@@ -185,18 +241,28 @@ static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) +@@ -240,18 +296,28 @@ static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) return count_shift > size_shift ? count_shift - size_shift : 0; } @@ -251,7 +229,7 @@ index fe30cda..0cf6d4b 100644 struct hns_roce_device *hr_dev = to_hr_dev(ibdev); struct hns_roce_alloc_ucontext_resp resp = {}; struct hns_roce_alloc_ucontext cmd = {}; -@@ -209,7 +275,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, +@@ -264,7 +330,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, if (!context) return NULL; @@ -260,33 +238,30 @@ index fe30cda..0cf6d4b 100644 if (ibv_cmd_get_context(&context->ibv_ctx, &cmd.ibv_cmd, sizeof(cmd), &resp.ibv_resp, sizeof(resp))) goto err_free; -@@ -255,7 +321,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - context->max_srq_wr = dev_attrs.max_srq_wr; - context->max_srq_sge = dev_attrs.max_srq_sge; +@@ -307,7 +373,8 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, + if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) + goto err_free; - if (init_dca_context(context, cmd_fd, &resp, hr_dev->page_size)) + if (init_dca_context(context, cmd_fd, + &resp, ctx_attr, hr_dev->page_size)) goto err_free; - if (hns_roce_mmap(hr_dev, context, cmd_fd)) -@@ -317,4 +384,11 @@ static const struct verbs_device_ops hns_roce_dev_ops = { - .uninit_device = hns_uninit_device, - .alloc_context = hns_roce_alloc_context, - }; -+ -+bool is_hns_dev(struct ibv_device *device) -+{ -+ struct verbs_device *verbs_device = verbs_get_device(device); -+ -+ return verbs_device->ops == &hns_roce_dev_ops; -+} - PROVIDER_DRIVER(hns, hns_roce_dev_ops); + if (init_reset_context(context, cmd_fd, &resp, hr_dev->page_size)) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 91b0c8f..71c35c5 100644 +index 7dd8199..6574bad 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -562,6 +562,8 @@ static inline void clear_bit_unlock(atomic_bitmap_t *p, uint32_t nr) +@@ -568,8 +568,6 @@ static inline int hns_roce_spin_unlock(struct hns_roce_spinlock *hr_lock) + return 0; + } + +-bool is_hns_dev(struct ibv_device *device); +- + #define HNS_ROCE_BIT_MASK(nr) (1UL << ((nr) % 64)) + #define HNS_ROCE_BIT_WORD(nr) ((nr) / 64) + +@@ -596,6 +594,8 @@ static inline void clear_bit_unlock(atomic_bitmap_t *p, uint32_t nr) atomic_fetch_and(p, ~HNS_ROCE_BIT_MASK(nr)); } @@ -295,18 +270,6 @@ index 91b0c8f..71c35c5 100644 int hns_roce_u_query_device(struct ibv_context *context, const struct ibv_query_device_ex_input *input, struct ibv_device_attr_ex *attr, size_t attr_size); -diff --git a/providers/hns/hns_roce_u_abi.h b/providers/hns/hns_roce_u_abi.h -index 0519ac7..1eaf62d 100644 ---- a/providers/hns/hns_roce_u_abi.h -+++ b/providers/hns/hns_roce_u_abi.h -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include "hnsdv.h" - - DECLARE_DRV_CMD(hns_roce_alloc_pd, IB_USER_VERBS_CMD_ALLOC_PD, - empty, hns_roce_ib_alloc_pd_resp); diff --git a/providers/hns/hns_roce_u_buf.c b/providers/hns/hns_roce_u_buf.c index 08c0fbc..780683e 100644 --- a/providers/hns/hns_roce_u_buf.c @@ -321,100 +284,11 @@ index 08c0fbc..780683e 100644 ibv_dofork_range(buf->buf, buf->length); munmap(buf->buf, buf->length); -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 028d20c..7661863 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1473,6 +1473,7 @@ out: - static int check_qp_recv(struct hns_roce_qp *qp, struct hns_roce_context *ctx) - { - struct ibv_qp *ibvqp = &qp->verbs_qp.qp; -+ int ret = 0; - - if (unlikely(ibvqp->qp_type != IBV_QPT_RC && - ibvqp->qp_type != IBV_QPT_UD)) -@@ -1481,10 +1482,15 @@ static int check_qp_recv(struct hns_roce_qp *qp, struct hns_roce_context *ctx) - if (ibvqp->state == IBV_QPS_RESET || ibvqp->srq) - return -EINVAL; - -- if (check_dca_attach_enable(qp)) -- return dca_attach_qp_buf(ctx, qp); -+ if (check_dca_attach_enable(qp)) { -+ ret = dca_attach_qp_buf(ctx, qp); -+ if (ret) -+ verbs_err_datapath(&ctx->ibv_ctx, -+ "failed to attach QP-%u recv, ret = %d.\n", -+ qp->verbs_qp.qp.qp_num, ret); -+ } - -- return 0; -+ return ret; - } - - static void fill_recv_sge_to_wqe(struct ibv_recv_wr *wr, void *wqe, -@@ -1951,6 +1957,9 @@ static int wc_start_poll_cq(struct ibv_cq_ex *current, - hns_roce_spin_lock(&cq->hr_lock); - - err = hns_roce_poll_one(ctx, &qp, cq, NULL); -+ if (qp && check_dca_detach_enable(qp)) -+ dca_detach_qp_buf(ctx, qp); -+ - if (err != V2_CQ_OK) - hns_roce_spin_unlock(&cq->hr_lock); - -@@ -1965,6 +1974,8 @@ static int wc_next_poll_cq(struct ibv_cq_ex *current) - int err; - - err = hns_roce_poll_one(ctx, &qp, cq, NULL); -+ if (qp && check_dca_detach_enable(qp)) -+ dca_detach_qp_buf(ctx, qp); - if (err != V2_CQ_OK) - return err; - -@@ -2159,6 +2170,9 @@ init_rc_wqe(struct hns_roce_qp *qp, uint64_t wr_id, unsigned int opcode) - hr_reg_clear(wqe, RCWQE_INLINE); - hr_reg_clear(wqe, RCWQE_SO); - -+ if (check_qp_dca_enable(qp)) -+ fill_rc_dca_fields(qp->verbs_qp.qp.qp_num, wqe); -+ - qp->sq.wrid[wqe_idx] = wr_id; - qp->cur_wqe = wqe; - qp->sq.head++; -@@ -2691,8 +2705,10 @@ static void wr_set_inline_data_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_buf, - - static void wr_start(struct ibv_qp_ex *ibv_qp) - { -+ struct hns_roce_context *ctx = to_hr_ctx(ibv_qp->qp_base.context); - struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); - enum ibv_qp_state state = ibv_qp->qp_base.state; -+ int ret; - - if (state == IBV_QPS_RESET || - state == IBV_QPS_INIT || -@@ -2701,6 +2717,17 @@ static void wr_start(struct ibv_qp_ex *ibv_qp) - return; - } - -+ if (check_qp_dca_enable(qp)) { -+ ret = dca_attach_qp_buf(ctx, qp); -+ if (ret) { -+ verbs_err_datapath(&ctx->ibv_ctx, -+ "failed to attach QP-%u send, ret = %d.\n", -+ qp->verbs_qp.qp.qp_num, ret); -+ qp->err = ret; -+ return; -+ } -+ } -+ - hns_roce_spin_lock(&qp->sq.hr_lock); - qp->sge_info.start_idx = qp->next_sge; - qp->rb_sq_head = qp->sq.head; diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 749b01b..282ab74 100644 +index fed39aa..b31aac9 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c -@@ -961,6 +961,15 @@ enum { +@@ -1136,6 +1136,15 @@ enum { IBV_QP_INIT_ATTR_SEND_OPS_FLAGS, }; @@ -430,9 +304,9 @@ index 749b01b..282ab74 100644 static int check_qp_create_mask(struct hns_roce_context *ctx, struct ibv_qp_init_attr_ex *attr) { -@@ -969,6 +978,10 @@ static int check_qp_create_mask(struct hns_roce_context *ctx, +@@ -1144,6 +1153,10 @@ static int check_qp_create_mask(struct hns_roce_context *ctx, if (!check_comp_mask(attr->comp_mask, CREATE_QP_SUP_COMP_MASK)) - return -EOPNOTSUPP; + return EOPNOTSUPP; + if (attr->comp_mask & IBV_QP_INIT_ATTR_SEND_OPS_FLAGS && + !check_comp_mask(attr->send_ops_flags, SEND_OPS_FLAG_MASK)) @@ -441,7 +315,7 @@ index 749b01b..282ab74 100644 switch (attr->qp_type) { case IBV_QPT_UD: if (hr_dev->hw_version == HNS_ROCE_HW_VER2) -@@ -1165,9 +1178,21 @@ static int calc_qp_buff_size(struct hns_roce_device *hr_dev, +@@ -1383,9 +1396,21 @@ static int calc_qp_buff_size(struct hns_roce_device *hr_dev, return 0; } @@ -465,7 +339,7 @@ index 749b01b..282ab74 100644 return true; return false; -@@ -1185,6 +1210,7 @@ static void qp_free_wqe(struct hns_roce_qp *qp) +@@ -1403,6 +1428,7 @@ static void qp_free_wqe(struct hns_roce_qp *qp) } static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, @@ -473,7 +347,7 @@ index 749b01b..282ab74 100644 struct hns_roce_qp *qp, struct hns_roce_context *ctx) { struct hns_roce_device *hr_dev = to_hr_dev(ctx->ibv_ctx.context.device); -@@ -1208,7 +1234,8 @@ static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, +@@ -1426,7 +1452,8 @@ static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, goto err_alloc; } @@ -483,7 +357,7 @@ index 749b01b..282ab74 100644 /* when DCA is enabled, use a buffer list to store page addr */ qp->buf.buf = NULL; qp->dca_wqe.max_cnt = hr_hw_page_count(qp->buf_size); -@@ -1216,6 +1243,7 @@ static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, +@@ -1434,6 +1461,7 @@ static int qp_alloc_wqe(struct ibv_qp_init_attr_ex *attr, qp->dca_wqe.bufs = calloc(qp->dca_wqe.max_cnt, sizeof(void *)); if (!qp->dca_wqe.bufs) goto err_alloc; @@ -491,7 +365,7 @@ index 749b01b..282ab74 100644 } else { if (hns_roce_alloc_buf(&qp->buf, qp->buf_size, HNS_HW_PAGE_SIZE)) -@@ -1478,6 +1506,7 @@ void hns_roce_free_qp_buf(struct hns_roce_qp *qp, struct hns_roce_context *ctx) +@@ -1697,12 +1725,13 @@ void hns_roce_free_qp_buf(struct hns_roce_qp *qp, struct hns_roce_context *ctx) } static int hns_roce_alloc_qp_buf(struct ibv_qp_init_attr_ex *attr, @@ -499,26 +373,14 @@ index 749b01b..282ab74 100644 struct hns_roce_qp *qp, struct hns_roce_context *ctx) { -@@ -1487,7 +1516,7 @@ static int hns_roce_alloc_qp_buf(struct ibv_qp_init_attr_ex *attr, - pthread_spin_init(&qp->rq.hr_lock.lock, PTHREAD_PROCESS_PRIVATE)) - return -ENOMEM; + int ret; - ret = qp_alloc_wqe(attr, qp, ctx); + ret = qp_alloc_wqe(attr, hns_attr, qp, ctx); if (ret) return ret; -@@ -1510,7 +1539,8 @@ static int mmap_dwqe(struct ibv_context *ibv_ctx, struct hns_roce_qp *qp, - } - - static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, -- struct ibv_qp_init_attr_ex *attr) -+ struct ibv_qp_init_attr_ex *attr, -+ struct hnsdv_qp_init_attr *hns_attr) - { - struct hns_roce_context *context = to_hr_ctx(ibv_ctx); - struct hns_roce_qp *qp; -@@ -1533,7 +1563,7 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, +@@ -1774,7 +1803,7 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, if (ret) goto err_spinlock; @@ -527,63 +389,17 @@ index 749b01b..282ab74 100644 if (ret) goto err_buf; -@@ -1587,7 +1617,7 @@ struct ibv_qp *hns_roce_u_create_qp(struct ibv_pd *pd, - attrx.comp_mask = IBV_QP_INIT_ATTR_PD; - attrx.pd = pd; - -- qp = create_qp(pd->context, &attrx); -+ qp = create_qp(pd->context, &attrx, NULL); - if (qp) - memcpy(attr, &attrx, sizeof(*attr)); - -@@ -1597,7 +1627,19 @@ struct ibv_qp *hns_roce_u_create_qp(struct ibv_pd *pd, - struct ibv_qp *hns_roce_u_create_qp_ex(struct ibv_context *context, - struct ibv_qp_init_attr_ex *attr) - { -- return create_qp(context, attr); -+ return create_qp(context, attr, NULL); -+} -+ -+struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, -+ struct ibv_qp_init_attr_ex *qp_attr, -+ struct hnsdv_qp_init_attr *hns_attr) -+{ -+ if (!is_hns_dev(context->device)) { -+ errno = EOPNOTSUPP; -+ return NULL; -+ } -+ -+ return create_qp(context, qp_attr, hns_attr); - } - - struct ibv_qp *hns_roce_u_open_qp(struct ibv_context *context, diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h -new file mode 100644 -index 0000000..cfe1611 ---- /dev/null +index afd57b8..0158741 100644 +--- a/providers/hns/hnsdv.h +++ b/providers/hns/hnsdv.h -@@ -0,0 +1,65 @@ -+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ -+/* -+ * Copyright (c) 2021 HiSilicon Limited. -+ */ -+ -+#ifndef __HNSDV_H__ -+#define __HNSDV_H__ -+ -+#include -+#include -+ -+#include -+ -+#include -+ -+#ifdef __cplusplus -+extern "C" { -+#endif +@@ -16,12 +16,29 @@ + #ifdef __cplusplus + extern "C" { + #endif + -+enum hnsdv_context_attr_flags { -+ HNSDV_CONTEXT_FLAGS_DCA = 1 << 0, ++enum hnsdv_qp_create_flags { ++ HNSDV_QP_CREATE_ENABLE_DCA_MODE = 1 << 0, +}; + +enum hnsdv_context_comp_mask { @@ -592,63 +408,47 @@ index 0000000..cfe1611 + HNSDV_CONTEXT_MASK_DCA_MAX_SIZE = 1 << 2, + HNSDV_CONTEXT_MASK_DCA_MIN_SIZE = 1 << 3, +}; -+ -+struct hnsdv_context_attr { -+ uint64_t flags; /* Use enum hnsdv_context_attr_flags */ -+ uint64_t comp_mask; /* Use enum hnsdv_context_comp_mask */ + struct hnsdv_context_attr { + uint64_t flags; /* Use enum hnsdv_context_attr_flags */ + uint64_t comp_mask; /* Use enum hnsdv_context_comp_mask */ + uint32_t dca_prime_qps; + uint32_t dca_unit_size; + uint64_t dca_max_size; + uint64_t dca_min_size; -+}; -+ -+bool hnsdv_is_supported(struct ibv_device *device); + }; + + bool hnsdv_is_supported(struct ibv_device *device); +struct ibv_context *hnsdv_open_device(struct ibv_device *device, + struct hnsdv_context_attr *attr); -+ -+enum hnsdv_qp_create_flags { -+ HNSDV_QP_CREATE_ENABLE_DCA_MODE = 1 << 0, -+}; -+ -+enum hnsdv_qp_init_attr_mask { -+ HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS = 1 << 0, -+}; -+ -+struct hnsdv_qp_init_attr { -+ uint64_t comp_mask; /* Use enum hnsdv_qp_init_attr_mask */ + + enum hnsdv_qp_congest_ctrl_type { + HNSDV_QP_CREATE_ENABLE_DCQCN = 1 << 0, +@@ -37,7 +54,7 @@ enum hnsdv_qp_init_attr_mask { + + struct hnsdv_qp_init_attr { + uint64_t comp_mask; /* Use enum hnsdv_qp_init_attr_mask */ +- uint32_t create_flags; + uint32_t create_flags; /* Use enum hnsdv_qp_create_flags */ + uint8_t congest_type; /* Use enum hnsdv_qp_congest_ctrl_type */ + }; + +@@ -45,6 +62,10 @@ struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, + struct ibv_qp_init_attr_ex *qp_attr, + struct hnsdv_qp_init_attr *hns_qp_attr); + ++enum hnsdv_context_attr_flags { ++ HNSDV_CONTEXT_FLAGS_DCA = 1 << 0, +}; + -+struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, -+ struct ibv_qp_init_attr_ex *qp_attr, -+ struct hnsdv_qp_init_attr *hns_qp_attr); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* __HNSDV_H__ */ -diff --git a/providers/hns/libhns.map b/providers/hns/libhns.map -new file mode 100644 -index 0000000..aed491c ---- /dev/null -+++ b/providers/hns/libhns.map -@@ -0,0 +1,9 @@ -+/* Export symbols should be added below according to -+ Documentation/versioning.md document. */ -+HNS_1.0 { -+ global: -+ hnsdv_is_supported; -+ hnsdv_open_device; -+ hnsdv_create_qp; -+ local: *; -+}; + enum hnsdv_query_context_comp_mask { + HNSDV_CONTEXT_MASK_CONGEST_TYPE = 1 << 0, + }; diff --git a/redhat/rdma-core.spec b/redhat/rdma-core.spec -index f1b196a..321578c 100644 +index c6ddcfd..c347195 100644 --- a/redhat/rdma-core.spec +++ b/redhat/rdma-core.spec -@@ -150,6 +150,8 @@ Provides: libefa = %{version}-%{release} - Obsoletes: libefa < %{version}-%{release} +@@ -158,6 +158,8 @@ Provides: liberdma = %{version}-%{release} + Obsoletes: liberdma < %{version}-%{release} Provides: libhfi1 = %{version}-%{release} Obsoletes: libhfi1 < %{version}-%{release} +Provides: libhns = %{version}-%{release} @@ -656,25 +456,25 @@ index f1b196a..321578c 100644 Provides: libipathverbs = %{version}-%{release} Obsoletes: libipathverbs < %{version}-%{release} Provides: libirdma = %{version}-%{release} -@@ -177,7 +179,7 @@ Device-specific plug-in ibverbs userspace drivers are included: - - libcxgb4: Chelsio T4 iWARP HCA +@@ -188,7 +190,7 @@ Device-specific plug-in ibverbs userspace drivers are included: - libefa: Amazon Elastic Fabric Adapter + - liberdma: Alibaba Elastic RDMA (iWarp) Adapter - libhfi1: Intel Omni-Path HFI -- libhns: HiSilicon Hip06 SoC +- libhns: HiSilicon Hip08+ SoC - libipathverbs: QLogic InfiniPath HCA - libirdma: Intel Ethernet Connection RDMA - - libmlx4: Mellanox ConnectX-3 InfiniBand HCA -@@ -562,6 +564,7 @@ fi + - libmana: Microsoft Azure Network Adapter +@@ -575,6 +577,7 @@ fi %dir %{_sysconfdir}/libibverbs.d %dir %{_libdir}/libibverbs %{_libdir}/libefa.so.* +%{_libdir}/libhns.so.* %{_libdir}/libibverbs*.so.* %{_libdir}/libibverbs/*.so - %{_libdir}/libmlx5.so.* + %{_libdir}/libmana.so.* diff --git a/suse/rdma-core.spec b/suse/rdma-core.spec -index bd1faec..ce19db1 100644 +index d534dbc..647c82b 100644 --- a/suse/rdma-core.spec +++ b/suse/rdma-core.spec @@ -35,6 +35,7 @@ License: BSD-2-Clause OR GPL-2.0-only @@ -685,7 +485,7 @@ index bd1faec..ce19db1 100644 %define verbs_so_major 1 %define rdmacm_so_major 1 %define umad_so_major 3 -@@ -44,6 +45,7 @@ Group: Productivity/Networking/Other +@@ -45,6 +46,7 @@ Group: Productivity/Networking/Other %define mad_major 5 %define efa_lname libefa%{efa_so_major} @@ -693,40 +493,39 @@ index bd1faec..ce19db1 100644 %define verbs_lname libibverbs%{verbs_so_major} %define rdmacm_lname librdmacm%{rdmacm_so_major} %define umad_lname libibumad%{umad_so_major} -@@ -157,6 +159,7 @@ Requires: %{umad_lname} = %{version}-%{release} +@@ -159,6 +161,7 @@ Requires: %{umad_lname} = %{version}-%{release} Requires: %{verbs_lname} = %{version}-%{release} %if 0%{?dma_coherent} Requires: %{efa_lname} = %{version}-%{release} +Requires: %{hns_lname} = %{version}-%{release} + Requires: %{mana_lname} = %{version}-%{release} Requires: %{mlx4_lname} = %{version}-%{release} Requires: %{mlx5_lname} = %{version}-%{release} - %endif -@@ -197,6 +200,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} +@@ -200,6 +203,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} Obsoletes: libcxgb4-rdmav2 < %{version}-%{release} Obsoletes: libefa-rdmav2 < %{version}-%{release} Obsoletes: libhfi1verbs-rdmav2 < %{version}-%{release} +Obsoletes: libhns-rdmav2 < %{version}-%{release} Obsoletes: libipathverbs-rdmav2 < %{version}-%{release} + Obsoletes: libmana-rdmav2 < %{version}-%{release} Obsoletes: libmlx4-rdmav2 < %{version}-%{release} - Obsoletes: libmlx5-rdmav2 < %{version}-%{release} -@@ -205,6 +209,7 @@ Obsoletes: libocrdma-rdmav2 < %{version}-%{release} +@@ -209,6 +213,7 @@ Obsoletes: libocrdma-rdmav2 < %{version}-%{release} Obsoletes: librxe-rdmav2 < %{version}-%{release} %if 0%{?dma_coherent} Requires: %{efa_lname} = %{version}-%{release} +Requires: %{hns_lname} = %{version}-%{release} + Requires: %{mana_lname} = %{version}-%{release} Requires: %{mlx4_lname} = %{version}-%{release} Requires: %{mlx5_lname} = %{version}-%{release} - %endif -@@ -223,7 +228,7 @@ Device-specific plug-in ibverbs userspace drivers are included: - - libcxgb4: Chelsio T4 iWARP HCA +@@ -229,6 +234,7 @@ Device-specific plug-in ibverbs userspace drivers are included: - libefa: Amazon Elastic Fabric Adapter - libhfi1: Intel Omni-Path HFI --- libhns: HiSilicon Hip06 SoC + - libhns: HiSilicon Hip06 SoC +- libhns: HiSilicon Hip08+ SoC - libipathverbs: QLogic InfiniPath HCA - libirdma: Intel Ethernet Connection RDMA - - libmlx4: Mellanox ConnectX-3 InfiniBand HCA -@@ -250,6 +255,13 @@ Group: System/Libraries + - libmana: Microsoft Azure Network Adapter +@@ -256,6 +262,13 @@ Group: System/Libraries %description -n %efa_lname This package contains the efa runtime library. @@ -737,30 +536,30 @@ index bd1faec..ce19db1 100644 +%description -n %hns_lname +This package contains the hns runtime library. + - %package -n %mlx4_lname - Summary: MLX4 runtime library + %package -n %mana_lname + Summary: MANA runtime library Group: System/Libraries -@@ -493,6 +505,9 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh +@@ -508,6 +521,9 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh %post -n %efa_lname -p /sbin/ldconfig %postun -n %efa_lname -p /sbin/ldconfig +%post -n %hns_lname -p /sbin/ldconfig +%postun -n %hns_lname -p /sbin/ldconfig + - %post -n %mlx4_lname -p /sbin/ldconfig - %postun -n %mlx4_lname -p /sbin/ldconfig + %post -n %mana_lname -p /sbin/ldconfig + %postun -n %mana_lname -p /sbin/ldconfig -@@ -689,6 +704,10 @@ done - %defattr(-,root,root) +@@ -700,6 +716,10 @@ done + %files -n %efa_lname %{_libdir}/libefa*.so.* +%files -n %hns_lname +%defattr(-,root,root) +%{_libdir}/libhns*.so.* + - %files -n %mlx4_lname - %defattr(-,root,root) - %{_libdir}/libmlx4*.so.* + %files -n %mana_lname + %{_libdir}/libmana*.so.* + -- 2.30.0 diff --git a/0024-mckey-Use-rdma_create_qp_ex-only-for-loopback-preven.patch b/0024-mckey-Use-rdma_create_qp_ex-only-for-loopback-preven.patch deleted file mode 100644 index 7db091719cd287378c6f17f74d29c4ce9a1b9b38..0000000000000000000000000000000000000000 --- a/0024-mckey-Use-rdma_create_qp_ex-only-for-loopback-preven.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 080f7181a2b4d2316d03c702f65640d6e8b1031e Mon Sep 17 00:00:00 2001 -From: Kamal Heib -Date: Mon, 19 Sep 2022 11:39:15 -0400 -Subject: mckey: Use rdma_create_qp_ex only for loopback prevention - -[ Upstream commit 926a1158e33d78573859f5dfea399f7a7edcf11f ] - -As not all the providers support the rdma_create_qp_ex(), change the -code to use rdma_create_qp_ex() only when loopback prevention is requested. - -Fixes: 40806cc22936 ("rdma-core: Add support for multicast loopback prevention to mckey") -Signed-off-by: Kamal Heib -Signed-off-by: Nicolas Morey-Chaisemartin ---- - librdmacm/examples/mckey.c | 48 +++++++++++++++++++++++++------------- - 1 file changed, 32 insertions(+), 16 deletions(-) - -diff --git a/librdmacm/examples/mckey.c b/librdmacm/examples/mckey.c -index 7015ed2..6df53a2 100644 ---- a/librdmacm/examples/mckey.c -+++ b/librdmacm/examples/mckey.c -@@ -134,7 +134,8 @@ static int verify_test_params(struct cmatest_node *node) - static int init_node(struct cmatest_node *node) - { - struct ibv_qp_init_attr_ex init_qp_attr_ex; -- int cqe, ret; -+ struct ibv_qp_init_attr init_qp_attr; -+ int cqe, ret = 0; - - node->pd = ibv_alloc_pd(node->cma_id->verbs); - if (!node->pd) { -@@ -151,23 +152,38 @@ static int init_node(struct cmatest_node *node) - goto out; - } - -- memset(&init_qp_attr_ex, 0, sizeof(init_qp_attr_ex)); -- init_qp_attr_ex.cap.max_send_wr = message_count ? message_count : 1; -- init_qp_attr_ex.cap.max_recv_wr = message_count ? message_count : 1; -- init_qp_attr_ex.cap.max_send_sge = 1; -- init_qp_attr_ex.cap.max_recv_sge = 1; -- init_qp_attr_ex.qp_context = node; -- init_qp_attr_ex.sq_sig_all = 0; -- init_qp_attr_ex.qp_type = IBV_QPT_UD; -- init_qp_attr_ex.send_cq = node->cq; -- init_qp_attr_ex.recv_cq = node->cq; -- -- init_qp_attr_ex.comp_mask = IBV_QP_INIT_ATTR_CREATE_FLAGS|IBV_QP_INIT_ATTR_PD; -- init_qp_attr_ex.pd = node->pd; -- if (!loopback) -+ memset(&init_qp_attr, 0, sizeof init_qp_attr); -+ init_qp_attr.cap.max_send_wr = message_count ? message_count : 1; -+ init_qp_attr.cap.max_recv_wr = message_count ? message_count : 1; -+ init_qp_attr.cap.max_send_sge = 1; -+ init_qp_attr.cap.max_recv_sge = 1; -+ init_qp_attr.qp_context = node; -+ init_qp_attr.sq_sig_all = 0; -+ init_qp_attr.qp_type = IBV_QPT_UD; -+ init_qp_attr.send_cq = node->cq; -+ init_qp_attr.recv_cq = node->cq; -+ -+ if (!loopback) { -+ memset(&init_qp_attr_ex, 0, sizeof(init_qp_attr_ex)); -+ init_qp_attr_ex.cap.max_send_wr = message_count ? message_count : 1; -+ init_qp_attr_ex.cap.max_recv_wr = message_count ? message_count : 1; -+ init_qp_attr_ex.cap.max_send_sge = 1; -+ init_qp_attr_ex.cap.max_recv_sge = 1; -+ init_qp_attr_ex.qp_context = node; -+ init_qp_attr_ex.sq_sig_all = 0; -+ init_qp_attr_ex.qp_type = IBV_QPT_UD; -+ init_qp_attr_ex.send_cq = node->cq; -+ init_qp_attr_ex.recv_cq = node->cq; -+ -+ init_qp_attr_ex.comp_mask = IBV_QP_INIT_ATTR_CREATE_FLAGS|IBV_QP_INIT_ATTR_PD; -+ init_qp_attr_ex.pd = node->pd; - init_qp_attr_ex.create_flags = IBV_QP_CREATE_BLOCK_SELF_MCAST_LB; - -- ret = rdma_create_qp_ex(node->cma_id, &init_qp_attr_ex); -+ ret = rdma_create_qp_ex(node->cma_id, &init_qp_attr_ex); -+ } else { -+ ret = rdma_create_qp(node->cma_id, node->pd, &init_qp_attr); -+ } -+ - if (ret) { - perror("mckey: unable to create QP"); - goto out; --- -2.34.1 - diff --git a/0025-Fix-spelling-mistake-of-underlying.patch b/0025-Fix-spelling-mistake-of-underlying.patch deleted file mode 100644 index a3a5486f78b782079d90df82a147cae1a09efdcf..0000000000000000000000000000000000000000 --- a/0025-Fix-spelling-mistake-of-underlying.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3e56594215ccce88b89638ec16480d970776e3fb Mon Sep 17 00:00:00 2001 -From: Benjamin Drung -Date: Tue, 27 Sep 2022 12:01:14 +0200 -Subject: Fix spelling mistake of underlying - -[ Upstream commit 47f3a9fd706c4a407b7bbea12ffd16edd120883e ] - -Fixes: cc6eb6dd7b73 ("pyverbs: Add support for memory window creation") -Signed-off-by: Benjamin Drung -Signed-off-by: Nicolas Morey-Chaisemartin ---- - pyverbs/mr.pyx | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/pyverbs/mr.pyx b/pyverbs/mr.pyx -index 72bb181..e7f5f52 100644 ---- a/pyverbs/mr.pyx -+++ b/pyverbs/mr.pyx -@@ -314,10 +314,10 @@ cdef class MW(PyverbsCM): - - cpdef close(self): - """ -- Closes the underlaying C MW object. -+ Closes the underlying C MW object. - MW may be deleted directly or by deleting its PD, which leaves the -- Python object without the underlaying MW. -- Need to check that the underlaying MW wasn't dealloced before. -+ Python object without the underlying MW. -+ Need to check that the underlying MW wasn't dealloced before. - :return: None - """ - if self.mw is not NULL: --- -2.34.1 - diff --git a/0071-libhns-Corrects-several-issues-with-output-format-an.patch b/0025-libhns-Fix-unnecessary-dca-memory-detach.patch similarity index 55% rename from 0071-libhns-Corrects-several-issues-with-output-format-an.patch rename to 0025-libhns-Fix-unnecessary-dca-memory-detach.patch index 79a8de403663058cdda8e72edb6ef45065992138..839dde6a4165d9babd8da0ec2319aceff09c7343 100644 --- a/0071-libhns-Corrects-several-issues-with-output-format-an.patch +++ b/0025-libhns-Fix-unnecessary-dca-memory-detach.patch @@ -1,29 +1,29 @@ -From 95f3cc1f25c091f97aefceac268fe6435d0861c3 Mon Sep 17 00:00:00 2001 -From: Ran Zhou -Date: Mon, 27 Nov 2023 16:39:48 +0800 -Subject: [PATCH 71/75] libhns: Corrects several issues with output format and - variable types. +From 4d99b04f3cdf128dc78eab9e4d8247f330c8f64e Mon Sep 17 00:00:00 2001 +From: Chengchang Tang +Date: Mon, 27 Nov 2023 16:39:52 +0800 +Subject: [PATCH 25/34] libhns: Fix unnecessary dca memory detach driver inclusion category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8J2S3?from=project-issue +bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8J2Y5?from=project-issue -------------------------------------------------------------------------- -1.Unify the types of two variables to avoid infinite loop. -2.Standardization the output control character. +If sq is not enabled, it should not detach dca mem. Moreover, under the +current code logic, if detach dca mem, its sq index will be a random +value because it is not initialized. -Signed-off-by: Luoyouming +Signed-off-by: Chengchang Tang --- providers/hns/hns_roce_u.c | 2 +- - providers/hns/hns_roce_u_hw_v2.c | 10 +++++----- - 2 files changed, 6 insertions(+), 6 deletions(-) + providers/hns/hns_roce_u_hw_v2.c | 12 ++++++------ + 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 084385b..f30486f 100644 +index fc14525..cc2a064 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c -@@ -179,7 +179,7 @@ static void set_dca_pool_param(struct hns_roce_context *ctx, +@@ -161,7 +161,7 @@ static void set_dca_pool_param(struct hns_roce_context *ctx, dca_ctx->min_size = HNS_DCA_MAX_MEM_SIZE; verbs_debug(&ctx->ibv_ctx, @@ -33,10 +33,19 @@ index 084385b..f30486f 100644 } diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 495fbcb..754f918 100644 +index 913e300..36d0761 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -2680,8 +2680,8 @@ static void set_inline_data_list_rc(struct hns_roce_qp *qp, +@@ -679,7 +679,7 @@ static void dca_detach_qp_buf(struct hns_roce_context *ctx, + hns_roce_spin_unlock(&qp->rq.hr_lock); + hns_roce_spin_unlock(&qp->sq.hr_lock); + +- if (is_empty) ++ if (is_empty && qp->sq.wqe_cnt > 0) + hns_roce_detach_dca_mem(ctx, qp->verbs_qp.qp.handle, &attr); + } + +@@ -2642,8 +2642,8 @@ static void set_inline_data_list_rc(struct hns_roce_qp *qp, { unsigned int msg_len = qp->sge_info.total_len; void *dseg; @@ -46,7 +55,7 @@ index 495fbcb..754f918 100644 hr_reg_enable(wqe, RCWQE_INLINE); -@@ -2741,7 +2741,7 @@ static void wr_set_inline_data_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_buf, +@@ -2702,7 +2702,7 @@ static void wr_set_inline_data_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_buf, { struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); struct hns_roce_rc_sq_wqe *wqe = qp->cur_wqe; @@ -55,7 +64,7 @@ index 495fbcb..754f918 100644 if (!wqe) return; -@@ -2872,7 +2872,7 @@ static void wr_set_sge_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_sge, +@@ -2832,7 +2832,7 @@ static void wr_set_sge_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_sge, } hr_reg_write(wqe, UDWQE_MSG_START_SGE_IDX, sge_idx & mask); @@ -64,7 +73,7 @@ index 495fbcb..754f918 100644 if (!sg_list[i].length) continue; -@@ -2899,8 +2899,8 @@ static void set_inline_data_list_ud(struct hns_roce_qp *qp, +@@ -2858,8 +2858,8 @@ static void set_inline_data_list_ud(struct hns_roce_qp *qp, uint8_t data[HNS_ROCE_MAX_UD_INL_INN_SZ] = {}; unsigned int msg_len = qp->sge_info.total_len; void *tmp; @@ -74,7 +83,7 @@ index 495fbcb..754f918 100644 if (!check_inl_data_len(qp, msg_len)) { qp->err = EINVAL; -@@ -2962,7 +2962,7 @@ static void wr_set_inline_data_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_buf, +@@ -2920,7 +2920,7 @@ static void wr_set_inline_data_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_buf, { struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); struct hns_roce_ud_sq_wqe *wqe = qp->cur_wqe; @@ -84,5 +93,5 @@ index 495fbcb..754f918 100644 if (!wqe) return; -- -2.25.1 +2.30.0 diff --git a/0062-Update-kernel-headers-for-libhns-query_device.patch b/0026-Update-kernel-headers-for-libhns-query_device.patch similarity index 81% rename from 0062-Update-kernel-headers-for-libhns-query_device.patch rename to 0026-Update-kernel-headers-for-libhns-query_device.patch index 5922be1d05063d8944295b16ea6c055bcea5458a..adf1b5f032985f970134232b3121b48905e121f4 100644 --- a/0062-Update-kernel-headers-for-libhns-query_device.patch +++ b/0026-Update-kernel-headers-for-libhns-query_device.patch @@ -1,7 +1,7 @@ -From 3bf0c428672478f2460bd16483d33fd0ccdcb718 Mon Sep 17 00:00:00 2001 +From eccaf5d1673c5b20c4c6057f1a41f93e33630f90 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:15 +0800 -Subject: [PATCH 1/8] Update kernel headers for libhns query_device() +Subject: [PATCH 26/34] Update kernel headers for libhns query_device() driver inclusion category: feature @@ -17,10 +17,10 @@ Signed-off-by: Chengchang Tang 1 file changed, 14 insertions(+) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 6b94a89..d411c33 100644 +index af7a6b0..64ddbee 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h -@@ -232,4 +232,18 @@ enum hns_ib_dca_mem_query_attrs { +@@ -233,4 +233,18 @@ enum hns_ib_dca_mem_query_attrs { HNS_IB_ATTR_DCA_MEM_QUERY_OUT_PAGE_COUNT, }; @@ -40,5 +40,5 @@ index 6b94a89..d411c33 100644 + #endif /* HNS_ABI_USER_H */ -- -2.25.1 +2.30.0 diff --git a/0026-rdma-ndd-disable-systemd-ProtectHostName-feature.patch b/0026-rdma-ndd-disable-systemd-ProtectHostName-feature.patch deleted file mode 100644 index 247e2d5fc70e9958d9fa99cde3c9a445c98082fa..0000000000000000000000000000000000000000 --- a/0026-rdma-ndd-disable-systemd-ProtectHostName-feature.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1a2cad26263190460ed211329d040cb1da8d7ac2 Mon Sep 17 00:00:00 2001 -From: Nicolas Morey-Chaisemartin -Date: Thu, 13 Oct 2022 09:49:12 +0200 -Subject: rdma-ndd: disable systemd ProtectHostName feature - -[ Upstream commit 57637df8dd6b92b4bcd3e04cea476012901526d0 ] - -ProtectHostName prevents dynamic name changes to be noticed by the service. -This means that on a system with no static hostname, rdma-ndd is started with -a hostname 'localhost' and is not aware of new hostname retreived -through a DHCP lease. - -Fixes: 384b75b5f624 ("rdma-ndd: systemd hardening") -Signed-off-by: Nicolas Morey-Chaisemartin ---- - rdma-ndd/rdma-ndd.service.in | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/rdma-ndd/rdma-ndd.service.in b/rdma-ndd/rdma-ndd.service.in -index e3f8d11..368deec 100644 ---- a/rdma-ndd/rdma-ndd.service.in -+++ b/rdma-ndd/rdma-ndd.service.in -@@ -22,7 +22,6 @@ Restart=always - ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/rdma-ndd --systemd - ProtectSystem=full - ProtectHome=true --ProtectHostname=true - ProtectKernelLogs=true - - # rdma-ndd is automatically wanted by udev when an RDMA device with a node description is present --- -2.34.1 - diff --git a/0063-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch b/0027-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch similarity index 83% rename from 0063-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch rename to 0027-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch index 59a948d3fe322a16cda9fa010e81220939b21260..f4f2b991ee23760d7e1b7bee6d624c8c274ef36e 100644 --- a/0063-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch +++ b/0027-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch @@ -1,7 +1,7 @@ -From 26d1c2339d0cc633b3817a78303eff6635a5fe88 Mon Sep 17 00:00:00 2001 +From fdca939412bfeb31d48448d4780cde00b0dcd001 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:16 +0800 -Subject: [PATCH 2/8] libhns: Support query HW ID by hnsdv_query_device() +Subject: [PATCH 27/34] libhns: Support query HW ID by hnsdv_query_device() driver inclusion category: feature @@ -13,15 +13,15 @@ Supports obtaining hardware-related ID through hnsdv_query_device() Signed-off-by: Chengchang Tang --- - providers/hns/hns_roce_u.c | 43 ++++++++++++++++++++++---------- - providers/hns/hns_roce_u.h | 1 + + providers/hns/hns_roce_u.c | 40 ++++++++++++++++++++++++-------- + providers/hns/hns_roce_u.h | 2 ++ providers/hns/hns_roce_u_abi.h | 3 +++ - providers/hns/hns_roce_u_verbs.c | 32 ++++++++++++++++++------ - providers/hns/hnsdv.h | 11 ++++++++ - 5 files changed, 70 insertions(+), 20 deletions(-) + providers/hns/hns_roce_u_verbs.c | 32 +++++++++++++++++++------ + providers/hns/hnsdv.h | 11 +++++++++ + 5 files changed, 71 insertions(+), 17 deletions(-) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index cef64ec..1085b85 100644 +index cc2a064..2145b5c 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c @@ -313,6 +313,35 @@ static void ucontext_set_cmd(struct hns_roce_alloc_ucontext *cmd, @@ -54,7 +54,7 @@ index cef64ec..1085b85 100644 + context->max_srq_wr = dev_attrs->max_srq_wr; + context->max_srq_sge = dev_attrs->max_srq_sge; + -+ return 0; ++ return get_link_type(dev_attrs->vendor_part_id, &hr_dev->link_type); +} + static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, @@ -68,7 +68,7 @@ index cef64ec..1085b85 100644 struct hns_roce_context *context; int i; -@@ -362,23 +390,12 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, +@@ -362,15 +390,7 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, for (i = 0; i < HNS_ROCE_SRQ_TABLE_SIZE; ++i) context->srq_table[i].refcnt = 0; @@ -77,39 +77,32 @@ index cef64ec..1085b85 100644 - struct ibv_device_attr_ex, - orig_attr), - sizeof(dev_attrs))) +- goto err_free; +- +- hr_dev->hw_version = dev_attrs.hw_ver; +- if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) + if (query_dev_attr(context, hr_dev)) goto err_free; -- hr_dev->hw_version = dev_attrs.hw_ver; - if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) - hr_dev->link_type = resp.mac_type; - -- context->max_qp_wr = dev_attrs.max_qp_wr; -- context->max_sge = dev_attrs.max_sge; -- context->max_cqe = dev_attrs.max_cqe; -- context->max_srq_wr = dev_attrs.max_srq_wr; -- context->max_srq_sge = dev_attrs.max_srq_sge; -- if (init_dca_context(context, cmd_fd, - &resp, ctx_attr, hr_dev->page_size)) - goto err_free; diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 662eb8a..323d2f9 100644 +index 6574bad..6546211 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -280,6 +280,7 @@ struct hns_roce_context { +@@ -278,6 +278,8 @@ struct hns_roce_context { + uint32_t config; unsigned int max_inline_data; - struct hns_roce_dca_ctx dca_ctx; + struct hnsdv_hw_id hw_id; - ++ bool use_new_reset_flag; bool reseted; + }; diff --git a/providers/hns/hns_roce_u_abi.h b/providers/hns/hns_roce_u_abi.h -index 1eaf62d..c73a30d 100644 +index 7e9bbc1..07e43aa 100644 --- a/providers/hns/hns_roce_u_abi.h +++ b/providers/hns/hns_roce_u_abi.h -@@ -68,4 +68,7 @@ DECLARE_DRV_CMD(hns_roce_create_srq_ex, IB_USER_VERBS_CMD_CREATE_XSRQ, +@@ -68,4 +68,7 @@ DECLARE_DRV_CMD(hns_roce_create_ah, IB_USER_VERBS_CMD_CREATE_AH, empty, DECLARE_DRV_CMD(hns_roce_modify_qp_ex, IB_USER_VERBS_EX_CMD_MODIFY_QP, empty, hns_roce_ib_modify_qp_resp); @@ -118,7 +111,7 @@ index 1eaf62d..c73a30d 100644 + #endif /* _HNS_ROCE_U_ABI_H */ diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index c3b01a0..5b86077 100644 +index b31aac9..2908f33 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -84,22 +84,27 @@ void hns_roce_init_qp_indices(struct hns_roce_qp *qp) @@ -198,10 +191,10 @@ index c3b01a0..5b86077 100644 } diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h -index 365c314..159edb8 100644 +index 0158741..192275c 100644 --- a/providers/hns/hnsdv.h +++ b/providers/hns/hnsdv.h -@@ -70,12 +70,23 @@ struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, +@@ -68,12 +68,23 @@ enum hnsdv_context_attr_flags { enum hnsdv_query_context_comp_mask { HNSDV_CONTEXT_MASK_CONGEST_TYPE = 1 << 0, @@ -226,5 +219,5 @@ index 365c314..159edb8 100644 int hnsdv_query_device(struct ibv_context *ctx_in, -- -2.25.1 +2.30.0 diff --git a/0064-Update-kernel-headers-for-supporting-POE-CQs.patch b/0028-Update-kernel-headers-for-supporting-POE-CQs.patch similarity index 87% rename from 0064-Update-kernel-headers-for-supporting-POE-CQs.patch rename to 0028-Update-kernel-headers-for-supporting-POE-CQs.patch index e2f3b81ba08adc800eaa7f8979958cd03c94d302..b0269a2d729e862118d419686e569d646fe3451a 100644 --- a/0064-Update-kernel-headers-for-supporting-POE-CQs.patch +++ b/0028-Update-kernel-headers-for-supporting-POE-CQs.patch @@ -1,7 +1,7 @@ -From 4fe79a9dc4b3b735ededf17dada62d022d170394 Mon Sep 17 00:00:00 2001 +From 6f9d79b8b90784cb74d8e6d0004ba36e0dd3e606 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:17 +0800 -Subject: [PATCH 3/8] Update kernel headers for supporting POE CQs +Subject: [PATCH 28/34] Update kernel headers for supporting POE CQs driver inclusion category: feature @@ -17,7 +17,7 @@ Signed-off-by: Chengchang Tang 1 file changed, 8 insertions(+) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index d411c33..817fc06 100644 +index 64ddbee..228281d 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h @@ -36,15 +36,23 @@ @@ -45,5 +45,5 @@ index d411c33..817fc06 100644 struct hns_roce_ib_create_cq_resp { -- -2.25.1 +2.30.0 diff --git a/0028-Update-kernel-headers.patch b/0028-Update-kernel-headers.patch deleted file mode 100644 index 90daaf9ebc8cf2e45e246302e8fa828d436200d5..0000000000000000000000000000000000000000 --- a/0028-Update-kernel-headers.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4050da82f772478e1ebbcc6bd1971ecfa07399ad Mon Sep 17 00:00:00 2001 -From: Guofeng Yue -Date: Mon, 17 Oct 2022 11:12:15 +0800 -Subject: Update kernel headers - -To commit ?? ("RDMA/hns: Pass mac type to user driver for RoH mode"). - -Signed-off-by: Guofeng Yue ---- - kernel-headers/rdma/hns-abi.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 542be5e..9866c51 100644 ---- a/kernel-headers/rdma/hns-abi.h -+++ b/kernel-headers/rdma/hns-abi.h -@@ -116,6 +116,8 @@ struct hns_roce_ib_alloc_ucontext_resp { - __u32 reserved; - __u32 config; - __u32 max_inline_data; -+ __u8 mac_type; -+ __u8 rsv1[7]; - }; - - struct hns_roce_ib_alloc_ucontext { --- -2.30.0 - diff --git a/0065-libhns-Add-support-for-POE-CQs.patch b/0029-libhns-Add-support-for-POE-CQs.patch similarity index 78% rename from 0065-libhns-Add-support-for-POE-CQs.patch rename to 0029-libhns-Add-support-for-POE-CQs.patch index 17cda615461fad07665c6727c26b2d104095dc85..423eed71f33fa14ce5089e44dc02369eeaa8af47 100644 --- a/0065-libhns-Add-support-for-POE-CQs.patch +++ b/0029-libhns-Add-support-for-POE-CQs.patch @@ -1,7 +1,7 @@ -From 80a8e63d5e764868cbaf2af3e522a320b5781508 Mon Sep 17 00:00:00 2001 +From 4cd806b16c12d13f53d815ddb46d3391dc88866e Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:18 +0800 -Subject: [PATCH 4/8] libhns: Add support for POE CQs +Subject: [PATCH 29/34] libhns: Add support for POE CQs driver inclusion category: feature @@ -17,56 +17,17 @@ hnsdv_update_sq_ci() is added to allow users to change the QP CI. Signed-off-by: Chengchang Tang --- - providers/hns/hns_roce_u.c | 11 ++-- providers/hns/hns_roce_u_hw_v2.c | 19 ++++++ providers/hns/hns_roce_u_verbs.c | 110 ++++++++++++++++++++++++++++--- providers/hns/hnsdv.h | 22 +++++++ providers/hns/libhns.map | 2 + - 5 files changed, 150 insertions(+), 14 deletions(-) + 4 files changed, 144 insertions(+), 9 deletions(-) -diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 1085b85..084385b 100644 ---- a/providers/hns/hns_roce_u.c -+++ b/providers/hns/hns_roce_u.c -@@ -321,7 +321,8 @@ static void set_default_hw_id(struct hns_roce_context *context) - } - - static int query_dev_attr(struct hns_roce_context *context, -- struct hns_roce_device *hr_dev) -+ struct hns_roce_device *hr_dev, -+ struct hns_roce_alloc_ucontext_resp *resp) - { - struct ibv_device_attr_ex attrx = {}; - struct ibv_device_attr *dev_attrs = &attrx.orig_attr; -@@ -339,6 +340,9 @@ static int query_dev_attr(struct hns_roce_context *context, - context->max_srq_wr = dev_attrs->max_srq_wr; - context->max_srq_sge = dev_attrs->max_srq_sge; - -+ if (get_link_type(dev_attrs->vendor_part_id, &hr_dev->link_type)) -+ hr_dev->link_type = resp->mac_type; -+ - return 0; - } - -@@ -390,12 +394,9 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - for (i = 0; i < HNS_ROCE_SRQ_TABLE_SIZE; ++i) - context->srq_table[i].refcnt = 0; - -- if (query_dev_attr(context, hr_dev)) -+ if (query_dev_attr(context, hr_dev, &resp)) - goto err_free; - -- if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) -- hr_dev->link_type = resp.mac_type; -- - if (init_dca_context(context, cmd_fd, - &resp, ctx_attr, hr_dev->page_size)) - goto err_free; diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index fbd02dc..688b760 100644 +index 36d0761..3bc4a4e 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1029,6 +1029,9 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, +@@ -1012,6 +1012,9 @@ static int hns_roce_u_v2_poll_cq(struct ibv_cq *ibvcq, int ne, int err = V2_CQ_OK; int npolled; @@ -76,7 +37,7 @@ index fbd02dc..688b760 100644 hns_roce_spin_lock(&cq->hr_lock); if (unlikely(hns_roce_reseted(ctx))) { -@@ -2202,6 +2205,9 @@ static int wc_start_poll_cq(struct ibv_cq_ex *current, +@@ -2189,6 +2192,9 @@ static int wc_start_poll_cq(struct ibv_cq_ex *current, if (attr->comp_mask) return EINVAL; @@ -86,7 +47,7 @@ index fbd02dc..688b760 100644 hns_roce_spin_lock(&cq->hr_lock); if (unlikely(hns_roce_reseted(ctx))) { -@@ -3119,6 +3125,19 @@ int hns_roce_attach_qp_ex_ops(struct ibv_qp_init_attr_ex *attr, +@@ -3084,6 +3090,19 @@ int hns_roce_attach_qp_ex_ops(struct ibv_qp_init_attr_ex *attr, return 0; } @@ -107,7 +68,7 @@ index fbd02dc..688b760 100644 .hw_version = HNS_ROCE_HW_VER2, .hw_ops = { diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 5b86077..c7863d7 100644 +index 2908f33..d7241ac 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -36,6 +36,7 @@ @@ -159,7 +120,7 @@ index 5b86077..c7863d7 100644 + struct hnsdv_cq_init_attr *hns_cq_attr) { if (!attr->cqe || attr->cqe > context->max_cqe) - return -EINVAL; + return EINVAL; @@ -495,7 +528,7 @@ static int verify_cq_create_attr(struct ibv_cq_init_attr_ex *attr, attr->cqe = max_t(uint32_t, HNS_ROCE_MIN_CQE_NUM, roundup_pow_of_two(attr->cqe)); @@ -230,7 +191,7 @@ index 5b86077..c7863d7 100644 } static int hns_roce_init_cq_swc(struct hns_roce_cq *cq, -@@ -581,13 +648,14 @@ static int hns_roce_cq_spinlock_init(struct ibv_context *context, +@@ -594,13 +661,14 @@ static int hns_roce_srq_spinlock_init(struct ibv_context *context, } static struct ibv_cq_ex *create_cq(struct ibv_context *context, @@ -247,7 +208,7 @@ index 5b86077..c7863d7 100644 if (ret) goto err; -@@ -618,7 +686,7 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, +@@ -631,7 +699,7 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, if (ret) goto err_swc; @@ -256,7 +217,7 @@ index 5b86077..c7863d7 100644 if (ret) goto err_cmd; -@@ -652,7 +720,7 @@ struct ibv_cq *hns_roce_u_create_cq(struct ibv_context *context, int cqe, +@@ -665,7 +733,7 @@ struct ibv_cq *hns_roce_u_create_cq(struct ibv_context *context, int cqe, .comp_vector = comp_vector, }; @@ -265,7 +226,7 @@ index 5b86077..c7863d7 100644 return cq ? ibv_cq_ex_to_cq(cq) : NULL; } -@@ -661,13 +729,37 @@ struct ibv_cq_ex *hns_roce_u_create_cq_ex(struct ibv_context *context, +@@ -674,13 +742,37 @@ struct ibv_cq_ex *hns_roce_u_create_cq_ex(struct ibv_context *context, { struct ibv_cq_ex *cq; @@ -305,10 +266,10 @@ index 5b86077..c7863d7 100644 { to_hr_cq(cq)->arm_sn++; diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h -index 159edb8..c5c7c11 100644 +index 192275c..c3265f9 100644 --- a/providers/hns/hnsdv.h +++ b/providers/hns/hnsdv.h -@@ -92,6 +92,28 @@ struct hnsdv_context { +@@ -90,6 +90,28 @@ struct hnsdv_context { int hnsdv_query_device(struct ibv_context *ctx_in, struct hnsdv_context *attrs_out); @@ -338,10 +299,10 @@ index 159edb8..c5c7c11 100644 } #endif diff --git a/providers/hns/libhns.map b/providers/hns/libhns.map -index ebf28eb..27efc83 100644 +index 768c8ef..3b64900 100644 --- a/providers/hns/libhns.map +++ b/providers/hns/libhns.map -@@ -6,5 +6,7 @@ HNS_1.0 { +@@ -5,5 +5,7 @@ HNS_1.0 { hnsdv_open_device; hnsdv_create_qp; hnsdv_query_device; @@ -350,5 +311,5 @@ index ebf28eb..27efc83 100644 local: *; }; -- -2.25.1 +2.30.0 diff --git a/0066-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch b/0030-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch similarity index 84% rename from 0066-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch rename to 0030-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch index c4a8ac683c29416d6cc40249897b0d3d3ebecebc..e8538db4b8d3b104313c2885ea2c64b271ae1fab 100644 --- a/0066-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch +++ b/0030-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch @@ -1,7 +1,7 @@ -From 56e347494c9d534e521ce836ad8419d0e3857e95 Mon Sep 17 00:00:00 2001 +From 3b8349e8e0ee6be3af11f6da022b41a2a8c552da Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:19 +0800 -Subject: [PATCH 5/8] Update kernel headers for supporting STARS QP in HNS +Subject: [PATCH 30/34] Update kernel headers for supporting STARS QP in HNS driver inclusion category: feature @@ -17,7 +17,7 @@ Signed-off-by: Chengchang Tang 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 817fc06..5969bde 100644 +index 228281d..35a573c 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h @@ -86,6 +86,10 @@ enum hns_roce_create_qp_comp_mask { @@ -31,9 +31,9 @@ index 817fc06..5969bde 100644 enum hns_roce_congest_type_flags { HNS_ROCE_CREATE_QP_FLAGS_DCQCN = 1 << 0, HNS_ROCE_CREATE_QP_FLAGS_LDCP = 1 << 1, -@@ -102,8 +106,8 @@ struct hns_roce_ib_create_qp { +@@ -103,8 +107,8 @@ struct hns_roce_ib_create_qp { + __u8 reserved[4]; - __u8 pageshift; __aligned_u64 sdb_addr; - __aligned_u64 comp_mask; - __aligned_u64 create_flags; @@ -42,7 +42,7 @@ index 817fc06..5969bde 100644 __aligned_u64 congest_type_flags; }; -@@ -115,10 +119,11 @@ enum hns_roce_qp_cap_flags { +@@ -116,10 +120,11 @@ enum hns_roce_qp_cap_flags { HNS_ROCE_QP_CAP_DYNAMIC_CTX_ATTACH = 1 << 4, HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5, HNS_ROCE_QP_CAP_DYNAMIC_CTX_DETACH = 1 << 6, @@ -56,5 +56,5 @@ index 817fc06..5969bde 100644 }; -- -2.25.1 +2.30.0 diff --git a/0067-libhns-Support-STARS-mode-QP.patch b/0031-libhns-Support-STARS-mode-QP.patch similarity index 75% rename from 0067-libhns-Support-STARS-mode-QP.patch rename to 0031-libhns-Support-STARS-mode-QP.patch index 4ef64adf9d343f287aa17a02ee43cebfaf14c980..4bca1c50e89474c389cdc586f747c730ddaa5e1b 100644 --- a/0067-libhns-Support-STARS-mode-QP.patch +++ b/0031-libhns-Support-STARS-mode-QP.patch @@ -1,7 +1,7 @@ -From 904688d4b1cd02c27994c192d58b26903ac4e951 Mon Sep 17 00:00:00 2001 +From 3d660ea4654ab51be8402589ca89ea4cf67f9321 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:20 +0800 -Subject: [PATCH 6/8] libhns: Support STARS mode QP +Subject: [PATCH 31/34] libhns: Support STARS mode QP driver inclusion category: feature @@ -20,16 +20,16 @@ operations. Signed-off-by: Chengchang Tang --- - providers/hns/hns_roce_u_hw_v2.c | 23 ++++++++----- - providers/hns/hns_roce_u_verbs.c | 59 ++++++++++++++++++++++++++++++-- - providers/hns/hnsdv.h | 2 ++ - 3 files changed, 72 insertions(+), 12 deletions(-) + providers/hns/hns_roce_u_hw_v2.c | 23 ++++++----- + providers/hns/hns_roce_u_verbs.c | 68 +++++++++++++++++++++++++++++++- + providers/hns/hnsdv.h | 3 ++ + 3 files changed, 84 insertions(+), 10 deletions(-) diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 688b760..ab6d652 100644 +index 3bc4a4e..d650c5a 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1675,11 +1675,13 @@ out: +@@ -1658,11 +1658,13 @@ out: udma_to_device_barrier(); @@ -48,7 +48,7 @@ index 688b760..ab6d652 100644 if (qp->flags & HNS_ROCE_QP_CAP_SQ_RECORD_DB) *(qp->sdb) = qp->sq.head & 0xffff; -@@ -3008,10 +3010,13 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) +@@ -2973,10 +2975,13 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) qp->next_sge = qp->sge_info.start_idx; udma_to_device_barrier(); @@ -67,38 +67,44 @@ index 688b760..ab6d652 100644 if (qp->flags & HNS_ROCE_QP_CAP_SQ_RECORD_DB) *(qp->sdb) = qp->sq.head & 0xffff; diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index c7863d7..2ad9ea0 100644 +index d7241ac..7c483c5 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c -@@ -1211,7 +1211,8 @@ static int check_qp_congest_type(struct hns_roce_context *ctx, +@@ -1219,6 +1219,12 @@ static int check_qp_congest_type(struct hns_roce_context *ctx, + return 0; + } - enum { - HNSDV_QP_SUP_CREATE_FLAGS = HNSDV_QP_CREATE_ENABLE_DCA_MODE | -- HNSDV_QP_CREATE_ENABLE_UD_SL, ++enum { ++ HNSDV_QP_SUP_CREATE_FLAGS = HNSDV_QP_CREATE_ENABLE_DCA_MODE | + HNSDV_QP_CREATE_ENABLE_UD_SL | + HNSDV_QP_CREATE_ENABLE_STARS_MODE, - }; - ++}; ++ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, -@@ -1224,7 +1225,7 @@ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, + struct hnsdv_qp_init_attr *hns_attr, + struct hns_roce_cmd_flag *cmd_flag) +@@ -1229,11 +1235,19 @@ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, return 0; if (!check_comp_mask(hns_attr->comp_mask, HNSDV_QP_SUP_COMP_MASK)) { - verbs_err(&ctx->ibv_ctx, "invalid hnsdv comp_mask 0x%x.\n", + verbs_err(&ctx->ibv_ctx, "invalid comp_mask 0x%"PRIu64".\n", hns_attr->comp_mask); - return -EINVAL; + return EINVAL; } -@@ -1232,7 +1233,7 @@ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, - if (hns_attr->comp_mask & HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS && - !check_comp_mask(hns_attr->create_flags, - HNSDV_QP_SUP_CREATE_FLAGS)) { -- verbs_err(&ctx->ibv_ctx, "invalid create_flags 0x%x.\n", + ++ if (hns_attr->comp_mask & HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS && ++ !check_comp_mask(hns_attr->create_flags, ++ HNSDV_QP_SUP_CREATE_FLAGS)) { + verbs_err(&ctx->ibv_ctx, "invalid create_flags 0x%"PRIu32".\n", - hns_attr->create_flags); - return -EOPNOTSUPP; - } -@@ -1244,6 +1245,41 @@ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, ++ hns_attr->create_flags); ++ return EOPNOTSUPP; ++ } ++ + ret = check_qp_congest_type(ctx, hns_attr, cmd_flag); + if (ret) + return ret; +@@ -1241,6 +1255,41 @@ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, return 0; } @@ -140,7 +146,7 @@ index c7863d7..2ad9ea0 100644 enum { CREATE_QP_SUP_COMP_MASK = IBV_QP_INIT_ATTR_PD | IBV_QP_INIT_ATTR_XRCD | IBV_QP_INIT_ATTR_SEND_OPS_FLAGS, -@@ -1352,6 +1388,11 @@ static int verify_qp_create_attr(struct hns_roce_context *ctx, +@@ -1349,6 +1398,11 @@ static int verify_qp_create_attr(struct hns_roce_context *ctx, if (ret) return ret; @@ -152,7 +158,7 @@ index c7863d7..2ad9ea0 100644 return verify_qp_create_cap(ctx, attr); } -@@ -1801,6 +1842,11 @@ static int qp_exec_create_cmd(struct ibv_qp_init_attr_ex *attr, +@@ -1793,6 +1847,11 @@ static int qp_exec_create_cmd(struct ibv_qp_init_attr_ex *attr, cmd_ex.congest_type_flags = cmd_flag->congest_type_flags; } @@ -164,7 +170,7 @@ index c7863d7..2ad9ea0 100644 ret = ibv_cmd_create_qp_ex2(&ctx->ibv_ctx.context, &qp->verbs_qp, attr, &cmd_ex.ibv_cmd, sizeof(cmd_ex), &resp_ex.ibv_resp, sizeof(resp_ex)); -@@ -2000,6 +2046,13 @@ struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, +@@ -1985,6 +2044,13 @@ struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, struct ibv_qp_init_attr_ex *qp_attr, struct hnsdv_qp_init_attr *hns_attr) { @@ -179,18 +185,19 @@ index c7863d7..2ad9ea0 100644 errno = EOPNOTSUPP; return NULL; diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h -index c5c7c11..98c68fd 100644 +index c3265f9..eeb9982 100644 --- a/providers/hns/hnsdv.h +++ b/providers/hns/hnsdv.h -@@ -44,6 +44,7 @@ struct ibv_context *hnsdv_open_device(struct ibv_device *device, +@@ -19,6 +19,8 @@ extern "C" { + enum hnsdv_qp_create_flags { HNSDV_QP_CREATE_ENABLE_DCA_MODE = 1 << 0, - HNSDV_QP_CREATE_ENABLE_UD_SL = 1 << 1, ++ HNSDV_QP_CREATE_ENABLE_UD_SL = 1 << 1, + HNSDV_QP_CREATE_ENABLE_STARS_MODE = 1 << 2, }; - enum hnsdv_qp_congest_ctrl_type { -@@ -62,6 +63,7 @@ struct hnsdv_qp_init_attr { + enum hnsdv_context_comp_mask { +@@ -56,6 +58,7 @@ struct hnsdv_qp_init_attr { uint64_t comp_mask; /* Use enum hnsdv_qp_init_attr_mask */ uint32_t create_flags; /* Use enum hnsdv_qp_create_flags */ uint8_t congest_type; /* Use enum hnsdv_qp_congest_ctrl_type */ @@ -199,5 +206,5 @@ index c5c7c11..98c68fd 100644 struct ibv_qp *hnsdv_create_qp(struct ibv_context *context, -- -2.25.1 +2.30.0 diff --git a/0068-Update-kernel-headers-for-supporting-write-with-noti.patch b/0032-Update-kernel-headers-for-supporting-write-with-noti.patch similarity index 86% rename from 0068-Update-kernel-headers-for-supporting-write-with-noti.patch rename to 0032-Update-kernel-headers-for-supporting-write-with-noti.patch index 15cf743952b5b9ebd76b4d5526268cd5158eb3a1..8f75bde4100aa104a8662e9d85c30165d74bdd26 100644 --- a/0068-Update-kernel-headers-for-supporting-write-with-noti.patch +++ b/0032-Update-kernel-headers-for-supporting-write-with-noti.patch @@ -1,7 +1,7 @@ -From d13868688d40281f1da602befb19da850b59b725 Mon Sep 17 00:00:00 2001 +From 521389ded34a56219f8dc773f6123da099d6b75b Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:21 +0800 -Subject: [PATCH 7/8] Update kernel headers for supporting write with notify +Subject: [PATCH 32/34] Update kernel headers for supporting write with notify driver inclusion category: feature @@ -17,7 +17,7 @@ Signed-off-by: Chengchang Tang 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 5969bde..785c4e1 100644 +index 35a573c..8650fc4 100644 --- a/kernel-headers/rdma/hns-abi.h +++ b/kernel-headers/rdma/hns-abi.h @@ -38,6 +38,7 @@ @@ -45,7 +45,7 @@ index 5969bde..785c4e1 100644 }; struct hns_roce_ib_create_cq_resp { -@@ -120,6 +124,7 @@ enum hns_roce_qp_cap_flags { +@@ -121,6 +125,7 @@ enum hns_roce_qp_cap_flags { HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5, HNS_ROCE_QP_CAP_DYNAMIC_CTX_DETACH = 1 << 6, HNS_ROCE_QP_CAP_STARS_SQ_MODE = 1 << 7, @@ -54,5 +54,5 @@ index 5969bde..785c4e1 100644 struct hns_roce_ib_create_qp_resp { -- -2.25.1 +2.30.0 diff --git a/0069-libhns-Support-write-with-notify.patch b/0033-libhns-Support-write-with-notify.patch similarity index 92% rename from 0069-libhns-Support-write-with-notify.patch rename to 0033-libhns-Support-write-with-notify.patch index 39e9eb3d9a7f9ffe1e64ea522c7a88f9491ba83b..d2ddc9ba9f1735e071cc5568d74c85f19053cbbe 100644 --- a/0069-libhns-Support-write-with-notify.patch +++ b/0033-libhns-Support-write-with-notify.patch @@ -1,7 +1,7 @@ -From 64933c92842d34190c8cda9a864505d0558d3f5f Mon Sep 17 00:00:00 2001 +From 77ca4cf117c460c1144ec8361c85aea55550d434 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 30 Oct 2023 16:59:22 +0800 -Subject: [PATCH] libhns: Support write with notify +Subject: [PATCH 33/34] libhns: Support write with notify driver inclusion category: feature @@ -28,10 +28,10 @@ Signed-off-by: Chengchang Tang 5 files changed, 71 insertions(+), 3 deletions(-) diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index ab6d652..495fbcb 100644 +index d650c5a..c94b66e 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -2993,6 +2993,29 @@ static void wr_start(struct ibv_qp_ex *ibv_qp) +@@ -2958,6 +2958,29 @@ static void wr_start(struct ibv_qp_ex *ibv_qp) qp->err = 0; } @@ -74,7 +74,7 @@ index 50a920f..fa83bbe 100644 }; diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 2ad9ea0..5e46f89 100644 +index 7c483c5..10145cd 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -476,9 +476,26 @@ enum { @@ -140,10 +140,10 @@ index 2ad9ea0..5e46f89 100644 } diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h -index 98c68fd..7d95db4 100644 +index eeb9982..6df7b95 100644 --- a/providers/hns/hnsdv.h +++ b/providers/hns/hnsdv.h -@@ -100,13 +100,24 @@ enum hnsdv_cq_init_attr_mask { +@@ -99,13 +99,24 @@ enum hnsdv_cq_init_attr_mask { enum hnsdv_cq_create_flags { HNSDV_CQ_CREATE_ENABLE_POE_MODE = 1 << 0, @@ -169,7 +169,7 @@ index 98c68fd..7d95db4 100644 }; struct ibv_cq_ex *hnsdv_create_cq_ex(struct ibv_context *context, -@@ -116,6 +127,10 @@ struct ibv_cq_ex *hnsdv_create_cq_ex(struct ibv_context *context, +@@ -115,6 +126,10 @@ struct ibv_cq_ex *hnsdv_create_cq_ex(struct ibv_context *context, /* used in stars mode */ void hnsdv_update_sq_ci(struct ibv_qp *qp, uint32_t inc_idx); @@ -181,10 +181,10 @@ index 98c68fd..7d95db4 100644 } #endif diff --git a/providers/hns/libhns.map b/providers/hns/libhns.map -index 27efc83..74d85e1 100644 +index 3b64900..20e1398 100644 --- a/providers/hns/libhns.map +++ b/providers/hns/libhns.map -@@ -8,5 +8,6 @@ HNS_1.0 { +@@ -7,5 +7,6 @@ HNS_1.0 { hnsdv_query_device; hnsdv_create_cq_ex; hnsdv_update_sq_ci; @@ -192,5 +192,5 @@ index 27efc83..74d85e1 100644 local: *; }; -- -2.25.1 +2.30.0 diff --git a/0061-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch b/0034-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch similarity index 30% rename from 0061-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch rename to 0034-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch index c9055c13be39119339540ec5e2d9816decf494ed..45d070b12faa5a34a859fce803f622585c9dca88 100644 --- a/0061-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch +++ b/0034-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch @@ -1,7 +1,7 @@ -From c77fa69a300e97cc37bb5189f79e3a1ca6f30ac5 Mon Sep 17 00:00:00 2001 +From 10b2065fc42a8f2aa9304351069de5f5693e081e Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Thu, 26 Oct 2023 14:35:03 +0800 -Subject: [PATCH] libhns: Skip resolving MAC for RDMA over UBLink +Subject: [PATCH 34/34] libhns: Skip resolving MAC for RDMA over UBLink driver inclusion category: feature @@ -14,14 +14,13 @@ Signed-off-by: Chengchang Tang Signed-off-by: Haoyue Xu Signed-off-by: Junxian Huang --- - providers/hns/hns_roce_u.c | 37 +++++++++++++++++++++++++++++++- - providers/hns/hns_roce_u.h | 9 ++++---- - providers/hns/hns_roce_u_hw_v2.c | 2 +- - providers/hns/hns_roce_u_verbs.c | 3 ++- - 4 files changed, 44 insertions(+), 7 deletions(-) + providers/hns/hns_roce_u.c | 4 +++- + providers/hns/hns_roce_u.h | 1 + + providers/hns/hns_roce_u_verbs.c | 4 ++-- + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index 02ad880..cef64ec 100644 +index 2145b5c..9c2aea1 100644 --- a/providers/hns/hns_roce_u.c +++ b/providers/hns/hns_roce_u.c @@ -56,6 +56,7 @@ static const struct verbs_match_ent hca_table[] = { @@ -32,124 +31,43 @@ index 02ad880..cef64ec 100644 {} }; -@@ -95,6 +96,23 @@ static const struct verbs_context_ops hns_common_ops = { - .alloc_parent_domain = hns_roce_u_alloc_pad, - }; - -+static struct { -+ uint32_t device_id; -+ enum hns_device_link_type link_type; -+} device_link_types[] = { -+ {0xA222, HNS_DEV_LINK_TYPE_ETH}, -+ {0xA223, HNS_DEV_LINK_TYPE_ETH}, -+ {0xA224, HNS_DEV_LINK_TYPE_ETH}, -+ {0xA225, HNS_DEV_LINK_TYPE_ETH}, -+ {0xA226, HNS_DEV_LINK_TYPE_ETH}, -+ {0xA228, HNS_DEV_LINK_TYPE_ETH}, -+ {0xA22F, HNS_DEV_LINK_TYPE_ETH}, -+ {0xA227, HNS_DEV_LINK_TYPE_HCCS}, -+ {0xA22C, HNS_DEV_LINK_TYPE_HCCS}, +@@ -271,7 +272,8 @@ static struct { + {0xA22F, HNS_DEV_LINK_TYPE_ETH}, + {0xA227, HNS_DEV_LINK_TYPE_HCCS}, + {0xA22C, HNS_DEV_LINK_TYPE_HCCS}, +- {0xA22D, HNS_DEV_LINK_TYPE_HCCS} + {0xA22D, HNS_DEV_LINK_TYPE_HCCS}, + {0xA26A, HNS_DEV_LINK_TYPE_UB} -+}; -+ - static int mmap_dca(struct hns_roce_context *ctx, int cmd_fd, - int page_size, size_t size, uint64_t mmap_key) - { -@@ -256,6 +274,21 @@ static int hns_roce_mmap(struct hns_roce_device *hr_dev, - return 0; - } - -+static int get_link_type(uint32_t device_id, -+ enum hns_device_link_type *link_type) -+{ -+ int i; -+ -+ for (i = 0; i < ARRAY_SIZE(device_link_types); i++) { -+ if (device_id == device_link_types[i].device_id) { -+ *link_type = device_link_types[i].link_type; -+ return 0; -+ } -+ } -+ -+ return ENOENT; -+} -+ - static uint32_t calc_table_shift(uint32_t entry_count, uint32_t size_shift) - { - uint32_t count_shift = hr_ilog32(entry_count); -@@ -302,7 +335,6 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - &resp.ibv_resp, sizeof(resp))) - goto err_free; - -- hr_dev->mac_type = resp.mac_type; - hr_dev->congest_type = resp.congest_type; - - if (!resp.cqe_size) -@@ -338,6 +370,9 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - goto err_free; + }; - hr_dev->hw_version = dev_attrs.hw_ver; -+ if (get_link_type(dev_attrs.vendor_part_id, &hr_dev->link_type)) -+ hr_dev->link_type = resp.mac_type; -+ - context->max_qp_wr = dev_attrs.max_qp_wr; - context->max_sge = dev_attrs.max_sge; - context->max_cqe = dev_attrs.max_cqe; + static int get_link_type(uint32_t device_id, diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 197bde9..662eb8a 100644 +index 6546211..6595a81 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h -@@ -161,9 +161,10 @@ enum { - #define HNS_ROCE_SRQ_TABLE_BITS 8 - #define HNS_ROCE_SRQ_TABLE_SIZE BIT(HNS_ROCE_SRQ_TABLE_BITS) - --enum { -- HNAE3_MAC_ETH, -- HNAE3_MAC_ROH, -+enum hns_device_link_type { -+ HNS_DEV_LINK_TYPE_ETH, -+ HNS_DEV_LINK_TYPE_HCCS, +@@ -164,6 +164,7 @@ enum { + enum hns_device_link_type { + HNS_DEV_LINK_TYPE_ETH, + HNS_DEV_LINK_TYPE_HCCS, + HNS_DEV_LINK_TYPE_UB, }; struct hns_roce_device { -@@ -171,7 +172,7 @@ struct hns_roce_device { - int page_size; - const struct hns_roce_u_hw *u_hw; - int hw_version; -- uint8_t mac_type; -+ enum hns_device_link_type link_type; - uint8_t congest_type; - }; - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 714a34e..fbd02dc 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1431,7 +1431,7 @@ static int set_ud_wqe(void *wqe, struct hns_roce_qp *qp, struct ibv_send_wr *wr, - if (ret) - return ret; - -- if (hr_dev->mac_type == HNAE3_MAC_ROH) -+ if (hr_dev->link_type == HNS_DEV_LINK_TYPE_HCCS) - ud_sq_wqe->dmac[0] = 0xFF; - - ret = fill_ud_data_seg(ud_sq_wqe, qp, wr, sge_info); diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 1c2d94d..c3b01a0 100644 +index 10145cd..b733887 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c -@@ -2019,7 +2019,8 @@ struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr) - if (ibv_cmd_create_ah(pd, &ah->ibv_ah, attr, &resp.ibv_resp, sizeof(resp))) - goto err; +@@ -2211,8 +2211,8 @@ struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr) -- if (ibv_resolve_eth_l2_from_gid(pd->context, attr, ah->av.mac, NULL)) -+ if (hr_dev->link_type != HNS_DEV_LINK_TYPE_UB && + if (memcmp(ah->av.mac, resp.dmac, ETH_ALEN)) + memcpy(ah->av.mac, resp.dmac, ETH_ALEN); +- else if (ibv_resolve_eth_l2_from_gid(pd->context, attr, +- ah->av.mac, NULL)) ++ else if (hr_dev->link_type != HNS_DEV_LINK_TYPE_UB && + ibv_resolve_eth_l2_from_gid(pd->context, attr, ah->av.mac, NULL)) goto err; if (resp.tc_mode == HNS_ROCE_TC_MAP_MODE_DSCP) -- -2.25.1 +2.30.0 diff --git a/0042-Update-kernel-headers.patch b/0042-Update-kernel-headers.patch deleted file mode 100644 index 8b8a363101c5564dd71c0feec94f901207b6779d..0000000000000000000000000000000000000000 --- a/0042-Update-kernel-headers.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0c132b9216282269974bf5d21f877413cc222950 Mon Sep 17 00:00:00 2001 -From: Yixing Liu -Date: Mon, 17 Apr 2023 09:48:09 +0800 -Subject: [PATCH 1/2] Update kernel headers - - To commit ?? ("RDMA/hns: Add SVE DIRECT WQE flag to support libhns"). - -Signed-off-by: Yixing Liu -Reviewed-by: Yangyang Li ---- - kernel-headers/rdma/hns-abi.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index bd19927..cab941f 100644 ---- a/kernel-headers/rdma/hns-abi.h -+++ b/kernel-headers/rdma/hns-abi.h -@@ -92,6 +92,7 @@ enum hns_roce_qp_cap_flags { - HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0, - HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1, - HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2, -+ HNS_ROCE_QP_CAP_SVE_DIRECT_WQE = 1 << 3, - HNS_ROCE_QP_CAP_DYNAMIC_CTX_ATTACH = 1 << 4, - HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5, - HNS_ROCE_QP_CAP_DYNAMIC_CTX_DETACH = 1 << 6, --- -2.25.1 - diff --git a/0044-libhns-Fix-the-sge-num-problem-of-atomic-op.patch b/0044-libhns-Fix-the-sge-num-problem-of-atomic-op.patch deleted file mode 100644 index a28b2b71dc6a746862f955f348b0e31c3b1cf01c..0000000000000000000000000000000000000000 --- a/0044-libhns-Fix-the-sge-num-problem-of-atomic-op.patch +++ /dev/null @@ -1,91 +0,0 @@ -From b5127a009336e0e6947433148c6c7422c277bce7 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Sat, 6 May 2023 18:06:38 +0800 -Subject: [PATCH 1/3] libhns: Fix the sge num problem of atomic op - -mainline inclusion -commit b4793235 -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I72EWP -CVE: NA - ----------------------------------------------------------------------- - -The hns hardware logic requires wr->num_sge to be 1 when -performing atomic operations. The code does not judge this -condition, and the current patch adds this constraint. - -Fixes: 3507f87f7760 ("libhns: Optimize set_sge process") -Fixes: 36446a56eea5 ("libhns: Extended QP supports the new post send mechanism") -Signed-off-by: Luoyouming -Signed-off-by: Zhou Juan ---- - providers/hns/hns_roce_u_hw_v2.c | 23 ++++++++++++++++++----- - 1 file changed, 18 insertions(+), 5 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index a49b50d..5533cdb 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -106,6 +106,9 @@ static int set_atomic_seg(struct hns_roce_qp *qp, struct ibv_send_wr *wr, - void *buf[ATOMIC_BUF_NUM_MAX]; - unsigned int buf_sge_num; - -+ /* There is only one sge in atomic wr, and data_len is the data length -+ * in the first sge -+ */ - if (is_std_atomic(data_len)) { - if (wr->opcode == IBV_WR_ATOMIC_CMP_AND_SWP) { - aseg->fetchadd_swap_data = htole64(wr->wr.atomic.swap); -@@ -923,16 +926,19 @@ static void set_rc_sge(struct hns_roce_v2_wqe_data_seg *dseg, - uint32_t mask = qp->ex_sge.sge_cnt - 1; - uint32_t index = sge_info->start_idx; - struct ibv_sge *sge = wr->sg_list; -+ int total_sge = wr->num_sge; -+ bool flag = false; - uint32_t len = 0; - uint32_t cnt = 0; -- int flag; - int i; - -- flag = (wr->send_flags & IBV_SEND_INLINE && -- wr->opcode != IBV_WR_ATOMIC_FETCH_AND_ADD && -- wr->opcode != IBV_WR_ATOMIC_CMP_AND_SWP); -+ if (wr->opcode == IBV_WR_ATOMIC_FETCH_AND_ADD || -+ wr->opcode == IBV_WR_ATOMIC_CMP_AND_SWP) -+ total_sge = 1; -+ else -+ flag = !!(wr->send_flags & IBV_SEND_INLINE); - -- for (i = 0; i < wr->num_sge; i++, sge++) { -+ for (i = 0; i < total_sge; i++, sge++) { - if (unlikely(!sge->length)) - continue; - -@@ -2267,6 +2273,7 @@ static void wr_set_sge_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_sge, - struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); - struct hns_roce_rc_sq_wqe *wqe = qp->cur_wqe; - struct hns_roce_v2_wqe_data_seg *dseg; -+ uint32_t opcode; - - if (!wqe) - return; -@@ -2276,9 +2283,15 @@ static void wr_set_sge_list_rc(struct ibv_qp_ex *ibv_qp, size_t num_sge, - return; - } - -+ - hr_reg_write(wqe, RCWQE_MSG_START_SGE_IDX, - qp->sge_info.start_idx & (qp->ex_sge.sge_cnt - 1)); - -+ opcode = hr_reg_read(wqe, RCWQE_OPCODE); -+ if (opcode == HNS_ROCE_WQE_OP_ATOMIC_COM_AND_SWAP || -+ opcode == HNS_ROCE_WQE_OP_ATOMIC_FETCH_AND_ADD) -+ num_sge = 1; -+ - dseg = (void *)(wqe + 1); - set_sgl_rc(dseg, qp, sg_list, num_sge); - --- -2.25.1 - diff --git a/0045-libhns-Fix-sge-tail_len-overflow.patch b/0045-libhns-Fix-sge-tail_len-overflow.patch deleted file mode 100644 index de3d9dad944d4c841c130999bdfda935b509a21c..0000000000000000000000000000000000000000 --- a/0045-libhns-Fix-sge-tail_len-overflow.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 2653621c332c79ba591d76a442061bd13ad23030 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Sat, 6 May 2023 18:06:39 +0800 -Subject: [PATCH 2/3] libhns: Fix sge tail_len overflow - -mainline inclusion -commit cd9c9ea5 -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I72F0C -CVE: NA - ----------------------------------------------------------------------- - -In the sq inline scenario, when num_sge in post_send is not 1, sge -array appears in the for loop without rotation and directly copy -out of bounds. - -The fill_ext_sge_inl_data() calculates the remaining length of the -array by subtracting the current address from the tail address. If -the length is not sufficient, redundant data will be copied after -rotating the array. However, in the code, sge_cnt & sge_mask always -equals to 0, which causes the tail address of the array to be -mistakenly taken as the first address. Additionally, tail_len will -be either 0 or may overflow when calculating this value. After -overflowing to a very large number, the driver makes an incorrect -judgment and copies all the data directly. When the data length -exceeds the remaining length, an out-of-bounds problem with the -array will occur. - -This patch modifies tail_bound_addr(tail pointer) to the actual sge -array tail address. - -Fixes: 2ced2bc4d1d4 ("libhns: Fix out-of-bounds write when filling inline data into extended sge space") -Signed-off-by: Luoyouming -Signed-off-by: Zhou Juan ---- - providers/hns/hns_roce_u_hw_v2.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 5533cdb..3d46f35 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1028,7 +1028,7 @@ static int fill_ext_sge_inl_data(struct hns_roce_qp *qp, - return EINVAL; - - dst_addr = get_send_sge_ex(qp, sge_info->start_idx & sge_mask); -- tail_bound_addr = get_send_sge_ex(qp, qp->ex_sge.sge_cnt & sge_mask); -+ tail_bound_addr = get_send_sge_ex(qp, qp->ex_sge.sge_cnt); - - for (i = 0; i < num_buf; i++) { - tail_len = (uintptr_t)tail_bound_addr - (uintptr_t)dst_addr; --- -2.25.1 - diff --git a/0046-libhns-Disable-local-invalidate-operation.patch b/0046-libhns-Disable-local-invalidate-operation.patch deleted file mode 100644 index b8a66680d1222ed1a2202b70a7244b38641d01ec..0000000000000000000000000000000000000000 --- a/0046-libhns-Disable-local-invalidate-operation.patch +++ /dev/null @@ -1,153 +0,0 @@ -From b3cea3522d575fdb60b6f426e43d45cec3deb847 Mon Sep 17 00:00:00 2001 -From: Yangyang Li -Date: Sat, 6 May 2023 18:06:40 +0800 -Subject: [PATCH 3/3] libhns: Disable local invalidate operation - -mainline inclusion -commit d8eec872 -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I72F0U -CVE: NA - ----------------------------------------------------------------------- - -Currently local invalidate operation don't work properly. -Disable it for the time being. -HIP08 and HIP09 hardware does not support this feature, so -delete the associated code. - -Fixes: a9ae7e9bfb5d ("libhns: Add local invalidate MR support for hip08") -Signed-off-by: Yangyang Li -Signed-off-by: Zhou Juan ---- - providers/hns/hns_roce_u_hw_v2.c | 30 +----------------------------- - providers/hns/hns_roce_u_hw_v2.h | 2 -- - 2 files changed, 1 insertion(+), 31 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 3d46f35..b929bbf 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -50,7 +50,6 @@ static const uint32_t hns_roce_opcode[] = { - HR_IBV_OPC_MAP(RDMA_READ, RDMA_READ), - HR_IBV_OPC_MAP(ATOMIC_CMP_AND_SWP, ATOMIC_COM_AND_SWAP), - HR_IBV_OPC_MAP(ATOMIC_FETCH_AND_ADD, ATOMIC_FETCH_AND_ADD), -- HR_IBV_OPC_MAP(LOCAL_INV, LOCAL_INV), - HR_IBV_OPC_MAP(BIND_MW, BIND_MW_TYPE), - HR_IBV_OPC_MAP(SEND_WITH_INV, SEND_WITH_INV), - }; -@@ -429,7 +428,6 @@ static const unsigned int wc_send_op_map[] = { - [HNS_ROCE_SQ_OP_RDMA_READ] = IBV_WC_RDMA_READ, - [HNS_ROCE_SQ_OP_ATOMIC_COMP_AND_SWAP] = IBV_WC_COMP_SWAP, - [HNS_ROCE_SQ_OP_ATOMIC_FETCH_AND_ADD] = IBV_WC_FETCH_ADD, -- [HNS_ROCE_SQ_OP_LOCAL_INV] = IBV_WC_LOCAL_INV, - [HNS_ROCE_SQ_OP_BIND_MW] = IBV_WC_BIND_MW, - }; - -@@ -597,9 +595,6 @@ static void parse_cqe_for_req(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, - case HNS_ROCE_SQ_OP_RDMA_WRITE_WITH_IMM: - wc->wc_flags = IBV_WC_WITH_IMM; - break; -- case HNS_ROCE_SQ_OP_LOCAL_INV: -- wc->wc_flags = IBV_WC_WITH_INV; -- break; - case HNS_ROCE_SQ_OP_RDMA_READ: - case HNS_ROCE_SQ_OP_ATOMIC_COMP_AND_SWAP: - case HNS_ROCE_SQ_OP_ATOMIC_FETCH_AND_ADD: -@@ -1338,9 +1333,6 @@ static int check_rc_opcode(struct hns_roce_rc_sq_wqe *wqe, - wqe->rkey = htole32(wr->wr.atomic.rkey); - wqe->va = htole64(wr->wr.atomic.remote_addr); - break; -- case IBV_WR_LOCAL_INV: -- hr_reg_enable(wqe, RCWQE_SO); -- /* fallthrough */ - case IBV_WR_SEND_WITH_INV: - wqe->inv_key = htole32(wr->invalidate_rkey); - break; -@@ -1372,7 +1364,6 @@ static int set_rc_wqe(void *wqe, struct hns_roce_qp *qp, struct ibv_send_wr *wr, - !!(wr->send_flags & IBV_SEND_SOLICITED)); - hr_reg_write_bool(wqe, RCWQE_INLINE, - !!(wr->send_flags & IBV_SEND_INLINE)); -- hr_reg_clear(wqe, RCWQE_SO); - - ret = check_rc_opcode(rc_sq_wqe, wr); - if (ret) -@@ -2092,8 +2083,6 @@ static unsigned int get_wc_flags_for_sq(uint8_t opcode) - case HNS_ROCE_SQ_OP_SEND_WITH_IMM: - case HNS_ROCE_SQ_OP_RDMA_WRITE_WITH_IMM: - return IBV_WC_WITH_IMM; -- case HNS_ROCE_SQ_OP_LOCAL_INV: -- return IBV_WC_WITH_INV; - default: - return 0; - } -@@ -2202,7 +2191,6 @@ init_rc_wqe(struct hns_roce_qp *qp, uint64_t wr_id, unsigned int opcode) - hr_reg_write_bool(wqe, RCWQE_FENCE, send_flags & IBV_SEND_FENCE); - hr_reg_write_bool(wqe, RCWQE_SE, send_flags & IBV_SEND_SOLICITED); - hr_reg_clear(wqe, RCWQE_INLINE); -- hr_reg_clear(wqe, RCWQE_SO); - - if (check_qp_dca_enable(qp)) - fill_rc_dca_fields(qp->verbs_qp.qp.qp_num, wqe); -@@ -2332,20 +2320,6 @@ static void wr_send_inv_rc(struct ibv_qp_ex *ibv_qp, uint32_t invalidate_rkey) - wqe->inv_key = htole32(invalidate_rkey); - } - --static void wr_local_inv_rc(struct ibv_qp_ex *ibv_qp, uint32_t invalidate_rkey) --{ -- struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); -- struct hns_roce_rc_sq_wqe *wqe; -- -- wqe = init_rc_wqe(qp, ibv_qp->wr_id, HNS_ROCE_WQE_OP_LOCAL_INV); -- if (!wqe) -- return; -- -- hr_reg_enable(wqe, RCWQE_SO); -- wqe->inv_key = htole32(invalidate_rkey); -- enable_wqe(qp, wqe, qp->sq.head); --} -- - static void wr_set_xrc_srqn(struct ibv_qp_ex *ibv_qp, uint32_t remote_srqn) - { - struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); -@@ -2833,8 +2807,7 @@ enum { - IBV_QP_EX_WITH_RDMA_WRITE_WITH_IMM | - IBV_QP_EX_WITH_RDMA_READ | - IBV_QP_EX_WITH_ATOMIC_CMP_AND_SWP | -- IBV_QP_EX_WITH_ATOMIC_FETCH_AND_ADD | -- IBV_QP_EX_WITH_LOCAL_INV, -+ IBV_QP_EX_WITH_ATOMIC_FETCH_AND_ADD, - HNS_SUPPORTED_SEND_OPS_FLAGS_UD = - IBV_QP_EX_WITH_SEND | - IBV_QP_EX_WITH_SEND_WITH_IMM, -@@ -2850,7 +2823,6 @@ static void fill_send_wr_ops_rc_xrc(struct ibv_qp_ex *qp_ex) - qp_ex->wr_rdma_write_imm = wr_rdma_write_imm; - qp_ex->wr_set_inline_data = wr_set_inline_data_rc; - qp_ex->wr_set_inline_data_list = wr_set_inline_data_list_rc; -- qp_ex->wr_local_inv = wr_local_inv_rc; - qp_ex->wr_atomic_cmp_swp = wr_atomic_cmp_swp; - qp_ex->wr_atomic_fetch_add = wr_atomic_fetch_add; - qp_ex->wr_set_sge = wr_set_sge_rc; -diff --git a/providers/hns/hns_roce_u_hw_v2.h b/providers/hns/hns_roce_u_hw_v2.h -index a22995d..d628d76 100644 ---- a/providers/hns/hns_roce_u_hw_v2.h -+++ b/providers/hns/hns_roce_u_hw_v2.h -@@ -60,7 +60,6 @@ enum { - HNS_ROCE_WQE_OP_ATOMIC_MASK_COMP_AND_SWAP = 0x8, - HNS_ROCE_WQE_OP_ATOMIC_MASK_FETCH_AND_ADD = 0x9, - HNS_ROCE_WQE_OP_FAST_REG_PMR = 0xa, -- HNS_ROCE_WQE_OP_LOCAL_INV = 0xb, - HNS_ROCE_WQE_OP_BIND_MW_TYPE = 0xc, - HNS_ROCE_WQE_OP_MASK = 0x1f - }; -@@ -85,7 +84,6 @@ enum { - HNS_ROCE_SQ_OP_ATOMIC_MASK_COMP_AND_SWAP = 0x8, - HNS_ROCE_SQ_OP_ATOMIC_MASK_FETCH_AND_ADD = 0x9, - HNS_ROCE_SQ_OP_FAST_REG_PMR = 0xa, -- HNS_ROCE_SQ_OP_LOCAL_INV = 0xb, - HNS_ROCE_SQ_OP_BIND_MW = 0xc, - }; - --- -2.25.1 - diff --git a/0047-libhns-Fix-the-owner-bit-error-of-sq-in-new-io.patch b/0047-libhns-Fix-the-owner-bit-error-of-sq-in-new-io.patch deleted file mode 100644 index e0b7b38d70c5d260eca9d8342f3a26879dd42101..0000000000000000000000000000000000000000 --- a/0047-libhns-Fix-the-owner-bit-error-of-sq-in-new-io.patch +++ /dev/null @@ -1,69 +0,0 @@ -From a86a120c35b1112bcef6c3821c2e5e1910e615e9 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Fri, 2 Jun 2023 10:33:14 +0800 -Subject: [PATCH 2/4] libhns: Fix the owner bit error of sq in new io - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I7A5Y5 - ---------------------------------------------------------------- - -The code does not use the head position of sq to set the owner bit, -but uses the head after adding 1 to cause an owner bit error. When -the wqe queue has not been flipped, the hardware has flipped based -on the owner bit judgment, resulting in failure to obtain wqe, -unable to send, and unable to generate cqe. This patch will set the -onwer bit ahead of time before the head value increases. - -Fixes: 36446a56eea5 ("libhns: Extended QP supports the new post send mechanism") -Signed-off-by: Luoyouming ---- - providers/hns/hns_roce_u_hw_v2.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 616d1ea..cde4801 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -2215,6 +2215,9 @@ init_rc_wqe(struct hns_roce_qp *qp, uint64_t wr_id, unsigned int opcode) - - qp->sq.wrid[wqe_idx] = wr_id; - qp->cur_wqe = wqe; -+ -+ enable_wqe(qp, wqe, qp->sq.head); -+ - qp->sq.head++; - - return wqe; -@@ -2236,9 +2239,6 @@ static void wr_set_sge_rc(struct ibv_qp_ex *ibv_qp, uint32_t lkey, - wqe->msg_len = htole32(length); - hr_reg_write(wqe, RCWQE_LEN0, length); - hr_reg_write(wqe, RCWQE_SGE_NUM, !!length); -- /* ignore ex sge start index */ -- -- enable_wqe(qp, wqe, qp->sq.head); - } - - static void set_sgl_rc(struct hns_roce_v2_wqe_data_seg *dseg, -@@ -2541,6 +2541,9 @@ init_ud_wqe(struct hns_roce_qp *qp, uint64_t wr_id, unsigned int opcode) - - qp->sq.wrid[wqe_idx] = wr_id; - qp->cur_wqe = wqe; -+ -+ enable_wqe(qp, wqe, qp->sq.head); -+ - qp->sq.head++; - - return wqe; -@@ -2610,7 +2613,6 @@ static void wr_set_sge_ud(struct ibv_qp_ex *ibv_qp, uint32_t lkey, - dseg->len = htole32(length); - - qp->sge_info.start_idx++; -- enable_wqe(qp, wqe, qp->sq.head); - } - - static void wr_set_sge_list_ud(struct ibv_qp_ex *ibv_qp, size_t num_sge, --- -2.25.1 - diff --git a/0048-libhns-Fix-incorrect-post-send-with-direct-wqe-of-wr.patch b/0048-libhns-Fix-incorrect-post-send-with-direct-wqe-of-wr.patch deleted file mode 100644 index 680c583e309a9b3bcaaecb55b28d2d56beb6d331..0000000000000000000000000000000000000000 --- a/0048-libhns-Fix-incorrect-post-send-with-direct-wqe-of-wr.patch +++ /dev/null @@ -1,49 +0,0 @@ -From cfea6efe6decfa8c209ad9a85e1290674370725e Mon Sep 17 00:00:00 2001 -From: Junxian Huang -Date: Fri, 2 Jun 2023 10:33:15 +0800 -Subject: [PATCH 3/4] libhns: Fix incorrect post-send with direct wqe of - wr-list in user space - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/openeuler/kernel/issues/I7A2SA - ---------------------------------------------------------------- - -Currently, direct wqe is not supported for wr-list. RoCE driver excludes -direct wqe for wr-list by judging whether the number of wr is 1. - -For a wr-list where the second wr is a length-error atomic wr, the -post-send driver handles the first wr and adds 1 to the wr number counter -firstly. While handling the second wr, the driver finds out a length error -and terminates the wr handle process, remaining the counter at 1. This -causes the driver mistakenly judges there is only 1 wr and thus enters -the direct wqe process, carrying the current length-error atomic wqe. - -This patch fixes the error by adding a judgement whether the current wr -is a bad wr. If so, use the normal doorbell process but not direct wqe -despite the wr number is 1. - -Fixes: 159933c37450 ("libhns: Add support for direct wqe") -Signed-off-by: Junxian Huang ---- - providers/hns/hns_roce_u_hw_v2.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index cde4801..bb26c59 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1480,7 +1480,8 @@ out: - - udma_to_device_barrier(); - -- if (nreq == 1 && (qp->flags & HNS_ROCE_QP_CAP_DIRECT_WQE)) -+ if (nreq == 1 && !ret && -+ (qp->flags & HNS_ROCE_QP_CAP_DIRECT_WQE)) - hns_roce_write_dwqe(qp, wqe); - else - hns_roce_update_sq_db(ctx, qp); --- -2.25.1 - diff --git a/0049-libhns-Add-a-judgment-to-the-congestion-control-algo.patch b/0049-libhns-Add-a-judgment-to-the-congestion-control-algo.patch deleted file mode 100644 index 027b3932d9922e3022bc1b4c4cc2b6a8c021abe4..0000000000000000000000000000000000000000 --- a/0049-libhns-Add-a-judgment-to-the-congestion-control-algo.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 8fbf781e3b3630c25a361f7c5e3642350dcd21c9 Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Fri, 2 Jun 2023 10:33:16 +0800 -Subject: [PATCH 4/4] libhns: Add a judgment to the congestion control - algorithm - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I7A7HI - ---------------------------------------------------------------- - -The congestion control algorithm is used only when the comp_mask flag -HNSDV_QP_INIT_ATTR_MASK_QP_CONGEST_TYPE is seted. - -A check on comp_mask is added to prevent invalid parameter errors caused -by unconfigured congestion control algorithm types. - -Fixes: 7623f24781f1 ("libhns: Support congestion control algorithm configuration") -Signed-off-by: Chengchang Tang ---- - providers/hns/hns_roce_u_verbs.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 6c6120c..fa27fc1 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -988,6 +988,9 @@ static int check_qp_congest_type(struct hns_roce_context *ctx, - { - struct hns_roce_device *hr_dev = to_hr_dev(ctx->ibv_ctx.context.device); - -+ if (!(hns_attr->comp_mask & HNSDV_QP_INIT_ATTR_MASK_QP_CONGEST_TYPE)) -+ return 0; -+ - if (!check_comp_mask(hns_attr->congest_type, hr_dev->congest_type)) { - verbs_err(&ctx->ibv_ctx, "unsupported congest type 0x%x.\n", - hns_attr->congest_type); --- -2.25.1 - diff --git a/0050-libhns-Support-user-to-choose-using-UD-sl-or-pktype-.patch b/0050-libhns-Support-user-to-choose-using-UD-sl-or-pktype-.patch deleted file mode 100644 index 13b0a9fc4b598ae320af1b30a90ac7ea9fd6b6c5..0000000000000000000000000000000000000000 --- a/0050-libhns-Support-user-to-choose-using-UD-sl-or-pktype-.patch +++ /dev/null @@ -1,178 +0,0 @@ -From fb07638be493fe0667e3fa0554ee434b7d6b3502 Mon Sep 17 00:00:00 2001 -From: Junxian Huang -Date: Fri, 9 Jun 2023 11:04:41 +0800 -Subject: [PATCH] libhns: Support user to choose using UD sl or pktype to adapt - MPI APP - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I7A5YM - ---------------------------------------------------------------- - -According to Annex17_RoCEv2 (A17.4.5.2), for RoCEv2 UD, a CQE should -carry a flag that indicates if the received frame is an IPv4, IPv6 or -RoCE packet. But currently, the values of the flag corresponding to -these packet types haven't been defined yet in WC. - -In UCX, 'sl' in ibv_wc for UD is used as the packet type flag, and the -packet type values have already been defined in the UCX patch of -https://github.com/openucx/ucx/commit/ed28845b88633e65d64fce8ec880060aa61bd59c - -Therefore, to adapt UCX, add a create flag to hnsdv_create_qp() to allow -users to choose whether they use 'sl' in ibv_wc as service level or -packet type for UD. For the latter, obtain and translate the packet type -from CQE and fill it to 'sl' in ibv_wc. - -Signed-off-by: Junxian Huang -Signed-off-by: Haoyue Xu ---- - providers/hns/hns_roce_u.h | 11 +++++++++++ - providers/hns/hns_roce_u_hw_v2.c | 32 +++++++++++++++++++++++++++++--- - providers/hns/hns_roce_u_verbs.c | 16 ++++++++++++++++ - providers/hns/hnsdv.h | 1 + - 4 files changed, 57 insertions(+), 3 deletions(-) - -diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index 41e9599..e3012e1 100644 ---- a/providers/hns/hns_roce_u.h -+++ b/providers/hns/hns_roce_u.h -@@ -195,6 +195,12 @@ enum hns_roce_tc_map_mode { - HNS_ROCE_TC_MAP_MODE_DSCP, - }; - -+enum hns_roce_pktype { -+ HNS_ROCE_PKTYPE_ROCE_V1, -+ HNS_ROCE_PKTYPE_ROCE_V2_IPV6, -+ HNS_ROCE_PKTYPE_ROCE_V2_IPV4, -+}; -+ - struct hns_roce_db_page { - struct hns_roce_db_page *prev, *next; - struct hns_roce_buf buf; -@@ -406,6 +412,11 @@ struct hns_roce_qp { - void *cur_wqe; - unsigned int rb_sq_head; /* roll back sq head */ - struct hns_roce_sge_info sge_info; -+ -+ /* Just for UD. If not enabled, 'sl' in ibv_wc -+ * will be filled with 'port_type' in cqe. -+ */ -+ bool enable_ud_sl; - }; - - struct hns_roce_av { -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 4b0ec5c..ee2fffe 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -522,9 +522,24 @@ static void handle_recv_rq_inl(struct hns_roce_v2_cqe *cqe, - handle_recv_inl_data(cqe, &(cur_qp->rq_rinl_buf), wr_num, wqe_buf); - } - --static void parse_for_ud_qp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc) -+static const uint8_t pktype_for_ud[] = { -+ HNS_ROCE_PKTYPE_ROCE_V1, -+ HNS_ROCE_PKTYPE_ROCE_V2_IPV4, -+ HNS_ROCE_PKTYPE_ROCE_V2_IPV6 -+}; -+ -+static void parse_for_ud_qp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, -+ bool enable_ud_sl) - { -- wc->sl = hr_reg_read(cqe, CQE_SL); -+ uint8_t port_type; -+ -+ if (enable_ud_sl) { -+ wc->sl = hr_reg_read(cqe, CQE_SL); -+ } else { -+ port_type = hr_reg_read(cqe, CQE_PORT_TYPE); -+ wc->sl = pktype_for_ud[port_type]; -+ } -+ - wc->src_qp = hr_reg_read(cqe, CQE_RMT_QPN); - wc->slid = 0; - wc->wc_flags |= hr_reg_read(cqe, CQE_GRH) ? IBV_WC_GRH : 0; -@@ -554,7 +569,7 @@ static int parse_cqe_for_resp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, - ++wq->tail; - - if (hr_qp->verbs_qp.qp.qp_type == IBV_QPT_UD) -- parse_for_ud_qp(cqe, wc); -+ parse_for_ud_qp(cqe, wc, hr_qp->enable_ud_sl); - - if (hr_reg_read(cqe, CQE_CQE_INLINE)) - handle_recv_cqe_inl_from_rq(cqe, hr_qp); -@@ -2126,6 +2141,17 @@ static uint32_t wc_read_slid(struct ibv_cq_ex *current) - static uint8_t wc_read_sl(struct ibv_cq_ex *current) - { - struct hns_roce_cq *cq = to_hr_cq(ibv_cq_ex_to_cq(current)); -+ struct hns_roce_context *ctx = to_hr_ctx(current->context); -+ struct hns_roce_qp *hr_qp; -+ uint8_t port_type; -+ uint32_t qpn; -+ -+ qpn = hr_reg_read(cq->cqe, CQE_LCL_QPN); -+ hr_qp = hns_roce_v2_find_qp(ctx, qpn); -+ if (hr_qp->verbs_qp.qp.qp_type == IBV_QPT_UD && !hr_qp->enable_ud_sl) { -+ port_type = hr_reg_read(cq->cqe, CQE_PORT_TYPE); -+ return pktype_for_ud[port_type]; -+ } - - return (uint8_t)hr_reg_read(cq->cqe, CQE_SL); - } -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index fa27fc1..4b641ea 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -1019,6 +1019,11 @@ static int check_qp_congest_type(struct hns_roce_context *ctx, - return 0; - } - -+enum { -+ HNSDV_QP_SUP_CREATE_FLAGS = HNSDV_QP_CREATE_ENABLE_DCA_MODE | -+ HNSDV_QP_CREATE_ENABLE_UD_SL, -+}; -+ - static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, - struct hnsdv_qp_init_attr *hns_attr, - struct hns_roce_cmd_flag *cmd_flag) -@@ -1034,6 +1039,14 @@ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, - return -EINVAL; - } - -+ if (hns_attr->comp_mask & HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS && -+ !check_comp_mask(hns_attr->create_flags, -+ HNSDV_QP_SUP_CREATE_FLAGS)) { -+ verbs_err(&ctx->ibv_ctx, "invalid create_flags 0x%x.\n", -+ hns_attr->create_flags); -+ return -EOPNOTSUPP; -+ } -+ - ret = check_qp_congest_type(ctx, hns_attr, cmd_flag); - if (ret) - return ret; -@@ -1685,6 +1698,9 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, - - qp_setup_config(attr, qp, context); - -+ if (hns_attr && hns_attr->create_flags & HNSDV_QP_CREATE_ENABLE_UD_SL) -+ qp->enable_ud_sl = true; -+ - return &qp->verbs_qp.qp; - - err_dwqe: -diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h -index e15b428..365c314 100644 ---- a/providers/hns/hnsdv.h -+++ b/providers/hns/hnsdv.h -@@ -43,6 +43,7 @@ struct ibv_context *hnsdv_open_device(struct ibv_device *device, - - enum hnsdv_qp_create_flags { - HNSDV_QP_CREATE_ENABLE_DCA_MODE = 1 << 0, -+ HNSDV_QP_CREATE_ENABLE_UD_SL = 1 << 1, - }; - - enum hnsdv_qp_congest_ctrl_type { --- -2.25.1 - diff --git a/0051-libhns-Remove-unnecessary-QP-checks.patch b/0051-libhns-Remove-unnecessary-QP-checks.patch deleted file mode 100644 index e14b679aecac834f397a044e440b77834d9e5387..0000000000000000000000000000000000000000 --- a/0051-libhns-Remove-unnecessary-QP-checks.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 14e8bd8f4e30abdaabbe7ffc3a19e4381b4130fe Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Wed, 24 May 2023 10:34:07 +0800 -Subject: [PATCH 1/2] libhns: Remove unnecessary QP checks - -mainline inclusion -from mainline-v47.0 -commit 4ea9a4f77ac8c174d1ae4cf551a2e5abea13516f -category: cleanup -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I7NT3M -CVE: NA - -Reference: https://github.com/linux-rdma/rdma-core/commit/4ea9a4f77ac8c174d1ae4cf551a2e5abea13516f - ----------------------------------------------------------------------- - -It is not necessary to check the type of the queue on post_send and -post_recv since the QP type that cannot be supported will be rejected -when it is created. - -Check for srq in post_recv has also been removed, because the RQ of -QP bound to srq is empty and will return immediate error in post_recv. - -Besides, remove the unused parameter ctx. - -Signed-off-by: Chengchang Tang -Signed-off-by: Junxian Huang -Signed-off-by: Juan Zhou ---- - providers/hns/hns_roce_u_hw_v2.c | 11 +---------- - 1 file changed, 1 insertion(+), 10 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index ee2fffe..688eff8 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -908,11 +908,6 @@ static int check_qp_send(struct hns_roce_qp *qp, struct hns_roce_context *ctx) - struct ibv_qp *ibvqp = &qp->verbs_qp.qp; - int ret = 0; - -- if (unlikely(ibvqp->qp_type != IBV_QPT_RC && -- ibvqp->qp_type != IBV_QPT_UD) && -- ibvqp->qp_type != IBV_QPT_XRC_SEND) -- return -EINVAL; -- - if (unlikely(ibvqp->state == IBV_QPS_RESET || - ibvqp->state == IBV_QPS_INIT || - ibvqp->state == IBV_QPS_RTR)) -@@ -1516,11 +1511,7 @@ static int check_qp_recv(struct hns_roce_qp *qp, struct hns_roce_context *ctx) - struct ibv_qp *ibvqp = &qp->verbs_qp.qp; - int ret = 0; - -- if (unlikely(ibvqp->qp_type != IBV_QPT_RC && -- ibvqp->qp_type != IBV_QPT_UD)) -- return -EINVAL; -- -- if (ibvqp->state == IBV_QPS_RESET || ibvqp->srq) -+ if (ibvqp->state == IBV_QPS_RESET) - return -EINVAL; - - if (check_dca_attach_enable(qp)) { --- -2.25.1 - diff --git a/0052-libhns-Fix-reference-to-uninitialized-cq-pointer.patch b/0052-libhns-Fix-reference-to-uninitialized-cq-pointer.patch deleted file mode 100644 index 94dd58cf389220daf8ee403ad8d5cfd6de6d51d1..0000000000000000000000000000000000000000 --- a/0052-libhns-Fix-reference-to-uninitialized-cq-pointer.patch +++ /dev/null @@ -1,56 +0,0 @@ -From e20de83892bcba8e8944cbf83e8acc9192d514bb Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Mon, 3 Jul 2023 15:22:57 +0800 -Subject: [PATCH 2/2] libhns: Fix reference to uninitialized cq pointer - -mainline inclusion -from mainline-v47.0 -commit e850ebe1570c06990cc60e96d0085d5d2a1cfcaa -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I7NTLE -CVE: NA - -Reference: https://github.com/linux-rdma/rdma-core/commit/e850ebe1570c06990cc60e96d0085d5d2a1cfcaa - ----------------------------------------------------------------------- - -In cases such as using XRC and SRQ where RQs are not created, the recv_cq -pointer will not be initailized, and thus the unsupported post recv -function should return before referencing the recv_cq pointer. - -Fixes: 4ea9a4f77ac8 ("libhns: Remove unnecessary QP checks") -Signed-off-by: Chengchang Tang -Signed-off-by: Junxian Huang -Signed-off-by: Juan Zhou ---- - providers/hns/hns_roce_u_hw_v2.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 688eff8..9238fe5 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1599,15 +1599,15 @@ static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, - - max_sge = qp->rq.max_gs - qp->rq.rsv_sge; - for (nreq = 0; wr; ++nreq, wr = wr->next) { -- if (hns_roce_v2_wq_overflow(&qp->rq, nreq, -- to_hr_cq(qp->verbs_qp.qp.recv_cq))) { -- ret = ENOMEM; -+ if (wr->num_sge > max_sge) { -+ ret = max_sge > 0 ? EINVAL : EOPNOTSUPP; - *bad_wr = wr; - goto out; - } - -- if (wr->num_sge > max_sge) { -- ret = EINVAL; -+ if (hns_roce_v2_wq_overflow(&qp->rq, nreq, -+ to_hr_cq(qp->verbs_qp.qp.recv_cq))) { -+ ret = ENOMEM; - *bad_wr = wr; - goto out; - } --- -2.25.1 - diff --git a/0055-libhns-separate-the-initialization-steps-of-lock.patch b/0055-libhns-separate-the-initialization-steps-of-lock.patch deleted file mode 100644 index 0608e6617e42b9fecb97e1e91865c0ddf31d8953..0000000000000000000000000000000000000000 --- a/0055-libhns-separate-the-initialization-steps-of-lock.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 87a32d939f7b4504c0a90adc0b0294adf5b8cad1 Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Tue, 26 Sep 2023 19:19:08 +0800 -Subject: [PATCH 3/5] libhns: separate the initialization steps of lock - -driver inclusion -category: cleanup -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I83BP0 - ----------------------------------------------------------- - -Separate the initialization steps of the lock from create_cq() and -create_srq(), just like in create_qp(), to unify all create-style -processes. - -Signed-off-by: Chengchang Tang ---- - providers/hns/hns_roce_u_verbs.c | 48 +++++++++++++++++++++----------- - 1 file changed, 32 insertions(+), 16 deletions(-) - -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 8fb415b..e7a7388 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -545,13 +545,28 @@ static void hns_roce_uninit_cq_swc(struct hns_roce_cq *cq) - } - } - -+static int hns_roce_cq_spinlock_init(struct ibv_context *context, -+ struct hns_roce_cq *cq, -+ struct ibv_cq_init_attr_ex *attr) -+{ -+ struct hns_roce_pad *pad = NULL; -+ int need_lock; -+ -+ if (attr->comp_mask & IBV_CQ_INIT_ATTR_MASK_PD) -+ pad = to_hr_pad(attr->parent_domain); -+ -+ need_lock = hns_roce_whether_need_lock(pad ? &pad->pd.ibv_pd : NULL); -+ if (!need_lock) -+ verbs_info(verbs_get_ctx(context), "configure cq as no lock.\n"); -+ -+ return hns_roce_spinlock_init(&cq->hr_lock, need_lock); -+} -+ - static struct ibv_cq_ex *create_cq(struct ibv_context *context, - struct ibv_cq_init_attr_ex *attr) - { - struct hns_roce_context *hr_ctx = to_hr_ctx(context); -- struct hns_roce_pad *pad = NULL; - struct hns_roce_cq *cq; -- int need_lock; - int ret; - - ret = verify_cq_create_attr(attr, hr_ctx); -@@ -564,14 +579,7 @@ static struct ibv_cq_ex *create_cq(struct ibv_context *context, - goto err; - } - -- if (attr->comp_mask & IBV_CQ_INIT_ATTR_MASK_PD) -- pad = to_hr_pad(attr->parent_domain); -- -- need_lock = hns_roce_whether_need_lock(pad ? &pad->pd.ibv_pd : NULL); -- if (!need_lock) -- verbs_info(verbs_get_ctx(context), "configure cq as no lock.\n"); -- -- ret = hns_roce_spinlock_init(&cq->hr_lock, need_lock); -+ ret = hns_roce_cq_spinlock_init(context, cq, attr); - if (ret) - goto err_lock; - -@@ -889,12 +897,24 @@ static void init_srq_cq_list(struct hns_roce_srq *srq, - hns_roce_spin_unlock(&srq_cq->hr_lock); - } - -+static int hns_roce_srq_spinlock_init(struct ibv_context *context, -+ struct hns_roce_srq *srq, -+ struct ibv_srq_init_attr_ex *attr) -+{ -+ int need_lock; -+ -+ need_lock = hns_roce_whether_need_lock(attr->pd); -+ if (!need_lock) -+ verbs_info(verbs_get_ctx(context), "configure srq as no lock.\n"); -+ -+ return hns_roce_spinlock_init(&srq->hr_lock, need_lock); -+} -+ - static struct ibv_srq *create_srq(struct ibv_context *context, - struct ibv_srq_init_attr_ex *init_attr) - { - struct hns_roce_context *hr_ctx = to_hr_ctx(context); - struct hns_roce_srq *srq; -- int need_lock; - int ret; - - ret = verify_srq_create_attr(hr_ctx, init_attr); -@@ -907,11 +927,7 @@ static struct ibv_srq *create_srq(struct ibv_context *context, - goto err; - } - -- need_lock = hns_roce_whether_need_lock(init_attr->pd); -- if (!need_lock) -- verbs_info(verbs_get_ctx(context), "configure srq as no lock.\n"); -- -- if (hns_roce_spinlock_init(&srq->hr_lock, need_lock)) -+ if (hns_roce_srq_spinlock_init(context, srq, init_attr)) - goto err_free_srq; - - set_srq_param(context, srq, init_attr); --- -2.25.1 - diff --git a/0059-Update-kernel-headers.patch b/0059-Update-kernel-headers.patch deleted file mode 100644 index 036f7bf95d2c2602fbbeb54482956c16628176a2..0000000000000000000000000000000000000000 --- a/0059-Update-kernel-headers.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 73a5a85a9fd75e2dd461bfd129d263fde44aa5ea Mon Sep 17 00:00:00 2001 -From: Junxian Huang -Date: Mon, 16 Oct 2023 16:10:05 +0800 -Subject: [PATCH 1/2] Update kernel headers - -To commit: c9813b0b9992 ("RDMA/hns: Support SRQ record doorbell"). - -Signed-off-by: Junxian Huang ---- - kernel-headers/rdma/hns-abi.h | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 157dc9d..6b94a89 100644 ---- a/kernel-headers/rdma/hns-abi.h -+++ b/kernel-headers/rdma/hns-abi.h -@@ -52,15 +52,25 @@ struct hns_roce_ib_create_cq_resp { - __aligned_u64 cap_flags; - }; - -+enum hns_roce_srq_cap_flags { -+ HNS_ROCE_SRQ_CAP_RECORD_DB = 1 << 0, -+}; -+ -+enum hns_roce_srq_cap_flags_resp { -+ HNS_ROCE_RSP_SRQ_CAP_RECORD_DB = 1 << 0, -+}; -+ - struct hns_roce_ib_create_srq { - __aligned_u64 buf_addr; - __aligned_u64 db_addr; - __aligned_u64 que_addr; -+ __u32 req_cap_flags; /* Use enum hns_roce_srq_cap_flags */ -+ __u32 reserved; - }; - - struct hns_roce_ib_create_srq_resp { - __u32 srqn; -- __u32 reserved; -+ __u32 cap_flags; /* Use enum hns_roce_srq_cap_flags */ - }; - - enum hns_roce_create_qp_comp_mask { --- -2.25.1 - diff --git a/0060-libhns-Support-SRQ-record-doorbell.patch b/0060-libhns-Support-SRQ-record-doorbell.patch deleted file mode 100644 index 928bc2422cb7a22e2e3ea9736cf545c2640a89e3..0000000000000000000000000000000000000000 --- a/0060-libhns-Support-SRQ-record-doorbell.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 2880d64c8d73375978d2767c5dd7803b444f9016 Mon Sep 17 00:00:00 2001 -From: Yangyang Li -Date: Mon, 16 Oct 2023 16:10:06 +0800 -Subject: [PATCH] libhns: Support SRQ record doorbell - -Compared with normal doorbell, using record doorbell can shorten the -process of ringing the doorbell and reduce the latency. - -During SRQ creation, the kernel driver will allocate doorbell buffer -and notify userspace whether the SRQ record doorbell is enabled with -the flag HNS_ROCE_RSP_SRQ_CAP_RECORD_DB. The userspace driver will decide -whether to use record doorbell or normal doorbell based on this flag -in post SRQ recv process. - -This patch relies on the corresponding kernel patch: -RDMA/hns: Support SRQ record doorbell - -Signed-off-by: Yangyang Li -Signed-off-by: Junxian Huang ---- - providers/hns/hns_roce_u.h | 4 +++- - providers/hns/hns_roce_u_db.c | 1 + - providers/hns/hns_roce_u_hw_v2.c | 14 +++++++++----- - providers/hns/hns_roce_u_verbs.c | 12 +++++++----- - 4 files changed, 20 insertions(+), 11 deletions(-) - -diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h -index ae9ae51..197bde9 100644 ---- a/providers/hns/hns_roce_u.h -+++ b/providers/hns/hns_roce_u.h -@@ -187,6 +187,7 @@ struct hns_roce_buf { - enum hns_roce_db_type { - HNS_ROCE_QP_TYPE_DB, - HNS_ROCE_CQ_TYPE_DB, -+ HNS_ROCE_SRQ_TYPE_DB, - HNS_ROCE_DB_TYPE_NUM - }; - -@@ -351,7 +352,8 @@ struct hns_roce_srq { - unsigned int max_gs; - unsigned int rsv_sge; - unsigned int wqe_shift; -- unsigned int *db; -+ unsigned int *rdb; -+ unsigned int cap_flags; - unsigned short counter; - struct list_node xrc_srcq_node; - }; -diff --git a/providers/hns/hns_roce_u_db.c b/providers/hns/hns_roce_u_db.c -index 73a71de..bbef988 100644 ---- a/providers/hns/hns_roce_u_db.c -+++ b/providers/hns/hns_roce_u_db.c -@@ -41,6 +41,7 @@ - static const unsigned int db_size[] = { - [HNS_ROCE_QP_TYPE_DB] = 4, - [HNS_ROCE_CQ_TYPE_DB] = 4, -+ [HNS_ROCE_SRQ_TYPE_DB] = 4, - }; - - static struct hns_roce_db_page *hns_roce_add_db_page( -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index ac40d5d..714a34e 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -2109,11 +2109,15 @@ static void fill_wqe_idx(struct hns_roce_srq *srq, unsigned int wqe_idx) - idx_que->head++; - } - --static void update_srq_db(struct hns_roce_db *db, struct hns_roce_srq *srq) -+static void update_srq_db(struct hns_roce_context *ctx, struct hns_roce_db *db, -+ struct hns_roce_srq *srq) - { - hr_reg_write(db, DB_TAG, srq->srqn); - hr_reg_write(db, DB_CMD, HNS_ROCE_V2_SRQ_DB); - hr_reg_write(db, DB_PI, srq->idx_que.head); -+ -+ hns_roce_write64(ctx, ctx->uar + ROCEE_VF_DB_CFG0_OFFSET, -+ (__le32 *)db); - } - - static int check_srq_recv(struct hns_roce_context *ctx) -@@ -2176,10 +2180,10 @@ static int hns_roce_u_v2_post_srq_recv(struct ibv_srq *ib_srq, - */ - udma_to_device_barrier(); - -- update_srq_db(&srq_db, srq); -- -- hns_roce_write64(ctx, ctx->uar + ROCEE_VF_DB_CFG0_OFFSET, -- (__le32 *)&srq_db); -+ if (srq->cap_flags & HNS_ROCE_RSP_SRQ_CAP_RECORD_DB) -+ *srq->rdb = srq->idx_que.head & 0xffff; -+ else -+ update_srq_db(ctx, &srq_db, srq); - } - - hns_roce_spin_unlock(&srq->hr_lock); -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index f76341c..1c2d94d 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -866,7 +866,8 @@ static int exec_srq_create_cmd(struct ibv_context *context, - - cmd_ex.buf_addr = (uintptr_t)srq->wqe_buf.buf; - cmd_ex.que_addr = (uintptr_t)srq->idx_que.buf.buf; -- cmd_ex.db_addr = (uintptr_t)srq->db; -+ cmd_ex.db_addr = (uintptr_t)srq->rdb; -+ cmd_ex.req_cap_flags |= HNS_ROCE_SRQ_CAP_RECORD_DB; - - ret = ibv_cmd_create_srq_ex(context, &srq->verbs_srq, init_attr, - &cmd_ex.ibv_cmd, sizeof(cmd_ex), -@@ -875,6 +876,7 @@ static int exec_srq_create_cmd(struct ibv_context *context, - return ret; - - srq->srqn = resp_ex.srqn; -+ srq->cap_flags = resp_ex.cap_flags; - - return 0; - } -@@ -932,8 +934,8 @@ static struct ibv_srq *create_srq(struct ibv_context *context, - if (alloc_srq_buf(srq)) - goto err_free_srq; - -- srq->db = hns_roce_alloc_db(hr_ctx, HNS_ROCE_QP_TYPE_DB); -- if (!srq->db) -+ srq->rdb = hns_roce_alloc_db(hr_ctx, HNS_ROCE_SRQ_TYPE_DB); -+ if (!srq->rdb) - goto err_srq_buf; - - ret = exec_srq_create_cmd(context, srq, init_attr); -@@ -956,7 +958,7 @@ err_destroy_srq: - ibv_cmd_destroy_srq(&srq->verbs_srq.srq); - - err_srq_db: -- hns_roce_free_db(hr_ctx, srq->db, HNS_ROCE_QP_TYPE_DB); -+ hns_roce_free_db(hr_ctx, srq->rdb, HNS_ROCE_SRQ_TYPE_DB); - - err_srq_buf: - free_srq_buf(srq); -@@ -1048,7 +1050,7 @@ int hns_roce_u_destroy_srq(struct ibv_srq *ibv_srq) - - hns_roce_clear_srq(ctx, srq->srqn); - -- hns_roce_free_db(ctx, srq->db, HNS_ROCE_QP_TYPE_DB); -+ hns_roce_free_db(ctx, srq->rdb, HNS_ROCE_SRQ_TYPE_DB); - free_srq_buf(srq); - free(srq); - --- -2.25.1 - diff --git a/0070-libhns-Get-dmac-from-kernel-driver.patch b/0070-libhns-Get-dmac-from-kernel-driver.patch deleted file mode 100644 index 0ec3496496475630835df196c6eef8dda3ed89c0..0000000000000000000000000000000000000000 --- a/0070-libhns-Get-dmac-from-kernel-driver.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 7d81108ba99d349558bc8c6d65c787efc31c52f4 Mon Sep 17 00:00:00 2001 -From: Junxian Huang -Date: Wed, 22 Nov 2023 16:07:14 +0800 -Subject: [PATCH] libhns: Get dmac from kernel driver - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/openeuler/kernel/issues/I8HZ7W - --------------------------------------------------------------------------- - -As dmac is already resolved in kernel while creating AH, there is no -need to repeat the resolving in userspace. Prioritizes getting dmac -from kernel driver, unless kernel driver didn't response one. - -Signed-off-by: Junxian Huang ---- - kernel-headers/rdma/hns-abi.h | 2 +- - providers/hns/hns_roce_u_verbs.c | 10 +++++++--- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/kernel-headers/rdma/hns-abi.h b/kernel-headers/rdma/hns-abi.h -index 785c4e1..8581df9 100644 ---- a/kernel-headers/rdma/hns-abi.h -+++ b/kernel-headers/rdma/hns-abi.h -@@ -135,7 +135,7 @@ struct hns_roce_ib_create_qp_resp { - struct hns_roce_ib_create_ah_resp { - __u8 priority; - __u8 tc_mode; -- __u8 reserved[6]; -+ __u8 dmac[6]; - }; - - struct hns_roce_ib_modify_qp_resp { -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 5e46f89..c906632 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -2210,9 +2210,13 @@ struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr) - if (ibv_cmd_create_ah(pd, &ah->ibv_ah, attr, &resp.ibv_resp, sizeof(resp))) - goto err; - -- if (hr_dev->link_type != HNS_DEV_LINK_TYPE_UB && -- ibv_resolve_eth_l2_from_gid(pd->context, attr, ah->av.mac, NULL)) -- goto err; -+ if (hr_dev->link_type != HNS_DEV_LINK_TYPE_UB) { -+ if (memcmp(ah->av.mac, resp.dmac, ETH_ALEN)) -+ memcpy(ah->av.mac, resp.dmac, ETH_ALEN); -+ else if (ibv_resolve_eth_l2_from_gid(pd->context, attr, -+ ah->av.mac, NULL)) -+ goto err; -+ } - - if (resp.tc_mode == HNS_ROCE_TC_MAP_MODE_DSCP) - ah->av.sl = resp.priority; --- -2.25.1 - diff --git a/0072-libhns-Add-input-parameter-check-for-hnsdv_query_dev.patch b/0072-libhns-Add-input-parameter-check-for-hnsdv_query_dev.patch deleted file mode 100644 index bcacd411ebbb01b43f1c51793b06d92b66a034fa..0000000000000000000000000000000000000000 --- a/0072-libhns-Add-input-parameter-check-for-hnsdv_query_dev.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 884663cd803e3781aec9c45f7fc0145b6a2b4539 Mon Sep 17 00:00:00 2001 -From: Luoyouming -Date: Mon, 27 Nov 2023 16:39:49 +0800 -Subject: [PATCH 72/75] libhns: Add input parameter check for - hnsdv_query_device() - -driver inclusion -category: cleanup -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8J2W9?from=project-issue - --------------------------------------------------------------------------- - -Add null pointer check for pointer parameter. - -Signed-off-by: Luoyouming ---- - providers/hns/hns_roce_u_verbs.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index c906632..e597e93 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -126,15 +126,16 @@ int hnsdv_query_device(struct ibv_context *context, - struct hnsdv_context *attrs_out) - { - struct hns_roce_context *ctx = context ? to_hr_ctx(context) : NULL; -- struct hns_roce_device *hr_dev = to_hr_dev(context->device); -+ struct hns_roce_device *hr_dev; - - if (!ctx || !attrs_out) - return EINVAL; - -- if (!hr_dev) { -+ if (!context->device && !is_hns_dev(context->device)) { - verbs_err(verbs_get_ctx(context), "not a HNS RoCE device!\n"); - return EOPNOTSUPP; - } -+ hr_dev = to_hr_dev(context->device); - - memset(attrs_out, 0, sizeof(*attrs_out)); - --- -2.25.1 - diff --git a/0073-libhns-Fix-uninitialized-qp-attr-when-flush-cqe.patch b/0073-libhns-Fix-uninitialized-qp-attr-when-flush-cqe.patch deleted file mode 100644 index 7ed9f871b86c4c0fed761e3f500c117a14fdaffc..0000000000000000000000000000000000000000 --- a/0073-libhns-Fix-uninitialized-qp-attr-when-flush-cqe.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 57499cbc906ec4065f65bb8dfda56081a799746e Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Mon, 27 Nov 2023 16:39:51 +0800 -Subject: [PATCH 73/75] libhns: Fix uninitialized qp attr when flush cqe - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8J2XW?from=project-issue - --------------------------------------------------------------------------- - -When flushing cqe, the state of qp needs to be modified. The incoming qp -attr is not initialized, which may lead to undefined behavior. - -Signed-off-by: Chengchang Tang ---- - providers/hns/hns_roce_u_hw_v2.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 754f918..b48cabd 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -405,7 +405,7 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, - - static int hns_roce_flush_cqe(struct hns_roce_qp *hr_qp, uint8_t status) - { -- struct ibv_qp_attr attr; -+ struct ibv_qp_attr attr = {}; - int attr_mask; - - if (status != HNS_ROCE_V2_CQE_WR_FLUSH_ERR) { -@@ -1614,8 +1614,8 @@ int hns_roce_u_v2_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr, - struct hns_roce_qp *qp = to_hr_qp(ibvqp); - struct hns_roce_sge_info sge_info = {}; - struct hns_roce_rc_sq_wqe *wqe; -+ struct ibv_qp_attr attr = {}; - unsigned int wqe_idx, nreq; -- struct ibv_qp_attr attr; - int ret; - - ret = check_qp_send(qp, ctx); -@@ -1788,7 +1788,7 @@ static int hns_roce_u_v2_post_recv(struct ibv_qp *ibvqp, struct ibv_recv_wr *wr, - struct hns_roce_context *ctx = to_hr_ctx(ibvqp->context); - struct hns_roce_qp *qp = to_hr_qp(ibvqp); - unsigned int wqe_idx, nreq, max_sge; -- struct ibv_qp_attr attr; -+ struct ibv_qp_attr attr = {}; - int ret; - - ret = check_qp_recv(qp, ctx); -@@ -3021,7 +3021,7 @@ static int wr_complete(struct ibv_qp_ex *ibv_qp) - struct hns_roce_context *ctx = to_hr_ctx(ibv_qp->qp_base.context); - struct hns_roce_qp *qp = to_hr_qp(&ibv_qp->qp_base); - unsigned int nreq = qp->sq.head - qp->rb_sq_head; -- struct ibv_qp_attr attr; -+ struct ibv_qp_attr attr = {}; - int err = qp->err; - - if (err) { --- -2.25.1 - diff --git a/0074-libhns-Fix-possible-overflow-in-cq-clean.patch b/0074-libhns-Fix-possible-overflow-in-cq-clean.patch deleted file mode 100644 index 65c155610f5d86ec5c551d409abde4a43b6623ed..0000000000000000000000000000000000000000 --- a/0074-libhns-Fix-possible-overflow-in-cq-clean.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 9e3f4aa0a83ea0ff9512678e3932e611186d573e Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Mon, 27 Nov 2023 16:39:50 +0800 -Subject: [PATCH 74/75] libhns: Fix possible overflow in cq clean - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8J2XP?from=project-issue - --------------------------------------------------------------------------- - -The ci/pi of hns roce cq allows data to be flipped. but in -__hns_roce_v2_cq_clean(), this flip may lead to an wrong number -of loops. - -This patch fixes it by extending the data type to avoid data -flipping. - -Signed-off-by: Chengchang Tang ---- - providers/hns/hns_roce_u_hw_v2.c | 25 +++++++++++++------------ - 1 file changed, 13 insertions(+), 12 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index b48cabd..fc938de 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1847,20 +1847,21 @@ out: - static void __hns_roce_v2_cq_clean(struct hns_roce_cq *cq, uint32_t qpn, - struct hns_roce_srq *srq) - { -- int nfreed = 0; -- bool is_recv_cqe; -- uint8_t owner_bit; -- uint16_t wqe_index; -- uint32_t prod_index; -- struct hns_roce_v2_cqe *cqe, *dest; -- struct hns_roce_context *ctx = to_hr_ctx(cq->verbs_cq.cq.context); -- -- for (prod_index = cq->cons_index; get_sw_cqe_v2(cq, prod_index); -- ++prod_index) -- if (prod_index > cq->cons_index + cq->verbs_cq.cq.cqe) -+ struct hns_roce_context *ctx = to_hr_ctx(cq->verbs_cq.cq.context); -+ uint64_t cons_index = cq->cons_index; -+ uint64_t prod_index = cq->cons_index; -+ struct hns_roce_v2_cqe *cqe, *dest; -+ uint16_t wqe_index; -+ uint8_t owner_bit; -+ bool is_recv_cqe; -+ int nfreed = 0; -+ -+ for (; get_sw_cqe_v2(cq, prod_index); ++prod_index) -+ if (prod_index > cons_index + cq->verbs_cq.cq.cqe) - break; - -- while ((int) --prod_index - (int) cq->cons_index >= 0) { -+ while (prod_index - cons_index > 0) { -+ prod_index--; - cqe = get_cqe_v2(cq, prod_index & cq->verbs_cq.cq.cqe); - if (hr_reg_read(cqe, CQE_LCL_QPN) == qpn) { - is_recv_cqe = hr_reg_read(cqe, CQE_S_R); --- -2.25.1 - diff --git a/0075-libhns-Fix-unnecessary-dca-memory-detach.patch b/0075-libhns-Fix-unnecessary-dca-memory-detach.patch deleted file mode 100644 index 8ea8b18d9ded755cbd3c18c31d5e5b73aec89e26..0000000000000000000000000000000000000000 --- a/0075-libhns-Fix-unnecessary-dca-memory-detach.patch +++ /dev/null @@ -1,36 +0,0 @@ -From c989f93b01c45f8453bc839722f91ddc8b000037 Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Mon, 27 Nov 2023 16:39:52 +0800 -Subject: [PATCH 75/75] libhns: Fix unnecessary dca memory detach - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8J2Y5?from=project-issue - --------------------------------------------------------------------------- - -If sq is not enabled, it should not detach dca mem. Moreover, under the -current code logic, if detach dca mem, its sq index will be a random -value because it is not initialized. - -Signed-off-by: Chengchang Tang ---- - providers/hns/hns_roce_u_hw_v2.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index fc938de..2fb738d 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -696,7 +696,7 @@ static void dca_detach_qp_buf(struct hns_roce_context *ctx, - hns_roce_spin_unlock(&qp->rq.hr_lock); - hns_roce_spin_unlock(&qp->sq.hr_lock); - -- if (is_empty) -+ if (is_empty && qp->sq.wqe_cnt > 0) - hns_roce_detach_dca_mem(ctx, qp->verbs_qp.qp.handle, &attr); - } - --- -2.25.1 - diff --git a/0076-libhns-Bugfix-for-wrong-timing-of-modifying-ibv_qp-s.patch b/0076-libhns-Bugfix-for-wrong-timing-of-modifying-ibv_qp-s.patch deleted file mode 100644 index a6564aceff49ab1fdd318353f58efdee0449b281..0000000000000000000000000000000000000000 --- a/0076-libhns-Bugfix-for-wrong-timing-of-modifying-ibv_qp-s.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 324cd24a22256d964689bf528b643ae06d5a4e58 Mon Sep 17 00:00:00 2001 -From: Yangyang Li -Date: Fri, 1 Dec 2023 10:43:23 +0800 -Subject: [PATCH] libhns: Bugfix for wrong timing of modifying ibv_qp state to - err - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8L4YU - --------------------------------------------------------------------------- - -Currently the QPC state in HW is modified inside the critical section of -spinlock but the ibv_qp state is modified outside. There will be a short -period when QPC state has been modified to err with ibv_qp state still -remaining RTS. WQEs during this period will still be post-send by RTS-state -ibv_qp but then dropped by err-state HW with no flush CQEs generated. - -To fix this problem, the QPC state in HW and ibv_qp state should be both -modified to err inside the critical section of spinlock. - -Fixes: f1a80cc3dfe2 ("libhns: Bugfix for flush cqe in case multi-process") -Signed-off-by: Yangyang Li ---- - providers/hns/hns_roce_u_hw_v2.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 2fb738d..68d7110 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -1936,6 +1936,8 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, - sizeof(resp_ex)); - - if (flag) { -+ if (!ret) -+ qp->state = IBV_QPS_ERR; - hns_roce_spin_unlock(&hr_qp->sq.hr_lock); - hns_roce_spin_unlock(&hr_qp->rq.hr_lock); - } --- -2.25.1 - diff --git a/0077-libhns-Fix-parent-domain-unsupported-comp-mask.patch b/0077-libhns-Fix-parent-domain-unsupported-comp-mask.patch deleted file mode 100644 index 1963fa4efa870c9de274449621756f9615dfc013..0000000000000000000000000000000000000000 --- a/0077-libhns-Fix-parent-domain-unsupported-comp-mask.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 12f8951a6a98f82dd1f70afc23d66e328cf1988b Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Thu, 7 Dec 2023 09:47:59 +0800 -Subject: [PATCH] libhns: Fix parent domain unsupported comp mask - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8MF28 - -Hns do not support any comp mask for parent domain. Driver returns -EINVAL if any compmask is set. - -This patch Replace the inappropriate return value EINVAL with -EOPNOTSUPP. - -The error is found by testcase test_mem_align_ud_traffic. - -ERROR: test_mem_align_ud_traffic (tests.test_parent_domain.ParentDomain -TrafficTest) - ----------------------------------------------------------------------- - -Traceback (most recent call last): - File "./tests/test_parent_domain.py", line 183, in test_mem_align_ud -_traffic - self.create_players(parent_domain_ud_res, - File "./tests/test_parent_domain.py", line 156, in create_players - self.client = resource(**self.dev_info, **resource_arg) - File "./tests/test_parent_domain.py", line 90, in __init__ - super().__init__(**kwargs) - File "./tests/base.py", line 617, in __init__ - super(RoCETrafficResources, self).__init__(dev_name, ib_port, -gid_index, **kwargs) - File "./tests/base.py", line 503, in __init__ - super(TrafficResources, self).__init__(dev_name=dev_name, - File "./tests/base.py", line 477, in __init__ - self.create_pd() - File "./tests/test_parent_domain.py", line 95, in create_pd - create_parent_domain_with_allocators(self) - File "./tests/test_parent_domain.py", line 69, in create_parent_ -domain_with_allocators - raise ex - File "./tests/test_parent_domain.py", line 65, in create_parent_ -domain_with_allocators - res.pd = ParentDomain(res.ctx, attr=pd_attr) - File "pd.pyx", line 261, in pyverbs.pd.ParentDomain.__init__ -pyverbs.pyverbs_error.PyverbsRDMAError: Failed to allocate Parent -Domain.Errno: 22, Invalid argument - -Fixes: cfe548d4c78e ("libhns: Add support for the thread -domain and the parent domain") -Signed-off-by: Chengchang Tang ---- - providers/hns/hns_roce_u_verbs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index 34e8d07..ba3fef6 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -238,7 +238,7 @@ struct ibv_pd *hns_roce_u_alloc_pad(struct ibv_context *context, - return NULL; - - if (attr->comp_mask) { -- errno = EINVAL; -+ errno = EOPNOTSUPP; - return NULL; - } - --- -2.25.1 - diff --git a/0078-libhns-Add-pthread_spin_destroy-pthread_mutex_destro.patch b/0078-libhns-Add-pthread_spin_destroy-pthread_mutex_destro.patch deleted file mode 100644 index 5636e7908a6216c0ac41706c1cdb5b582300a0c5..0000000000000000000000000000000000000000 --- a/0078-libhns-Add-pthread_spin_destroy-pthread_mutex_destro.patch +++ /dev/null @@ -1,216 +0,0 @@ -From 3a1432cfdb7c696d3acf97025e6d74bbf3e520dc Mon Sep 17 00:00:00 2001 -From: Wenpeng Liang -Date: Thu, 7 Dec 2023 09:48:00 +0800 -Subject: [PATCH 78/80] libhns: Add - pthread_spin_destroy()/pthread_mutex_destroy() - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8MF59 - --------------------------------------------------------------------------- - -The functions pthread_spin_destroy()/pthread_mutex_destroy() -corresponds to pthread_spin_init()/pthread_mutex_init(). The -driver should call pthread_spin_destroy()/pthread_mutex_destroy() -to clean up resources before exiting. - -Signed-off-by: Wenpeng Liang ---- - providers/hns/hns_roce_u.c | 61 +++++++++++++++++++++++++++----- - providers/hns/hns_roce_u_hw_v2.c | 1 + - providers/hns/hns_roce_u_verbs.c | 17 ++++++--- - 3 files changed, 67 insertions(+), 12 deletions(-) - -diff --git a/providers/hns/hns_roce_u.c b/providers/hns/hns_roce_u.c -index f30486f..dfcd798 100644 ---- a/providers/hns/hns_roce_u.c -+++ b/providers/hns/hns_roce_u.c -@@ -346,6 +346,47 @@ static int query_dev_attr(struct hns_roce_context *context, - return 0; - } - -+static int hns_roce_init_context_lock(struct hns_roce_context *context) -+{ -+ int ret; -+ -+ ret = pthread_spin_init(&context->uar_lock, PTHREAD_PROCESS_PRIVATE); -+ if (ret) -+ return ret; -+ -+ ret = pthread_mutex_init(&context->qp_table_mutex, NULL); -+ if (ret) -+ goto destroy_uar_lock; -+ -+ ret = pthread_mutex_init(&context->srq_table_mutex, NULL); -+ if (ret) -+ goto destroy_qp_mutex; -+ -+ ret = pthread_mutex_init(&context->db_list_mutex, NULL); -+ if (ret) -+ goto destroy_srq_mutex; -+ -+ return 0; -+ -+destroy_srq_mutex: -+ pthread_mutex_destroy(&context->srq_table_mutex); -+ -+destroy_qp_mutex: -+ pthread_mutex_destroy(&context->qp_table_mutex); -+ -+destroy_uar_lock: -+ pthread_spin_destroy(&context->uar_lock); -+ return ret; -+} -+ -+static void hns_roce_destroy_context_lock(struct hns_roce_context *context) -+{ -+ pthread_spin_destroy(&context->uar_lock); -+ pthread_mutex_destroy(&context->qp_table_mutex); -+ pthread_mutex_destroy(&context->srq_table_mutex); -+ pthread_mutex_destroy(&context->db_list_mutex); -+} -+ - static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - int cmd_fd, - void *private_data) -@@ -365,7 +406,10 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - ucontext_set_cmd(&cmd, ctx_attr); - if (ibv_cmd_get_context(&context->ibv_ctx, &cmd.ibv_cmd, sizeof(cmd), - &resp.ibv_resp, sizeof(resp))) -- goto err_free; -+ goto err_ibv_cmd; -+ -+ if (hns_roce_init_context_lock(context)) -+ goto err_ibv_cmd; - - hr_dev->congest_type = resp.congest_type; - -@@ -383,23 +427,23 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - context->qp_table_shift = calc_table_shift(resp.qp_tab_size, - HNS_ROCE_QP_TABLE_BITS); - context->qp_table_mask = (1 << context->qp_table_shift) - 1; -- pthread_mutex_init(&context->qp_table_mutex, NULL); -+ - for (i = 0; i < HNS_ROCE_QP_TABLE_SIZE; ++i) - context->qp_table[i].refcnt = 0; - - context->srq_table_shift = calc_table_shift(resp.srq_tab_size, - HNS_ROCE_SRQ_TABLE_BITS); - context->srq_table_mask = (1 << context->srq_table_shift) - 1; -- pthread_mutex_init(&context->srq_table_mutex, NULL); -+ - for (i = 0; i < HNS_ROCE_SRQ_TABLE_SIZE; ++i) - context->srq_table[i].refcnt = 0; - - if (query_dev_attr(context, hr_dev, &resp)) -- goto err_free; -+ goto err_query_dev; - - if (init_dca_context(context, cmd_fd, - &resp, ctx_attr, hr_dev->page_size)) -- goto err_free; -+ goto err_query_dev; - - if (init_reset_context(context, cmd_fd, &resp, hr_dev->page_size)) - goto reset_free; -@@ -407,8 +451,6 @@ static struct verbs_context *hns_roce_alloc_context(struct ibv_device *ibdev, - if (hns_roce_mmap(hr_dev, context, cmd_fd)) - goto uar_free; - -- pthread_spin_init(&context->uar_lock, PTHREAD_PROCESS_PRIVATE); -- - verbs_set_ops(&context->ibv_ctx, &hns_common_ops); - verbs_set_ops(&context->ibv_ctx, &hr_dev->u_hw->hw_ops); - -@@ -419,7 +461,9 @@ uar_free: - munmap(context->reset_state, hr_dev->page_size); - reset_free: - uninit_dca_context(context); --err_free: -+err_query_dev: -+ hns_roce_destroy_context_lock(context); -+err_ibv_cmd: - verbs_uninit_context(&context->ibv_ctx); - free(context); - return NULL; -@@ -434,6 +478,7 @@ static void hns_roce_free_context(struct ibv_context *ibctx) - if (context->reset_state) - munmap(context->reset_state, hr_dev->page_size); - uninit_dca_context(context); -+ hns_roce_destroy_context_lock(context); - verbs_uninit_context(&context->ibv_ctx); - free(context); - } -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index 68d7110..b2a8858 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -2049,6 +2049,7 @@ static int hns_roce_u_v2_destroy_qp(struct ibv_qp *ibqp) - hns_roce_unlock_cqs(to_hr_cq(ibqp->send_cq), to_hr_cq(ibqp->recv_cq)); - - hns_roce_free_qp_buf(qp, ctx); -+ hns_roce_qp_spinlock_destroy(qp); - - free(qp); - -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index fae6126..ba3fef6 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -803,6 +803,7 @@ int hns_roce_u_modify_cq(struct ibv_cq *cq, struct ibv_modify_cq_attr *attr) - - int hns_roce_u_destroy_cq(struct ibv_cq *cq) - { -+ struct hns_roce_cq *hr_cq = to_hr_cq(cq); - int ret; - - ret = ibv_cmd_destroy_cq(cq); -@@ -811,10 +812,13 @@ int hns_roce_u_destroy_cq(struct ibv_cq *cq) - - hns_roce_uninit_cq_swc(to_hr_cq(cq)); - -- hns_roce_free_db(to_hr_ctx(cq->context), to_hr_cq(cq)->db, -+ hns_roce_free_db(to_hr_ctx(cq->context), hr_cq->db, - HNS_ROCE_CQ_TYPE_DB); -- hns_roce_free_buf(&to_hr_cq(cq)->buf); -- free(to_hr_cq(cq)); -+ hns_roce_free_buf(&hr_cq->buf); -+ -+ hns_roce_spinlock_destroy(&hr_cq->hr_lock); -+ -+ free(hr_cq); - - return ret; - } -@@ -1071,7 +1075,7 @@ static struct ibv_srq *create_srq(struct ibv_context *context, - - set_srq_param(context, srq, init_attr); - if (alloc_srq_buf(srq)) -- goto err_free_srq; -+ goto err_destroy_lock; - - srq->rdb = hns_roce_alloc_db(hr_ctx, HNS_ROCE_SRQ_TYPE_DB); - if (!srq->rdb) -@@ -1102,6 +1106,9 @@ err_srq_db: - err_srq_buf: - free_srq_buf(srq); - -+err_destroy_lock: -+ hns_roce_spinlock_destroy(&srq->hr_lock); -+ - err_free_srq: - free(srq); - -@@ -1191,6 +1198,8 @@ int hns_roce_u_destroy_srq(struct ibv_srq *ibv_srq) - - hns_roce_free_db(ctx, srq->rdb, HNS_ROCE_SRQ_TYPE_DB); - free_srq_buf(srq); -+ -+ hns_roce_spinlock_destroy(&srq->hr_lock); - free(srq); - - return 0; --- -2.25.1 - diff --git a/0079-libhns-Removes-a-repeated-initialization-of-a-spinlo.patch b/0079-libhns-Removes-a-repeated-initialization-of-a-spinlo.patch deleted file mode 100644 index 41e7dc0e13e52761e74a482e5487da89f03e2e36..0000000000000000000000000000000000000000 --- a/0079-libhns-Removes-a-repeated-initialization-of-a-spinlo.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 8759b0e6ec4e73994743c1ae0d0ecc186688b6d6 Mon Sep 17 00:00:00 2001 -From: Ran Zhou -Date: Thu, 7 Dec 2023 09:48:01 +0800 -Subject: [PATCH 79/80] libhns: Removes a repeated initialization of a spinlock - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I8MF83 - --------------------------------------------------------------------------- - -The pthread_spin_init() of qp was done in create_qp(). We removed -the spinlock init in this place to avoid initializing twice. - -Signed-off-by: Wenpeng Liang -Signed-off-by: Ran Zhou ---- - providers/hns/hns_roce_u_verbs.c | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c -index ba3fef6..c404948 100644 ---- a/providers/hns/hns_roce_u_verbs.c -+++ b/providers/hns/hns_roce_u_verbs.c -@@ -1933,10 +1933,6 @@ static int hns_roce_alloc_qp_buf(struct ibv_qp_init_attr_ex *attr, - { - int ret; - -- if (pthread_spin_init(&qp->sq.hr_lock.lock, PTHREAD_PROCESS_PRIVATE) || -- pthread_spin_init(&qp->rq.hr_lock.lock, PTHREAD_PROCESS_PRIVATE)) -- return -ENOMEM; -- - ret = qp_alloc_wqe(attr, hns_attr, qp, ctx); - if (ret) - return ret; --- -2.25.1 - diff --git a/0081-libhns-Fix-missing-DB-when-compiler-does-not-support.patch b/0081-libhns-Fix-missing-DB-when-compiler-does-not-support.patch deleted file mode 100644 index 0438df1d002a473839ccffd555193f170c2efda1..0000000000000000000000000000000000000000 --- a/0081-libhns-Fix-missing-DB-when-compiler-does-not-support.patch +++ /dev/null @@ -1,83 +0,0 @@ -From cad30f3d98525d14796094b2905de222c894464f Mon Sep 17 00:00:00 2001 -From: Chengchang Tang -Date: Fri, 8 Dec 2023 09:49:42 +0800 -Subject: [PATCH] libhns: Fix missing DB when compiler does not support SVE - -driver inclusion -category: bugfix -bugzilla: https://gitee.com/openeuler/kernel/issues/I8MPTX - ----------------------------------------------------------------------- - -Currently, if compiler does not support SVE, hns_roce_sve_write512() will -be a empty function, which means that this doorbell will be missed when -HNS_ROCE_QP_CAP_SVE_DIRECT_WQE is set in qp flag. - -This patch ensures that driver will at least generate the DB regardless -of whether SVE DWQE is supported or not. - -Fixes: 7b1f5c5654c2 ("libhns: Add support for SVE Direct WQE function") -Signed-off-by: Chengchang Tang -Signed-off-by: Ran Zhou ---- - providers/hns/hns_roce_u_hw_v2.c | 33 +++++++++++++------------------- - 1 file changed, 13 insertions(+), 20 deletions(-) - -diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c -index acbc854..be4c9f3 100644 ---- a/providers/hns/hns_roce_u_hw_v2.c -+++ b/providers/hns/hns_roce_u_hw_v2.c -@@ -318,26 +318,22 @@ static void hns_roce_update_sq_db(struct hns_roce_context *ctx, - hns_roce_write64(ctx, qp->sq.db_reg, (__le32 *)&sq_db); - } - --static void hns_roce_write512(uint64_t *dest, uint64_t *val) -+static void hns_roce_qp_write512(struct hns_roce_qp *qp, uint64_t *val) - { -- mmio_memcpy_x64(dest, val, sizeof(struct hns_roce_rc_sq_wqe)); --} -+ uint64_t *dest = qp->sq.db_reg; - - #if defined(HNS_SVE) --static void hns_roce_sve_write512(uint64_t *dest, uint64_t *val) --{ -- asm volatile( -- "ldr z0, [%0]\n" -- "str z0, [%1]\n" -- ::"r" (val), "r"(dest):"cc", "memory" -- ); --} --#else --static void hns_roce_sve_write512(uint64_t *dest, uint64_t *val) --{ -- return; --} -+ if (qp->flags & HNS_ROCE_QP_CAP_SVE_DIRECT_WQE) { -+ asm volatile( -+ "ldr z0, [%0]\n" -+ "str z0, [%1]\n" -+ ::"r" (val), "r"(dest):"cc", "memory" -+ ); -+ return; -+ } - #endif -+ mmio_memcpy_x64(dest, val, sizeof(struct hns_roce_rc_sq_wqe)); -+} - - static void hns_roce_write_dwqe(struct hns_roce_qp *qp, void *wqe) - { -@@ -355,10 +351,7 @@ static void hns_roce_write_dwqe(struct hns_roce_qp *qp, void *wqe) - hr_reg_write(rc_sq_wqe, RCWQE_DB_SL_H, qp->sl >> HNS_ROCE_SL_SHIFT); - hr_reg_write(rc_sq_wqe, RCWQE_WQE_IDX, qp->sq.head); - -- if (qp->flags & HNS_ROCE_QP_CAP_SVE_DIRECT_WQE) -- hns_roce_sve_write512(qp->sq.db_reg, wqe); -- else -- hns_roce_write512(qp->sq.db_reg, wqe); -+ hns_roce_qp_write512(qp, wqe); - } - - static void update_cq_db(struct hns_roce_context *ctx, struct hns_roce_cq *cq) --- -2.25.1 - diff --git a/rdma-core-41.0.tar.gz b/rdma-core-41.0.tar.gz deleted file mode 100644 index 19fbd78398613efd77dfd570feb6c558a04666dc..0000000000000000000000000000000000000000 Binary files a/rdma-core-41.0.tar.gz and /dev/null differ diff --git a/rdma-core-50.0.tar.gz b/rdma-core-50.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f4116112b3c33ac42f85e21ffc8d1a9c0d401f16 Binary files /dev/null and b/rdma-core-50.0.tar.gz differ diff --git a/rdma-core.spec b/rdma-core.spec index 25e647c24478334cea796bf9779a660aa90aa54a..e6bfa7e129be8fb5a2d42f0dae6b6fbd0d6b952f 100644 --- a/rdma-core.spec +++ b/rdma-core.spec @@ -1,92 +1,45 @@ Name: rdma-core -Version: 41.0 -Release: 27 +Version: 50.0 +Release: 1 Summary: RDMA core userspace libraries and daemons License: GPLv2 or BSD Url: https://github.com/linux-rdma/rdma-core Source: https://github.com/linux-rdma/rdma-core/releases/download/v%{version}/%{name}-%{version}.tar.gz -Patch0: 0001-libhns-Use-a-constant-instead-of-sizeof-operation.patch -Patch1: 0002-libhns-Fix-ext_sge-num-error-when-post-send.patch -Patch2: 0003-Update-kernel-headers.patch -Patch3: 0004-libhns-Fix-the-problem-of-sge-nums.patch -Patch4: 0005-Update-kernel-headers.patch -Patch5: 0006-libhns-Add-compatibility-handling-for-rq-inline.patch -Patch6: 0007-libhns-Refactor-rq-inline.patch -Patch7: 0008-libhns-RQ-inline-support-wc_x_poll_cq-interface.patch -Patch8: 0009-Update-kernel-headers.patch -Patch9: 0010-libhns-Support-cqe-inline.patch -Patch10: 0011-Update-kernel-headers.patch -Patch11: 0012-libhns-Support-DSCP.patch -Patch12: 0013-cma-Release-allocated-port-array.patch -Patch13: 0014-rsockets-Fix-allocation-size-There-is-memory-allocat.patch -Patch14: 0015-tests-test_mr.py-Change-the-argument-of-DmaBufMR-to-.patch -Patch15: 0016-ABI-Files.patch -Patch16: 0017-mlx5-Adjust-Crypto-BSF-size-if-signature-is-used.patch -Patch17: 0018-mlx5-DR-Fix-missing-comma-in-matcher-builder-dump-li.patch -Patch18: 0019-Install-xprtrdma-svcrdma-kmods-in-redhat-suse-dracut.patch -Patch19: 0020-providers-irdma-Explicitly-set-QP-modify-attributes-.patch -Patch20: 0021-providers-irdma-Use-s-g-array-in-post-send-only-when.patch -Patch21: 0022-providers-irdma-Report-correct-WC-errors.patch -Patch22: 0023-pyverbs-Increment-the-correct-rkey-in-test_qpex.patch -Patch23: 0024-mckey-Use-rdma_create_qp_ex-only-for-loopback-preven.patch -Patch24: 0025-Fix-spelling-mistake-of-underlying.patch -Patch25: 0026-rdma-ndd-disable-systemd-ProtectHostName-feature.patch -Patch26: 0027-libhns-Add-RoH-device-IDs.patch -Patch27: 0028-Update-kernel-headers.patch -Patch28: 0029-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch -Patch29: 0030-libhns-Add-support-for-the-thread-domain-and-the-par.patch -Patch30: 0031-Update-kernel-headers.patch -Patch31: 0032-libhns-Introduce-DCA-for-RC-QP.patch -Patch32: 0033-libhns-Add-support-for-shrinking-DCA-memory-pool.patch -Patch33: 0034-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch -Patch34: 0035-libhns-Use-shared-memory-to-sync-DCA-status.patch -Patch35: 0036-libhns-Sync-DCA-status-by-shared-memory.patch -Patch36: 0037-libhns-Add-direct-verbs-support-to-config-DCA.patch -Patch37: 0038-Update-kernel-headers.patch -Patch38: 0039-libhns-Add-reset-stop-flow-mechanism.patch -Patch39: 0040-Update-kernel-headers.patch -Patch40: 0041-libhns-Support-congestion-control-algorithm-configur.patch -Patch41: 0042-Update-kernel-headers.patch -Patch42: 0043-libhns-Add-support-for-SVE-Direct-WQE.patch -Patch43: 0044-libhns-Fix-the-sge-num-problem-of-atomic-op.patch -Patch44: 0045-libhns-Fix-sge-tail_len-overflow.patch -Patch45: 0046-libhns-Disable-local-invalidate-operation.patch -Patch46: 0047-libhns-Fix-the-owner-bit-error-of-sq-in-new-io.patch -Patch47: 0048-libhns-Fix-incorrect-post-send-with-direct-wqe-of-wr.patch -Patch48: 0049-libhns-Add-a-judgment-to-the-congestion-control-algo.patch -Patch49: 0050-libhns-Support-user-to-choose-using-UD-sl-or-pktype-.patch -Patch50: 0051-libhns-Remove-unnecessary-QP-checks.patch -Patch51: 0052-libhns-Fix-reference-to-uninitialized-cq-pointer.patch -Patch52: 0053-libhns-Support-reporting-wc-as-software-mode.patch -Patch53: 0054-libhns-return-error-when-post-send-in-reset-state.patch -Patch54: 0055-libhns-separate-the-initialization-steps-of-lock.patch -Patch55: 0056-libhns-assign-doorbell-to-zero-when-allocate-it.patch -patch56: 0057-libhns-Fix-missing-reset-notification.patch -patch57: 0058-libhns-Support-flexible-WQE-buffer-page-size.patch -patch58: 0059-Update-kernel-headers.patch -patch59: 0060-libhns-Support-SRQ-record-doorbell.patch -patch60: 0061-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch -patch61: 0062-Update-kernel-headers-for-libhns-query_device.patch -patch62: 0063-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch -patch63: 0064-Update-kernel-headers-for-supporting-POE-CQs.patch -patch64: 0065-libhns-Add-support-for-POE-CQs.patch -patch65: 0066-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch -patch66: 0067-libhns-Support-STARS-mode-QP.patch -patch67: 0068-Update-kernel-headers-for-supporting-write-with-noti.patch -patch68: 0069-libhns-Support-write-with-notify.patch -patch70: 0070-libhns-Get-dmac-from-kernel-driver.patch -patch71: 0071-libhns-Corrects-several-issues-with-output-format-an.patch -patch72: 0072-libhns-Add-input-parameter-check-for-hnsdv_query_dev.patch -patch73: 0073-libhns-Fix-uninitialized-qp-attr-when-flush-cqe.patch -patch74: 0074-libhns-Fix-possible-overflow-in-cq-clean.patch -patch75: 0075-libhns-Fix-unnecessary-dca-memory-detach.patch -patch76: 0076-libhns-Bugfix-for-wrong-timing-of-modifying-ibv_qp-s.patch -patch77: 0077-libhns-Fix-parent-domain-unsupported-comp-mask.patch -patch78: 0078-libhns-Add-pthread_spin_destroy-pthread_mutex_destro.patch -patch79: 0079-libhns-Removes-a-repeated-initialization-of-a-spinlo.patch -patch80: 0080-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch -patch81: 0081-libhns-Fix-missing-DB-when-compiler-does-not-support.patch +Patch1: 0001-libhns-Add-support-for-the-thread-domain-and-the-par.patch +Patch2: 0002-libhns-Add-RoH-device-IDs.patch +Patch3: 0003-libhns-Add-the-parsing-of-mac-type-in-RoH-mode.patch +Patch4: 0004-Update-kernel-headers.patch +Patch5: 0005-libhns-Support-DSCP.patch +Patch6: 0006-Update-kernel-headers.patch +Patch7: 0007-libhns-Support-congestion-control-algorithm-configur.patch +Patch8: 0008-libhns-Fix-owner-bit-when-SQ-wraps-around-in-new-IO.patch +Patch9: 0009-Update-kernel-headers.patch +Patch10: 0010-libhns-Add-support-for-SVE-Direct-WQE.patch +Patch11: 0011-libhns-Support-flexible-WQE-buffer-page-size.patch +Patch12: 0012-Update-kernel-headers.patch +Patch13: 0013-libhns-Add-reset-stop-flow-mechanism.patch +Patch14: 0014-libhns-return-error-when-post-send-in-reset-state.patch +Patch15: 0015-libhns-Support-reporting-wc-as-software-mode.patch +Patch16: 0016-libhns-assign-doorbell-to-zero-when-allocate-it.patch +Patch17: 0017-libhns-Fix-missing-reset-notification.patch +Patch18: 0018-Update-kernel-headers.patch +Patch19: 0019-libhns-Introduce-DCA-for-RC-QP.patch +Patch20: 0020-libhns-Add-support-for-shrinking-DCA-memory-pool.patch +Patch21: 0021-libhns-Add-support-for-attaching-QP-s-WQE-buffer.patch +Patch22: 0022-libhns-Use-shared-memory-to-sync-DCA-status.patch +Patch23: 0023-libhns-Sync-DCA-status-by-shared-memory.patch +Patch24: 0024-libhns-Add-direct-verbs-support-to-config-DCA.patch +Patch25: 0025-libhns-Fix-unnecessary-dca-memory-detach.patch +Patch26: 0026-Update-kernel-headers-for-libhns-query_device.patch +Patch27: 0027-libhns-Support-query-HW-ID-by-hnsdv_query_device.patch +Patch28: 0028-Update-kernel-headers-for-supporting-POE-CQs.patch +Patch29: 0029-libhns-Add-support-for-POE-CQs.patch +Patch30: 0030-Update-kernel-headers-for-supporting-STARS-QP-in-HNS.patch +Patch31: 0031-libhns-Support-STARS-mode-QP.patch +Patch32: 0032-Update-kernel-headers-for-supporting-write-with-noti.patch +Patch33: 0033-libhns-Support-write-with-notify.patch +Patch34: 0034-libhns-Skip-resolving-MAC-for-RDMA-over-UBLink.patch BuildRequires: binutils cmake >= 2.8.11 gcc libudev-devel pkgconfig pkgconfig(libnl-3.0) BuildRequires: pkgconfig(libnl-route-3.0) valgrind-devel systemd systemd-devel @@ -175,6 +128,8 @@ Provides: libipathverbs = %{version}-%{release} Obsoletes: libipathverbs < %{version}-%{release} Provides: libirdma = %{version}-%{release} Obsoletes: libirdma < %{version}-%{release} +Provides: libmana = %{version}-%{release} +Obsoletes: libmana < %{version}-%{release} Provides: libmlx4 = %{version}-%{release} Obsoletes: libmlx4 < %{version}-%{release} Provides: libmlx5 = %{version}-%{release} @@ -201,6 +156,7 @@ Device-specific plug-in ibverbs userspace drivers are included: - libhns: HiSilicon Hip08/09/10 SoC - libipathverbs: QLogic InfiniPath HCA - libirdma: Intel Ethernet Connection RDMA +- libmana: Microsoft Azure Network Adapter - libmlx4: Mellanox ConnectX-3 InfiniBand HCA - libmlx5: Mellanox Connect-IB/X-4+ InfiniBand HCA - libmthca: Mellanox InfiniBand HCA @@ -395,7 +351,6 @@ fi %config(noreplace) %{_sysconfdir}/rdma/modules/opa.conf %config(noreplace) %{_sysconfdir}/rdma/modules/rdma.conf %config(noreplace) %{_sysconfdir}/rdma/modules/roce.conf -%config(noreplace) %{_sysconfdir}/udev/rules.d/* %dir %{_sysconfdir}/modprobe.d %config(noreplace) %{_sysconfdir}/modprobe.d/mlx4.conf %config(noreplace) %{_sysconfdir}/modprobe.d/truescale.conf @@ -560,6 +515,7 @@ fi %{_libdir}/libhns.so.* %{_libdir}/libibverbs*.so.* %{_libdir}/libibverbs/*.so +%{_libdir}/libmana.so.* %{_libdir}/libmlx5.so.* %{_libdir}/libmlx4.so.* %config(noreplace) %{_sysconfdir}/libibverbs.d/*.driver @@ -658,9 +614,16 @@ fi %doc %{_docdir}/%{name}-%{version}/librdmacm.md %doc %{_docdir}/%{name}-%{version}/libibverbs.md %doc %{_docdir}/%{name}-%{version}/tag_matching.md +%doc %{_docdir}/%{name}-%{version}/70-persistent-ipoib.rules %{_mandir}/* %changelog +* Wed Jan 31 2024 Ran Zhou - 50.0-1 +- Type: requirement +- ID: NA +- SUG: NA +- DESC: Update to 50.0 + * Thu Jan 25 2024 Ran Zhou - 41.0-27 - Type: requirement - ID: NA