| # SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB) | |
| # Copyright (c) 2018, Mellanox Technologies. All rights reserved. See COPYING file | |
| #cython: language_level=3 | |
| from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t | |
| from posix.time cimport timespec | |
| from pyverbs.libibverbs_enums cimport * | |
| cdef extern from 'infiniband/verbs.h': | |
| cdef struct anon: | |
| unsigned long subnet_prefix | |
| unsigned long interface_id | |
| cdef union ibv_gid: | |
| anon _global "global" | |
| uint8_t raw[16] | |
| cdef struct ibv_device: | |
| char *name | |
| int node_type | |
| int transport_type | |
| cdef struct ibv_context: | |
| ibv_device *device | |
| int num_comp_vectors | |
| int cmd_fd | |
| cdef struct ibv_device_attr: | |
| char *fw_ver | |
| unsigned long node_guid | |
| unsigned long sys_image_guid | |
| unsigned long max_mr_size | |
| unsigned long page_size_cap | |
| unsigned int vendor_id | |
| unsigned int vendor_part_id | |
| unsigned int hw_ver | |
| unsigned int max_qp | |
| unsigned int max_qp_wr | |
| unsigned int device_cap_flags | |
| unsigned int max_sge | |
| unsigned int max_sge_rd | |
| unsigned int max_cq | |
| unsigned int max_cqe | |
| unsigned int max_mr | |
| unsigned int max_pd | |
| unsigned int max_qp_rd_atom | |
| unsigned int max_ee_rd_atom | |
| unsigned int max_res_rd_atom | |
| unsigned int max_qp_init_rd_atom | |
| unsigned int max_ee_init_rd_atom | |
| ibv_atomic_cap atomic_cap | |
| unsigned int max_ee | |
| unsigned int max_rdd | |
| unsigned int max_mw | |
| unsigned int max_raw_ipv6_qp | |
| unsigned int max_raw_ethy_qp | |
| unsigned int max_mcast_grp | |
| unsigned int max_mcast_qp_attach | |
| unsigned int max_total_mcast_qp_attach | |
| unsigned int max_ah | |
| unsigned int max_fmr | |
| unsigned int max_map_per_fmr | |
| unsigned int max_srq | |
| unsigned int max_srq_wr | |
| unsigned int max_srq_sge | |
| unsigned int max_pkeys | |
| unsigned int local_ca_ack_delay | |
| unsigned int phys_port_cnt | |
| struct ibv_pd: | |
| ibv_context *context | |
| unsigned int handle | |
| cdef struct ibv_mr: | |
| ibv_context *context | |
| ibv_pd *pd | |
| void *addr | |
| size_t length | |
| unsigned int handle | |
| unsigned int lkey | |
| unsigned int rkey | |
| cdef struct ibv_buf: | |
| pass | |
| cdef struct ibv_query_device_ex_input: | |
| unsigned int comp_mask | |
| cdef struct per_transport_caps: | |
| uint32_t rc_odp_caps | |
| uint32_t uc_odp_caps | |
| uint32_t ud_odp_caps | |
| cdef struct ibv_odp_caps: | |
| uint64_t general_caps | |
| per_transport_caps per_transport_caps | |
| cdef struct ibv_tso_caps: | |
| unsigned int max_tso | |
| unsigned int supported_qpts | |
| cdef struct ibv_rss_caps: | |
| unsigned int supported_qpts | |
| unsigned int max_rwq_indirection_tables | |
| unsigned int max_rwq_indirection_table_size | |
| unsigned long rx_hash_fields_mask | |
| unsigned int rx_hash_function | |
| cdef struct ibv_packet_pacing_caps: | |
| unsigned int qp_rate_limit_min | |
| unsigned int qp_rate_limit_max | |
| unsigned int supported_qpts | |
| cdef struct ibv_tm_caps: | |
| unsigned int max_rndv_hdr_size | |
| unsigned int max_num_tags | |
| unsigned int flags | |
| unsigned int max_ops | |
| unsigned int max_sge | |
| cdef struct ibv_tm_cap: | |
| uint32_t max_num_tags | |
| uint32_t max_ops | |
| cdef struct ibv_cq_moderation_caps: | |
| unsigned int max_cq_count | |
| unsigned int max_cq_period | |
| cdef struct ibv_pci_atomic_caps: | |
| uint16_t fetch_add | |
| uint16_t swap | |
| uint16_t compare_swap | |
| cdef struct ibv_device_attr_ex: | |
| ibv_device_attr orig_attr | |
| unsigned int comp_mask | |
| ibv_odp_caps odp_caps | |
| unsigned long completion_timestamp_mask | |
| unsigned long hca_core_clock | |
| unsigned long device_cap_flags_ex | |
| ibv_tso_caps tso_caps | |
| ibv_rss_caps rss_caps | |
| unsigned int max_wq_type_rq | |
| ibv_packet_pacing_caps packet_pacing_caps | |
| unsigned int raw_packet_caps | |
| ibv_tm_caps tm_caps | |
| ibv_cq_moderation_caps cq_mod_caps | |
| unsigned long max_dm_size | |
| ibv_pci_atomic_caps pci_atomic_caps | |
| uint32_t xrc_odp_caps | |
| uint32_t phys_port_cnt_ex | |
| cdef struct ibv_mw: | |
| ibv_context *context | |
| ibv_pd *pd | |
| unsigned int rkey | |
| unsigned int handle | |
| ibv_mw_type type | |
| cdef struct ibv_alloc_dm_attr: | |
| size_t length | |
| unsigned int log_align_req | |
| unsigned int comp_mask | |
| cdef struct ibv_dm: | |
| ibv_context *context | |
| unsigned int comp_mask | |
| uint32_t handle | |
| cdef struct ibv_port_attr: | |
| ibv_port_state state | |
| ibv_mtu max_mtu | |
| ibv_mtu active_mtu | |
| int gid_tbl_len | |
| unsigned int port_cap_flags | |
| unsigned int max_msg_sz | |
| unsigned int bad_pkey_cntr | |
| unsigned int qkey_viol_cntr | |
| unsigned short pkey_tbl_len | |
| unsigned short lid | |
| unsigned short sm_lid | |
| unsigned char lmc | |
| unsigned char max_vl_num | |
| unsigned char sm_sl | |
| unsigned char subnet_timeout | |
| unsigned char init_type_reply | |
| unsigned char active_width | |
| unsigned char active_speed | |
| unsigned char phys_state | |
| unsigned char link_layer | |
| unsigned char flags | |
| unsigned short port_cap_flags2 | |
| unsigned int active_speed_ex | |
| cdef struct ibv_comp_channel: | |
| ibv_context *context | |
| unsigned int fd | |
| unsigned int refcnt | |
| cdef struct ibv_cq: | |
| ibv_context *context | |
| ibv_comp_channel *channel | |
| void *cq_context | |
| int handle | |
| int cqe | |
| cdef struct ibv_wc: | |
| unsigned long wr_id | |
| ibv_wc_status status | |
| ibv_wc_opcode opcode | |
| unsigned int vendor_err | |
| unsigned int byte_len | |
| unsigned int qp_num | |
| unsigned int imm_data | |
| unsigned int src_qp | |
| int wc_flags | |
| unsigned int pkey_index | |
| unsigned int slid | |
| unsigned int sl | |
| unsigned int dlid_path_bits | |
| cdef struct ibv_cq_init_attr_ex: | |
| unsigned int cqe | |
| void *cq_context | |
| ibv_comp_channel *channel | |
| unsigned int comp_vector | |
| unsigned long wc_flags | |
| unsigned int comp_mask | |
| unsigned int flags | |
| ibv_pd *parent_domain | |
| cdef struct ibv_cq_ex: | |
| ibv_context *context | |
| ibv_comp_channel *channel | |
| void *cq_context | |
| unsigned int handle | |
| int cqe | |
| unsigned int comp_events_completed | |
| unsigned int async_events_completed | |
| unsigned int comp_mask | |
| ibv_wc_status status | |
| unsigned long wr_id | |
| cdef struct ibv_poll_cq_attr: | |
| unsigned int comp_mask | |
| cdef struct ibv_comp_cntr_caps: | |
| unsigned long max_value | |
| unsigned int max_counters | |
| unsigned int supported_qp_attach_ops | |
| cdef struct ibv_comp_cntr: | |
| ibv_context *context | |
| unsigned int handle | |
| unsigned long comp_count_max_value | |
| unsigned long err_count_max_value | |
| cdef struct ibv_comp_cntr_init_attr: | |
| unsigned int comp_mask | |
| unsigned int type | |
| unsigned int flags | |
| cdef struct ibv_wc_tm_info: | |
| unsigned long tag | |
| unsigned int priv | |
| cdef struct ibv_grh: | |
| unsigned int version_tclass_flow | |
| unsigned short paylen | |
| unsigned char next_hdr | |
| unsigned char hop_limit | |
| ibv_gid sgid | |
| ibv_gid dgid | |
| cdef struct ibv_global_route: | |
| ibv_gid dgid | |
| unsigned int flow_label | |
| unsigned char sgid_index | |
| unsigned char hop_limit | |
| unsigned char traffic_class | |
| cdef struct ibv_ah_attr: | |
| ibv_global_route grh | |
| unsigned short dlid | |
| unsigned char sl | |
| unsigned char src_path_bits | |
| unsigned char static_rate | |
| unsigned char is_global | |
| unsigned char port_num | |
| cdef struct ibv_ah: | |
| ibv_context *context | |
| ibv_pd *pd | |
| unsigned int handle | |
| cdef struct ibv_sge: | |
| unsigned long addr | |
| unsigned int length | |
| unsigned int lkey | |
| cdef struct ibv_recv_wr: | |
| unsigned long wr_id | |
| ibv_recv_wr *next | |
| ibv_sge *sg_list | |
| int num_sge | |
| cdef struct _add: | |
| uint64_t recv_wr_id | |
| ibv_sge *sg_list | |
| int num_sge | |
| uint64_t tag | |
| uint64_t mask | |
| cdef struct _tm: | |
| uint32_t unexpected_cnt | |
| uint32_t handle | |
| _add add | |
| cdef struct ibv_ops_wr: | |
| uint64_t wr_id | |
| ibv_ops_wr *next | |
| ibv_ops_wr_opcode opcode | |
| int flags | |
| _tm tm | |
| cdef struct rdma: | |
| unsigned long remote_addr | |
| unsigned int rkey | |
| cdef struct atomic: | |
| unsigned long remote_addr | |
| unsigned long compare_add | |
| unsigned long swap | |
| unsigned int rkey | |
| cdef struct ud: | |
| ibv_ah *ah | |
| unsigned int remote_qpn | |
| unsigned int remote_qkey | |
| cdef union wr: | |
| rdma rdma | |
| atomic atomic | |
| ud ud | |
| cdef struct ibv_mw_bind_info: | |
| ibv_mr *mr | |
| unsigned long addr | |
| unsigned long length | |
| unsigned int mw_access_flags | |
| cdef struct ibv_mw_bind: | |
| uint64_t wr_id | |
| unsigned int send_flags | |
| ibv_mw_bind_info bind_info | |
| cdef struct bind_mw: | |
| ibv_mw *mw | |
| unsigned int rkey | |
| ibv_mw_bind_info bind_info | |
| cdef struct tso: | |
| void *hdr | |
| unsigned short hdr_sz | |
| unsigned short mss | |
| cdef struct xrc: | |
| unsigned int remote_srqn | |
| cdef union qp_type: | |
| xrc xrc | |
| cdef struct ibv_fd_arr: | |
| int *arr | |
| uint32_t count | |
| cdef struct ibv_send_wr: | |
| unsigned long wr_id | |
| ibv_send_wr *next | |
| ibv_sge *sg_list | |
| int num_sge | |
| ibv_wr_opcode opcode | |
| uint32_t imm_data | |
| unsigned int send_flags | |
| wr wr | |
| qp_type qp_type | |
| bind_mw bind_mw | |
| tso tso | |
| cdef struct ibv_qp_cap: | |
| unsigned int max_send_wr | |
| unsigned int max_recv_wr | |
| unsigned int max_send_sge | |
| unsigned int max_recv_sge | |
| unsigned int max_inline_data | |
| cdef struct ibv_qp_init_attr: | |
| void *qp_context | |
| ibv_cq *send_cq | |
| ibv_cq *recv_cq | |
| ibv_srq *srq | |
| ibv_qp_cap cap | |
| ibv_qp_type qp_type | |
| int sq_sig_all | |
| cdef struct ibv_xrcd_init_attr: | |
| uint32_t comp_mask | |
| int fd | |
| int oflags | |
| cdef struct ibv_xrcd: | |
| pass | |
| cdef struct ibv_srq_attr: | |
| unsigned int max_wr | |
| unsigned int max_sge | |
| unsigned int srq_limit | |
| cdef struct ibv_srq_init_attr: | |
| void *srq_context | |
| ibv_srq_attr attr | |
| cdef struct ibv_srq_init_attr_ex: | |
| void *srq_context | |
| ibv_srq_attr attr | |
| unsigned int comp_mask | |
| ibv_srq_type srq_type | |
| ibv_pd *pd | |
| ibv_xrcd *xrcd | |
| ibv_cq *cq | |
| ibv_tm_cap tm_cap | |
| cdef struct ibv_srq: | |
| ibv_context *context | |
| void *srq_context | |
| ibv_pd *pd | |
| unsigned int handle | |
| unsigned int events_completed | |
| cdef struct ibv_rwq_ind_table: | |
| ibv_context *context | |
| int ind_tbl_handle | |
| int ind_tbl_num | |
| uint32_t comp_mask | |
| cdef struct ibv_rx_hash_conf: | |
| uint8_t rx_hash_function | |
| uint8_t rx_hash_key_len | |
| uint8_t *rx_hash_key | |
| uint64_t rx_hash_fields_mask | |
| cdef struct ibv_qp_init_attr_ex: | |
| void *qp_context | |
| ibv_cq *send_cq | |
| ibv_cq *recv_cq | |
| ibv_srq *srq | |
| ibv_qp_cap cap | |
| ibv_qp_type qp_type | |
| int sq_sig_all | |
| unsigned int comp_mask | |
| ibv_pd *pd | |
| ibv_xrcd *xrcd | |
| unsigned int create_flags | |
| unsigned short max_tso_header | |
| ibv_rwq_ind_table *rwq_ind_tbl | |
| ibv_rx_hash_conf rx_hash_conf | |
| unsigned int source_qpn | |
| unsigned long send_ops_flags | |
| cdef struct ibv_qp_attr: | |
| ibv_qp_state qp_state | |
| ibv_qp_state cur_qp_state | |
| ibv_mtu path_mtu | |
| ibv_mig_state path_mig_state | |
| unsigned int qkey | |
| unsigned int rq_psn | |
| unsigned int sq_psn | |
| unsigned int dest_qp_num | |
| unsigned int qp_access_flags | |
| ibv_qp_cap cap | |
| ibv_ah_attr ah_attr | |
| ibv_ah_attr alt_ah_attr | |
| unsigned short pkey_index | |
| unsigned short alt_pkey_index | |
| unsigned char en_sqd_async_notify | |
| unsigned char sq_draining | |
| unsigned char max_rd_atomic | |
| unsigned char max_dest_rd_atomic | |
| unsigned char min_rnr_timer | |
| unsigned char port_num | |
| unsigned char timeout | |
| unsigned char retry_cnt | |
| unsigned char rnr_retry | |
| unsigned char alt_port_num | |
| unsigned char alt_timeout | |
| unsigned int rate_limit | |
| cdef struct ibv_qp_rate_limit_attr: | |
| unsigned int rate_limit | |
| unsigned int max_burst_sz | |
| unsigned short typical_pkt_sz | |
| unsigned int comp_mask | |
| cdef struct ibv_srq: | |
| ibv_context *context | |
| void *srq_context | |
| ibv_pd *pd | |
| unsigned int handle | |
| unsigned int events_completed | |
| cdef struct ibv_data_buf: | |
| void *addr | |
| size_t length | |
| cdef struct ibv_qp: | |
| ibv_context *context; | |
| void *qp_context; | |
| ibv_pd *pd; | |
| ibv_cq *send_cq; | |
| ibv_cq *recv_cq; | |
| ibv_srq *srq; | |
| unsigned int handle; | |
| unsigned int qp_num; | |
| ibv_qp_state state; | |
| ibv_qp_type qp_type; | |
| unsigned int events_completed; | |
| cdef struct ibv_qp_attach_comp_cntr_attr: | |
| unsigned int comp_mask | |
| unsigned int op_mask | |
| cdef struct ibv_parent_domain_init_attr: | |
| ibv_pd *pd; | |
| uint32_t comp_mask; | |
| void *(*alloc)(ibv_pd *pd, void *pd_context, size_t size, | |
| size_t alignment, uint64_t resource_type); | |
| void (*free)(ibv_pd *pd, void *pd_context, void *ptr, | |
| uint64_t resource_type); | |
| void *pd_context; | |
| cdef struct ibv_qp_ex: | |
| ibv_qp qp_base | |
| uint64_t comp_mask | |
| uint64_t wr_id | |
| unsigned int wr_flags | |
| cdef struct ibv_ece: | |
| uint32_t vendor_id | |
| uint32_t options | |
| uint32_t comp_mask | |
| cdef struct ibv_gid_entry: | |
| ibv_gid gid | |
| uint32_t gid_index | |
| uint32_t port_num | |
| uint32_t gid_type | |
| uint32_t ndev_ifindex | |
| cdef struct ibv_flow: | |
| uint32_t comp_mask | |
| ibv_context *context | |
| uint32_t handle | |
| cdef struct ibv_flow_attr: | |
| uint32_t comp_mask | |
| ibv_flow_attr_type type | |
| uint16_t size | |
| uint16_t priority | |
| uint8_t num_of_specs | |
| uint8_t port | |
| uint32_t flags | |
| cdef struct ibv_flow_eth_filter: | |
| uint8_t dst_mac[6] | |
| uint8_t src_mac[6] | |
| uint16_t ether_type | |
| uint16_t vlan_tag | |
| cdef struct ibv_flow_spec_eth: | |
| ibv_flow_spec_type type | |
| uint16_t size | |
| ibv_flow_eth_filter val | |
| ibv_flow_eth_filter mask | |
| cdef struct ibv_flow_ipv4_ext_filter: | |
| uint32_t src_ip | |
| uint32_t dst_ip | |
| uint8_t proto | |
| uint8_t tos | |
| uint8_t ttl | |
| uint8_t flags | |
| cdef struct ibv_flow_spec_ipv4_ext: | |
| ibv_flow_spec_type type | |
| uint16_t size | |
| ibv_flow_ipv4_ext_filter val | |
| ibv_flow_ipv4_ext_filter mask | |
| cdef struct ibv_flow_tcp_udp_filter: | |
| uint16_t dst_port | |
| uint16_t src_port | |
| cdef struct ibv_flow_spec_tcp_udp: | |
| ibv_flow_spec_type type | |
| uint16_t size | |
| ibv_flow_tcp_udp_filter val | |
| ibv_flow_tcp_udp_filter mask | |
| cdef struct ibv_flow_ipv6_filter: | |
| uint8_t src_ip[16] | |
| uint8_t dst_ip[16] | |
| uint32_t flow_label | |
| uint8_t next_hdr | |
| uint8_t traffic_class | |
| uint8_t hop_limit | |
| cdef struct ibv_flow_spec_ipv6: | |
| ibv_flow_spec_type type | |
| uint16_t size | |
| ibv_flow_ipv6_filter val | |
| ibv_flow_ipv6_filter mask | |
| cdef struct ibv_flow_action: | |
| ibv_context *context | |
| cdef struct ibv_values_ex: | |
| uint32_t comp_mask | |
| timespec raw_clock | |
| cdef union ibv_async_event_element: | |
| ibv_cq *cq; | |
| ibv_qp *qp; | |
| ibv_srq *srq; | |
| int port_num; | |
| cdef struct ibv_async_event: | |
| ibv_async_event_element element | |
| ibv_event_type event_type | |
| cdef struct ibv_wq: | |
| ibv_context *context | |
| void *wq_context | |
| ibv_pd *pd | |
| ibv_cq *cq | |
| uint32_t wq_num | |
| uint32_t handle | |
| ibv_wq_state state | |
| ibv_wq_type wq_type | |
| uint32_t events_completed | |
| uint32_t comp_mask | |
| cdef struct ibv_wq_init_attr: | |
| void *wq_context | |
| ibv_wq_type wq_type | |
| uint32_t max_wr | |
| uint32_t max_sge | |
| ibv_pd *pd | |
| ibv_cq *cq | |
| uint32_t comp_mask | |
| uint32_t create_flags | |
| cdef struct ibv_wq_attr: | |
| uint32_t attr_mask | |
| ibv_wq_state wq_state | |
| ibv_wq_state curr_wq_state | |
| uint32_t flags | |
| uint32_t flags_mask | |
| cdef struct ibv_rwq_ind_table_init_attr: | |
| uint32_t log_ind_tbl_size | |
| ibv_wq **ind_tbl | |
| uint32_t comp_mask | |
| cdef struct ibv_dmah_init_attr: | |
| uint32_t comp_mask | |
| uint32_t cpu_id | |
| uint8_t ph | |
| uint8_t tph_mem_type | |
| cdef struct ibv_dmah: | |
| ibv_context *context | |
| cdef struct ibv_mr_init_attr: | |
| size_t length | |
| int access | |
| uint64_t comp_mask | |
| uint64_t iova | |
| void *addr | |
| int fd | |
| uint64_t fd_offset | |
| ibv_dmah *dmah | |
| ibv_buf *buf | |
| ibv_device **ibv_get_device_list(int *n) | |
| int ibv_get_device_index(ibv_device *device); | |
| void ibv_free_device_list(ibv_device **list) | |
| const char *ibv_get_device_name(ibv_device *device) | |
| ibv_context *ibv_open_device(ibv_device *device) | |
| int ibv_close_device(ibv_context *context) | |
| int ibv_query_device(ibv_context *context, ibv_device_attr *device_attr) | |
| int ibv_query_device_ex(ibv_context *context, | |
| ibv_query_device_ex_input *input, | |
| ibv_device_attr_ex *attr) | |
| unsigned long ibv_get_device_guid(ibv_device *device) | |
| int ibv_query_gid(ibv_context *context, unsigned int port_num, | |
| int index, ibv_gid *gid) | |
| int ibv_query_pkey(ibv_context *context, unsigned int port_num, | |
| int index, uint16_t *pkey) | |
| int ibv_get_pkey_index(ibv_context *context, unsigned int port_num, uint16_t pkey) | |
| ibv_pd *ibv_alloc_pd(ibv_context *context) | |
| int ibv_dealloc_pd(ibv_pd *pd) | |
| ibv_mr *ibv_reg_mr(ibv_pd *pd, void *addr, size_t length, int access) | |
| ibv_mr *ibv_reg_dmabuf_mr(ibv_pd *pd, uint64_t offset, size_t length, | |
| uint64_t iova, int fd, int access) | |
| void *ibv_alloc_buf(ibv_pd *pd, size_t size, ibv_buf **buf) | |
| int ibv_export_buf_dmabuf_fd(ibv_buf *buf) | |
| void ibv_free_buf(ibv_buf *buf) | |
| ibv_mr *ibv_reg_buf_mr(ibv_pd *pd, ibv_buf *buf, void *addr, | |
| size_t length, int access) | |
| int ibv_rereg_mr(ibv_mr *mr, int flags, ibv_pd *pd, void *addr, | |
| size_t length, int access) | |
| int ibv_dereg_mr(ibv_mr *mr) | |
| int ibv_advise_mr(ibv_pd *pd, uint32_t advice, uint32_t flags, | |
| ibv_sge *sg_list, uint32_t num_sge) | |
| ibv_dmah *ibv_alloc_dmah(ibv_context *context, ibv_dmah_init_attr *attr) | |
| int ibv_dealloc_dmah(ibv_dmah *dmah) | |
| ibv_mr *ibv_reg_mr_ex(ibv_pd *pd, ibv_mr_init_attr *mr_init_attr) | |
| ibv_mw *ibv_alloc_mw(ibv_pd *pd, ibv_mw_type type) | |
| int ibv_dealloc_mw(ibv_mw *mw) | |
| ibv_dm *ibv_alloc_dm(ibv_context *context, ibv_alloc_dm_attr *attr) | |
| int ibv_free_dm(ibv_dm *dm) | |
| ibv_mr *ibv_reg_dm_mr(ibv_pd *pd, ibv_dm *dm, unsigned long dm_offset, | |
| size_t length, unsigned int access) | |
| int ibv_memcpy_to_dm(ibv_dm *dm, unsigned long dm_offset, void *host_addr, | |
| size_t length) | |
| int ibv_memcpy_from_dm(void *host_addr, ibv_dm *dm, unsigned long dm_offset, | |
| size_t length) | |
| int ibv_dm_export_dmabuf_fd(ibv_dm *dm) | |
| int ibv_query_port(ibv_context *context, uint8_t port_num, | |
| ibv_port_attr *port_attr) | |
| int ibv_query_port_speed(ibv_context *context, uint8_t port_num, | |
| uint64_t *port_speed) | |
| ibv_comp_channel *ibv_create_comp_channel(ibv_context *context) | |
| int ibv_destroy_comp_channel(ibv_comp_channel *channel) | |
| int ibv_get_cq_event(ibv_comp_channel *channel, ibv_cq **cq, | |
| void **cq_context) | |
| int ibv_req_notify_cq(ibv_cq *cq, int solicited_only) | |
| void ibv_ack_cq_events(ibv_cq *cq, int nevents) | |
| ibv_cq *ibv_create_cq(ibv_context *context, int cqe, void *cq_context, | |
| ibv_comp_channel *channel, int comp_vector) | |
| int ibv_resize_cq(ibv_cq *cq, int cqe) | |
| int ibv_destroy_cq(ibv_cq *cq) | |
| int ibv_poll_cq(ibv_cq *cq, int num_entries, ibv_wc *wc) | |
| ibv_cq_ex *ibv_create_cq_ex(ibv_context *context, | |
| ibv_cq_init_attr_ex *cq_attr) | |
| ibv_cq *ibv_cq_ex_to_cq(ibv_cq_ex *cq) | |
| int ibv_start_poll(ibv_cq_ex *cq, ibv_poll_cq_attr *attr) | |
| int ibv_next_poll(ibv_cq_ex *cq) | |
| void ibv_end_poll(ibv_cq_ex *cq) | |
| ibv_wc_opcode ibv_wc_read_opcode(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_vendor_err(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_byte_len(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_imm_data(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_invalidated_rkey(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_qp_num(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_src_qp(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_wc_flags(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_slid(ibv_cq_ex *cq) | |
| unsigned char ibv_wc_read_sl(ibv_cq_ex *cq) | |
| unsigned char ibv_wc_read_dlid_path_bits(ibv_cq_ex *cq) | |
| unsigned long ibv_wc_read_completion_ts(ibv_cq_ex *cq) | |
| unsigned short ibv_wc_read_cvlan(ibv_cq_ex *cq) | |
| unsigned int ibv_wc_read_flow_tag(ibv_cq_ex *cq) | |
| void ibv_wc_read_tm_info(ibv_cq_ex *cq, ibv_wc_tm_info *tm_info) | |
| unsigned long ibv_wc_read_completion_wallclock_ns(ibv_cq_ex *cq) | |
| int ibv_query_comp_cntr_caps(ibv_context *context, | |
| ibv_comp_cntr_caps *caps) | |
| ibv_comp_cntr *ibv_create_comp_cntr(ibv_context *context, | |
| ibv_comp_cntr_init_attr *attr) | |
| int ibv_destroy_comp_cntr(ibv_comp_cntr *comp_cntr) | |
| int ibv_set_comp_cntr(ibv_comp_cntr *comp_cntr, unsigned long value) | |
| int ibv_set_err_comp_cntr(ibv_comp_cntr *comp_cntr, unsigned long value) | |
| int ibv_inc_comp_cntr(ibv_comp_cntr *comp_cntr, unsigned long amount) | |
| int ibv_inc_err_comp_cntr(ibv_comp_cntr *comp_cntr, unsigned long amount) | |
| int ibv_read_comp_cntr(ibv_comp_cntr *comp_cntr, unsigned long *value) | |
| int ibv_read_err_comp_cntr(ibv_comp_cntr *comp_cntr, unsigned long *value) | |
| ibv_ah *ibv_create_ah(ibv_pd *pd, ibv_ah_attr *attr) | |
| int ibv_init_ah_from_wc(ibv_context *context, uint8_t port_num, | |
| ibv_wc *wc, ibv_grh *grh, ibv_ah_attr *ah_attr) | |
| ibv_ah *ibv_create_ah_from_wc(ibv_pd *pd, ibv_wc *wc, ibv_grh *grh, | |
| uint8_t port_num) | |
| int ibv_destroy_ah(ibv_ah *ah) | |
| ibv_qp *ibv_create_qp(ibv_pd *pd, ibv_qp_init_attr *qp_init_attr) | |
| ibv_qp *ibv_create_qp_ex(ibv_context *context, | |
| ibv_qp_init_attr_ex *qp_init_attr_ex) | |
| int ibv_modify_qp(ibv_qp *qp, ibv_qp_attr *qp_attr, int comp_mask) | |
| int ibv_modify_qp_rate_limit(ibv_qp *qp, ibv_qp_rate_limit_attr *attr) | |
| int ibv_query_qp(ibv_qp *qp, ibv_qp_attr *attr, int attr_mask, | |
| ibv_qp_init_attr *init_attr) | |
| int ibv_destroy_qp(ibv_qp *qp) | |
| int ibv_qp_attach_comp_cntr(ibv_qp *qp, ibv_comp_cntr *comp_cntr, | |
| ibv_qp_attach_comp_cntr_attr *attr) | |
| int ibv_post_recv(ibv_qp *qp, ibv_recv_wr *wr, ibv_recv_wr **bad_wr) | |
| int ibv_post_send(ibv_qp *qp, ibv_send_wr *wr, ibv_send_wr **bad_wr) | |
| int ibv_bind_mw(ibv_qp *qp, ibv_mw *mw, ibv_mw_bind *mw_bind) | |
| ibv_xrcd *ibv_open_xrcd(ibv_context *context, | |
| ibv_xrcd_init_attr *xrcd_init_attr) | |
| int ibv_close_xrcd(ibv_xrcd *xrcd) | |
| ibv_srq *ibv_create_srq(ibv_pd *pd, ibv_srq_init_attr *srq_init_attr) | |
| ibv_srq *ibv_create_srq_ex(ibv_context *context, | |
| ibv_srq_init_attr_ex *srq_init_attr) | |
| int ibv_modify_srq(ibv_srq *srq, ibv_srq_attr *srq_attr, int srq_attr_mask) | |
| int ibv_query_srq(ibv_srq *srq, ibv_srq_attr *srq_attr) | |
| int ibv_get_srq_num(ibv_srq *srq, unsigned int *srq_num) | |
| int ibv_destroy_srq(ibv_srq *srq) | |
| int ibv_post_srq_recv(ibv_srq *srq, ibv_recv_wr *recv_wr, | |
| ibv_recv_wr **bad_recv_wr) | |
| int ibv_post_srq_ops(ibv_srq *srq, ibv_ops_wr *op, ibv_ops_wr **bad_op) | |
| ibv_pd *ibv_alloc_parent_domain(ibv_context *context, | |
| ibv_parent_domain_init_attr *attr) | |
| uint32_t ibv_inc_rkey(uint32_t rkey) | |
| ibv_qp_ex *ibv_qp_to_qp_ex(ibv_qp *qp) | |
| void ibv_wr_atomic_cmp_swp(ibv_qp_ex *qp, uint32_t rkey, | |
| uint64_t remote_addr, uint64_t compare, | |
| uint64_t swap) | |
| void ibv_wr_atomic_fetch_add(ibv_qp_ex *qp, uint32_t rkey, | |
| uint64_t remote_addr, uint64_t add) | |
| void ibv_wr_bind_mw(ibv_qp_ex *qp, ibv_mw *mw, uint32_t rkey, | |
| ibv_mw_bind_info *bind_info) | |
| void ibv_wr_local_inv(ibv_qp_ex *qp, uint32_t invalidate_rkey) | |
| void ibv_wr_flush(ibv_qp_ex *qp, uint32_t rkey, | |
| uint64_t remote_addr, size_t length, | |
| uint8_t ptype, uint8_t level) | |
| void ibv_wr_atomic_write(ibv_qp_ex *qp, uint32_t rkey, | |
| uint64_t remote_addr, const void *atomic_wr) | |
| void ibv_wr_rdma_read(ibv_qp_ex *qp, uint32_t rkey, uint64_t remote_addr) | |
| void ibv_wr_rdma_write(ibv_qp_ex *qp, uint32_t rkey, uint64_t remote_addr) | |
| void ibv_wr_rdma_write_imm(ibv_qp_ex *qp, uint32_t rkey, | |
| uint64_t remote_addr, uint32_t imm_data) | |
| void ibv_wr_send(ibv_qp_ex *qp) | |
| void ibv_wr_send_imm(ibv_qp_ex *qp, uint32_t imm_data) | |
| void ibv_wr_send_inv(ibv_qp_ex *qp, uint32_t invalidate_rkey) | |
| void ibv_wr_send_tso(ibv_qp_ex *qp, void *hdr, uint16_t hdr_sz, | |
| uint16_t mss) | |
| void ibv_wr_set_ud_addr(ibv_qp_ex *qp, ibv_ah *ah, uint32_t remote_qpn, | |
| uint32_t remote_qkey) | |
| void ibv_wr_set_xrc_srqn(ibv_qp_ex *qp, uint32_t remote_srqn) | |
| void ibv_wr_set_inline_data(ibv_qp_ex *qp, void *addr, size_t length) | |
| void ibv_wr_set_inline_data_list(ibv_qp_ex *qp, size_t num_buf, | |
| ibv_data_buf *buf_list) | |
| void ibv_wr_set_sge(ibv_qp_ex *qp, uint32_t lkey, uint64_t addr, | |
| uint32_t length) | |
| void ibv_wr_set_sge_list(ibv_qp_ex *qp, size_t num_sge, ibv_sge *sg_list) | |
| void ibv_wr_start(ibv_qp_ex *qp) | |
| int ibv_wr_complete(ibv_qp_ex *qp) | |
| void ibv_wr_abort(ibv_qp_ex *qp) | |
| ibv_context *ibv_import_device(int cmd_fd) | |
| ibv_mr *ibv_import_mr(ibv_pd *pd, uint32_t handle) | |
| void ibv_unimport_mr(ibv_mr *mr) | |
| ibv_pd *ibv_import_pd(ibv_context *context, uint32_t handle) | |
| void ibv_unimport_pd(ibv_pd *pd) | |
| ibv_dm *ibv_import_dm(ibv_context *context, uint32_t dm_handle) | |
| void ibv_unimport_dm(ibv_dm *dm) | |
| int ibv_query_gid_ex(ibv_context *context, uint32_t port_num, | |
| uint32_t gid_index, ibv_gid_entry *entry, | |
| uint32_t flags) | |
| ssize_t ibv_query_gid_table(ibv_context *context, | |
| ibv_gid_entry *entries, size_t max_entries, | |
| uint32_t flags) | |
| ibv_flow *ibv_create_flow(ibv_qp *qp, ibv_flow_attr *flow) | |
| int ibv_destroy_flow(ibv_flow *flow_id) | |
| int ibv_query_rt_values_ex(ibv_context *context, ibv_values_ex *values) | |
| int ibv_get_async_event(ibv_context *context, ibv_async_event *event) | |
| void ibv_ack_async_event(ibv_async_event *event) | |
| int ibv_query_qp_data_in_order(ibv_qp *qp, ibv_wr_opcode op, uint32_t flags) | |
| int ibv_fork_init() | |
| ibv_fork_status ibv_is_fork_initialized() | |
| ibv_wq *ibv_create_wq(ibv_context *context, ibv_wq_init_attr *wq_init_attr) | |
| int ibv_modify_wq(ibv_wq *wq, ibv_wq_attr *wq_attr) | |
| int ibv_destroy_wq(ibv_wq *wq) | |
| int ibv_post_wq_recv(ibv_wq *wq, ibv_recv_wr *recv_wr, ibv_recv_wr **bad_recv_wr) | |
| ibv_rwq_ind_table *ibv_create_rwq_ind_table(ibv_context *context, ibv_rwq_ind_table_init_attr *init_attr) | |
| int ibv_destroy_rwq_ind_table(ibv_rwq_ind_table *rwq_ind_table) | |
| cdef extern from 'infiniband/driver.h': | |
| int ibv_query_gid_type(ibv_context *context, uint8_t port_num, | |
| unsigned int index, ibv_gid_type_sysfs *type) | |
| int ibv_set_ece(ibv_qp *qp, ibv_ece *ece) | |
| int ibv_query_ece(ibv_qp *qp, ibv_ece *ece) |