diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Makefile.am | 39 | ||||
-rw-r--r-- | lib/libzfs/Makefile.am | 2 | ||||
-rw-r--r-- | lib/libzfs/libzfs.abi | 1803 | ||||
-rw-r--r-- | lib/libzfs/os/freebsd/libzfs_compat.c | 3 | ||||
-rw-r--r-- | lib/libzfs/os/freebsd/libzfs_ioctl_compat.c | 432 | ||||
-rw-r--r-- | lib/libzfs_core/Makefile.am | 20 | ||||
-rw-r--r-- | lib/libzfs_core/libzfs_core.abi | 946 | ||||
-rw-r--r-- | lib/libzfs_core/libzfs_core.c | 10 | ||||
-rw-r--r-- | lib/libzfs_core/os/freebsd/libzfs_core_ioctl.c (renamed from lib/libzutil/os/freebsd/zutil_compat.c) | 5 | ||||
-rw-r--r-- | lib/libzfs_core/os/linux/libzfs_core_ioctl.c (renamed from lib/libzutil/os/linux/zutil_compat.c) | 4 | ||||
-rw-r--r-- | lib/libzpool/Makefile.am | 4 | ||||
-rw-r--r-- | lib/libzpool/util.c | 98 | ||||
-rw-r--r-- | lib/libzutil/Makefile.am | 12 |
13 files changed, 1958 insertions, 1420 deletions
diff --git a/lib/Makefile.am b/lib/Makefile.am index db7a3fa31..f07975cc0 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,5 +1,44 @@ +# +# Shown below is a simplified dependency graph of the OpenZFS provided +# libraries. Administrative commands (`zfs`, `zpool`, etc) interface with +# the kernel modules using the `libzfs.so` and `libzfs_core.so` libraries. +# These libraries provide a stable ABI across OpenZFS point releases. +# +# The `libzpool.so` library is a user space build of the DMU and SPA layers +# used to implement debugging tools (zdb) and code validation tools (ztest). +# These library interfaces are subject to change at any time. +# +# +# CMDS: zhack/ztest/zdb/ zfs/zpool/zed/ +# raidz_{test,bench} zinject/zstream +# | | +# LIBS: | | libzfsbootenv* +# | | | +# | | | +# libzpool libzfs* ----------------+ +# | | | \ / | | | +# libicp --/ | | \ / | | \------- libshare +# | | \ / | | +# libzstd ---/ | \ / | \--------- libuutil +# | \ / \ | | +# libunicode --/ \ / \ | | +# \ / \ | | +# libzutil libzfs_core* | | +# | | | | \ | | | | +# | | | | | | | | | +# | | | | | | | | | +# libtpool -------------/ | | | \---- libnvpair* | | | +# | | | | | | +# libefi -----------------/ | \------ libavl* --------/ | +# | | | +# \-------- libspl ----+------/ +# +# * - A stable ABI is provided for these libraries +# +# # NB: GNU Automake Manual, Chapter 8.3.5: Libtool Convenience Libraries # These nine libraries are intermediary build components. +# SUBDIRS = libavl libicp libshare libspl libtpool libzstd CPPCHECKDIRS = libavl libicp libnvpair libshare libspl libtpool libunicode CPPCHECKDIRS += libuutil libzfs libzfs_core libzfsbootenv libzpool libzutil diff --git a/lib/libzfs/Makefile.am b/lib/libzfs/Makefile.am index e3527ffe7..e23f7c162 100644 --- a/lib/libzfs/Makefile.am +++ b/lib/libzfs/Makefile.am @@ -35,7 +35,6 @@ USER_C = \ if BUILD_FREEBSD USER_C += \ os/freebsd/libzfs_compat.c \ - os/freebsd/libzfs_ioctl_compat.c \ os/freebsd/libzfs_zmount.c endif @@ -75,6 +74,7 @@ libzfs_la_LIBADD = \ $(abs_top_builddir)/lib/libshare/libshare.la \ $(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \ $(abs_top_builddir)/lib/libnvpair/libnvpair.la \ + $(abs_top_builddir)/lib/libzutil/libzutil.la \ $(abs_top_builddir)/lib/libuutil/libuutil.la libzfs_la_LIBADD += -lm $(LIBCRYPTO_LIBS) $(ZLIB_LIBS) $(LIBFETCH_LIBS) $(LTLIBINTL) diff --git a/lib/libzfs/libzfs.abi b/lib/libzfs/libzfs.abi index c5b097525..86d612f5e 100644 --- a/lib/libzfs/libzfs.abi +++ b/lib/libzfs/libzfs.abi @@ -2,22 +2,174 @@ <elf-needed> <dependency name='libzfs_core.so.3'/> <dependency name='libnvpair.so.3'/> + <dependency name='libuuid.so.1'/> + <dependency name='librt.so.1'/> + <dependency name='libblkid.so.1'/> + <dependency name='libudev.so.1'/> <dependency name='libuutil.so.3'/> <dependency name='libm.so.6'/> <dependency name='libcrypto.so.1.1'/> <dependency name='libz.so.1'/> <dependency name='libpthread.so.0'/> <dependency name='libc.so.6'/> + <dependency name='ld-linux-x86-64.so.2'/> </elf-needed> <elf-function-symbols> <elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='_sol_getmntent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_char' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_char_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_int_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_long' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_long_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_ptr_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_short' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_add_short_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_and_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_cas_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_clear_long_excl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_dec_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_inc_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_or_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_set_long_excl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_char' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_char_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_int_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_long' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_long_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_ptr_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_short' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_sub_short_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='atomic_swap_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_destroy_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_insert_here' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_is_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_nearest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_swap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_update_gt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_update_lt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='avl_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='bookmark_namecheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='cityhash4' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='color_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='color_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='dataset_namecheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='dataset_nestcheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_alloc_and_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_alloc_and_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_err_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_rescan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_use_whole_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='efi_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='entity_namecheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_2_byteswap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_2_incremental_byteswap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -33,8 +185,15 @@ <elf-symbol name='fletcher_4_native_varsize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='get_dataset_depth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='get_system_hostid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='getexecname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='getextmntent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='getmntany' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='getprop_uint64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='getzoneid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='is_mounted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='is_mpath_whole_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='libspl_assertf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_add_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_envvar_is_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_errno' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -54,9 +213,33 @@ <elf-symbol name='libzfs_run_process' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_run_process_get_stdout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_run_process_get_stdout_nopath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_insert_after' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_insert_before' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_insert_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_insert_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_is_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_link_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_link_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_link_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_move_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_remove_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_remove_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='list_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='membar_consumer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='membar_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='membar_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='membar_producer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='mkdirp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='mountpoint_namecheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='permset_namecheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='pool_namecheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='print_timestamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='printf_color' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='sa_commit_shares' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='sa_disable_share' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -65,6 +248,19 @@ <elf-symbol name='sa_is_shared' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='sa_validate_shareopts' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='snapshot_namecheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='spl_pagesize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='strlcat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='strlcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_abandon' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_dispatch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_member' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_suspended' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='tpool_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='update_vdev_config_dev_strs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfeature_depends_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfeature_is_supported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfeature_is_valid_guid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -72,6 +268,8 @@ <elf-symbol name='zfeature_lookup_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_adjust_mount_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_allocatable_devs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_append_partition' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_basename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_bookmark_exists' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_clone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -98,10 +296,17 @@ <elf-symbol name='zfs_destroy_snaps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_destroy_snaps_nvl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_destroy_snaps_nvl_os' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_dev_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_dev_is_dm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_dev_is_whole_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_device_get_devid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_device_get_physical' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_dirnamelen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_expand_proplist' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_foreach_mountpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_all_props' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_clones_nvl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_get_enclosure_sysfs_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_fsacl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_holds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -110,6 +315,7 @@ <elf-symbol name='zfs_get_pool_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_recvd_props' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_get_underlying_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_underlying_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_get_user_props' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_handle_dup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -120,6 +326,7 @@ <elf-symbol name='zfs_is_shared' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_is_shared_nfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_is_shared_smb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_isnumber' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_iter_bookmarks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_iter_children' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_iter_dependents' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -135,7 +342,12 @@ <elf-symbol name='zfs_mount_delegation_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_name_to_prop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_name_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_nicebytes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_nicenum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_nicenum_format' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_niceraw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_nicestrtonum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_nicetime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_parent_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_parse_mount_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -181,6 +393,7 @@ <elf-symbol name='zfs_refresh_properties' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_rename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_resolve_shortname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_rollback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_save_arguments' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_send' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -205,6 +418,9 @@ <elf-symbol name='zfs_spa_version_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_special_devs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_standard_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_strcmp_pathname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_strip_partition' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zfs_strip_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_type_to_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_unmount' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_unmountall' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -229,11 +445,13 @@ <elf-symbol name='zpool_clear_label' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zpool_default_search_paths' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_disable_datasets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_disable_datasets_os' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_disable_volume_os' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_discard_checkpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zpool_dump_ddt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_enable_datasets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_events_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_events_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -243,6 +461,7 @@ <elf-symbol name='zpool_export' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_export_force' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_feature_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zpool_find_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_find_vdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_find_vdev_by_physpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_free_handles' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -260,6 +479,7 @@ <elf-symbol name='zpool_get_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_get_state_str' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_get_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zpool_history_unpack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_import' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_import_props' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_import_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -269,6 +489,7 @@ <elf-symbol name='zpool_is_draid_spare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_label_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zpool_label_disk_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_load_compat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_log_history' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_name_to_prop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -296,10 +517,12 @@ <elf-symbol name='zpool_prop_unsupported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_prop_values' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_props_refresh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zpool_read_label' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_refresh_stats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_reguid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_reopen_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_scan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='zpool_search_import' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_set_bootenv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_set_prop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zpool_skip_pool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -342,6 +565,7 @@ <elf-symbol name='zvol_volsize_to_reservation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> </elf-function-symbols> <elf-variable-symbols> + <elf-symbol name='efi_debug' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_4_abd_ops' size='24' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_4_avx2_ops' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_4_avx512bw_ops' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -350,6 +574,7 @@ <elf-symbol name='fletcher_4_ssse3_ops' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_4_superscalar4_ops' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='fletcher_4_superscalar_ops' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='libspl_assert_ok' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_config_ops' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='spa_feature_table' size='1904' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfeature_checks_disable' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -358,6 +583,307 @@ <elf-symbol name='zfs_max_dataset_nesting' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='zfs_userquota_prop_prefixes' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> </elf-variable-symbols> + <abi-instr version='1.0' address-size='64' path='../../module/avl/avl.c' language='LANG_C99'> + <typedef-decl name='avl_index_t' type-id='e475ab95' id='fba6cb51'/> + <pointer-type-def type-id='fba6cb51' size-in-bits='64' id='32adbf30'/> + <pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/> + <function-decl name='avl_destroy_nodes' mangled-name='avl_destroy_nodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy_nodes'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='63e171df' name='cookie'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='avl_is_empty' mangled-name='avl_is_empty' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_is_empty'> + <parameter type-id='a3681dea' name='tree'/> + <return type-id='c19b74c3'/> + </function-decl> + <function-decl name='avl_numnodes' mangled-name='avl_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_numnodes'> + <parameter type-id='a3681dea' name='tree'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='avl_destroy' mangled-name='avl_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy'> + <parameter type-id='a3681dea' name='tree'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='avl_create' mangled-name='avl_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_create'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='585e1de9' name='compar'/> + <parameter type-id='b59d7dce' name='size'/> + <parameter type-id='b59d7dce' name='offset'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='avl_swap' mangled-name='avl_swap' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_swap'> + <parameter type-id='a3681dea' name='tree1'/> + <parameter type-id='a3681dea' name='tree2'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='avl_update' mangled-name='avl_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update'> + <parameter type-id='a3681dea' name='t'/> + <parameter type-id='eaa32e2f' name='obj'/> + <return type-id='c19b74c3'/> + </function-decl> + <function-decl name='avl_update_gt' mangled-name='avl_update_gt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_gt'> + <parameter type-id='a3681dea' name='t'/> + <parameter type-id='eaa32e2f' name='obj'/> + <return type-id='c19b74c3'/> + </function-decl> + <function-decl name='avl_update_lt' mangled-name='avl_update_lt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_lt'> + <parameter type-id='a3681dea' name='t'/> + <parameter type-id='eaa32e2f' name='obj'/> + <return type-id='c19b74c3'/> + </function-decl> + <function-decl name='avl_remove' mangled-name='avl_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_remove'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='eaa32e2f' name='data'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='avl_add' mangled-name='avl_add' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_add'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='eaa32e2f' name='new_node'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='avl_insert_here' mangled-name='avl_insert_here' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert_here'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='eaa32e2f' name='new_data'/> + <parameter type-id='eaa32e2f' name='here'/> + <parameter type-id='95e97e5e' name='direction'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='avl_insert' mangled-name='avl_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='eaa32e2f' name='new_data'/> + <parameter type-id='fba6cb51' name='where'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='avl_find' mangled-name='avl_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_find'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='eaa32e2f' name='value'/> + <parameter type-id='32adbf30' name='where'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='avl_nearest' mangled-name='avl_nearest' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_nearest'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='fba6cb51' name='where'/> + <parameter type-id='95e97e5e' name='direction'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='avl_last' mangled-name='avl_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_last'> + <parameter type-id='a3681dea' name='tree'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='avl_first' mangled-name='avl_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_first'> + <parameter type-id='a3681dea' name='tree'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='avl_walk' mangled-name='avl_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_walk'> + <parameter type-id='a3681dea' name='tree'/> + <parameter type-id='eaa32e2f' name='oldnode'/> + <parameter type-id='95e97e5e' name='left'/> + <return type-id='eaa32e2f'/> + </function-decl> + <pointer-type-def type-id='f20fbd51' size-in-bits='64' id='a3681dea'/> + <type-decl name='int' size-in-bits='32' id='95e97e5e'/> + <pointer-type-def type-id='96ee24a5' size-in-bits='64' id='585e1de9'/> + <typedef-decl name='boolean_t' type-id='08f5ca17' id='c19b74c3'/> + <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/> + <typedef-decl name='uintptr_t' type-id='7359adad' id='e475ab95'/> + <typedef-decl name='ulong_t' type-id='7359adad' id='ee1f298e'/> + <type-decl name='void' id='48b5725f'/> + <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/> + <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='08f5ca17'> + <underlying-type type-id='9cac1fee'/> + <enumerator name='B_FALSE' value='0'/> + <enumerator name='B_TRUE' value='1'/> + </enum-decl> + <typedef-decl name='avl_tree_t' type-id='b351119f' id='f20fbd51'/> + <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/> + <class-decl name='avl_tree' size-in-bits='320' is-struct='yes' visibility='default' id='b351119f'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='avl_root' type-id='bf311473' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='avl_compar' type-id='585e1de9' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='avl_offset' type-id='b59d7dce' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='avl_numnodes' type-id='ee1f298e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='avl_pad' type-id='b59d7dce' visibility='default'/> + </data-member> + </class-decl> + <pointer-type-def type-id='428b67b3' size-in-bits='64' id='bf311473'/> + <class-decl name='avl_node' size-in-bits='192' is-struct='yes' visibility='default' id='428b67b3'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='avl_child' type-id='f0f65199' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='avl_pcb' type-id='e475ab95' visibility='default'/> + </data-member> + </class-decl> + <array-type-def dimensions='1' type-id='bf311473' size-in-bits='128' id='f0f65199'> + <subrange length='2' type-id='7359adad' id='52efc4ef'/> + </array-type-def> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='rdwr_efi.c' language='LANG_C99'> + <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='288' id='16e6f2c6'> + <subrange length='36' type-id='7359adad' id='ae666bde'/> + </array-type-def> + <array-type-def dimensions='1' type-id='a65ae39c' size-in-bits='960' id='fa198beb'> + <subrange length='1' type-id='7359adad' id='52f813b4'/> + </array-type-def> + <array-type-def dimensions='1' type-id='b96825af' size-in-bits='48' id='0f562bd0'> + <subrange length='6' type-id='7359adad' id='52fa524b'/> + </array-type-def> + <array-type-def dimensions='1' type-id='3502e3ff' size-in-bits='384' id='dba89ba3'> + <subrange length='12' type-id='7359adad' id='84827bdc'/> + </array-type-def> + <array-type-def dimensions='1' type-id='3502e3ff' size-in-bits='256' id='01d84ed4'> + <subrange length='8' type-id='7359adad' id='56e0c0b1'/> + </array-type-def> + <class-decl name='dk_gpt' size-in-bits='1920' is-struct='yes' visibility='default' id='dd4a2e5a'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='efi_version' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='32'> + <var-decl name='efi_nparts' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='efi_part_size' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='96'> + <var-decl name='efi_lbasize' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='efi_last_lba' type-id='804dc465' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='efi_first_u_lba' type-id='804dc465' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='efi_last_u_lba' type-id='804dc465' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='320'> + <var-decl name='efi_disk_uguid' type-id='214f32ea' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='448'> + <var-decl name='efi_flags' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='480'> + <var-decl name='efi_reserved1' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='512'> + <var-decl name='efi_altern_lba' type-id='804dc465' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='576'> + <var-decl name='efi_reserved' type-id='dba89ba3' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='960'> + <var-decl name='efi_parts' type-id='fa198beb' visibility='default'/> + </data-member> + </class-decl> + <class-decl name='uuid' size-in-bits='128' is-struct='yes' visibility='default' id='214f32ea'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='time_low' type-id='8f92235e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='32'> + <var-decl name='time_mid' type-id='149c6638' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='48'> + <var-decl name='time_hi_and_version' type-id='149c6638' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='clock_seq_hi_and_reserved' type-id='b96825af' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='72'> + <var-decl name='clock_seq_low' type-id='b96825af' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='80'> + <var-decl name='node_addr' type-id='0f562bd0' visibility='default'/> + </data-member> + </class-decl> + <class-decl name='dk_part' size-in-bits='960' is-struct='yes' visibility='default' id='a65ae39c'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='p_start' type-id='804dc465' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='p_size' type-id='804dc465' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='p_guid' type-id='214f32ea' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='p_tag' type-id='d908a348' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='272'> + <var-decl name='p_flag' type-id='d908a348' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='288'> + <var-decl name='p_name' type-id='16e6f2c6' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='576'> + <var-decl name='p_uguid' type-id='214f32ea' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='704'> + <var-decl name='p_resv' type-id='01d84ed4' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='ushort_t' type-id='8efea9e5' id='d908a348'/> + <pointer-type-def type-id='dd4a2e5a' size-in-bits='64' id='0d8119a8'/> + <pointer-type-def type-id='0d8119a8' size-in-bits='64' id='c43b27a6'/> + <var-decl name='efi_debug' type-id='95e97e5e' mangled-name='efi_debug' visibility='default' elf-symbol-id='efi_debug'/> + <function-decl name='efi_err_check' mangled-name='efi_err_check' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_err_check'> + <parameter type-id='0d8119a8' name='vtoc'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='efi_type' mangled-name='efi_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_type'> + <parameter type-id='95e97e5e' name='fd'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='efi_free' mangled-name='efi_free' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_free'> + <parameter type-id='0d8119a8' name='ptr'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='efi_write' mangled-name='efi_write' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_write'> + <parameter type-id='95e97e5e' name='fd'/> + <parameter type-id='0d8119a8' name='vtoc'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='efi_use_whole_disk' mangled-name='efi_use_whole_disk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_use_whole_disk'> + <parameter type-id='95e97e5e' name='fd'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='efi_rescan' mangled-name='efi_rescan' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_rescan'> + <parameter type-id='95e97e5e' name='fd'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='efi_alloc_and_read' mangled-name='efi_alloc_and_read' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_alloc_and_read'> + <parameter type-id='95e97e5e' name='fd'/> + <parameter type-id='c43b27a6' name='vtoc'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='efi_alloc_and_init' mangled-name='efi_alloc_and_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_alloc_and_init'> + <parameter type-id='95e97e5e' name='fd'/> + <parameter type-id='8f92235e' name='nparts'/> + <parameter type-id='c43b27a6' name='vtoc'/> + <return type-id='95e97e5e'/> + </function-decl> + <type-decl name='char' size-in-bits='8' id='a84c031d'/> + <typedef-decl name='diskaddr_t' type-id='9b3ff54f' id='804dc465'/> + <typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/> + <typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/> + <typedef-decl name='uint8_t' type-id='c51d6389' id='b96825af'/> + <typedef-decl name='uint_t' type-id='f0981eeb' id='3502e3ff'/> + <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/> + <typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/> + <typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/> + <typedef-decl name='__uint8_t' type-id='002ac4a6' id='c51d6389'/> + <typedef-decl name='longlong_t' type-id='1eb56b1e' id='9b3ff54f'/> + <type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/> + <type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/> + <type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/> + </abi-instr> <abi-instr version='1.0' address-size='64' path='libshare.c' language='LANG_C99'> <function-decl name='sa_validate_shareopts' mangled-name='sa_validate_shareopts' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sa_validate_shareopts'> <parameter type-id='26a90f95' name='options'/> @@ -391,16 +917,7 @@ </function-decl> <pointer-type-def type-id='a84c031d' size-in-bits='64' id='26a90f95'/> <pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/> - <type-decl name='int' size-in-bits='32' id='95e97e5e'/> - <typedef-decl name='boolean_t' type-id='08f5ca17' id='c19b74c3'/> - <type-decl name='void' id='48b5725f'/> - <type-decl name='char' size-in-bits='8' id='a84c031d'/> <qualified-type-def type-id='a84c031d' const='yes' id='9b45d938'/> - <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='08f5ca17'> - <underlying-type type-id='9cac1fee'/> - <enumerator name='B_FALSE' value='0'/> - <enumerator name='B_TRUE' value='1'/> - </enum-decl> </abi-instr> <abi-instr version='1.0' address-size='64' path='os/linux/smb.c' language='LANG_C99'> <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2040' id='11641789'> @@ -430,7 +947,1019 @@ <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='32768' id='d16c6df4'> <subrange length='4096' type-id='7359adad' id='bc1b5ddc'/> </array-type-def> - <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='assert.c' language='LANG_C99'> + <var-decl name='libspl_assert_ok' type-id='95e97e5e' mangled-name='libspl_assert_ok' visibility='default' elf-symbol-id='libspl_assert_ok'/> + <function-decl name='libspl_assertf' mangled-name='libspl_assertf' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libspl_assertf'> + <parameter type-id='80f4b756' name='file'/> + <parameter type-id='80f4b756' name='func'/> + <parameter type-id='95e97e5e' name='line'/> + <parameter type-id='80f4b756' name='format'/> + <parameter is-variadic='yes'/> + <return type-id='48b5725f'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='atomic.c' language='LANG_C99'> + <type-decl name='signed char' size-in-bits='8' id='28577a57'/> + <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/> + <typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/> + <typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/> + <typedef-decl name='int16_t' type-id='03896e23' id='23bd8cb5'/> + <typedef-decl name='__int16_t' type-id='a2185560' id='03896e23'/> + <typedef-decl name='int8_t' type-id='2171a512' id='ee31ee44'/> + <typedef-decl name='__int8_t' type-id='28577a57' id='2171a512'/> + <qualified-type-def type-id='149c6638' volatile='yes' id='5120c5f7'/> + <pointer-type-def type-id='5120c5f7' size-in-bits='64' id='93977ae7'/> + <qualified-type-def type-id='8f92235e' volatile='yes' id='430e0681'/> + <pointer-type-def type-id='430e0681' size-in-bits='64' id='3a147f31'/> + <qualified-type-def type-id='b96825af' volatile='yes' id='84ff7d66'/> + <pointer-type-def type-id='84ff7d66' size-in-bits='64' id='aa323ea4'/> + <qualified-type-def type-id='ee1f298e' volatile='yes' id='6f7e09cb'/> + <pointer-type-def type-id='6f7e09cb' size-in-bits='64' id='64698d33'/> + <qualified-type-def type-id='48b5725f' volatile='yes' id='b0b3cbf9'/> + <pointer-type-def type-id='b0b3cbf9' size-in-bits='64' id='fe09dd29'/> + <function-decl name='membar_consumer' mangled-name='membar_consumer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='membar_consumer'> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='membar_producer' mangled-name='membar_producer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='membar_producer'> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='membar_enter' mangled-name='membar_enter' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='membar_enter'> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_clear_long_excl' mangled-name='atomic_clear_long_excl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_clear_long_excl'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='3502e3ff' name='value'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='atomic_set_long_excl' mangled-name='atomic_set_long_excl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_set_long_excl'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='3502e3ff' name='value'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='atomic_swap_ptr' mangled-name='atomic_swap_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_ptr'> + <parameter type-id='fe09dd29' name='target'/> + <parameter type-id='eaa32e2f' name='bits'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='atomic_swap_ulong' mangled-name='atomic_swap_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_ulong'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='ee1f298e' name='bits'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='atomic_swap_32' mangled-name='atomic_swap_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_32'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='8f92235e' name='bits'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_swap_16' mangled-name='atomic_swap_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_16'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='149c6638' name='bits'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_swap_8' mangled-name='atomic_swap_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_8'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='b96825af' name='bits'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_cas_ptr' mangled-name='atomic_cas_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_ptr'> + <parameter type-id='fe09dd29' name='target'/> + <parameter type-id='eaa32e2f' name='exp'/> + <parameter type-id='eaa32e2f' name='des'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='atomic_and_ulong_nv' mangled-name='atomic_and_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_ulong_nv'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='ee1f298e' name='bits'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='atomic_and_32_nv' mangled-name='atomic_and_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_32_nv'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='8f92235e' name='bits'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_and_16_nv' mangled-name='atomic_and_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_16_nv'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='149c6638' name='bits'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_and_8_nv' mangled-name='atomic_and_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_8_nv'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='b96825af' name='bits'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_or_ulong_nv' mangled-name='atomic_or_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_ulong_nv'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='ee1f298e' name='bits'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='atomic_or_32_nv' mangled-name='atomic_or_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_32_nv'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='8f92235e' name='bits'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_or_16_nv' mangled-name='atomic_or_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_16_nv'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='149c6638' name='bits'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_or_8_nv' mangled-name='atomic_or_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_8_nv'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='b96825af' name='bits'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_sub_ptr_nv' mangled-name='atomic_sub_ptr_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_ptr_nv'> + <parameter type-id='fe09dd29' name='target'/> + <parameter type-id='79a0948f' name='bits'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='atomic_sub_long_nv' mangled-name='atomic_sub_long_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_long_nv'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='bd54fe1a' name='bits'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='atomic_sub_32_nv' mangled-name='atomic_sub_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_32_nv'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='3ff5601b' name='bits'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_sub_16_nv' mangled-name='atomic_sub_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_16_nv'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='23bd8cb5' name='bits'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_sub_8_nv' mangled-name='atomic_sub_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_8_nv'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='ee31ee44' name='bits'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_add_ptr_nv' mangled-name='atomic_add_ptr_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_ptr_nv'> + <parameter type-id='fe09dd29' name='target'/> + <parameter type-id='79a0948f' name='bits'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='atomic_add_long_nv' mangled-name='atomic_add_long_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_long_nv'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='bd54fe1a' name='bits'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='atomic_add_32_nv' mangled-name='atomic_add_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_32_nv'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='3ff5601b' name='bits'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_add_16_nv' mangled-name='atomic_add_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_16_nv'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='23bd8cb5' name='bits'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_add_8_nv' mangled-name='atomic_add_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_8_nv'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='ee31ee44' name='bits'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_dec_ulong_nv' mangled-name='atomic_dec_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_ulong_nv'> + <parameter type-id='64698d33' name='target'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='atomic_dec_32_nv' mangled-name='atomic_dec_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_32_nv'> + <parameter type-id='3a147f31' name='target'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_dec_16_nv' mangled-name='atomic_dec_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_16_nv'> + <parameter type-id='93977ae7' name='target'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_dec_8_nv' mangled-name='atomic_dec_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_8_nv'> + <parameter type-id='aa323ea4' name='target'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_inc_ulong_nv' mangled-name='atomic_inc_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_ulong_nv'> + <parameter type-id='64698d33' name='target'/> + <return type-id='ee1f298e'/> + </function-decl> + <function-decl name='atomic_inc_32_nv' mangled-name='atomic_inc_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_32_nv'> + <parameter type-id='3a147f31' name='target'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_inc_16_nv' mangled-name='atomic_inc_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_16_nv'> + <parameter type-id='93977ae7' name='target'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_inc_8_nv' mangled-name='atomic_inc_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_8_nv'> + <parameter type-id='aa323ea4' name='target'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_and_ulong' mangled-name='atomic_and_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_ulong'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='ee1f298e' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_and_32' mangled-name='atomic_and_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_32'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='8f92235e' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_and_16' mangled-name='atomic_and_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_16'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='149c6638' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_and_8' mangled-name='atomic_and_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_8'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='b96825af' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_or_ulong' mangled-name='atomic_or_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_ulong'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='ee1f298e' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_or_32' mangled-name='atomic_or_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_32'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='8f92235e' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_or_16' mangled-name='atomic_or_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_16'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='149c6638' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_or_8' mangled-name='atomic_or_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_8'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='b96825af' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_sub_ptr' mangled-name='atomic_sub_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_ptr'> + <parameter type-id='fe09dd29' name='target'/> + <parameter type-id='79a0948f' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_sub_long' mangled-name='atomic_sub_long' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_long'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='bd54fe1a' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_sub_32' mangled-name='atomic_sub_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_32'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='3ff5601b' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_sub_16' mangled-name='atomic_sub_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_16'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='23bd8cb5' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_sub_8' mangled-name='atomic_sub_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_8'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='ee31ee44' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_add_ptr' mangled-name='atomic_add_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_ptr'> + <parameter type-id='fe09dd29' name='target'/> + <parameter type-id='79a0948f' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_add_long' mangled-name='atomic_add_long' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_long'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='bd54fe1a' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_add_32' mangled-name='atomic_add_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_32'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='3ff5601b' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_add_16' mangled-name='atomic_add_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_16'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='23bd8cb5' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_add_8' mangled-name='atomic_add_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_8'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='ee31ee44' name='bits'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_dec_ulong' mangled-name='atomic_dec_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_ulong'> + <parameter type-id='64698d33' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_dec_32' mangled-name='atomic_dec_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_32'> + <parameter type-id='3a147f31' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_dec_16' mangled-name='atomic_dec_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_16'> + <parameter type-id='93977ae7' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_dec_8' mangled-name='atomic_dec_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_8'> + <parameter type-id='aa323ea4' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_inc_ulong' mangled-name='atomic_inc_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_ulong'> + <parameter type-id='64698d33' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_inc_32' mangled-name='atomic_inc_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_32'> + <parameter type-id='3a147f31' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_inc_16' mangled-name='atomic_inc_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_16'> + <parameter type-id='93977ae7' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_inc_8' mangled-name='atomic_inc_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_8'> + <parameter type-id='aa323ea4' name='target'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='atomic_cas_8' mangled-name='atomic_cas_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_8'> + <parameter type-id='aa323ea4' name='target'/> + <parameter type-id='b96825af' name='exp'/> + <parameter type-id='b96825af' name='des'/> + <return type-id='b96825af'/> + </function-decl> + <function-decl name='atomic_cas_16' mangled-name='atomic_cas_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_16'> + <parameter type-id='93977ae7' name='target'/> + <parameter type-id='149c6638' name='exp'/> + <parameter type-id='149c6638' name='des'/> + <return type-id='149c6638'/> + </function-decl> + <function-decl name='atomic_cas_32' mangled-name='atomic_cas_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_32'> + <parameter type-id='3a147f31' name='target'/> + <parameter type-id='8f92235e' name='exp'/> + <parameter type-id='8f92235e' name='des'/> + <return type-id='8f92235e'/> + </function-decl> + <function-decl name='atomic_cas_ulong' mangled-name='atomic_cas_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_ulong'> + <parameter type-id='64698d33' name='target'/> + <parameter type-id='ee1f298e' name='exp'/> + <parameter type-id='ee1f298e' name='des'/> + <return type-id='ee1f298e'/> + </function-decl> + <type-decl name='long int' size-in-bits='64' id='bd54fe1a'/> + <type-decl name='short int' size-in-bits='16' id='a2185560'/> + <typedef-decl name='int32_t' type-id='33f57a65' id='3ff5601b'/> + <typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/> + <typedef-decl name='__int32_t' type-id='95e97e5e' id='33f57a65'/> + <typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='getexecname.c' language='LANG_C99'> + <function-decl name='getexecname' mangled-name='getexecname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getexecname'> + <return type-id='80f4b756'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='list.c' language='LANG_C99'> + <typedef-decl name='list_t' type-id='e824dae9' id='0899125f'/> + <class-decl name='list' size-in-bits='256' is-struct='yes' visibility='default' id='e824dae9'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='list_size' type-id='b59d7dce' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='list_offset' type-id='b59d7dce' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='list_head' type-id='b0b5e45e' visibility='default'/> + </data-member> + </class-decl> + <class-decl name='list_node' size-in-bits='128' is-struct='yes' visibility='default' id='b0b5e45e'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='next' type-id='b03eadb4' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='prev' type-id='b03eadb4' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='list_node_t' type-id='b0b5e45e' id='b21843b2'/> + <pointer-type-def type-id='b0b5e45e' size-in-bits='64' id='b03eadb4'/> + <pointer-type-def type-id='b21843b2' size-in-bits='64' id='ccc38265'/> + <pointer-type-def type-id='0899125f' size-in-bits='64' id='352ec160'/> + <function-decl name='list_is_empty' mangled-name='list_is_empty' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_is_empty'> + <parameter type-id='352ec160' name='list'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='list_link_active' mangled-name='list_link_active' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_link_active'> + <parameter type-id='ccc38265' name='ln'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='list_link_init' mangled-name='list_link_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_link_init'> + <parameter type-id='ccc38265' name='ln'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_link_replace' mangled-name='list_link_replace' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_link_replace'> + <parameter type-id='ccc38265' name='lold'/> + <parameter type-id='ccc38265' name='lnew'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_move_tail' mangled-name='list_move_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_move_tail'> + <parameter type-id='352ec160' name='dst'/> + <parameter type-id='352ec160' name='src'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_prev' mangled-name='list_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_prev'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='eaa32e2f' name='object'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='list_next' mangled-name='list_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_next'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='eaa32e2f' name='object'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='list_tail' mangled-name='list_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_tail'> + <parameter type-id='352ec160' name='list'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='list_head' mangled-name='list_head' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_head'> + <parameter type-id='352ec160' name='list'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='list_remove_tail' mangled-name='list_remove_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_remove_tail'> + <parameter type-id='352ec160' name='list'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='list_remove_head' mangled-name='list_remove_head' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_remove_head'> + <parameter type-id='352ec160' name='list'/> + <return type-id='eaa32e2f'/> + </function-decl> + <function-decl name='list_remove' mangled-name='list_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_remove'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='eaa32e2f' name='object'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_insert_tail' mangled-name='list_insert_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_tail'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='eaa32e2f' name='object'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_insert_head' mangled-name='list_insert_head' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_head'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='eaa32e2f' name='object'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_insert_before' mangled-name='list_insert_before' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_before'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='eaa32e2f' name='object'/> + <parameter type-id='eaa32e2f' name='nobject'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_insert_after' mangled-name='list_insert_after' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_after'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='eaa32e2f' name='object'/> + <parameter type-id='eaa32e2f' name='nobject'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_destroy' mangled-name='list_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_destroy'> + <parameter type-id='352ec160' name='list'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='list_create' mangled-name='list_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_create'> + <parameter type-id='352ec160' name='list'/> + <parameter type-id='b59d7dce' name='size'/> + <parameter type-id='b59d7dce' name='offset'/> + <return type-id='48b5725f'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='mkdirp.c' language='LANG_C99'> + <typedef-decl name='mode_t' type-id='e1c52942' id='d50d396c'/> + <function-decl name='mkdirp' mangled-name='mkdirp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mkdirp'> + <parameter type-id='80f4b756' name='d'/> + <parameter type-id='d50d396c' name='mode'/> + <return type-id='95e97e5e'/> + </function-decl> + <typedef-decl name='__mode_t' type-id='f0981eeb' id='e1c52942'/> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='os/linux/gethostid.c' language='LANG_C99'> + <function-decl name='get_system_hostid' mangled-name='get_system_hostid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_system_hostid'> + <return type-id='7359adad'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='os/linux/getmntany.c' language='LANG_C99'> + <array-type-def dimensions='1' type-id='03085adc' size-in-bits='192' id='083f8d58'> + <subrange length='3' type-id='7359adad' id='56f209d2'/> + </array-type-def> + <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='8' id='89feb1ec'> + <subrange length='1' type-id='7359adad' id='52f813b4'/> + </array-type-def> + <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='160' id='664ac0b7'> + <subrange length='20' type-id='7359adad' id='fdca39cf'/> + </array-type-def> + <class-decl name='extmnttab' size-in-bits='320' is-struct='yes' visibility='default' id='0c544dc0'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='mnt_special' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='mnt_mountp' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='mnt_fstype' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='mnt_mntopts' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='mnt_major' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='288'> + <var-decl name='mnt_minor' type-id='3502e3ff' visibility='default'/> + </data-member> + </class-decl> + <class-decl name='stat64' size-in-bits='1152' is-struct='yes' visibility='default' id='0bbec9cd'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='st_dev' type-id='35ed8932' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='st_ino' type-id='71288a47' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='st_nlink' type-id='80f0b9df' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='st_mode' type-id='e1c52942' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='224'> + <var-decl name='st_uid' type-id='cc5fcceb' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='st_gid' type-id='d94ec6d9' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='288'> + <var-decl name='__pad0' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='320'> + <var-decl name='st_rdev' type-id='35ed8932' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='384'> + <var-decl name='st_size' type-id='79989e9c' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='448'> + <var-decl name='st_blksize' type-id='d3f10a7f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='512'> + <var-decl name='st_blocks' type-id='4e711bf1' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='576'> + <var-decl name='st_atim' type-id='a9c79a1f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='704'> + <var-decl name='st_mtim' type-id='a9c79a1f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='832'> + <var-decl name='st_ctim' type-id='a9c79a1f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='960'> + <var-decl name='__glibc_reserved' type-id='083f8d58' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='__dev_t' type-id='7359adad' id='35ed8932'/> + <typedef-decl name='__ino64_t' type-id='7359adad' id='71288a47'/> + <typedef-decl name='__nlink_t' type-id='7359adad' id='80f0b9df'/> + <typedef-decl name='__mode_t' type-id='f0981eeb' id='e1c52942'/> + <typedef-decl name='__gid_t' type-id='f0981eeb' id='d94ec6d9'/> + <typedef-decl name='__off_t' type-id='bd54fe1a' id='79989e9c'/> + <typedef-decl name='__blksize_t' type-id='bd54fe1a' id='d3f10a7f'/> + <typedef-decl name='__blkcnt64_t' type-id='bd54fe1a' id='4e711bf1'/> + <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' id='a9c79a1f'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='tv_sec' type-id='65eda9c0' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='tv_nsec' type-id='03085adc' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='__time_t' type-id='bd54fe1a' id='65eda9c0'/> + <typedef-decl name='__syscall_slong_t' type-id='bd54fe1a' id='03085adc'/> + <typedef-decl name='FILE' type-id='ec1ed955' id='aa12d1ba'/> + <class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' id='ec1ed955'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='_flags' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='_IO_read_ptr' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='_IO_read_end' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='_IO_read_base' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='_IO_write_base' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='320'> + <var-decl name='_IO_write_ptr' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='384'> + <var-decl name='_IO_write_end' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='448'> + <var-decl name='_IO_buf_base' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='512'> + <var-decl name='_IO_buf_end' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='576'> + <var-decl name='_IO_save_base' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='640'> + <var-decl name='_IO_backup_base' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='704'> + <var-decl name='_IO_save_end' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='768'> + <var-decl name='_markers' type-id='e4c6fa61' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='832'> + <var-decl name='_chain' type-id='dca988a5' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='896'> + <var-decl name='_fileno' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='928'> + <var-decl name='_flags2' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='960'> + <var-decl name='_old_offset' type-id='79989e9c' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1024'> + <var-decl name='_cur_column' type-id='8efea9e5' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1040'> + <var-decl name='_vtable_offset' type-id='28577a57' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1048'> + <var-decl name='_shortbuf' type-id='89feb1ec' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1088'> + <var-decl name='_lock' type-id='cecf4ea7' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1152'> + <var-decl name='_offset' type-id='724e4de6' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1216'> + <var-decl name='__pad1' type-id='eaa32e2f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1280'> + <var-decl name='__pad2' type-id='eaa32e2f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1344'> + <var-decl name='__pad3' type-id='eaa32e2f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1408'> + <var-decl name='__pad4' type-id='eaa32e2f' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1472'> + <var-decl name='__pad5' type-id='b59d7dce' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1536'> + <var-decl name='_mode' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1568'> + <var-decl name='_unused2' type-id='664ac0b7' visibility='default'/> + </data-member> + </class-decl> + <class-decl name='_IO_marker' size-in-bits='192' is-struct='yes' visibility='default' id='010ae0b9'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='_next' type-id='e4c6fa61' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='_sbuf' type-id='dca988a5' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='_pos' type-id='95e97e5e' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='_IO_lock_t' type-id='48b5725f' id='bb4788fa'/> + <typedef-decl name='__off64_t' type-id='bd54fe1a' id='724e4de6'/> + <pointer-type-def type-id='aa12d1ba' size-in-bits='64' id='822cd80b'/> + <pointer-type-def type-id='ec1ed955' size-in-bits='64' id='dca988a5'/> + <pointer-type-def type-id='bb4788fa' size-in-bits='64' id='cecf4ea7'/> + <pointer-type-def type-id='010ae0b9' size-in-bits='64' id='e4c6fa61'/> + <pointer-type-def type-id='0c544dc0' size-in-bits='64' id='394fc496'/> + <pointer-type-def type-id='0bbec9cd' size-in-bits='64' id='62f7a03d'/> + <function-decl name='getextmntent' mangled-name='getextmntent' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getextmntent'> + <parameter type-id='80f4b756' name='path'/> + <parameter type-id='394fc496' name='entry'/> + <parameter type-id='62f7a03d' name='statbuf'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='getmntany' mangled-name='getmntany' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getmntany'> + <parameter type-id='822cd80b' name='fp'/> + <parameter type-id='9d424d31' name='mgetp'/> + <parameter type-id='9d424d31' name='mrefp'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='_sol_getmntent' mangled-name='_sol_getmntent' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_sol_getmntent'> + <parameter type-id='822cd80b' name='fp'/> + <parameter type-id='9d424d31' name='mgetp'/> + <return type-id='95e97e5e'/> + </function-decl> + <pointer-type-def type-id='1b055409' size-in-bits='64' id='9d424d31'/> + <typedef-decl name='__uid_t' type-id='f0981eeb' id='cc5fcceb'/> + <class-decl name='mnttab' size-in-bits='256' is-struct='yes' visibility='default' id='1b055409'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='mnt_special' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='mnt_mountp' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='mnt_fstype' type-id='26a90f95' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='mnt_mntopts' type-id='26a90f95' visibility='default'/> + </data-member> + </class-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='os/linux/zone.c' language='LANG_C99'> + <typedef-decl name='zoneid_t' type-id='95e97e5e' id='4da03624'/> + <function-decl name='getzoneid' mangled-name='getzoneid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getzoneid'> + <return type-id='4da03624'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='page.c' language='LANG_C99'> + <function-decl name='spl_pagesize' mangled-name='spl_pagesize' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spl_pagesize'> + <return type-id='b59d7dce'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='strlcat.c' language='LANG_C99'> + <function-decl name='strlcat' mangled-name='strlcat' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strlcat'> + <parameter type-id='26a90f95' name='dst'/> + <parameter type-id='80f4b756' name='src'/> + <parameter type-id='b59d7dce' name='dstsize'/> + <return type-id='b59d7dce'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='strlcpy.c' language='LANG_C99'> + <function-decl name='strlcpy' mangled-name='strlcpy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strlcpy'> + <parameter type-id='26a90f95' name='dst'/> + <parameter type-id='80f4b756' name='src'/> + <parameter type-id='b59d7dce' name='len'/> + <return type-id='b59d7dce'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='timestamp.c' language='LANG_C99'> + <function-decl name='print_timestamp' mangled-name='print_timestamp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='print_timestamp'> + <parameter type-id='3502e3ff' name='timestamp_fmt'/> + <return type-id='48b5725f'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='thread_pool.c' language='LANG_C99'> + <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='384' id='36d7f119'> + <subrange length='48' type-id='7359adad' id='8f6d2a81'/> + </array-type-def> + <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='448' id='6093ff7c'> + <subrange length='56' type-id='7359adad' id='f8137894'/> + </array-type-def> + <type-decl name='long long unsigned int' size-in-bits='64' id='3a47d82b'/> + <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='64' id='0d532ec1'> + <subrange length='2' type-id='7359adad' id='52efc4ef'/> + </array-type-def> + <class-decl name='tpool' size-in-bits='2496' is-struct='yes' visibility='default' id='88d1b7f9'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='tp_forw' type-id='9cf59a50' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='tp_back' type-id='9cf59a50' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='tp_mutex' type-id='7a6844eb' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='448'> + <var-decl name='tp_busycv' type-id='62fab762' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='832'> + <var-decl name='tp_workcv' type-id='62fab762' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1216'> + <var-decl name='tp_waitcv' type-id='62fab762' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1600'> + <var-decl name='tp_active' type-id='ad33e5e7' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1664'> + <var-decl name='tp_head' type-id='f32b30e4' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1728'> + <var-decl name='tp_tail' type-id='f32b30e4' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='1792'> + <var-decl name='tp_attr' type-id='7d8569fd' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='2240'> + <var-decl name='tp_flags' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='2272'> + <var-decl name='tp_linger' type-id='3502e3ff' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='2304'> + <var-decl name='tp_njobs' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='2336'> + <var-decl name='tp_minimum' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='2368'> + <var-decl name='tp_maximum' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='2400'> + <var-decl name='tp_current' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='2432'> + <var-decl name='tp_idle' type-id='95e97e5e' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='tpool_t' type-id='88d1b7f9' id='b1bbf10d'/> + <typedef-decl name='pthread_cond_t' type-id='be6ed7a7' id='62fab762'/> + <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' id='be6ed7a7'> + <data-member access='private'> + <var-decl name='__data' type-id='c987b47c' visibility='default'/> + </data-member> + <data-member access='private'> + <var-decl name='__size' type-id='36d7f119' visibility='default'/> + </data-member> + <data-member access='private'> + <var-decl name='__align' type-id='1eb56b1e' visibility='default'/> + </data-member> + </union-decl> + <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' id='c987b47c'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='' type-id='2516de83' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='' type-id='fc82e0c5' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='__g_refs' type-id='0d532ec1' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='__g_size' type-id='0d532ec1' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='__g1_orig_size' type-id='f0981eeb' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='288'> + <var-decl name='__wrefs' type-id='f0981eeb' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='320'> + <var-decl name='__g_signals' type-id='0d532ec1' visibility='default'/> + </data-member> + </class-decl> + <union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' id='2516de83'> + <data-member access='private'> + <var-decl name='__wseq' type-id='3a47d82b' visibility='default'/> + </data-member> + <data-member access='private'> + <var-decl name='__wseq32' type-id='2e971cfd' visibility='default'/> + </data-member> + </union-decl> + <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' id='2e971cfd'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='__low' type-id='f0981eeb' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='32'> + <var-decl name='__high' type-id='f0981eeb' visibility='default'/> + </data-member> + </class-decl> + <union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' id='fc82e0c5'> + <data-member access='private'> + <var-decl name='__g1_start' type-id='3a47d82b' visibility='default'/> + </data-member> + <data-member access='private'> + <var-decl name='__g1_start32' type-id='2e971cfd' visibility='default'/> + </data-member> + </union-decl> + <class-decl name='tpool_active' size-in-bits='128' is-struct='yes' visibility='default' id='c8d086f4'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='tpa_next' type-id='ad33e5e7' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='tpa_tid' type-id='4051f5e7' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='tpool_active_t' type-id='c8d086f4' id='6fcda10e'/> + <typedef-decl name='pthread_t' type-id='7359adad' id='4051f5e7'/> + <class-decl name='tpool_job' size-in-bits='192' is-struct='yes' visibility='default' id='3b8579e5'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='tpj_next' type-id='f32b30e4' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='tpj_func' type-id='b7f9d8e6' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='tpj_arg' type-id='eaa32e2f' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='tpool_job_t' type-id='3b8579e5' id='66a0afc9'/> + <typedef-decl name='pthread_attr_t' type-id='b63afacd' id='7d8569fd'/> + <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' id='b63afacd'> + <data-member access='private'> + <var-decl name='__size' type-id='6093ff7c' visibility='default'/> + </data-member> + <data-member access='private'> + <var-decl name='__align' type-id='bd54fe1a' visibility='default'/> + </data-member> + </union-decl> + <pointer-type-def type-id='7d8569fd' size-in-bits='64' id='7347a39e'/> + <pointer-type-def type-id='6fcda10e' size-in-bits='64' id='ad33e5e7'/> + <pointer-type-def type-id='66a0afc9' size-in-bits='64' id='f32b30e4'/> + <pointer-type-def type-id='b1bbf10d' size-in-bits='64' id='9cf59a50'/> + <pointer-type-def type-id='c5c76c9c' size-in-bits='64' id='b7f9d8e6'/> + <function-decl name='tpool_member' mangled-name='tpool_member' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_member'> + <parameter type-id='9cf59a50' name='tpool'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='tpool_resume' mangled-name='tpool_resume' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_resume'> + <parameter type-id='9cf59a50' name='tpool'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='tpool_suspended' mangled-name='tpool_suspended' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_suspended'> + <parameter type-id='9cf59a50' name='tpool'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='tpool_suspend' mangled-name='tpool_suspend' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_suspend'> + <parameter type-id='9cf59a50' name='tpool'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='tpool_wait' mangled-name='tpool_wait' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_wait'> + <parameter type-id='9cf59a50' name='tpool'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='tpool_abandon' mangled-name='tpool_abandon' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_abandon'> + <parameter type-id='9cf59a50' name='tpool'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='tpool_destroy' mangled-name='tpool_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_destroy'> + <parameter type-id='9cf59a50' name='tpool'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='tpool_dispatch' mangled-name='tpool_dispatch' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_dispatch'> + <parameter type-id='9cf59a50' name='tpool'/> + <parameter type-id='b7f9d8e6' name='func'/> + <parameter type-id='eaa32e2f' name='arg'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='tpool_create' mangled-name='tpool_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_create'> + <parameter type-id='3502e3ff' name='min_threads'/> + <parameter type-id='3502e3ff' name='max_threads'/> + <parameter type-id='3502e3ff' name='linger'/> + <parameter type-id='7347a39e' name='attr'/> + <return type-id='9cf59a50'/> + </function-decl> + <function-type size-in-bits='64' id='c5c76c9c'> + <parameter type-id='eaa32e2f'/> + <return type-id='48b5725f'/> + </function-type> + <typedef-decl name='pthread_mutex_t' type-id='c4794498' id='7a6844eb'/> + <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' id='c4794498'> + <data-member access='private'> + <var-decl name='__data' type-id='4c734837' visibility='default'/> + </data-member> + <data-member access='private'> + <var-decl name='__size' type-id='36c46961' visibility='default'/> + </data-member> + <data-member access='private'> + <var-decl name='__align' type-id='bd54fe1a' visibility='default'/> + </data-member> + </union-decl> + <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='320' id='36c46961'> + <subrange length='40' type-id='7359adad' id='8f80b239'/> + </array-type-def> + <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' id='4c734837'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='__lock' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='32'> + <var-decl name='__count' type-id='f0981eeb' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='__owner' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='96'> + <var-decl name='__nusers' type-id='f0981eeb' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='__kind' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='160'> + <var-decl name='__spins' type-id='a2185560' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='176'> + <var-decl name='__elision' type-id='a2185560' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='__list' type-id='518fb49c' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='__pthread_list_t' type-id='0e01899c' id='518fb49c'/> + <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' id='0e01899c'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='__prev' type-id='4d98cd5a' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='__next' type-id='4d98cd5a' visibility='default'/> + </data-member> + </class-decl> + <pointer-type-def type-id='0e01899c' size-in-bits='64' id='4d98cd5a'/> </abi-instr> <abi-instr version='1.0' address-size='64' path='../../module/zcommon/cityhash.c' language='LANG_C99'> <function-decl name='cityhash4' mangled-name='cityhash4' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cityhash4'> @@ -614,8 +2143,6 @@ <return type-id='c19b74c3'/> </function-decl> <pointer-type-def type-id='8e8d4be3' size-in-bits='64' id='5ce45b60'/> - <typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/> - <typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/> <typedef-decl name='nvlist_t' type-id='ac266fd9' id='8e8d4be3'/> <class-decl name='nvlist' size-in-bits='192' is-struct='yes' visibility='default' id='ac266fd9'> <data-member access='public' layout-offset-in-bits='0'> @@ -634,9 +2161,6 @@ <var-decl name='nvl_pad' type-id='3ff5601b' visibility='default'/> </data-member> </class-decl> - <type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/> - <typedef-decl name='int32_t' type-id='33f57a65' id='3ff5601b'/> - <typedef-decl name='__int32_t' type-id='95e97e5e' id='33f57a65'/> </abi-instr> <abi-instr version='1.0' address-size='64' path='../../module/zcommon/zfs_deleg.c' language='LANG_C99'> <array-type-def dimensions='1' type-id='f3f851ad' size-in-bits='infinite' id='bc4e5d90'> @@ -718,7 +2242,6 @@ <parameter type-id='80f4b756' name='perm'/> <return type-id='80f4b756'/> </function-decl> - <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/> </abi-instr> <abi-instr version='1.0' address-size='64' path='../../module/zcommon/zfs_fletcher.c' language='LANG_C99'> <array-type-def dimensions='1' type-id='9c313c2d' size-in-bits='256' id='85c64d26'> @@ -913,7 +2436,6 @@ <parameter type-id='eefe7427'/> <return type-id='48b5725f'/> </function-type> - <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/> <array-type-def dimensions='1' type-id='9c313c2d' size-in-bits='128' id='c1c22e6c'> <subrange length='2' type-id='7359adad' id='52efc4ef'/> </array-type-def> @@ -4178,4 +5700,251 @@ <return type-id='95e97e5e'/> </function-decl> </abi-instr> + <abi-instr version='1.0' address-size='64' path='os/linux/zutil_device_path_os.c' language='LANG_C99'> + <function-decl name='is_mpath_whole_disk' mangled-name='is_mpath_whole_disk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_mpath_whole_disk'> + <parameter type-id='80f4b756' name='path'/> + <return type-id='c19b74c3'/> + </function-decl> + <function-decl name='zfs_get_underlying_path' mangled-name='zfs_get_underlying_path' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_get_underlying_path'> + <parameter type-id='80f4b756' name='dev_name'/> + <return type-id='26a90f95'/> + </function-decl> + <function-decl name='zfs_dev_is_whole_disk' mangled-name='zfs_dev_is_whole_disk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dev_is_whole_disk'> + <parameter type-id='80f4b756' name='dev_name'/> + <return type-id='c19b74c3'/> + </function-decl> + <function-decl name='zfs_dev_is_dm' mangled-name='zfs_dev_is_dm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dev_is_dm'> + <parameter type-id='80f4b756' name='dev_name'/> + <return type-id='c19b74c3'/> + </function-decl> + <function-decl name='zfs_get_enclosure_sysfs_path' mangled-name='zfs_get_enclosure_sysfs_path' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_get_enclosure_sysfs_path'> + <parameter type-id='80f4b756' name='dev_name'/> + <return type-id='26a90f95'/> + </function-decl> + <function-decl name='zfs_strip_path' mangled-name='zfs_strip_path' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_strip_path'> + <parameter type-id='26a90f95' name='path'/> + <return type-id='26a90f95'/> + </function-decl> + <function-decl name='zfs_strip_partition' mangled-name='zfs_strip_partition' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_strip_partition'> + <parameter type-id='26a90f95' name='path'/> + <return type-id='26a90f95'/> + </function-decl> + <function-decl name='zfs_append_partition' mangled-name='zfs_append_partition' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_append_partition'> + <parameter type-id='26a90f95' name='path'/> + <parameter type-id='b59d7dce' name='max_len'/> + <return type-id='95e97e5e'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='os/linux/zutil_import_os.c' language='LANG_C99'> + <class-decl name='udev_device' is-struct='yes' visibility='default' is-declaration-only='yes' id='640b33ca'/> + <qualified-type-def type-id='80f4b756' const='yes' id='b99c00c9'/> + <pointer-type-def type-id='b99c00c9' size-in-bits='64' id='13956559'/> + <pointer-type-def type-id='b59d7dce' size-in-bits='64' id='78c01427'/> + <pointer-type-def type-id='640b33ca' size-in-bits='64' id='b32bae08'/> + <function-decl name='update_vdev_config_dev_strs' mangled-name='update_vdev_config_dev_strs' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_vdev_config_dev_strs'> + <parameter type-id='5ce45b60' name='nv'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='zpool_label_disk_wait' mangled-name='zpool_label_disk_wait' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_label_disk_wait'> + <parameter type-id='80f4b756' name='path'/> + <parameter type-id='95e97e5e' name='timeout_ms'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='zfs_device_get_devid' mangled-name='zfs_device_get_devid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_device_get_devid'> + <parameter type-id='b32bae08' name='dev'/> + <parameter type-id='26a90f95' name='bufptr'/> + <parameter type-id='b59d7dce' name='buflen'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='zpool_default_search_paths' mangled-name='zpool_default_search_paths' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_default_search_paths'> + <parameter type-id='78c01427' name='count'/> + <return type-id='13956559'/> + </function-decl> + <function-decl name='zfs_dev_flush' mangled-name='zfs_dev_flush' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dev_flush'> + <parameter type-id='95e97e5e' name='fd'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='zfs_device_get_physical' mangled-name='zfs_device_get_physical' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_device_get_physical'> + <parameter type-id='b32bae08' name='dev'/> + <parameter type-id='26a90f95' name='bufptr'/> + <parameter type-id='b59d7dce' name='buflen'/> + <return type-id='95e97e5e'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='zutil_device_path.c' language='LANG_C99'> + <typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/> + <typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/> + <function-decl name='zfs_strcmp_pathname' mangled-name='zfs_strcmp_pathname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_strcmp_pathname'> + <parameter type-id='80f4b756' name='name'/> + <parameter type-id='80f4b756' name='cmp'/> + <parameter type-id='95e97e5e' name='wholedisk'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='zfs_resolve_shortname' mangled-name='zfs_resolve_shortname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_resolve_shortname'> + <parameter type-id='80f4b756' name='name'/> + <parameter type-id='26a90f95' name='path'/> + <parameter type-id='b59d7dce' name='len'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='zfs_dirnamelen' mangled-name='zfs_dirnamelen' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dirnamelen'> + <parameter type-id='80f4b756' name='path'/> + <return type-id='79a0948f'/> + </function-decl> + <function-decl name='zfs_basename' mangled-name='zfs_basename' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_basename'> + <parameter type-id='80f4b756' name='path'/> + <return type-id='80f4b756'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='zutil_import.c' language='LANG_C99'> + <typedef-decl name='importargs_t' type-id='7ac83801' id='7a842a6b'/> + <class-decl name='importargs' size-in-bits='448' is-struct='yes' visibility='default' id='7ac83801'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='path' type-id='9b23c9ad' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='paths' type-id='95e97e5e' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='poolname' type-id='80f4b756' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='guid' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='cachefile' type-id='80f4b756' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='320'> + <var-decl name='can_be_active' type-id='c19b74c3' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='352'> + <var-decl name='scan' type-id='c19b74c3' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='384'> + <var-decl name='policy' type-id='5ce45b60' visibility='default'/> + </data-member> + </class-decl> + <pointer-type-def type-id='7a842a6b' size-in-bits='64' id='07ee4a58'/> + <pointer-type-def type-id='b1e62775' size-in-bits='64' id='f095e320'/> + <function-decl name='zpool_find_config' mangled-name='zpool_find_config' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_find_config'> + <parameter type-id='eaa32e2f' name='hdl'/> + <parameter type-id='80f4b756' name='target'/> + <parameter type-id='857bb57e' name='configp'/> + <parameter type-id='07ee4a58' name='args'/> + <parameter type-id='f095e320' name='pco'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='zpool_search_import' mangled-name='zpool_search_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_search_import'> + <parameter type-id='eaa32e2f' name='hdl'/> + <parameter type-id='07ee4a58' name='import'/> + <parameter type-id='f095e320' name='pco'/> + <return type-id='5ce45b60'/> + </function-decl> + <function-decl name='zpool_read_label' mangled-name='zpool_read_label' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_read_label'> + <parameter type-id='95e97e5e' name='fd'/> + <parameter type-id='857bb57e' name='config'/> + <parameter type-id='7292109c' name='num_labels'/> + <return type-id='95e97e5e'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='zutil_nicenum.c' language='LANG_C99'> + <enum-decl name='zfs_nicenum_format' id='29cf1969'> + <underlying-type type-id='9cac1fee'/> + <enumerator name='ZFS_NICENUM_1024' value='0'/> + <enumerator name='ZFS_NICENUM_BYTES' value='1'/> + <enumerator name='ZFS_NICENUM_TIME' value='2'/> + <enumerator name='ZFS_NICENUM_RAW' value='3'/> + <enumerator name='ZFS_NICENUM_RAWTIME' value='4'/> + </enum-decl> + <function-decl name='zfs_nicebytes' mangled-name='zfs_nicebytes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicebytes'> + <parameter type-id='9c313c2d' name='num'/> + <parameter type-id='26a90f95' name='buf'/> + <parameter type-id='b59d7dce' name='buflen'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='zfs_niceraw' mangled-name='zfs_niceraw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_niceraw'> + <parameter type-id='9c313c2d' name='num'/> + <parameter type-id='26a90f95' name='buf'/> + <parameter type-id='b59d7dce' name='buflen'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='zfs_nicetime' mangled-name='zfs_nicetime' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicetime'> + <parameter type-id='9c313c2d' name='num'/> + <parameter type-id='26a90f95' name='buf'/> + <parameter type-id='b59d7dce' name='buflen'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='zfs_nicenum' mangled-name='zfs_nicenum' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicenum'> + <parameter type-id='9c313c2d' name='num'/> + <parameter type-id='26a90f95' name='buf'/> + <parameter type-id='b59d7dce' name='buflen'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='zfs_nicenum_format' mangled-name='zfs_nicenum_format' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicenum_format'> + <parameter type-id='9c313c2d' name='num'/> + <parameter type-id='26a90f95' name='buf'/> + <parameter type-id='b59d7dce' name='buflen'/> + <parameter type-id='29cf1969' name='format'/> + <return type-id='48b5725f'/> + </function-decl> + <function-decl name='zfs_isnumber' mangled-name='zfs_isnumber' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_isnumber'> + <parameter type-id='80f4b756' name='str'/> + <return type-id='c19b74c3'/> + </function-decl> + </abi-instr> + <abi-instr version='1.0' address-size='64' path='zutil_pool.c' language='LANG_C99'> + <array-type-def dimensions='1' type-id='853fd5dc' size-in-bits='32768' id='b505fc2f'> + <subrange length='64' type-id='7359adad' id='b10be967'/> + </array-type-def> + <typedef-decl name='ddt_stat_t' type-id='65242dfe' id='853fd5dc'/> + <class-decl name='ddt_stat' size-in-bits='512' is-struct='yes' visibility='default' id='65242dfe'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='dds_blocks' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='64'> + <var-decl name='dds_lsize' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='128'> + <var-decl name='dds_psize' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='192'> + <var-decl name='dds_dsize' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='256'> + <var-decl name='dds_ref_blocks' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='320'> + <var-decl name='dds_ref_lsize' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='384'> + <var-decl name='dds_ref_psize' type-id='9c313c2d' visibility='default'/> + </data-member> + <data-member access='public' layout-offset-in-bits='448'> + <var-decl name='dds_ref_dsize' type-id='9c313c2d' visibility='default'/> + </data-member> + </class-decl> + <typedef-decl name='ddt_histogram_t' type-id='bc2b3086' id='2d7fe832'/> + <class-decl name='ddt_histogram' size-in-bits='32768' is-struct='yes' visibility='default' id='bc2b3086'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='ddh_stat' type-id='b505fc2f' visibility='default'/> + </data-member> + </class-decl> + <qualified-type-def type-id='2d7fe832' const='yes' id='ec92d602'/> + <pointer-type-def type-id='ec92d602' size-in-bits='64' id='932720f8'/> + <qualified-type-def type-id='853fd5dc' const='yes' id='764c298c'/> + <pointer-type-def type-id='764c298c' size-in-bits='64' id='dfe59052'/> + <pointer-type-def type-id='857bb57e' size-in-bits='64' id='75be733c'/> + <function-decl name='zpool_history_unpack' mangled-name='zpool_history_unpack' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_history_unpack'> + <parameter type-id='26a90f95' name='buf'/> + <parameter type-id='9c313c2d' name='bytes_read'/> + <parameter type-id='5d6479ae' name='leftover'/> + <parameter type-id='75be733c' name='records'/> + <parameter type-id='4dd26a40' name='numrecords'/> + <return type-id='95e97e5e'/> + </function-decl> + <function-decl name='zpool_dump_ddt' mangled-name='zpool_dump_ddt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_dump_ddt'> + <parameter type-id='dfe59052' name='dds_total'/> + <parameter type-id='932720f8' name='ddh'/> + <return type-id='48b5725f'/> + </function-decl> + </abi-instr> </abi-corpus> diff --git a/lib/libzfs/os/freebsd/libzfs_compat.c b/lib/libzfs/os/freebsd/libzfs_compat.c index 2c9d52bb0..f143f9cb6 100644 --- a/lib/libzfs/os/freebsd/libzfs_compat.c +++ b/lib/libzfs/os/freebsd/libzfs_compat.c @@ -22,7 +22,6 @@ /* * Copyright (c) 2013 Martin Matuska <[email protected]>. All rights reserved. */ -#include <os/freebsd/zfs/sys/zfs_ioctl_compat.h> #include "../../libzfs_impl.h" #include <libzfs.h> #include <libzutil.h> @@ -224,7 +223,7 @@ libzfs_error_init(int error) int zfs_ioctl(libzfs_handle_t *hdl, int request, zfs_cmd_t *zc) { - return (zfs_ioctl_fd(hdl->libzfs_fd, request, zc)); + return (lzc_ioctl_fd(hdl->libzfs_fd, request, zc)); } /* diff --git a/lib/libzfs/os/freebsd/libzfs_ioctl_compat.c b/lib/libzfs/os/freebsd/libzfs_ioctl_compat.c deleted file mode 100644 index 18b93fe27..000000000 --- a/lib/libzfs/os/freebsd/libzfs_ioctl_compat.c +++ /dev/null @@ -1,432 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2013 Xin Li <[email protected]>. All rights reserved. - * Copyright 2013 Martin Matuska <[email protected]>. All rights reserved. - * Portions Copyright 2005, 2010, Oracle and/or its affiliates. - * All rights reserved. - * Use is subject to license terms. - */ - -#include <sys/types.h> -#include <sys/param.h> -#include <sys/cred.h> -#include <sys/dmu.h> -#include <sys/zio.h> -#include <sys/nvpair.h> -#include <sys/dsl_deleg.h> -#include <sys/zfs_ioctl.h> -#include "zfs_namecheck.h" -#include <os/freebsd/zfs/sys/zfs_ioctl_compat.h> - -/* - * FreeBSD zfs_cmd compatibility with older binaries - * appropriately remap/extend the zfs_cmd_t structure - */ -void -zfs_cmd_compat_get(zfs_cmd_t *zc, caddr_t addr, const int cflag) -{ - -} -#if 0 -static int -zfs_ioctl_compat_get_nvlist(uint64_t nvl, size_t size, int iflag, - nvlist_t **nvp) -{ - char *packed; - int error; - nvlist_t *list = NULL; - - /* - * Read in and unpack the user-supplied nvlist. - */ - if (size == 0) - return (EINVAL); - -#ifdef _KERNEL - packed = kmem_alloc(size, KM_SLEEP); - if ((error = ddi_copyin((void *)(uintptr_t)nvl, packed, size, - iflag)) != 0) { - kmem_free(packed, size); - return (error); - } -#else - packed = (void *)(uintptr_t)nvl; -#endif - - error = nvlist_unpack(packed, size, &list, 0); - -#ifdef _KERNEL - kmem_free(packed, size); -#endif - - if (error != 0) - return (error); - - *nvp = list; - return (0); -} - -static int -zfs_ioctl_compat_put_nvlist(zfs_cmd_t *zc, nvlist_t *nvl) -{ - char *packed = NULL; - int error = 0; - size_t size; - - VERIFY(nvlist_size(nvl, &size, NV_ENCODE_NATIVE) == 0); - -#ifdef _KERNEL - packed = kmem_alloc(size, KM_SLEEP); - VERIFY(nvlist_pack(nvl, &packed, &size, NV_ENCODE_NATIVE, - KM_SLEEP) == 0); - - if (ddi_copyout(packed, - (void *)(uintptr_t)zc->zc_nvlist_dst, size, zc->zc_iflags) != 0) - error = EFAULT; - kmem_free(packed, size); -#else - packed = (void *)(uintptr_t)zc->zc_nvlist_dst; - VERIFY(nvlist_pack(nvl, &packed, &size, NV_ENCODE_NATIVE, - 0) == 0); -#endif - - zc->zc_nvlist_dst_size = size; - return (error); -} - -static void -zfs_ioctl_compat_fix_stats_nvlist(nvlist_t *nvl) -{ - nvlist_t **child; - nvlist_t *nvroot = NULL; - vdev_stat_t *vs; - uint_t c, children, nelem; - - if (nvlist_lookup_nvlist_array(nvl, ZPOOL_CONFIG_CHILDREN, - &child, &children) == 0) { - for (c = 0; c < children; c++) { - zfs_ioctl_compat_fix_stats_nvlist(child[c]); - } - } - - if (nvlist_lookup_nvlist(nvl, ZPOOL_CONFIG_VDEV_TREE, - &nvroot) == 0) - zfs_ioctl_compat_fix_stats_nvlist(nvroot); - if ((nvlist_lookup_uint64_array(nvl, "stats", - (uint64_t **)&vs, &nelem) == 0)) { - nvlist_add_uint64_array(nvl, - ZPOOL_CONFIG_VDEV_STATS, - (uint64_t *)vs, nelem); - nvlist_remove(nvl, "stats", - DATA_TYPE_UINT64_ARRAY); - } -} - - -static int -zfs_ioctl_compat_fix_stats(zfs_cmd_t *zc, const int nc) -{ - nvlist_t *nv, *nvp = NULL; - nvpair_t *elem; - int error; - - if ((error = zfs_ioctl_compat_get_nvlist(zc->zc_nvlist_dst, - zc->zc_nvlist_dst_size, zc->zc_iflags, &nv)) != 0) - return (error); - - if (nc == 5) { /* ZFS_IOC_POOL_STATS */ - elem = NULL; - while ((elem = nvlist_next_nvpair(nv, elem)) != NULL) { - if (nvpair_value_nvlist(elem, &nvp) == 0) - zfs_ioctl_compat_fix_stats_nvlist(nvp); - } - elem = NULL; - } else - zfs_ioctl_compat_fix_stats_nvlist(nv); - - error = zfs_ioctl_compat_put_nvlist(zc, nv); - - nvlist_free(nv); - - return (error); -} - -static int -zfs_ioctl_compat_pool_get_props(zfs_cmd_t *zc) -{ - nvlist_t *nv, *nva = NULL; - int error; - - if ((error = zfs_ioctl_compat_get_nvlist(zc->zc_nvlist_dst, - zc->zc_nvlist_dst_size, zc->zc_iflags, &nv)) != 0) - return (error); - - if (nvlist_lookup_nvlist(nv, "used", &nva) == 0) { - nvlist_add_nvlist(nv, "allocated", nva); - nvlist_remove(nv, "used", DATA_TYPE_NVLIST); - } - - if (nvlist_lookup_nvlist(nv, "available", &nva) == 0) { - nvlist_add_nvlist(nv, "free", nva); - nvlist_remove(nv, "available", DATA_TYPE_NVLIST); - } - - error = zfs_ioctl_compat_put_nvlist(zc, nv); - - nvlist_free(nv); - - return (error); -} -#endif - -#ifdef _KERNEL -int -zfs_ioctl_compat_pre(zfs_cmd_t *zc, int *vec, const int cflag) -{ - int error = 0; - - /* are we creating a clone? */ - if (*vec == ZFS_IOC_CREATE && zc->zc_value[0] != '\0') - *vec = ZFS_IOC_CLONE; - - if (cflag == ZFS_CMD_COMPAT_V15) { - switch (*vec) { - - case 7: /* ZFS_IOC_POOL_SCRUB (v15) */ - zc->zc_cookie = POOL_SCAN_SCRUB; - break; - } - } - - return (error); -} - -void -zfs_ioctl_compat_post(zfs_cmd_t *zc, int vec, const int cflag) -{ - if (cflag == ZFS_CMD_COMPAT_V15) { - switch (vec) { - case ZFS_IOC_POOL_CONFIGS: - case ZFS_IOC_POOL_STATS: - case ZFS_IOC_POOL_TRYIMPORT: - zfs_ioctl_compat_fix_stats(zc, vec); - break; - case 41: /* ZFS_IOC_POOL_GET_PROPS (v15) */ - zfs_ioctl_compat_pool_get_props(zc); - break; - } - } -} - -nvlist_t * -zfs_ioctl_compat_innvl(zfs_cmd_t *zc, nvlist_t *innvl, const int vec, - const int cflag) -{ - nvlist_t *nvl, *tmpnvl, *hnvl; - nvpair_t *elem; - char *poolname, *snapname; - int err; - - if (cflag == ZFS_CMD_COMPAT_NONE || cflag == ZFS_CMD_COMPAT_LZC || - cflag == ZFS_CMD_COMPAT_ZCMD || cflag == ZFS_CMD_COMPAT_EDBP || - cflag == ZFS_CMD_COMPAT_RESUME || cflag == ZFS_CMD_COMPAT_INLANES) - goto out; - - switch (vec) { - case ZFS_IOC_CREATE: - nvl = fnvlist_alloc(); - fnvlist_add_int32(nvl, "type", zc->zc_objset_type); - if (innvl != NULL) { - fnvlist_add_nvlist(nvl, "props", innvl); - nvlist_free(innvl); - } - return (nvl); - break; - case ZFS_IOC_CLONE: - nvl = fnvlist_alloc(); - fnvlist_add_string(nvl, "origin", zc->zc_value); - if (innvl != NULL) { - fnvlist_add_nvlist(nvl, "props", innvl); - nvlist_free(innvl); - } - return (nvl); - break; - case ZFS_IOC_SNAPSHOT: - if (innvl == NULL) - goto out; - nvl = fnvlist_alloc(); - fnvlist_add_nvlist(nvl, "props", innvl); - tmpnvl = fnvlist_alloc(); - snapname = kmem_asprintf("%s@%s", zc->zc_name, zc->zc_value); - fnvlist_add_boolean(tmpnvl, snapname); - kmem_free(snapname, strlen(snapname + 1)); - /* check if we are doing a recursive snapshot */ - if (zc->zc_cookie) - dmu_get_recursive_snaps_nvl(zc->zc_name, zc->zc_value, - tmpnvl); - fnvlist_add_nvlist(nvl, "snaps", tmpnvl); - fnvlist_free(tmpnvl); - nvlist_free(innvl); - /* strip dataset part from zc->zc_name */ - zc->zc_name[strcspn(zc->zc_name, "/@")] = '\0'; - return (nvl); - break; - case ZFS_IOC_SPACE_SNAPS: - nvl = fnvlist_alloc(); - fnvlist_add_string(nvl, "firstsnap", zc->zc_value); - if (innvl != NULL) - nvlist_free(innvl); - return (nvl); - break; - case ZFS_IOC_DESTROY_SNAPS: - if (innvl == NULL && cflag == ZFS_CMD_COMPAT_DEADMAN) - goto out; - nvl = fnvlist_alloc(); - if (innvl != NULL) { - fnvlist_add_nvlist(nvl, "snaps", innvl); - } else { - /* - * We are probably called by even older binaries, - * allocate and populate nvlist with recursive - * snapshots - */ - if (zfs_component_namecheck(zc->zc_value, NULL, - NULL) == 0) { - tmpnvl = fnvlist_alloc(); - if (dmu_get_recursive_snaps_nvl(zc->zc_name, - zc->zc_value, tmpnvl) == 0) - fnvlist_add_nvlist(nvl, "snaps", - tmpnvl); - nvlist_free(tmpnvl); - } - } - if (innvl != NULL) - nvlist_free(innvl); - /* strip dataset part from zc->zc_name */ - zc->zc_name[strcspn(zc->zc_name, "/@")] = '\0'; - return (nvl); - break; - case ZFS_IOC_HOLD: - nvl = fnvlist_alloc(); - tmpnvl = fnvlist_alloc(); - if (zc->zc_cleanup_fd != -1) - fnvlist_add_int32(nvl, "cleanup_fd", - (int32_t)zc->zc_cleanup_fd); - if (zc->zc_cookie) { - hnvl = fnvlist_alloc(); - if (dmu_get_recursive_snaps_nvl(zc->zc_name, - zc->zc_value, hnvl) == 0) { - elem = NULL; - while ((elem = nvlist_next_nvpair(hnvl, - elem)) != NULL) { - nvlist_add_string(tmpnvl, - nvpair_name(elem), zc->zc_string); - } - } - nvlist_free(hnvl); - } else { - snapname = kmem_asprintf("%s@%s", zc->zc_name, - zc->zc_value); - nvlist_add_string(tmpnvl, snapname, zc->zc_string); - kmem_free(snapname, strlen(snapname + 1)); - } - fnvlist_add_nvlist(nvl, "holds", tmpnvl); - nvlist_free(tmpnvl); - if (innvl != NULL) - nvlist_free(innvl); - /* strip dataset part from zc->zc_name */ - zc->zc_name[strcspn(zc->zc_name, "/@")] = '\0'; - return (nvl); - break; - case ZFS_IOC_RELEASE: - nvl = fnvlist_alloc(); - tmpnvl = fnvlist_alloc(); - if (zc->zc_cookie) { - hnvl = fnvlist_alloc(); - if (dmu_get_recursive_snaps_nvl(zc->zc_name, - zc->zc_value, hnvl) == 0) { - elem = NULL; - while ((elem = nvlist_next_nvpair(hnvl, - elem)) != NULL) { - fnvlist_add_boolean(tmpnvl, - zc->zc_string); - fnvlist_add_nvlist(nvl, - nvpair_name(elem), tmpnvl); - } - } - nvlist_free(hnvl); - } else { - snapname = kmem_asprintf("%s@%s", zc->zc_name, - zc->zc_value); - fnvlist_add_boolean(tmpnvl, zc->zc_string); - fnvlist_add_nvlist(nvl, snapname, tmpnvl); - kmem_free(snapname, strlen(snapname + 1)); - } - nvlist_free(tmpnvl); - if (innvl != NULL) - nvlist_free(innvl); - /* strip dataset part from zc->zc_name */ - zc->zc_name[strcspn(zc->zc_name, "/@")] = '\0'; - return (nvl); - break; - } -out: - return (innvl); -} - -nvlist_t * -zfs_ioctl_compat_outnvl(zfs_cmd_t *zc, nvlist_t *outnvl, const int vec, - const int cflag) -{ - nvlist_t *tmpnvl; - - if (cflag == ZFS_CMD_COMPAT_NONE || cflag == ZFS_CMD_COMPAT_LZC || - cflag == ZFS_CMD_COMPAT_ZCMD || cflag == ZFS_CMD_COMPAT_EDBP || - cflag == ZFS_CMD_COMPAT_RESUME || cflag == ZFS_CMD_COMPAT_INLANES) - return (outnvl); - - switch (vec) { - case ZFS_IOC_SPACE_SNAPS: - (void) nvlist_lookup_uint64(outnvl, "used", &zc->zc_cookie); - (void) nvlist_lookup_uint64(outnvl, "compressed", - &zc->zc_objset_type); - (void) nvlist_lookup_uint64(outnvl, "uncompressed", - &zc->zc_perm_action); - nvlist_free(outnvl); - /* return empty outnvl */ - tmpnvl = fnvlist_alloc(); - return (tmpnvl); - break; - case ZFS_IOC_CREATE: - case ZFS_IOC_CLONE: - case ZFS_IOC_HOLD: - case ZFS_IOC_RELEASE: - nvlist_free(outnvl); - /* return empty outnvl */ - tmpnvl = fnvlist_alloc(); - return (tmpnvl); - break; - } - - return (outnvl); -} -#endif /* KERNEL */ diff --git a/lib/libzfs_core/Makefile.am b/lib/libzfs_core/Makefile.am index b2101e211..64cb76f19 100644 --- a/lib/libzfs_core/Makefile.am +++ b/lib/libzfs_core/Makefile.am @@ -11,11 +11,27 @@ include $(top_srcdir)/config/Abigail.am USER_C = \ libzfs_core.c +if BUILD_LINUX +USER_C += \ + os/linux/libzfs_core_ioctl.c +endif + +if BUILD_FREEBSD +DEFAULT_INCLUDES += -I$(top_srcdir)/include/os/freebsd/zfs + +USER_C += \ + os/freebsd/libzfs_core_ioctl.c + +VPATH += $(top_srcdir)/module/os/freebsd/zfs + +nodist_libzfs_core_la_SOURCES = zfs_ioctl_compat.c +endif + libzfs_core_la_SOURCES = $(USER_C) libzfs_core_la_LIBADD = \ - $(abs_top_builddir)/lib/libzutil/libzutil.la \ - $(abs_top_builddir)/lib/libnvpair/libnvpair.la + $(abs_top_builddir)/lib/libnvpair/libnvpair.la \ + $(abs_top_builddir)/lib/libspl/libspl.la libzfs_core_la_LIBADD += $(LTLIBINTL) diff --git a/lib/libzfs_core/libzfs_core.abi b/lib/libzfs_core/libzfs_core.abi index 6abec9a8a..b3ae682ef 100644 --- a/lib/libzfs_core/libzfs_core.abi +++ b/lib/libzfs_core/libzfs_core.abi @@ -1,11 +1,5 @@ <abi-corpus architecture='elf-amd-x86_64' soname='libzfs_core.so.3'> <elf-needed> - <dependency name='libuuid.so.1'/> - <dependency name='libz.so.1'/> - <dependency name='librt.so.1'/> - <dependency name='libm.so.6'/> - <dependency name='libblkid.so.1'/> - <dependency name='libudev.so.1'/> <dependency name='libnvpair.so.3'/> <dependency name='libpthread.so.0'/> <dependency name='libc.so.6'/> @@ -135,38 +129,11 @@ <elf-symbol name='atomic_swap_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='atomic_swap_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='atomic_swap_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_destroy_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_insert_here' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_is_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_nearest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_swap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_update_gt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_update_lt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_alloc_and_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_alloc_and_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_err_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_rescan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_use_whole_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='efi_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='get_system_hostid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='getexecname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='getextmntent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='getmntany' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='getzoneid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='is_mpath_whole_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libspl_assertf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_core_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libzfs_core_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -204,6 +171,7 @@ <elf-symbol name='lzc_get_holds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='lzc_hold' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='lzc_initialize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='lzc_ioctl_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='lzc_load_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='lzc_pool_checkpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='lzc_pool_checkpoint_discard' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> @@ -243,355 +211,10 @@ <elf-symbol name='spl_pagesize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='strlcat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='strlcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_abandon' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_dispatch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_member' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_suspended' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='tpool_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='update_vdev_config_dev_strs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_append_partition' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_basename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_dev_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_dev_is_dm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_dev_is_whole_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_device_get_devid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_device_get_physical' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_dirnamelen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_get_enclosure_sysfs_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_get_underlying_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_ioctl_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_isnumber' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_nicebytes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_nicenum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_nicenum_format' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_niceraw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_nicetime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_resolve_shortname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_strcmp_pathname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_strip_partition' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zfs_strip_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zpool_default_search_paths' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zpool_dump_ddt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zpool_find_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zpool_history_unpack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zpool_label_disk_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zpool_read_label' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='zpool_search_import' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> </elf-function-symbols> <elf-variable-symbols> - <elf-symbol name='efi_debug' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='libspl_assert_ok' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> </elf-variable-symbols> - <abi-instr version='1.0' address-size='64' path='../../module/avl/avl.c' language='LANG_C99'> - <array-type-def dimensions='1' type-id='bf311473' size-in-bits='128' id='f0f65199'> - <subrange length='2' type-id='7359adad' id='52efc4ef'/> - </array-type-def> - <typedef-decl name='avl_tree_t' type-id='b351119f' id='f20fbd51'/> - <class-decl name='avl_tree' size-in-bits='320' is-struct='yes' visibility='default' id='b351119f'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='avl_root' type-id='bf311473' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='avl_compar' type-id='585e1de9' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='avl_offset' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='avl_numnodes' type-id='ee1f298e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='avl_pad' type-id='b59d7dce' visibility='default'/> - </data-member> - </class-decl> - <class-decl name='avl_node' size-in-bits='192' is-struct='yes' visibility='default' id='428b67b3'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='avl_child' type-id='f0f65199' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='avl_pcb' type-id='e475ab95' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='uintptr_t' type-id='7359adad' id='e475ab95'/> - <typedef-decl name='ulong_t' type-id='7359adad' id='ee1f298e'/> - <typedef-decl name='avl_index_t' type-id='e475ab95' id='fba6cb51'/> - <pointer-type-def type-id='fba6cb51' size-in-bits='64' id='32adbf30'/> - <pointer-type-def type-id='428b67b3' size-in-bits='64' id='bf311473'/> - <pointer-type-def type-id='f20fbd51' size-in-bits='64' id='a3681dea'/> - <pointer-type-def type-id='96ee24a5' size-in-bits='64' id='585e1de9'/> - <pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/> - <function-decl name='avl_destroy_nodes' mangled-name='avl_destroy_nodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy_nodes'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='63e171df' name='cookie'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_is_empty' mangled-name='avl_is_empty' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_is_empty'> - <parameter type-id='a3681dea' name='tree'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='avl_numnodes' mangled-name='avl_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_numnodes'> - <parameter type-id='a3681dea' name='tree'/> - <return type-id='ee1f298e'/> - </function-decl> - <function-decl name='avl_destroy' mangled-name='avl_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy'> - <parameter type-id='a3681dea' name='tree'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_create' mangled-name='avl_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_create'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='585e1de9' name='compar'/> - <parameter type-id='b59d7dce' name='size'/> - <parameter type-id='b59d7dce' name='offset'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_swap' mangled-name='avl_swap' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_swap'> - <parameter type-id='a3681dea' name='tree1'/> - <parameter type-id='a3681dea' name='tree2'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_update' mangled-name='avl_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update'> - <parameter type-id='a3681dea' name='t'/> - <parameter type-id='eaa32e2f' name='obj'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='avl_update_gt' mangled-name='avl_update_gt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_gt'> - <parameter type-id='a3681dea' name='t'/> - <parameter type-id='eaa32e2f' name='obj'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='avl_update_lt' mangled-name='avl_update_lt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_lt'> - <parameter type-id='a3681dea' name='t'/> - <parameter type-id='eaa32e2f' name='obj'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='avl_remove' mangled-name='avl_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_remove'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='data'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_add' mangled-name='avl_add' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_add'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='new_node'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_insert_here' mangled-name='avl_insert_here' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert_here'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='new_data'/> - <parameter type-id='eaa32e2f' name='here'/> - <parameter type-id='95e97e5e' name='direction'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_insert' mangled-name='avl_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='new_data'/> - <parameter type-id='fba6cb51' name='where'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_find' mangled-name='avl_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_find'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='value'/> - <parameter type-id='32adbf30' name='where'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_nearest' mangled-name='avl_nearest' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_nearest'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='fba6cb51' name='where'/> - <parameter type-id='95e97e5e' name='direction'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_last' mangled-name='avl_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_last'> - <parameter type-id='a3681dea' name='tree'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_first' mangled-name='avl_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_first'> - <parameter type-id='a3681dea' name='tree'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_walk' mangled-name='avl_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_walk'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='oldnode'/> - <parameter type-id='95e97e5e' name='left'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-type size-in-bits='64' id='96ee24a5'> - <parameter type-id='eaa32e2f'/> - <parameter type-id='eaa32e2f'/> - <return type-id='95e97e5e'/> - </function-type> - <type-decl name='int' size-in-bits='32' id='95e97e5e'/> - <typedef-decl name='boolean_t' type-id='40ed39d2' id='c19b74c3'/> - <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/> - <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/> - <type-decl name='void' id='48b5725f'/> - <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/> - <enum-decl name='__anonymous_enum__1' is-anonymous='yes' id='40ed39d2'> - <underlying-type type-id='9cac1fee'/> - <enumerator name='B_FALSE' value='0'/> - <enumerator name='B_TRUE' value='1'/> - </enum-decl> - </abi-instr> - <abi-instr version='1.0' address-size='64' path='rdwr_efi.c' language='LANG_C99'> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='288' id='16e6f2c6'> - <subrange length='36' type-id='7359adad' id='ae666bde'/> - </array-type-def> - <array-type-def dimensions='1' type-id='a65ae39c' size-in-bits='960' id='fa198beb'> - <subrange length='1' type-id='7359adad' id='52f813b4'/> - </array-type-def> - <array-type-def dimensions='1' type-id='3502e3ff' size-in-bits='384' id='dba89ba3'> - <subrange length='12' type-id='7359adad' id='84827bdc'/> - </array-type-def> - <array-type-def dimensions='1' type-id='3502e3ff' size-in-bits='256' id='01d84ed4'> - <subrange length='8' type-id='7359adad' id='56e0c0b1'/> - </array-type-def> - <class-decl name='dk_gpt' size-in-bits='1920' is-struct='yes' visibility='default' id='dd4a2e5a'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='efi_version' type-id='3502e3ff' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='32'> - <var-decl name='efi_nparts' type-id='3502e3ff' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='efi_part_size' type-id='3502e3ff' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='96'> - <var-decl name='efi_lbasize' type-id='3502e3ff' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='efi_last_lba' type-id='804dc465' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='efi_first_u_lba' type-id='804dc465' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='efi_last_u_lba' type-id='804dc465' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='320'> - <var-decl name='efi_disk_uguid' type-id='214f32ea' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='448'> - <var-decl name='efi_flags' type-id='3502e3ff' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='480'> - <var-decl name='efi_reserved1' type-id='3502e3ff' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='512'> - <var-decl name='efi_altern_lba' type-id='804dc465' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='576'> - <var-decl name='efi_reserved' type-id='dba89ba3' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='960'> - <var-decl name='efi_parts' type-id='fa198beb' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='diskaddr_t' type-id='9b3ff54f' id='804dc465'/> - <typedef-decl name='longlong_t' type-id='1eb56b1e' id='9b3ff54f'/> - <class-decl name='uuid' size-in-bits='128' is-struct='yes' visibility='default' id='214f32ea'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='time_low' type-id='8f92235e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='32'> - <var-decl name='time_mid' type-id='149c6638' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='48'> - <var-decl name='time_hi_and_version' type-id='149c6638' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='clock_seq_hi_and_reserved' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='72'> - <var-decl name='clock_seq_low' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='80'> - <var-decl name='node_addr' type-id='0f562bd0' visibility='default'/> - </data-member> - </class-decl> - <class-decl name='dk_part' size-in-bits='960' is-struct='yes' visibility='default' id='a65ae39c'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='p_start' type-id='804dc465' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='p_size' type-id='804dc465' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='p_guid' type-id='214f32ea' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='p_tag' type-id='d908a348' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='272'> - <var-decl name='p_flag' type-id='d908a348' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='288'> - <var-decl name='p_name' type-id='16e6f2c6' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='576'> - <var-decl name='p_uguid' type-id='214f32ea' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='704'> - <var-decl name='p_resv' type-id='01d84ed4' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='ushort_t' type-id='8efea9e5' id='d908a348'/> - <pointer-type-def type-id='dd4a2e5a' size-in-bits='64' id='0d8119a8'/> - <pointer-type-def type-id='0d8119a8' size-in-bits='64' id='c43b27a6'/> - <var-decl name='efi_debug' type-id='95e97e5e' mangled-name='efi_debug' visibility='default' elf-symbol-id='efi_debug'/> - <function-decl name='efi_err_check' mangled-name='efi_err_check' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_err_check'> - <parameter type-id='0d8119a8' name='vtoc'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='efi_type' mangled-name='efi_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_type'> - <parameter type-id='95e97e5e' name='fd'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='efi_free' mangled-name='efi_free' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_free'> - <parameter type-id='0d8119a8' name='ptr'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='efi_write' mangled-name='efi_write' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_write'> - <parameter type-id='95e97e5e' name='fd'/> - <parameter type-id='0d8119a8' name='vtoc'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='efi_use_whole_disk' mangled-name='efi_use_whole_disk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_use_whole_disk'> - <parameter type-id='95e97e5e' name='fd'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='efi_rescan' mangled-name='efi_rescan' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_rescan'> - <parameter type-id='95e97e5e' name='fd'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='efi_alloc_and_read' mangled-name='efi_alloc_and_read' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_alloc_and_read'> - <parameter type-id='95e97e5e' name='fd'/> - <parameter type-id='c43b27a6' name='vtoc'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='efi_alloc_and_init' mangled-name='efi_alloc_and_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='efi_alloc_and_init'> - <parameter type-id='95e97e5e' name='fd'/> - <parameter type-id='8f92235e' name='nparts'/> - <parameter type-id='c43b27a6' name='vtoc'/> - <return type-id='95e97e5e'/> - </function-decl> - <type-decl name='char' size-in-bits='8' id='a84c031d'/> - <type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/> - <typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/> - <typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/> - <typedef-decl name='uint8_t' type-id='c51d6389' id='b96825af'/> - <typedef-decl name='uint_t' type-id='f0981eeb' id='3502e3ff'/> - <array-type-def dimensions='1' type-id='b96825af' size-in-bits='48' id='0f562bd0'> - <subrange length='6' type-id='7359adad' id='52fa524b'/> - </array-type-def> - <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/> - <typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/> - <typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/> - <typedef-decl name='__uint8_t' type-id='002ac4a6' id='c51d6389'/> - <type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/> - <type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/> - </abi-instr> <abi-instr version='1.0' address-size='64' path='assert.c' language='LANG_C99'> <type-decl name='variadic parameter type' id='2c1145c5'/> <var-decl name='libspl_assert_ok' type-id='95e97e5e' mangled-name='libspl_assert_ok' visibility='default' elf-symbol-id='libspl_assert_ok'/> @@ -604,17 +227,26 @@ <return type-id='48b5725f'/> </function-decl> <pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/> + <type-decl name='int' size-in-bits='32' id='95e97e5e'/> + <type-decl name='void' id='48b5725f'/> <qualified-type-def type-id='a84c031d' const='yes' id='9b45d938'/> + <type-decl name='char' size-in-bits='8' id='a84c031d'/> </abi-instr> <abi-instr version='1.0' address-size='64' path='atomic.c' language='LANG_C99'> + <type-decl name='long int' size-in-bits='64' id='bd54fe1a'/> + <type-decl name='short int' size-in-bits='16' id='a2185560'/> <type-decl name='signed char' size-in-bits='8' id='28577a57'/> <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/> + <typedef-decl name='ulong_t' type-id='7359adad' id='ee1f298e'/> <typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/> <typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/> + <typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/> + <typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/> <typedef-decl name='int16_t' type-id='03896e23' id='23bd8cb5'/> <typedef-decl name='__int16_t' type-id='a2185560' id='03896e23'/> <typedef-decl name='int8_t' type-id='2171a512' id='ee31ee44'/> <typedef-decl name='__int8_t' type-id='28577a57' id='2171a512'/> + <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/> <qualified-type-def type-id='149c6638' volatile='yes' id='5120c5f7'/> <pointer-type-def type-id='5120c5f7' size-in-bits='64' id='93977ae7'/> <qualified-type-def type-id='8f92235e' volatile='yes' id='430e0681'/> @@ -943,12 +575,16 @@ <parameter type-id='ee1f298e' name='des'/> <return type-id='ee1f298e'/> </function-decl> - <type-decl name='long int' size-in-bits='64' id='bd54fe1a'/> - <type-decl name='short int' size-in-bits='16' id='a2185560'/> <typedef-decl name='int32_t' type-id='33f57a65' id='3ff5601b'/> - <typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/> + <typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/> + <typedef-decl name='uint8_t' type-id='c51d6389' id='b96825af'/> + <typedef-decl name='uint_t' type-id='f0981eeb' id='3502e3ff'/> + <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/> <typedef-decl name='__int32_t' type-id='95e97e5e' id='33f57a65'/> - <typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/> + <typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/> + <typedef-decl name='__uint8_t' type-id='002ac4a6' id='c51d6389'/> + <type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/> + <type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/> </abi-instr> <abi-instr version='1.0' address-size='64' path='getexecname.c' language='LANG_C99'> <function-decl name='getexecname' mangled-name='getexecname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getexecname'> @@ -968,6 +604,7 @@ <var-decl name='list_head' type-id='b0b5e45e' visibility='default'/> </data-member> </class-decl> + <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/> <class-decl name='list_node' size-in-bits='128' is-struct='yes' visibility='default' id='b0b5e45e'> <data-member access='public' layout-offset-in-bits='0'> <var-decl name='next' type-id='b03eadb4' visibility='default'/> @@ -1068,12 +705,12 @@ </abi-instr> <abi-instr version='1.0' address-size='64' path='mkdirp.c' language='LANG_C99'> <typedef-decl name='mode_t' type-id='e1c52942' id='d50d396c'/> + <typedef-decl name='__mode_t' type-id='f0981eeb' id='e1c52942'/> <function-decl name='mkdirp' mangled-name='mkdirp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mkdirp'> <parameter type-id='80f4b756' name='d'/> <parameter type-id='d50d396c' name='mode'/> <return type-id='95e97e5e'/> </function-decl> - <typedef-decl name='__mode_t' type-id='f0981eeb' id='e1c52942'/> </abi-instr> <abi-instr version='1.0' address-size='64' path='os/linux/gethostid.c' language='LANG_C99'> <function-decl name='get_system_hostid' mangled-name='get_system_hostid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_system_hostid'> @@ -1160,7 +797,6 @@ <typedef-decl name='__dev_t' type-id='7359adad' id='35ed8932'/> <typedef-decl name='__ino64_t' type-id='7359adad' id='71288a47'/> <typedef-decl name='__nlink_t' type-id='7359adad' id='80f0b9df'/> - <typedef-decl name='__mode_t' type-id='f0981eeb' id='e1c52942'/> <typedef-decl name='__uid_t' type-id='f0981eeb' id='cc5fcceb'/> <typedef-decl name='__gid_t' type-id='f0981eeb' id='d94ec6d9'/> <typedef-decl name='__off_t' type-id='bd54fe1a' id='79989e9c'/> @@ -1352,265 +988,6 @@ <return type-id='48b5725f'/> </function-decl> </abi-instr> - <abi-instr version='1.0' address-size='64' path='thread_pool.c' language='LANG_C99'> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='320' id='36c46961'> - <subrange length='40' type-id='7359adad' id='8f80b239'/> - </array-type-def> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='384' id='36d7f119'> - <subrange length='48' type-id='7359adad' id='8f6d2a81'/> - </array-type-def> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='448' id='6093ff7c'> - <subrange length='56' type-id='7359adad' id='f8137894'/> - </array-type-def> - <type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/> - <type-decl name='long long unsigned int' size-in-bits='64' id='3a47d82b'/> - <type-decl name='short int' size-in-bits='16' id='a2185560'/> - <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='64' id='0d532ec1'> - <subrange length='2' type-id='7359adad' id='52efc4ef'/> - </array-type-def> - <class-decl name='tpool' size-in-bits='2496' is-struct='yes' visibility='default' id='88d1b7f9'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='tp_forw' type-id='9cf59a50' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='tp_back' type-id='9cf59a50' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='tp_mutex' type-id='7a6844eb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='448'> - <var-decl name='tp_busycv' type-id='62fab762' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='832'> - <var-decl name='tp_workcv' type-id='62fab762' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='1216'> - <var-decl name='tp_waitcv' type-id='62fab762' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='1600'> - <var-decl name='tp_active' type-id='ad33e5e7' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='1664'> - <var-decl name='tp_head' type-id='f32b30e4' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='1728'> - <var-decl name='tp_tail' type-id='f32b30e4' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='1792'> - <var-decl name='tp_attr' type-id='7d8569fd' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='2240'> - <var-decl name='tp_flags' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='2272'> - <var-decl name='tp_linger' type-id='3502e3ff' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='2304'> - <var-decl name='tp_njobs' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='2336'> - <var-decl name='tp_minimum' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='2368'> - <var-decl name='tp_maximum' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='2400'> - <var-decl name='tp_current' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='2432'> - <var-decl name='tp_idle' type-id='95e97e5e' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='tpool_t' type-id='88d1b7f9' id='b1bbf10d'/> - <typedef-decl name='pthread_mutex_t' type-id='c4794498' id='7a6844eb'/> - <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' id='c4794498'> - <data-member access='private'> - <var-decl name='__data' type-id='4c734837' visibility='default'/> - </data-member> - <data-member access='private'> - <var-decl name='__size' type-id='36c46961' visibility='default'/> - </data-member> - <data-member access='private'> - <var-decl name='__align' type-id='bd54fe1a' visibility='default'/> - </data-member> - </union-decl> - <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' id='4c734837'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='__lock' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='32'> - <var-decl name='__count' type-id='f0981eeb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='__owner' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='96'> - <var-decl name='__nusers' type-id='f0981eeb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='__kind' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='160'> - <var-decl name='__spins' type-id='a2185560' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='176'> - <var-decl name='__elision' type-id='a2185560' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='__list' type-id='518fb49c' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='__pthread_list_t' type-id='0e01899c' id='518fb49c'/> - <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' id='0e01899c'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='__prev' type-id='4d98cd5a' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='__next' type-id='4d98cd5a' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='pthread_cond_t' type-id='be6ed7a7' id='62fab762'/> - <union-decl name='__anonymous_union__1' size-in-bits='384' is-anonymous='yes' visibility='default' id='be6ed7a7'> - <data-member access='private'> - <var-decl name='__data' type-id='c987b47c' visibility='default'/> - </data-member> - <data-member access='private'> - <var-decl name='__size' type-id='36d7f119' visibility='default'/> - </data-member> - <data-member access='private'> - <var-decl name='__align' type-id='1eb56b1e' visibility='default'/> - </data-member> - </union-decl> - <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' id='c987b47c'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='' type-id='2516de83' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='' type-id='fc82e0c5' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='__g_refs' type-id='0d532ec1' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='__g_size' type-id='0d532ec1' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='__g1_orig_size' type-id='f0981eeb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='288'> - <var-decl name='__wrefs' type-id='f0981eeb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='320'> - <var-decl name='__g_signals' type-id='0d532ec1' visibility='default'/> - </data-member> - </class-decl> - <union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' id='2516de83'> - <data-member access='private'> - <var-decl name='__wseq' type-id='3a47d82b' visibility='default'/> - </data-member> - <data-member access='private'> - <var-decl name='__wseq32' type-id='2e971cfd' visibility='default'/> - </data-member> - </union-decl> - <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' id='2e971cfd'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='__low' type-id='f0981eeb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='32'> - <var-decl name='__high' type-id='f0981eeb' visibility='default'/> - </data-member> - </class-decl> - <union-decl name='__anonymous_union__3' size-in-bits='64' is-anonymous='yes' visibility='default' id='fc82e0c5'> - <data-member access='private'> - <var-decl name='__g1_start' type-id='3a47d82b' visibility='default'/> - </data-member> - <data-member access='private'> - <var-decl name='__g1_start32' type-id='2e971cfd' visibility='default'/> - </data-member> - </union-decl> - <class-decl name='tpool_active' size-in-bits='128' is-struct='yes' visibility='default' id='c8d086f4'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='tpa_next' type-id='ad33e5e7' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='tpa_tid' type-id='4051f5e7' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='tpool_active_t' type-id='c8d086f4' id='6fcda10e'/> - <typedef-decl name='pthread_t' type-id='7359adad' id='4051f5e7'/> - <class-decl name='tpool_job' size-in-bits='192' is-struct='yes' visibility='default' id='3b8579e5'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='tpj_next' type-id='f32b30e4' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='tpj_func' type-id='b7f9d8e6' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='tpj_arg' type-id='eaa32e2f' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='tpool_job_t' type-id='3b8579e5' id='66a0afc9'/> - <typedef-decl name='pthread_attr_t' type-id='b63afacd' id='7d8569fd'/> - <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' id='b63afacd'> - <data-member access='private'> - <var-decl name='__size' type-id='6093ff7c' visibility='default'/> - </data-member> - <data-member access='private'> - <var-decl name='__align' type-id='bd54fe1a' visibility='default'/> - </data-member> - </union-decl> - <pointer-type-def type-id='0e01899c' size-in-bits='64' id='4d98cd5a'/> - <pointer-type-def type-id='7d8569fd' size-in-bits='64' id='7347a39e'/> - <pointer-type-def type-id='6fcda10e' size-in-bits='64' id='ad33e5e7'/> - <pointer-type-def type-id='66a0afc9' size-in-bits='64' id='f32b30e4'/> - <pointer-type-def type-id='b1bbf10d' size-in-bits='64' id='9cf59a50'/> - <pointer-type-def type-id='c5c76c9c' size-in-bits='64' id='b7f9d8e6'/> - <function-decl name='tpool_member' mangled-name='tpool_member' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_member'> - <parameter type-id='9cf59a50' name='tpool'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='tpool_resume' mangled-name='tpool_resume' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_resume'> - <parameter type-id='9cf59a50' name='tpool'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='tpool_suspended' mangled-name='tpool_suspended' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_suspended'> - <parameter type-id='9cf59a50' name='tpool'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='tpool_suspend' mangled-name='tpool_suspend' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_suspend'> - <parameter type-id='9cf59a50' name='tpool'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='tpool_wait' mangled-name='tpool_wait' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_wait'> - <parameter type-id='9cf59a50' name='tpool'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='tpool_abandon' mangled-name='tpool_abandon' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_abandon'> - <parameter type-id='9cf59a50' name='tpool'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='tpool_destroy' mangled-name='tpool_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_destroy'> - <parameter type-id='9cf59a50' name='tpool'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='tpool_dispatch' mangled-name='tpool_dispatch' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_dispatch'> - <parameter type-id='9cf59a50' name='tpool'/> - <parameter type-id='b7f9d8e6' name='func'/> - <parameter type-id='eaa32e2f' name='arg'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='tpool_create' mangled-name='tpool_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tpool_create'> - <parameter type-id='3502e3ff' name='min_threads'/> - <parameter type-id='3502e3ff' name='max_threads'/> - <parameter type-id='3502e3ff' name='linger'/> - <parameter type-id='7347a39e' name='attr'/> - <return type-id='9cf59a50'/> - </function-decl> - <function-type size-in-bits='64' id='c5c76c9c'> - <parameter type-id='eaa32e2f'/> - <return type-id='48b5725f'/> - </function-type> - </abi-instr> <abi-instr version='1.0' address-size='64' path='libzfs_core.c' language='LANG_C99'> <type-decl name='char' size-in-bits='8' id='a84c031d'/> <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2048' id='d1617432'> @@ -2542,7 +1919,7 @@ <return type-id='95e97e5e'/> </function-decl> </abi-instr> - <abi-instr version='1.0' address-size='64' path='os/linux/zutil_compat.c' language='LANG_C99'> + <abi-instr version='1.0' address-size='64' path='os/linux/libzfs_core_ioctl.c' language='LANG_C99'> <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='32768' id='d16c6df4'> <subrange length='4096' type-id='7359adad' id='bc1b5ddc'/> </array-type-def> @@ -2772,290 +2149,11 @@ </data-member> </class-decl> <pointer-type-def type-id='a5559cdd' size-in-bits='64' id='e4ec4540'/> - <function-decl name='zfs_ioctl_fd' mangled-name='zfs_ioctl_fd' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_ioctl_fd'> + <function-decl name='lzc_ioctl_fd' mangled-name='lzc_ioctl_fd' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_ioctl_fd'> <parameter type-id='95e97e5e' name='fd'/> <parameter type-id='7359adad' name='request'/> <parameter type-id='e4ec4540' name='zc'/> <return type-id='95e97e5e'/> </function-decl> </abi-instr> - <abi-instr version='1.0' address-size='64' path='os/linux/zutil_device_path_os.c' language='LANG_C99'> - <function-decl name='is_mpath_whole_disk' mangled-name='is_mpath_whole_disk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_mpath_whole_disk'> - <parameter type-id='80f4b756' name='path'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='zfs_get_underlying_path' mangled-name='zfs_get_underlying_path' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_get_underlying_path'> - <parameter type-id='80f4b756' name='dev_name'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='zfs_dev_is_whole_disk' mangled-name='zfs_dev_is_whole_disk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dev_is_whole_disk'> - <parameter type-id='80f4b756' name='dev_name'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='zfs_dev_is_dm' mangled-name='zfs_dev_is_dm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dev_is_dm'> - <parameter type-id='80f4b756' name='dev_name'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='zfs_get_enclosure_sysfs_path' mangled-name='zfs_get_enclosure_sysfs_path' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_get_enclosure_sysfs_path'> - <parameter type-id='80f4b756' name='dev_name'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='zfs_strip_path' mangled-name='zfs_strip_path' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_strip_path'> - <parameter type-id='26a90f95' name='path'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='zfs_strip_partition' mangled-name='zfs_strip_partition' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_strip_partition'> - <parameter type-id='26a90f95' name='path'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='zfs_append_partition' mangled-name='zfs_append_partition' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_append_partition'> - <parameter type-id='26a90f95' name='path'/> - <parameter type-id='b59d7dce' name='max_len'/> - <return type-id='95e97e5e'/> - </function-decl> - </abi-instr> - <abi-instr version='1.0' address-size='64' path='os/linux/zutil_import_os.c' language='LANG_C99'> - <class-decl name='udev_device' is-struct='yes' visibility='default' is-declaration-only='yes' id='640b33ca'/> - <qualified-type-def type-id='80f4b756' const='yes' id='b99c00c9'/> - <pointer-type-def type-id='b99c00c9' size-in-bits='64' id='13956559'/> - <pointer-type-def type-id='b59d7dce' size-in-bits='64' id='78c01427'/> - <pointer-type-def type-id='640b33ca' size-in-bits='64' id='b32bae08'/> - <function-decl name='update_vdev_config_dev_strs' mangled-name='update_vdev_config_dev_strs' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_vdev_config_dev_strs'> - <parameter type-id='5ce45b60' name='nv'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='zpool_label_disk_wait' mangled-name='zpool_label_disk_wait' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_label_disk_wait'> - <parameter type-id='80f4b756' name='path'/> - <parameter type-id='95e97e5e' name='timeout_ms'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zfs_device_get_devid' mangled-name='zfs_device_get_devid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_device_get_devid'> - <parameter type-id='b32bae08' name='dev'/> - <parameter type-id='26a90f95' name='bufptr'/> - <parameter type-id='b59d7dce' name='buflen'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zpool_default_search_paths' mangled-name='zpool_default_search_paths' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_default_search_paths'> - <parameter type-id='78c01427' name='count'/> - <return type-id='13956559'/> - </function-decl> - <function-decl name='zfs_dev_flush' mangled-name='zfs_dev_flush' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dev_flush'> - <parameter type-id='95e97e5e' name='fd'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zfs_device_get_physical' mangled-name='zfs_device_get_physical' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_device_get_physical'> - <parameter type-id='b32bae08' name='dev'/> - <parameter type-id='26a90f95' name='bufptr'/> - <parameter type-id='b59d7dce' name='buflen'/> - <return type-id='95e97e5e'/> - </function-decl> - </abi-instr> - <abi-instr version='1.0' address-size='64' path='zutil_device_path.c' language='LANG_C99'> - <type-decl name='long int' size-in-bits='64' id='bd54fe1a'/> - <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/> - <typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/> - <typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/> - <function-decl name='zfs_strcmp_pathname' mangled-name='zfs_strcmp_pathname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_strcmp_pathname'> - <parameter type-id='80f4b756' name='name'/> - <parameter type-id='80f4b756' name='cmp'/> - <parameter type-id='95e97e5e' name='wholedisk'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zfs_resolve_shortname' mangled-name='zfs_resolve_shortname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_resolve_shortname'> - <parameter type-id='80f4b756' name='name'/> - <parameter type-id='26a90f95' name='path'/> - <parameter type-id='b59d7dce' name='len'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zfs_dirnamelen' mangled-name='zfs_dirnamelen' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_dirnamelen'> - <parameter type-id='80f4b756' name='path'/> - <return type-id='79a0948f'/> - </function-decl> - <function-decl name='zfs_basename' mangled-name='zfs_basename' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_basename'> - <parameter type-id='80f4b756' name='path'/> - <return type-id='80f4b756'/> - </function-decl> - </abi-instr> - <abi-instr version='1.0' address-size='64' path='zutil_import.c' language='LANG_C99'> - <typedef-decl name='importargs_t' type-id='7ac83801' id='7a842a6b'/> - <class-decl name='importargs' size-in-bits='448' is-struct='yes' visibility='default' id='7ac83801'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='path' type-id='9b23c9ad' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='paths' type-id='95e97e5e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='poolname' type-id='80f4b756' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='guid' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='cachefile' type-id='80f4b756' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='320'> - <var-decl name='can_be_active' type-id='c19b74c3' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='352'> - <var-decl name='scan' type-id='c19b74c3' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='384'> - <var-decl name='policy' type-id='5ce45b60' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='pool_config_ops_t' type-id='1a21babe' id='b1e62775'/> - <class-decl name='pool_config_ops' size-in-bits='128' is-struct='yes' visibility='default' id='8b092c69'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='pco_refresh_config' type-id='e7c00489' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='pco_pool_active' type-id='9eadf5e0' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='refresh_config_func_t' type-id='29f040d2' id='b7c58eaa'/> - <typedef-decl name='pool_active_func_t' type-id='baa42fef' id='de5d1d8f'/> - <pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/> - <qualified-type-def type-id='8b092c69' const='yes' id='1a21babe'/> - <pointer-type-def type-id='7a842a6b' size-in-bits='64' id='07ee4a58'/> - <pointer-type-def type-id='95e97e5e' size-in-bits='64' id='7292109c'/> - <pointer-type-def type-id='de5d1d8f' size-in-bits='64' id='9eadf5e0'/> - <pointer-type-def type-id='b1e62775' size-in-bits='64' id='f095e320'/> - <pointer-type-def type-id='b7c58eaa' size-in-bits='64' id='e7c00489'/> - <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/> - <function-decl name='zpool_find_config' mangled-name='zpool_find_config' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_find_config'> - <parameter type-id='eaa32e2f' name='hdl'/> - <parameter type-id='80f4b756' name='target'/> - <parameter type-id='857bb57e' name='configp'/> - <parameter type-id='07ee4a58' name='args'/> - <parameter type-id='f095e320' name='pco'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zpool_search_import' mangled-name='zpool_search_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_search_import'> - <parameter type-id='eaa32e2f' name='hdl'/> - <parameter type-id='07ee4a58' name='import'/> - <parameter type-id='f095e320' name='pco'/> - <return type-id='5ce45b60'/> - </function-decl> - <function-decl name='zpool_read_label' mangled-name='zpool_read_label' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_read_label'> - <parameter type-id='95e97e5e' name='fd'/> - <parameter type-id='857bb57e' name='config'/> - <parameter type-id='7292109c' name='num_labels'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-type size-in-bits='64' id='baa42fef'> - <parameter type-id='eaa32e2f'/> - <parameter type-id='80f4b756'/> - <parameter type-id='9c313c2d'/> - <parameter type-id='37e3bd22'/> - <return type-id='95e97e5e'/> - </function-type> - <function-type size-in-bits='64' id='29f040d2'> - <parameter type-id='eaa32e2f'/> - <parameter type-id='5ce45b60'/> - <return type-id='5ce45b60'/> - </function-type> - </abi-instr> - <abi-instr version='1.0' address-size='64' path='zutil_nicenum.c' language='LANG_C99'> - <enum-decl name='zfs_nicenum_format' id='29cf1969'> - <underlying-type type-id='9cac1fee'/> - <enumerator name='ZFS_NICENUM_1024' value='0'/> - <enumerator name='ZFS_NICENUM_BYTES' value='1'/> - <enumerator name='ZFS_NICENUM_TIME' value='2'/> - <enumerator name='ZFS_NICENUM_RAW' value='3'/> - <enumerator name='ZFS_NICENUM_RAWTIME' value='4'/> - </enum-decl> - <function-decl name='zfs_nicebytes' mangled-name='zfs_nicebytes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicebytes'> - <parameter type-id='9c313c2d' name='num'/> - <parameter type-id='26a90f95' name='buf'/> - <parameter type-id='b59d7dce' name='buflen'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='zfs_niceraw' mangled-name='zfs_niceraw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_niceraw'> - <parameter type-id='9c313c2d' name='num'/> - <parameter type-id='26a90f95' name='buf'/> - <parameter type-id='b59d7dce' name='buflen'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='zfs_nicetime' mangled-name='zfs_nicetime' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicetime'> - <parameter type-id='9c313c2d' name='num'/> - <parameter type-id='26a90f95' name='buf'/> - <parameter type-id='b59d7dce' name='buflen'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='zfs_nicenum' mangled-name='zfs_nicenum' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicenum'> - <parameter type-id='9c313c2d' name='num'/> - <parameter type-id='26a90f95' name='buf'/> - <parameter type-id='b59d7dce' name='buflen'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='zfs_nicenum_format' mangled-name='zfs_nicenum_format' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_nicenum_format'> - <parameter type-id='9c313c2d' name='num'/> - <parameter type-id='26a90f95' name='buf'/> - <parameter type-id='b59d7dce' name='buflen'/> - <parameter type-id='29cf1969' name='format'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='zfs_isnumber' mangled-name='zfs_isnumber' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_isnumber'> - <parameter type-id='80f4b756' name='str'/> - <return type-id='c19b74c3'/> - </function-decl> - </abi-instr> - <abi-instr version='1.0' address-size='64' path='zutil_pool.c' language='LANG_C99'> - <array-type-def dimensions='1' type-id='853fd5dc' size-in-bits='32768' id='b505fc2f'> - <subrange length='64' type-id='7359adad' id='b10be967'/> - </array-type-def> - <typedef-decl name='ddt_stat_t' type-id='65242dfe' id='853fd5dc'/> - <class-decl name='ddt_stat' size-in-bits='512' is-struct='yes' visibility='default' id='65242dfe'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='dds_blocks' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='dds_lsize' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='dds_psize' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='dds_dsize' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='dds_ref_blocks' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='320'> - <var-decl name='dds_ref_lsize' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='384'> - <var-decl name='dds_ref_psize' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='448'> - <var-decl name='dds_ref_dsize' type-id='9c313c2d' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='ddt_histogram_t' type-id='bc2b3086' id='2d7fe832'/> - <class-decl name='ddt_histogram' size-in-bits='32768' is-struct='yes' visibility='default' id='bc2b3086'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='ddh_stat' type-id='b505fc2f' visibility='default'/> - </data-member> - </class-decl> - <qualified-type-def type-id='2d7fe832' const='yes' id='ec92d602'/> - <pointer-type-def type-id='ec92d602' size-in-bits='64' id='932720f8'/> - <qualified-type-def type-id='853fd5dc' const='yes' id='764c298c'/> - <pointer-type-def type-id='764c298c' size-in-bits='64' id='dfe59052'/> - <pointer-type-def type-id='857bb57e' size-in-bits='64' id='75be733c'/> - <pointer-type-def type-id='3502e3ff' size-in-bits='64' id='4dd26a40'/> - <function-decl name='zpool_history_unpack' mangled-name='zpool_history_unpack' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_history_unpack'> - <parameter type-id='26a90f95' name='buf'/> - <parameter type-id='9c313c2d' name='bytes_read'/> - <parameter type-id='5d6479ae' name='leftover'/> - <parameter type-id='75be733c' name='records'/> - <parameter type-id='4dd26a40' name='numrecords'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zpool_dump_ddt' mangled-name='zpool_dump_ddt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_dump_ddt'> - <parameter type-id='dfe59052' name='dds_total'/> - <parameter type-id='932720f8' name='ddh'/> - <return type-id='48b5725f'/> - </function-decl> - </abi-instr> </abi-corpus> diff --git a/lib/libzfs_core/libzfs_core.c b/lib/libzfs_core/libzfs_core.c index ce33b2153..cbe486d08 100644 --- a/lib/libzfs_core/libzfs_core.c +++ b/lib/libzfs_core/libzfs_core.c @@ -209,7 +209,7 @@ lzc_ioctl(zfs_ioc_t ioc, const char *name, } } - while (zfs_ioctl_fd(g_fd, ioc, &zc) != 0) { + while (lzc_ioctl_fd(g_fd, ioc, &zc) != 0) { /* * If ioctl exited with ENOMEM, we retry the ioctl after * increasing the size of the destination nvlist. @@ -298,7 +298,7 @@ lzc_promote(const char *fsname, char *snapnamebuf, int snapnamelen) VERIFY3S(g_fd, !=, -1); (void) strlcpy(zc.zc_name, fsname, sizeof (zc.zc_name)); - if (zfs_ioctl_fd(g_fd, ZFS_IOC_PROMOTE, &zc) != 0) { + if (lzc_ioctl_fd(g_fd, ZFS_IOC_PROMOTE, &zc) != 0) { int error = errno; if (error == EEXIST && snapnamebuf != NULL) (void) strlcpy(snapnamebuf, zc.zc_string, snapnamelen); @@ -317,7 +317,7 @@ lzc_rename(const char *source, const char *target) VERIFY3S(g_fd, !=, -1); (void) strlcpy(zc.zc_name, source, sizeof (zc.zc_name)); (void) strlcpy(zc.zc_value, target, sizeof (zc.zc_value)); - error = zfs_ioctl_fd(g_fd, ZFS_IOC_RENAME, &zc); + error = lzc_ioctl_fd(g_fd, ZFS_IOC_RENAME, &zc); if (error != 0) error = errno; return (error); @@ -468,7 +468,7 @@ lzc_exists(const char *dataset) VERIFY3S(g_fd, !=, -1); (void) strlcpy(zc.zc_name, dataset, sizeof (zc.zc_name)); - return (zfs_ioctl_fd(g_fd, ZFS_IOC_OBJSET_STATS, &zc) == 0); + return (lzc_ioctl_fd(g_fd, ZFS_IOC_OBJSET_STATS, &zc) == 0); } /* @@ -925,7 +925,7 @@ recv_impl(const char *snapname, nvlist_t *recvdprops, nvlist_t *localprops, zc.zc_nvlist_dst = (uint64_t)(uintptr_t) malloc(zc.zc_nvlist_dst_size); - error = zfs_ioctl_fd(g_fd, ZFS_IOC_RECV, &zc); + error = lzc_ioctl_fd(g_fd, ZFS_IOC_RECV, &zc); if (error != 0) { error = errno; } else { diff --git a/lib/libzutil/os/freebsd/zutil_compat.c b/lib/libzfs_core/os/freebsd/libzfs_core_ioctl.c index baaf4b598..b8394886d 100644 --- a/lib/libzutil/os/freebsd/zutil_compat.c +++ b/lib/libzfs_core/os/freebsd/libzfs_core_ioctl.c @@ -23,9 +23,8 @@ #include <sys/sysctl.h> #include <sys/zfs_ioctl.h> #include <os/freebsd/zfs/sys/zfs_ioctl_compat.h> -#include <libzutil.h> - #include <err.h> +#include <libzfs_core.h> int zfs_ioctl_version = ZFS_IOCVER_UNDEF; @@ -92,7 +91,7 @@ zcmd_ioctl_compat(int fd, int request, zfs_cmd_t *zc, const int cflag) * error is returned zc_nvlist_dst_size won't be updated. */ int -zfs_ioctl_fd(int fd, unsigned long request, zfs_cmd_t *zc) +lzc_ioctl_fd(int fd, unsigned long request, zfs_cmd_t *zc) { size_t oldsize; int ret, cflag = ZFS_CMD_COMPAT_NONE; diff --git a/lib/libzutil/os/linux/zutil_compat.c b/lib/libzfs_core/os/linux/libzfs_core_ioctl.c index 173ae9cb6..9b44a4e3b 100644 --- a/lib/libzutil/os/linux/zutil_compat.c +++ b/lib/libzfs_core/os/linux/libzfs_core_ioctl.c @@ -21,10 +21,10 @@ #include <sys/types.h> #include <sys/param.h> #include <sys/zfs_ioctl.h> -#include <libzutil.h> +#include <libzfs_core.h> int -zfs_ioctl_fd(int fd, unsigned long request, zfs_cmd_t *zc) +lzc_ioctl_fd(int fd, unsigned long request, zfs_cmd_t *zc) { return (ioctl(fd, request, zc)); } diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am index c9a55591e..3cc0c2f2e 100644 --- a/lib/libzpool/Makefile.am +++ b/lib/libzpool/Makefile.am @@ -214,9 +214,9 @@ nodist_libzpool_la_SOURCES = \ libzpool_la_LIBADD = \ $(abs_top_builddir)/lib/libicp/libicp.la \ $(abs_top_builddir)/lib/libunicode/libunicode.la \ - $(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \ $(abs_top_builddir)/lib/libnvpair/libnvpair.la \ - $(abs_top_builddir)/lib/libzstd/libzstd.la + $(abs_top_builddir)/lib/libzstd/libzstd.la \ + $(abs_top_builddir)/lib/libzutil/libzutil.la libzpool_la_LIBADD += $(LIBCLOCK_GETTIME) $(ZLIB_LIBS) -ldl -lm diff --git a/lib/libzpool/util.c b/lib/libzpool/util.c index 20cabe7c2..a2bdfec1d 100644 --- a/lib/libzpool/util.c +++ b/lib/libzpool/util.c @@ -245,39 +245,96 @@ refresh_config(void *unused, nvlist_t *tryconfig) return (spa_tryimport(tryconfig)); } +#if defined(__FreeBSD__) + +#include <sys/param.h> +#include <sys/sysctl.h> +#include <os/freebsd/zfs/sys/zfs_ioctl_compat.h> + static int -pool_active(void *unused, const char *name, uint64_t guid, - boolean_t *isactive) +pool_active(void *unused, const char *name, uint64_t guid, boolean_t *isactive) { - zfs_cmd_t *zcp; - nvlist_t *innvl; - char *packed = NULL; - size_t size = 0; - int fd, ret; + zfs_iocparm_t zp; + zfs_cmd_t *zc = NULL; + zfs_cmd_legacy_t *zcl = NULL; + unsigned long request; + int ret; + + int fd = open(ZFS_DEV, O_RDWR | O_CLOEXEC); + if (fd < 0) + return (-1); /* - * Use ZFS_IOC_POOL_SYNC to confirm if a pool is active + * Use ZFS_IOC_POOL_STATS to check if the pool is active. We want to + * avoid adding a dependency on libzfs_core solely for this ioctl(), + * therefore we manually craft the stats command. Note that the command + * ID is identical between the openzfs and legacy ioctl() formats. */ + int ver = ZFS_IOCVER_NONE; + size_t ver_size = sizeof (ver); - fd = open(ZFS_DEV, O_RDWR | O_CLOEXEC); - if (fd < 0) - return (-1); + sysctlbyname("vfs.zfs.version.ioctl", &ver, &ver_size, NULL, 0); + + switch (ver) { + case ZFS_IOCVER_OZFS: + zc = umem_zalloc(sizeof (zfs_cmd_t), UMEM_NOFAIL); + + (void) strlcpy(zc->zc_name, name, sizeof (zc->zc_name)); + zp.zfs_cmd = (uint64_t)(uintptr_t)zc; + zp.zfs_cmd_size = sizeof (zfs_cmd_t); + zp.zfs_ioctl_version = ZFS_IOCVER_OZFS; + + request = _IOWR('Z', ZFS_IOC_POOL_STATS, zfs_iocparm_t); + ret = ioctl(fd, request, &zp); + + free((void *)(uintptr_t)zc->zc_nvlist_dst); + umem_free(zc, sizeof (zfs_cmd_t)); + + break; + case ZFS_IOCVER_LEGACY: + zcl = umem_zalloc(sizeof (zfs_cmd_legacy_t), UMEM_NOFAIL); + + (void) strlcpy(zcl->zc_name, name, sizeof (zcl->zc_name)); + zp.zfs_cmd = (uint64_t)(uintptr_t)zcl; + zp.zfs_cmd_size = sizeof (zfs_cmd_legacy_t); + zp.zfs_ioctl_version = ZFS_IOCVER_LEGACY; + + request = _IOWR('Z', ZFS_IOC_POOL_STATS, zfs_iocparm_t); + ret = ioctl(fd, request, &zp); - zcp = umem_zalloc(sizeof (zfs_cmd_t), UMEM_NOFAIL); + free((void *)(uintptr_t)zcl->zc_nvlist_dst); + umem_free(zcl, sizeof (zfs_cmd_legacy_t)); - innvl = fnvlist_alloc(); - fnvlist_add_boolean_value(innvl, "force", B_FALSE); + break; + default: + fprintf(stderr, "unrecognized zfs ioctl version %d", ver); + exit(1); + } + + (void) close(fd); + + *isactive = (ret == 0); + return (0); +} +#else +static int +pool_active(void *unused, const char *name, uint64_t guid, + boolean_t *isactive) +{ + int fd = open(ZFS_DEV, O_RDWR | O_CLOEXEC); + if (fd < 0) + return (-1); + + /* + * Use ZFS_IOC_POOL_STATS to check if a pool is active. + */ + zfs_cmd_t *zcp = umem_zalloc(sizeof (zfs_cmd_t), UMEM_NOFAIL); (void) strlcpy(zcp->zc_name, name, sizeof (zcp->zc_name)); - packed = fnvlist_pack(innvl, &size); - zcp->zc_nvlist_src = (uint64_t)(uintptr_t)packed; - zcp->zc_nvlist_src_size = size; - ret = zfs_ioctl_fd(fd, ZFS_IOC_POOL_SYNC, zcp); + int ret = ioctl(fd, ZFS_IOC_POOL_STATS, zcp); - fnvlist_pack_free(packed, size); free((void *)(uintptr_t)zcp->zc_nvlist_dst); - nvlist_free(innvl); umem_free(zcp, sizeof (zfs_cmd_t)); (void) close(fd); @@ -286,6 +343,7 @@ pool_active(void *unused, const char *name, uint64_t guid, return (0); } +#endif const pool_config_ops_t libzpool_config_ops = { .pco_refresh_config = refresh_config, diff --git a/lib/libzutil/Makefile.am b/lib/libzutil/Makefile.am index 0bc29f05e..b16325061 100644 --- a/lib/libzutil/Makefile.am +++ b/lib/libzutil/Makefile.am @@ -19,21 +19,13 @@ USER_C = \ if BUILD_LINUX USER_C += \ os/linux/zutil_device_path_os.c \ - os/linux/zutil_import_os.c \ - os/linux/zutil_compat.c + os/linux/zutil_import_os.c endif if BUILD_FREEBSD -DEFAULT_INCLUDES += -I$(top_srcdir)/include/os/freebsd/zfs - USER_C += \ os/freebsd/zutil_device_path_os.c \ - os/freebsd/zutil_import_os.c \ - os/freebsd/zutil_compat.c - -VPATH += $(top_srcdir)/module/os/freebsd/zfs - -nodist_libzutil_la_SOURCES = zfs_ioctl_compat.c + os/freebsd/zutil_import_os.c endif libzutil_la_SOURCES = $(USER_C) |