/* Do not change this file without reading Documentation/versioning.md */
IBVERBS_1.0 {
	global:
		ibv_get_device_list;
		ibv_free_device_list;
		ibv_get_device_name;
		ibv_get_device_guid;
		ibv_open_device;
		ibv_close_device;
		ibv_get_async_event;
		ibv_ack_async_event;
		ibv_query_device;
		ibv_query_port;
		ibv_query_gid;
		ibv_query_pkey;
		ibv_alloc_pd;
		ibv_dealloc_pd;
		ibv_reg_mr;
		ibv_dereg_mr;
		ibv_create_comp_channel;
		ibv_destroy_comp_channel;
		ibv_create_cq;
		ibv_resize_cq;
		ibv_destroy_cq;
		ibv_get_cq_event;
		ibv_ack_cq_events;
		ibv_create_srq;
		ibv_modify_srq;
		ibv_query_srq;
		ibv_destroy_srq;
		ibv_create_qp;
		ibv_query_qp;
		ibv_modify_qp;
		ibv_destroy_qp;
		ibv_create_ah;
		ibv_destroy_ah;
		ibv_attach_mcast;
		ibv_detach_mcast;
		ibv_rate_to_mult;
		mult_to_ibv_rate;

		/* These historical symbols are now private to libibverbs, but used by
		   other rdma-core libraries. Do not change them. */
		ibv_copy_path_rec_from_kern;
		ibv_copy_path_rec_to_kern;
		ibv_copy_qp_attr_from_kern;
		ibv_get_sysfs_path;
		ibv_read_sysfs_file;

	local: *;
};

IBVERBS_1.1 {
	global:
		ibv_ack_async_event;
		ibv_ack_cq_events;
		ibv_alloc_pd;
		ibv_attach_mcast;
		ibv_close_device;
		ibv_create_ah;
		ibv_create_ah_from_wc;
		ibv_create_cq;
		ibv_create_qp;
		ibv_create_srq;
		ibv_dealloc_pd;
		ibv_dereg_mr;
		ibv_destroy_ah;
		ibv_destroy_cq;
		ibv_destroy_qp;
		ibv_destroy_srq;
		ibv_detach_mcast;
		ibv_dofork_range;
		ibv_dontfork_range;
		ibv_event_type_str;
		ibv_fork_init;
		ibv_free_device_list;
		ibv_get_async_event;
		ibv_get_cq_event;
		ibv_get_device_guid;
		ibv_get_device_list;
		ibv_get_device_name;
		ibv_init_ah_from_wc;
		ibv_modify_qp;
		ibv_modify_srq;
		ibv_node_type_str;
		ibv_open_device;
		ibv_port_state_str;
		ibv_query_device;
		ibv_query_gid;
		ibv_query_pkey;
		ibv_query_port;
		ibv_query_qp;
		ibv_query_srq;
		ibv_rate_to_mbps;
		ibv_reg_mr;
		ibv_register_driver;
		ibv_rereg_mr;
		ibv_resize_cq;
		ibv_resolve_eth_l2_from_gid;
		ibv_wc_status_str;
		mbps_to_ibv_rate;

		/* These historical symbols are now private to libibverbs, but used by
		   other rdma-core libraries. Do not change them. */
		ibv_copy_ah_attr_from_kern;
} IBVERBS_1.0;

IBVERBS_1.5 {
	global:
		ibv_get_pkey_index;
} IBVERBS_1.1;

IBVERBS_1.6 {
	global:
		ibv_qp_to_qp_ex;
} IBVERBS_1.5;

IBVERBS_1.7 {
	global:
		ibv_reg_mr_iova;
} IBVERBS_1.6;

IBVERBS_1.8 {
	global:
		ibv_reg_mr_iova2;
} IBVERBS_1.7;

IBVERBS_1.9 {
	global:
		ibv_get_device_index;
} IBVERBS_1.8;

IBVERBS_1.10 {
	global:
		ibv_import_device;
		ibv_import_mr;
		ibv_import_pd;
		ibv_query_ece;
		ibv_set_ece;
		ibv_unimport_mr;
		ibv_unimport_pd;
} IBVERBS_1.9;

IBVERBS_1.11 {
	global:
		_ibv_query_gid_ex;
		_ibv_query_gid_table;
} IBVERBS_1.10;

IBVERBS_1.12 {
	global:
		ibv_reg_dmabuf_mr;
} IBVERBS_1.11;

IBVERBS_1.13 {
	global:
		ibv_import_dm;
		ibv_is_fork_initialized;
		ibv_unimport_dm;
} IBVERBS_1.12;

IBVERBS_1.14 {
	global:
		ibv_query_qp_data_in_order;
} IBVERBS_1.13;

/* If any symbols in this stanza change ABI then the entire staza gets a new symbol
   version. See the top level CMakeLists.txt for this setting. */

IBVERBS_PRIVATE_@IBVERBS_PABI_VERSION@ {
	global:
		/* These historical symbols are now private to libibverbs */
		__ioctl_final_num_attrs;
		__verbs_log;
		_verbs_init_and_alloc_context;
		execute_ioctl;
		ibv_cmd_advise_mr;
		ibv_cmd_alloc_dm;
		ibv_cmd_alloc_mw;
		ibv_cmd_alloc_pd;
		ibv_cmd_attach_mcast;
		ibv_cmd_close_xrcd;
		ibv_cmd_create_ah;
		ibv_cmd_create_counters;
		ibv_cmd_create_cq;
		ibv_cmd_create_cq_ex;
		ibv_cmd_create_cq_ex2;
		ibv_cmd_create_flow;
		ibv_cmd_create_flow_action_esp;
		ibv_cmd_create_qp;
		ibv_cmd_create_qp_ex2;
		ibv_cmd_create_qp_ex;
		ibv_cmd_create_rwq_ind_table;
		ibv_cmd_create_srq;
		ibv_cmd_create_srq_ex;
		ibv_cmd_create_wq;
		ibv_cmd_dealloc_mw;
		ibv_cmd_dealloc_pd;
		ibv_cmd_dereg_mr;
		ibv_cmd_destroy_ah;
		ibv_cmd_destroy_counters;
		ibv_cmd_destroy_cq;
		ibv_cmd_destroy_flow;
		ibv_cmd_destroy_flow_action;
		ibv_cmd_destroy_qp;
		ibv_cmd_destroy_rwq_ind_table;
		ibv_cmd_destroy_srq;
		ibv_cmd_destroy_wq;
		ibv_cmd_detach_mcast;
		ibv_cmd_free_dm;
		ibv_cmd_get_context;
		ibv_cmd_modify_cq;
		ibv_cmd_modify_flow_action_esp;
		ibv_cmd_modify_qp;
		ibv_cmd_modify_qp_ex;
		ibv_cmd_modify_srq;
		ibv_cmd_modify_wq;
		ibv_cmd_open_qp;
		ibv_cmd_open_xrcd;
		ibv_cmd_poll_cq;
		ibv_cmd_post_recv;
		ibv_cmd_post_send;
		ibv_cmd_post_srq_recv;
		ibv_cmd_query_context;
		ibv_cmd_query_device;
		ibv_cmd_query_device_any;
		ibv_cmd_query_mr;
		ibv_cmd_query_port;
		ibv_cmd_query_qp;
		ibv_cmd_query_srq;
		ibv_cmd_read_counters;
		ibv_cmd_reg_dm_mr;
		ibv_cmd_reg_dmabuf_mr;
		ibv_cmd_reg_mr;
		ibv_cmd_req_notify_cq;
		ibv_cmd_rereg_mr;
		ibv_cmd_resize_cq;
		ibv_query_gid_type;
		ibv_read_ibdev_sysfs_file;
		ibv_wr_opcode_str;
		verbs_allow_disassociate_destroy;
		verbs_init_cq;
		verbs_open_device;
		verbs_register_driver_@IBVERBS_PABI_VERSION@;
		verbs_set_ops;
		verbs_uninit_context;
};
