1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
/*
* Copyright (c) 2020 SUSE LLC
* SPDX-License-Identifier: GPL-2.0-or-later
*
* libmultipath ABI (libmpathutil part)
*
* libmultipath doesn't have a stable ABI in the usual sense. In particular,
* the library does not attempt to ship different versions of the same symbol
* for backward compatibility.
*
* The ABI versioning only serves to avoid linking with a non-matching ABI, to
* cut down the set of exported symbols, and to describe it.
* The version string is LIBMULTIPATH_$MAJOR.$MINOR.$REL.
*
* Policy:
*
* * Bump $MAJOR for incompatible changes, like:
* - symbols removed
* - parameter list or return values changed for existing functions
* - externally visible data structures changed in incompatible ways
* (like offsets of previously existing struct members)
* In this case, the new version doesn't inherit the previous versions,
* because the new library doesn't provide the full previous ABI anymore.
* All predecessors are merged into the new version.
*
* * Bump $MINOR for compatible changes, like adding symbols.
* The new version inherits the previous ones.
*
* * Bump $REL to describe deviations from upstream, e.g. in
* multipath-tools packages shipped by distributions.
* The new version inherits the previous ones.
*/
/*
* Symbols exported by both libmpathutil and libmultipath
* libmpathutil exports just dummy symbols, intended to be overridden
* by those in libmultipath.
* CAUTION - the version in libmpathutil.version and libmultipath.version
* must be THE SAME, otherwise the overriding will fail!
*/
LIBMPATHCOMMON_1.0.0 {
get_multipath_config;
put_multipath_config;
};
LIBMPATHUTIL_4.0 {
global:
alloc_bitfield;
alloc_strvec;
append_strbuf_str;
append_strbuf_str__;
append_strbuf_quoted;
basenamecpy;
cleanup_bitfield;
cleanup_charp;
cleanup_fclose;
cleanup_fd_ptr;
cleanup_free_ptr;
cleanup_mutex;
cleanup_ucharp;
cleanup_udev_device;
cleanup_vector;
cleanup_vector_free;
convert_dev;
dlog;
filepresent;
fill_strbuf;
find_keyword;
find_slot;
free_keywords;
free_scandir_result;
free_strvec;
get_linux_version_code;
get_monotonic_time;
get_strbuf_buf__;
get_next_string;
get_strbuf_len;
get_strbuf_str;
get_word;
install_keyword__;
install_sublevel;
install_sublevel_end;
is_quote;
keyword_alloc;
log_bitfield_overflow__;
libmp_basename;
libmp_strlcat;
libmp_strlcpy;
libmp_verbosity;
log_safe;
log_thread_reset;
log_thread_start;
log_thread_stop;
logsink;
msort;
normalize_timespec;
parse_devt;
print_strbuf;
process_file;
pthread_cond_init_mono;
recv_packet;
reset_strbuf;
safe_write;
send_packet;
set_max_fds;
set_value;
setup_thread_attr;
strchop;
should_exit;
snprint_keyword;
steal_strbuf_str;
timespeccmp;
timespecsub;
truncate_strbuf;
validate_config_strvec;
ux_socket_listen;
vector_alloc;
vector_alloc_slot;
vector_del_slot;
vector_find_or_add_slot;
vector_free;
vector_insert_slot;
vector_move_up;
vector_reset;
vector_set_slot;
vector_sort;
local:
*;
};
|