/*
 * The symbol versioning ensures that a new application requiring symbol 'foo'
 * can't run with old library.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.
 *
 * Copyright (C) 2009-2014 Karel Zak <kzak@redhat.com> 
 */
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:
	*;
};


/*
 * symbols since util-linux 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_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;

/*
 * symbols since util-linux 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_sectors;
	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;

/*
 * symbols since util-linux 2.18
 */
BLKID_2.18 {
global:
	blkid_partition_get_flags;
	blkid_partlist_devno_to_partition;
	blkid_partlist_get_table;
	blkid_probe_all_removable;
	blkid_probe_get_fd;
	blkid_probe_get_offset;
	blkid_probe_get_wholedisk_devno;
	blkid_probe_is_wholedisk;
} BLKID_2.17;

/*
 * symbols since util-linux 2.20
 */
BLKID_2.20 {
global:
	blkid_evaluate_spec;
	blkid_superblocks_get_name;
} BLKID_2.18;

/*
 * symbols since util-linux 2.21
 */
BLKID_2.21 {
global:
	blkid_do_wipe;
} BLKID_2.20;

/*
 * symbols since util-linux 2.23
 */
BLKID_2.23 {
global:
	blkid_probe_step_back;
	blkid_parttable_get_id;
	blkid_init_debug;
} BLKID_2.21;

/*
 * symbols since util-linux 2.25
 */
BLKID_2.25 {
	blkid_partlist_get_partition_by_partno;
} BLKID_2.23;

BLKID_2.30 {
	blkid_probe_set_sectorsize;
	blkid_partitions_get_name;
} BLKID_2.25;

BLKID_2_31 {
	blkid_probe_reset_buffers;
	blkid_probe_hide_range;
} BLKID_2.30;
