blob: 4e6c38e94847825f951c8b44f1c12b6aa64d1aab [file] [edit]
# SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB)
# Copyright 2020 Amazon.com, Inc. or its affiliates. All rights reserved.
from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t
cimport pyverbs.libibverbs as v
cdef extern from 'infiniband/efadv.h':
cdef struct efadv_device_attr:
uint64_t comp_mask;
uint32_t max_sq_wr;
uint32_t max_rq_wr;
uint16_t max_sq_sge;
uint16_t max_rq_sge;
uint16_t inline_buf_size;
uint8_t reserved[2];
uint32_t device_caps;
uint32_t max_rdma_size;
cdef struct efadv_ah_attr:
uint64_t comp_mask;
uint16_t ahn;
uint8_t reserved[6];
cdef struct efadv_qp_init_attr:
uint64_t comp_mask;
uint32_t driver_qp_type;
uint8_t reserved[4];
int efadv_query_device(v.ibv_context *ibvctx, efadv_device_attr *attrs,
uint32_t inlen)
int efadv_query_ah(v.ibv_ah *ibvah, efadv_ah_attr *attr,
uint32_t inlen)
v.ibv_qp *efadv_create_driver_qp(v.ibv_pd *ibvpd, v.ibv_qp_init_attr *attr,
uint32_t driver_qp_type)
v.ibv_qp *efadv_create_qp_ex(v.ibv_context *ibvctx,
v.ibv_qp_init_attr_ex *attr_ex,
efadv_qp_init_attr *efa_attr,
uint32_t inlen)