/* 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_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;
};
