/*
 * 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 libuuid from e2fsprogs (<=1.41.5) does not to use
 * symbol versioning -- all the original symbols are in UUID_1.0 now.
 */
UUID_1.0 {
global:
	uuid_clear;
	uuid_compare;
	uuid_copy;
	uuid_generate;
	uuid_generate_random;
	uuid_generate_time;
	uuid_is_null;
	uuid_parse;
	uuid_unparse;
	uuid_unparse_lower;
	uuid_unparse_upper;
	uuid_time;
	uuid_type;
	uuid_variant;

	/* uuid__* this is not part of the official API, this is
	 * uuidd (uuid daemon) specific stuff. Hell.
	 */
	uuid__generate_time;
	uuid__generate_random;
local:
	*;
};
