const char * ibv_wc_status_str(enum ibv_wc_status status); int ibv_rate_to_mult(enum ibv_rate rate); enum ibv_rate mult_to_ibv_rate(int mult); int ibv_rate_to_mbps(enum ibv_rate rate); enum ibv_rate mbps_to_ibv_rate(int mbps); struct ibv_cq * ibv_cq_ex_to_cq(struct ibv_cq_ex * cq); int ibv_start_poll(struct ibv_cq_ex * cq, struct ibv_poll_cq_attr * attr); int ibv_next_poll(struct ibv_cq_ex * cq); void ibv_end_poll(struct ibv_cq_ex * cq); enum ibv_wc_opcode ibv_wc_read_opcode(struct ibv_cq_ex * cq); uint32_t ibv_wc_read_vendor_err(struct ibv_cq_ex * cq); uint32_t ibv_wc_read_byte_len(struct ibv_cq_ex * cq); __be32 ibv_wc_read_imm_data(struct ibv_cq_ex * cq); uint32_t ibv_wc_read_invalidated_rkey(struct ibv_cq_ex * cq); uint32_t ibv_wc_read_qp_num(struct ibv_cq_ex * cq); uint32_t ibv_wc_read_src_qp(struct ibv_cq_ex * cq); int ibv_wc_read_wc_flags(struct ibv_cq_ex * cq); uint32_t ibv_wc_read_slid(struct ibv_cq_ex * cq); uint8_t ibv_wc_read_sl(struct ibv_cq_ex * cq); uint8_t ibv_wc_read_dlid_path_bits(struct ibv_cq_ex * cq); uint64_t ibv_wc_read_completion_ts(struct ibv_cq_ex * cq); uint16_t ibv_wc_read_cvlan(struct ibv_cq_ex * cq); uint32_t ibv_wc_read_flow_tag(struct ibv_cq_ex * cq); int ibv_post_wq_recv(struct ibv_wq * wq, struct ibv_recv_wr * recv_wr, struct ibv_recv_wr ** bad_recv_wr); struct verbs_context * verbs_get_ctx(struct ibv_context * ctx); struct ibv_device ** ibv_get_device_list(int * num_devices); void ibv_free_device_list(struct ibv_device ** list); const char * ibv_get_device_name(struct ibv_device * device); __be64 ibv_get_device_guid(struct ibv_device * device); struct ibv_context * ibv_open_device(struct ibv_device * device); int ibv_close_device(struct ibv_context * context); int ibv_get_async_event(struct ibv_context * context, struct ibv_async_event * event); void ibv_ack_async_event(struct ibv_async_event * event); int ibv_query_device(struct ibv_context * context, struct ibv_device_attr * device_attr); int ibv_query_port(struct ibv_context * context, uint8_t port_num, struct ibv_port_attr * port_attr); int ___ibv_query_port(struct ibv_context * context, uint8_t port_num, struct ibv_port_attr * port_attr); int ibv_query_gid(struct ibv_context * context, uint8_t port_num, int index, union ibv_gid * gid); int ibv_query_pkey(struct ibv_context * context, uint8_t port_num, int index, __be16 * pkey); struct ibv_pd * ibv_alloc_pd(struct ibv_context * context); int ibv_dealloc_pd(struct ibv_pd * pd); struct ibv_flow * ibv_create_flow(struct ibv_qp * qp, struct ibv_flow_attr * flow); int ibv_destroy_flow(struct ibv_flow * flow_id); struct ibv_xrcd * ibv_open_xrcd(struct ibv_context * context, struct ibv_xrcd_init_attr * xrcd_init_attr); int ibv_close_xrcd(struct ibv_xrcd * xrcd); struct ibv_mr * ibv_reg_mr(struct ibv_pd * pd, void * addr, int length, int access); int ibv_rereg_mr(struct ibv_mr * mr, int flags, struct ibv_pd * pd, void * addr, int length, int access); int ibv_dereg_mr(struct ibv_mr * mr); struct ibv_mw * ibv_alloc_mw(struct ibv_pd * pd, enum ibv_mw_type type); int ibv_dealloc_mw(struct ibv_mw * mw); uint32_t ibv_inc_rkey(uint32_t rkey); int ibv_bind_mw(struct ibv_qp * qp, struct ibv_mw * mw, struct ibv_mw_bind * mw_bind); struct ibv_comp_channel * ibv_create_comp_channel(struct ibv_context * context); int ibv_destroy_comp_channel(struct ibv_comp_channel * channel); struct ibv_cq * ibv_create_cq(struct ibv_context * context, int cqe, void * cq_context, struct ibv_comp_channel * channel, int comp_vector); struct ibv_cq_ex * ibv_create_cq_ex(struct ibv_context * context, struct ibv_cq_init_attr_ex * cq_attr); int ibv_resize_cq(struct ibv_cq * cq, int cqe); int ibv_destroy_cq(struct ibv_cq * cq); int ibv_get_cq_event(struct ibv_comp_channel * channel, struct ibv_cq ** cq, void ** cq_context); void ibv_ack_cq_events(struct ibv_cq * cq, unsigned int nevents); int ibv_poll_cq(struct ibv_cq * cq, int num_entries, struct ibv_wc * wc); int ibv_req_notify_cq(struct ibv_cq * cq, int solicited_only); struct ibv_srq * ibv_create_srq(struct ibv_pd * pd, struct ibv_srq_init_attr * srq_init_attr); struct ibv_srq * ibv_create_srq_ex(struct ibv_context * context, struct ibv_srq_init_attr_ex * srq_init_attr_ex); int ibv_modify_srq(struct ibv_srq * srq, struct ibv_srq_attr * srq_attr, int srq_attr_mask); int ibv_query_srq(struct ibv_srq * srq, struct ibv_srq_attr * srq_attr); int ibv_get_srq_num(struct ibv_srq * srq, uint32_t * srq_num); int ibv_destroy_srq(struct ibv_srq * srq); int ibv_post_srq_recv(struct ibv_srq * srq, struct ibv_recv_wr * recv_wr, struct ibv_recv_wr ** bad_recv_wr); struct ibv_qp * ibv_create_qp(struct ibv_pd * pd, struct ibv_qp_init_attr * qp_init_attr); struct ibv_qp * ibv_create_qp_ex(struct ibv_context * context, struct ibv_qp_init_attr_ex * qp_init_attr_ex); int ibv_query_rt_values_ex(struct ibv_context * context, struct ibv_values_ex * values); int ibv_query_device_ex(struct ibv_context * context, const struct ibv_query_device_ex_input * input, struct ibv_device_attr_ex * attr); struct ibv_qp * ibv_open_qp(struct ibv_context * context, struct ibv_qp_open_attr * qp_open_attr); int ibv_modify_qp(struct ibv_qp * qp, struct ibv_qp_attr * attr, int attr_mask); int ibv_query_qp(struct ibv_qp * qp, struct ibv_qp_attr * attr, int attr_mask, struct ibv_qp_init_attr * init_attr); int ibv_destroy_qp(struct ibv_qp * qp); struct ibv_wq * ibv_create_wq(struct ibv_context * context, struct ibv_wq_init_attr * wq_init_attr); int ibv_modify_wq(struct ibv_wq * wq, struct ibv_wq_attr * wq_attr); int ibv_destroy_wq(struct ibv_wq * wq); struct ibv_rwq_ind_table * ibv_create_rwq_ind_table(struct ibv_context * context, struct ibv_rwq_ind_table_init_attr * init_attr); int ibv_destroy_rwq_ind_table(struct ibv_rwq_ind_table * rwq_ind_table); int ibv_post_send(struct ibv_qp * qp, struct ibv_send_wr * wr, struct ibv_send_wr ** bad_wr); int ibv_post_recv(struct ibv_qp * qp, struct ibv_recv_wr * wr, struct ibv_recv_wr ** bad_wr); struct ibv_ah * ibv_create_ah(struct ibv_pd * pd, struct ibv_ah_attr * attr); int ibv_init_ah_from_wc(struct ibv_context * context, uint8_t port_num, struct ibv_wc * wc, struct ibv_grh * grh, struct ibv_ah_attr * ah_attr); struct ibv_ah * ibv_create_ah_from_wc(struct ibv_pd * pd, struct ibv_wc * wc, struct ibv_grh * grh, uint8_t port_num); int ibv_destroy_ah(struct ibv_ah * ah); int ibv_attach_mcast(struct ibv_qp * qp, const union ibv_gid * gid, uint16_t lid); int ibv_detach_mcast(struct ibv_qp * qp, const union ibv_gid * gid, uint16_t lid); int ibv_fork_init( ); const char * ibv_node_type_str(enum ibv_node_type node_type); const char * ibv_port_state_str(enum ibv_port_state port_state); const char * ibv_event_type_str(enum ibv_event_type event); int ibv_resolve_eth_l2_from_gid(struct ibv_context * context, struct ibv_ah_attr * attr, uint8_t [6] eth_mac, uint16_t * vid); int ibv_is_qpt_supported(uint32_t caps, enum ibv_qp_type qpt);