/*
 * The symbol versioning ensures that a new application requiring symbol foo()
 * can't run with old libblkid.so not providing foo() - the global SONAME
 * version info can't enforce this since we never change the SONAME.
 *
 * The original libblkid from e2fsprogs (<=1.41.4) does not to use
 * symbol versioning -- all the original symbols are in BLKID_1.0 now.
 */
BLKID_1.0 {
global:
	blkid_dev_devname;
	blkid_dev_has_tag;
	blkid_dev_iterate_begin;
	blkid_dev_iterate_end;
	blkid_dev_next;
	blkid_devno_to_devname;
	blkid_dev_set_search;
	blkid_find_dev_with_tag;
	blkid_gc_cache;
	blkid_get_cache;
	blkid_get_dev;
	blkid_get_devname;
	blkid_get_dev_size;
	blkid_get_library_version;
	blkid_get_tag_value;
	blkid_known_fstype;
	blkid_parse_tag_string;
	blkid_parse_version_string;
	blkid_probe_all;
	blkid_probe_all_new;
	blkid_put_cache;
	blkid_tag_iterate_begin;
	blkid_tag_iterate_end;
	blkid_tag_next;
	blkid_verify;
local:
	*;
};


/*
 * version(s) since util-linux-ng 2.15
 */
BLKID_2.15 {
global:
	blkid_do_probe;
	blkid_do_safeprobe;
	blkid_encode_string;
	blkid_evaluate_tag;
	blkid_free_probe;
	blkid_new_probe;
	blkid_probe_all;
	blkid_probe_all_new;
	blkid_probe_filter_types;
	blkid_probe_filter_usage;
	blkid_probe_get_value;
	blkid_probe_has_value;
	blkid_probe_invert_filter;
	blkid_probe_lookup_value;
	blkid_probe_numof_values;
	blkid_probe_reset_filter;
	blkid_probe_set_device;
	blkid_probe_set_request;
	blkid_reset_probe;
	blkid_safe_string;
	blkid_send_uevent;
} BLKID_1.0;

/*
 * version(s) since util-linux-ng 2.17
 */
BLKID_2.17 {
global:
	blkid_devno_to_wholedisk;
	blkid_do_fullprobe;
	blkid_known_pttype;
	blkid_new_probe_from_filename;
	blkid_partition_get_name;
	blkid_partition_get_partno;
	blkid_partition_get_size;
	blkid_partition_get_start;
	blkid_partition_get_table;
	blkid_partition_get_type;
	blkid_partition_get_type_string;
	blkid_partition_get_uuid;
	blkid_partition_is_extended;
	blkid_partition_is_logical;
	blkid_partition_is_primary;
	blkid_partlist_get_partition;
	blkid_partlist_numof_partitions;
	blkid_parttable_get_offset;
	blkid_parttable_get_parent;
	blkid_parttable_get_type;
	blkid_probe_enable_partitions;
	blkid_probe_enable_superblocks;
	blkid_probe_enable_topology;
	blkid_probe_filter_partitions_type;
	blkid_probe_filter_superblocks_type;
	blkid_probe_filter_superblocks_usage;
	blkid_probe_get_devno;
	blkid_probe_get_partitions;
	blkid_probe_get_sectorsize;
	blkid_probe_get_size;
	blkid_probe_get_topology;
	blkid_probe_invert_partitions_filter;
	blkid_probe_invert_superblocks_filter;
	blkid_probe_reset_partitions_filter;
	blkid_probe_reset_superblocks_filter;
	blkid_probe_set_partitions_flags;
	blkid_probe_set_superblocks_flags;
	blkid_topology_get_alignment_offset;
	blkid_topology_get_logical_sector_size;
	blkid_topology_get_minimum_io_size;
	blkid_topology_get_optimal_io_size;
	blkid_topology_get_physical_sector_size;
} BLKID_2.15;
