aboutsummaryrefslogtreecommitdiff
path: root/lib/libzfs_core
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libzfs_core')
-rw-r--r--lib/libzfs_core/.gitignore1
-rw-r--r--lib/libzfs_core/Makefile.am49
-rw-r--r--lib/libzfs_core/libzfs_core.abi3315
-rw-r--r--lib/libzfs_core/libzfs_core.c1996
-rw-r--r--lib/libzfs_core/libzfs_core.pc.in13
-rw-r--r--lib/libzfs_core/libzfs_core.suppr5
-rw-r--r--lib/libzfs_core/libzfs_core_impl.h36
-rw-r--r--lib/libzfs_core/os/freebsd/libzfs_core_ioctl.c136
-rw-r--r--lib/libzfs_core/os/linux/libzfs_core_ioctl.c32
9 files changed, 0 insertions, 5583 deletions
diff --git a/lib/libzfs_core/.gitignore b/lib/libzfs_core/.gitignore
deleted file mode 100644
index c428d6369033..000000000000
--- a/lib/libzfs_core/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/libzfs_core.pc
diff --git a/lib/libzfs_core/Makefile.am b/lib/libzfs_core/Makefile.am
deleted file mode 100644
index 42ac6081cc99..000000000000
--- a/lib/libzfs_core/Makefile.am
+++ /dev/null
@@ -1,49 +0,0 @@
-libzfs_core_la_CFLAGS = $(AM_CFLAGS) $(LIBRARY_CFLAGS)
-libzfs_core_la_CFLAGS += -fvisibility=hidden
-
-libzfs_core_la_CPPFLAGS = $(AM_CPPFLAGS)
-libzfs_core_la_CPPFLAGS += -I$(srcdir)/%D%
-
-lib_LTLIBRARIES += libzfs_core.la
-CPPCHECKTARGETS += libzfs_core.la
-
-libzfs_core_la_SOURCES = \
- %D%/libzfs_core.c \
- %D%/libzfs_core_impl.h
-
-if BUILD_LINUX
-libzfs_core_la_SOURCES += \
- %D%/os/linux/libzfs_core_ioctl.c
-endif
-
-if BUILD_FREEBSD
-libzfs_core_la_CPPFLAGS += -Iinclude/os/freebsd/zfs
-
-libzfs_core_la_SOURCES += \
- %D%/os/freebsd/libzfs_core_ioctl.c
-
-nodist_libzfs_core_la_SOURCES = \
- module/os/freebsd/zfs/zfs_ioctl_compat.c
-endif
-
-libzfs_core_la_LIBADD = \
- libnvpair.la \
- libspl.la
-
-libzfs_core_la_LIBADD += $(LTLIBINTL)
-
-libzfs_core_la_LDFLAGS = -pthread
-
-if !ASAN_ENABLED
-libzfs_core_la_LDFLAGS += -Wl,-z,defs
-endif
-
-if BUILD_FREEBSD
-libzfs_core_la_LIBADD += -lutil -lgeom
-endif
-
-libzfs_core_la_LDFLAGS += -version-info 3:0:0
-
-pkgconfig_DATA += %D%/libzfs_core.pc
-
-dist_noinst_DATA += %D%/libzfs_core.abi %D%/libzfs_core.suppr
diff --git a/lib/libzfs_core/libzfs_core.abi b/lib/libzfs_core/libzfs_core.abi
deleted file mode 100644
index 263cad045f7a..000000000000
--- a/lib/libzfs_core/libzfs_core.abi
+++ /dev/null
@@ -1,3315 +0,0 @@
-<abi-corpus version='2.0' architecture='elf-amd-x86_64' soname='libzfs_core.so.3'>
- <elf-needed>
- <dependency name='libnvpair.so.3'/>
- <dependency name='libunwind.so.8'/>
- <dependency name='libc.so.6'/>
- <dependency name='ld-linux-x86-64.so.2'/>
- </elf-needed>
- <elf-function-symbols>
- <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='format_timestamp' 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='get_timestamp' 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='libspl_assertf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='libspl_backtrace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='libspl_set_assert_ok' 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'/>
- <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='lzc_bookmark' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_change_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_channel_program' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_channel_program_nosync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_clone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_ddt_prune' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_destroy_bookmarks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_destroy_snaps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_exists' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_get_bookmark_props' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_get_bookmarks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_get_bootenv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_get_holds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_get_props' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_get_vdev_prop' 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'/>
- <elf-symbol name='lzc_pool_prefetch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_promote' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_receive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_receive_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_receive_resumable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_receive_with_cmdprops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_receive_with_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_receive_with_heal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_redact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_rename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_reopen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_rollback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_rollback_to' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_scrub' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_send' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_send_redacted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_send_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_send_resume_redacted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_send_space' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_send_space_resume_redacted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_send_wrapper' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_set_bootenv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_set_vdev_prop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_snaprange_space' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_snapshot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_trim' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_unload_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_wait_fs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='lzc_wait_tag' 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='membar_sync' 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='print_timestamp' 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='zfs_tunable_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='zfs_tunable_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='zfs_tunable_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- <elf-symbol name='zfs_tunable_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
- </elf-function-symbols>
- <abi-instr address-size='64' path='lib/libspl/assert.c' language='LANG_C99'>
- <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='d5027220'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='gp_offset' type-id='f0981eeb' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='fp_offset' type-id='f0981eeb' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='overflow_arg_area' type-id='eaa32e2f' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='reg_save_area' type-id='eaa32e2f' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='__pid_t' type-id='95e97e5e' id='3629bad8'/>
- <pointer-type-def type-id='d5027220' size-in-bits='64' id='b7f2d5e6'/>
- <function-decl name='libspl_backtrace' mangled-name='libspl_backtrace' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libspl_backtrace'>
- <parameter type-id='95e97e5e'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='abort' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='getpid' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='3629bad8'/>
- </function-decl>
- <function-decl name='__vfprintf_chk' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='e75a27e9'/>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='9d26089a'/>
- <parameter type-id='b7f2d5e6'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='gettid' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='3629bad8'/>
- </function-decl>
- <function-decl name='prctl' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <parameter is-variadic='yes'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='libspl_set_assert_ok' mangled-name='libspl_set_assert_ok' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libspl_set_assert_ok'>
- <parameter type-id='c19b74c3' name='val'/>
- <return type-id='48b5725f'/>
- </function-decl>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/atomic.c' language='LANG_C99'>
- <typedef-decl name='ulong_t' type-id='7359adad' id='ee1f298e'/>
- <typedef-decl name='int8_t' type-id='2171a512' id='ee31ee44'/>
- <typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/>
- <typedef-decl name='__int8_t' type-id='28577a57' id='2171a512'/>
- <typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/>
- <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='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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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>
- <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_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_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_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_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_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_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='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='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_consumer' mangled-name='membar_consumer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='membar_consumer'>
- <return type-id='48b5725f'/>
- </function-decl>
- <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/>
- <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/backtrace.c' language='LANG_C99'>
- <array-type-def dimensions='1' type-id='62f1140c' size-in-bits='768' id='b80f3d9b'>
- <subrange length='24' type-id='7359adad' id='fdd3342b'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='62f1140c' size-in-bits='128' id='bc19e735'>
- <subrange length='4' type-id='7359adad' id='16fe7105'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='22c546af' size-in-bits='1024' id='498c040b'>
- <subrange length='8' type-id='7359adad' id='56e0c0b1'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='4ea07cdb' size-in-bits='2048' id='4811c35e'>
- <subrange length='16' type-id='7359adad' id='848d0938'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='de572c22' size-in-bits='1472' id='6d3c2f42'>
- <subrange length='23' type-id='7359adad' id='fdd0f594'/>
- </array-type-def>
- <type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/>
- <array-type-def dimensions='1' type-id='3a47d82b' size-in-bits='256' id='a133ec23'>
- <subrange length='4' type-id='7359adad' id='16fe7105'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='3a47d82b' size-in-bits='512' id='a13e797f'>
- <subrange length='8' type-id='7359adad' id='56e0c0b1'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='7359adad' size-in-bits='1024' id='d2baa450'>
- <subrange length='16' type-id='7359adad' id='848d0938'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='8efea9e5' size-in-bits='48' id='ff2536e2'>
- <subrange length='3' type-id='7359adad' id='56f209d2'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='8efea9e5' size-in-bits='64' id='3f30d495'>
- <subrange length='4' type-id='7359adad' id='16fe7105'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='73d941c6' size-in-bits='8128' id='dc70ec0b'>
- <subrange length='127' type-id='7359adad' id='5ed08de5'/>
- </array-type-def>
- <class-decl name='__sigset_t' size-in-bits='1024' is-struct='yes' naming-typedef-id='b9c97942' visibility='default' id='2616147f'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='__val' type-id='d2baa450' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='__sigset_t' type-id='2616147f' id='b9c97942'/>
- <typedef-decl name='sigset_t' type-id='b9c97942' id='daf33c64'/>
- <class-decl name='stack_t' size-in-bits='192' is-struct='yes' naming-typedef-id='ac5e685f' visibility='default' id='380f9954'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ss_sp' type-id='eaa32e2f' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='ss_flags' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='ss_size' type-id='b59d7dce' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='stack_t' type-id='380f9954' id='ac5e685f'/>
- <typedef-decl name='unw_regnum_t' type-id='95e97e5e' id='c53620f0'/>
- <class-decl name='unw_cursor' size-in-bits='8128' is-struct='yes' visibility='default' id='384a1f22'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='opaque' type-id='dc70ec0b' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='unw_cursor_t' type-id='384a1f22' id='1203d35c'/>
- <typedef-decl name='unw_context_t' type-id='190d09ef' id='8f527367'/>
- <typedef-decl name='unw_word_t' type-id='9c313c2d' id='73d941c6'/>
- <typedef-decl name='unw_tdep_context_t' type-id='c4daa689' id='190d09ef'/>
- <typedef-decl name='greg_t' type-id='1eb56b1e' id='de572c22'/>
- <typedef-decl name='gregset_t' type-id='6d3c2f42' id='a66f139c'/>
- <class-decl name='_libc_fpxreg' size-in-bits='128' is-struct='yes' visibility='default' id='22c546af'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='significand' type-id='3f30d495' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='exponent' type-id='8efea9e5' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='80'>
- <var-decl name='__glibc_reserved1' type-id='ff2536e2' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='_libc_xmmreg' size-in-bits='128' is-struct='yes' visibility='default' id='4ea07cdb'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='element' type-id='bc19e735' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='_libc_fpstate' size-in-bits='4096' is-struct='yes' visibility='default' id='81cbe5ca'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='cwd' type-id='253c2d2a' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='swd' type-id='253c2d2a' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='ftw' type-id='253c2d2a' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='48'>
- <var-decl name='fop' type-id='253c2d2a' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='rip' type-id='8910171f' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='rdp' type-id='8910171f' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='mxcsr' type-id='62f1140c' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='mxcr_mask' type-id='62f1140c' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='_st' type-id='498c040b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='_xmm' type-id='4811c35e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='3328'>
- <var-decl name='__glibc_reserved1' type-id='b80f3d9b' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='fpregset_t' type-id='5b1ab9a8' id='6e5851bb'/>
- <class-decl name='mcontext_t' size-in-bits='2048' is-struct='yes' naming-typedef-id='bacab071' visibility='default' id='76fab990'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='gregs' type-id='a66f139c' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='fpregs' type-id='6e5851bb' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='__reserved1' type-id='a13e797f' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='mcontext_t' type-id='76fab990' id='bacab071'/>
- <class-decl name='ucontext_t' size-in-bits='7744' is-struct='yes' visibility='default' id='1ba65dc8'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='uc_flags' type-id='7359adad' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='uc_link' type-id='4ed508de' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='uc_stack' type-id='ac5e685f' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='uc_mcontext' type-id='bacab071' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2368'>
- <var-decl name='uc_sigmask' type-id='daf33c64' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='3392'>
- <var-decl name='__fpregs_mem' type-id='81cbe5ca' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='7488'>
- <var-decl name='__ssp' type-id='a133ec23' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='ucontext_t' type-id='1ba65dc8' id='c4daa689'/>
- <pointer-type-def type-id='81cbe5ca' size-in-bits='64' id='5b1ab9a8'/>
- <pointer-type-def type-id='1ba65dc8' size-in-bits='64' id='4ed508de'/>
- <pointer-type-def type-id='8f527367' size-in-bits='64' id='2e408b96'/>
- <pointer-type-def type-id='1203d35c' size-in-bits='64' id='3946e4d1'/>
- <pointer-type-def type-id='190d09ef' size-in-bits='64' id='3e0601f0'/>
- <pointer-type-def type-id='73d941c6' size-in-bits='64' id='42f5faab'/>
- <function-decl name='write' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='eaa32e2f'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='79a0948f'/>
- </function-decl>
- <function-decl name='_Ux86_64_regname' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='c53620f0'/>
- <return type-id='80f4b756'/>
- </function-decl>
- <function-decl name='_ULx86_64_init_local' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='3946e4d1'/>
- <parameter type-id='2e408b96'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='_ULx86_64_step' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='3946e4d1'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='_ULx86_64_get_reg' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='3946e4d1'/>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='42f5faab'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='_ULx86_64_get_proc_name' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='3946e4d1'/>
- <parameter type-id='26a90f95'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='42f5faab'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='_Ux86_64_getcontext' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='3e0601f0'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/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>
- <function-decl name='getexecname_impl' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='26a90f95'/>
- <return type-id='79a0948f'/>
- </function-decl>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/list.c' language='LANG_C99'>
- <typedef-decl name='list_node_t' type-id='b0b5e45e' id='b21843b2'/>
- <typedef-decl name='list_t' type-id='e824dae9' id='0899125f'/>
- <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>
- <class-decl name='list' size-in-bits='192' is-struct='yes' visibility='default' id='e824dae9'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='list_offset' type-id='b59d7dce' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='list_head' type-id='b0b5e45e' visibility='default'/>
- </data-member>
- </class-decl>
- <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_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>
- <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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/mkdirp.c' language='LANG_C99'>
- <typedef-decl name='mode_t' type-id='e1c52942' id='d50d396c'/>
- <typedef-decl name='wchar_t' type-id='95e97e5e' id='928221d2'/>
- <qualified-type-def type-id='26a90f95' restrict='yes' id='266fe297'/>
- <qualified-type-def type-id='928221d2' const='yes' id='effb3702'/>
- <pointer-type-def type-id='effb3702' size-in-bits='64' id='f077d3f8'/>
- <qualified-type-def type-id='f077d3f8' restrict='yes' id='598aab80'/>
- <pointer-type-def type-id='928221d2' size-in-bits='64' id='323d93c1'/>
- <qualified-type-def type-id='323d93c1' restrict='yes' id='f1358bc3'/>
- <function-decl name='calloc' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='eaa32e2f'/>
- </function-decl>
- <function-decl name='strdup' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <return type-id='26a90f95'/>
- </function-decl>
- <function-decl name='strlen' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <return type-id='b59d7dce'/>
- </function-decl>
- <function-decl name='access' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='__mbstowcs_chk' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='f1358bc3'/>
- <parameter type-id='9d26089a'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='b59d7dce'/>
- </function-decl>
- <function-decl name='__wcstombs_chk' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='266fe297'/>
- <parameter type-id='598aab80'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='b59d7dce'/>
- </function-decl>
- <function-decl name='mkdir' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <parameter type-id='e1c52942'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <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>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/os/linux/getexecname.c' language='LANG_C99'>
- <function-decl name='__readlink_chk' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='9d26089a'/>
- <parameter type-id='266fe297'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='79a0948f'/>
- </function-decl>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/os/linux/gethostid.c' language='LANG_C99'>
- <type-decl name='long long unsigned int' size-in-bits='64' id='3a47d82b'/>
- <function-decl name='strtoull' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='9d26089a'/>
- <parameter type-id='8c85230f'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='3a47d82b'/>
- </function-decl>
- <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 address-size='64' path='lib/libspl/os/linux/getmntany.c' language='LANG_C99'>
- <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>
- <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='mntent' size-in-bits='320' is-struct='yes' visibility='default' id='56fe4a37'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='mnt_fsname' type-id='26a90f95' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='mnt_dir' type-id='26a90f95' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='mnt_type' type-id='26a90f95' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='mnt_opts' type-id='26a90f95' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='mnt_freq' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='288'>
- <var-decl name='mnt_passno' type-id='95e97e5e' 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='__ino64_t' type-id='7359adad' id='71288a47'/>
- <typedef-decl name='__blkcnt64_t' type-id='bd54fe1a' id='4e711bf1'/>
- <pointer-type-def type-id='0c544dc0' size-in-bits='64' id='394fc496'/>
- <pointer-type-def type-id='56fe4a37' size-in-bits='64' id='b6b61d2f'/>
- <qualified-type-def type-id='b6b61d2f' restrict='yes' id='3cad23cd'/>
- <pointer-type-def type-id='1b055409' size-in-bits='64' id='9d424d31'/>
- <pointer-type-def type-id='0bbec9cd' size-in-bits='64' id='62f7a03d'/>
- <qualified-type-def type-id='62f7a03d' restrict='yes' id='f1cadedf'/>
- <function-decl name='getmntent_r' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='e75a27e9'/>
- <parameter type-id='3cad23cd'/>
- <parameter type-id='266fe297'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='b6b61d2f'/>
- </function-decl>
- <function-decl name='feof' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='822cd80b'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='strerror' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <return type-id='26a90f95'/>
- </function-decl>
- <function-decl name='stat64' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='9d26089a'/>
- <parameter type-id='f1cadedf'/>
- <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>
- <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>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/os/linux/zone.c' language='LANG_C99'>
- <typedef-decl name='zoneid_t' type-id='3502e3ff' id='4da03624'/>
- <function-decl name='strtoul' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='9d26089a'/>
- <parameter type-id='8c85230f'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='7359adad'/>
- </function-decl>
- <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 address-size='64' path='lib/libspl/page.c' language='LANG_C99'>
- <function-decl name='sysconf' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <return type-id='bd54fe1a'/>
- </function-decl>
- <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 address-size='64' path='lib/libspl/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 address-size='64' path='lib/libspl/timestamp.c' language='LANG_C99'>
- <typedef-decl name='nl_item' type-id='95e97e5e' id='03b79a94'/>
- <class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' id='dddf6ca2'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='tm_sec' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='tm_min' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tm_hour' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='tm_mday' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='tm_mon' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='tm_year' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='tm_wday' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='tm_yday' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='tm_isdst' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='tm_gmtoff' type-id='bd54fe1a' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='tm_zone' type-id='80f4b756' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='time_t' type-id='65eda9c0' id='c9d12d66'/>
- <qualified-type-def type-id='c9d12d66' const='yes' id='588b3216'/>
- <pointer-type-def type-id='588b3216' size-in-bits='64' id='9f201474'/>
- <qualified-type-def type-id='9f201474' restrict='yes' id='d6e2847c'/>
- <qualified-type-def type-id='dddf6ca2' const='yes' id='e824a34f'/>
- <pointer-type-def type-id='e824a34f' size-in-bits='64' id='d6ad37ff'/>
- <qualified-type-def type-id='d6ad37ff' restrict='yes' id='f8c6051d'/>
- <pointer-type-def type-id='c9d12d66' size-in-bits='64' id='b2eb2c3f'/>
- <pointer-type-def type-id='dddf6ca2' size-in-bits='64' id='d915a820'/>
- <qualified-type-def type-id='d915a820' restrict='yes' id='f099ad08'/>
- <function-decl name='nl_langinfo' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='03b79a94'/>
- <return type-id='26a90f95'/>
- </function-decl>
- <function-decl name='time' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='b2eb2c3f'/>
- <return type-id='c9d12d66'/>
- </function-decl>
- <function-decl name='strftime' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='266fe297'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='9d26089a'/>
- <parameter type-id='f8c6051d'/>
- <return type-id='b59d7dce'/>
- </function-decl>
- <function-decl name='localtime_r' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='d6e2847c'/>
- <parameter type-id='f099ad08'/>
- <return type-id='d915a820'/>
- </function-decl>
- <function-decl name='__printf_chk' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='80f4b756'/>
- <parameter is-variadic='yes'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <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>
- <function-decl name='get_timestamp' mangled-name='get_timestamp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_timestamp'>
- <parameter type-id='3502e3ff' name='timestamp_fmt'/>
- <parameter type-id='26a90f95' name='buf'/>
- <parameter type-id='95e97e5e' name='len'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='format_timestamp' mangled-name='format_timestamp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='format_timestamp'>
- <parameter type-id='c9d12d66' name='t'/>
- <parameter type-id='26a90f95' name='buf'/>
- <parameter type-id='95e97e5e' name='len'/>
- <return type-id='48b5725f'/>
- </function-decl>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libspl/tunables.c' language='LANG_C99'>
- <enum-decl name='zfs_tunable_type_t' naming-typedef-id='f50b1525' id='56905369'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='ZFS_TUNABLE_TYPE_INT' value='0'/>
- <enumerator name='ZFS_TUNABLE_TYPE_UINT' value='1'/>
- <enumerator name='ZFS_TUNABLE_TYPE_ULONG' value='2'/>
- <enumerator name='ZFS_TUNABLE_TYPE_U64' value='3'/>
- <enumerator name='ZFS_TUNABLE_TYPE_STRING' value='4'/>
- </enum-decl>
- <typedef-decl name='zfs_tunable_type_t' type-id='56905369' id='f50b1525'/>
- <enum-decl name='zfs_tunable_perm_t' naming-typedef-id='ada7336b' id='e80e6ebf'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='ZFS_TUNABLE_PERM_ZMOD_RW' value='0'/>
- <enumerator name='ZFS_TUNABLE_PERM_ZMOD_RD' value='1'/>
- </enum-decl>
- <typedef-decl name='zfs_tunable_perm_t' type-id='e80e6ebf' id='ada7336b'/>
- <class-decl name='zfs_tunable' size-in-bits='320' is-struct='yes' visibility='default' id='1a97ee0e'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='zt_name' type-id='80f4b756' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='zt_varp' type-id='eaa32e2f' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='zt_varsz' type-id='b59d7dce' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='zt_type' type-id='f50b1525' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='zt_perm' type-id='ada7336b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='zt_desc' type-id='80f4b756' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='zfs_tunable_t' type-id='1a97ee0e' id='12bf5c5e'/>
- <typedef-decl name='zfs_tunable_iter_t' type-id='7ef33f92' id='d8d5f4ab'/>
- <typedef-decl name='intmax_t' type-id='5b475db0' id='e104d842'/>
- <typedef-decl name='uintmax_t' type-id='04d82f4b' id='f8b828c9'/>
- <typedef-decl name='__intmax_t' type-id='bd54fe1a' id='5b475db0'/>
- <typedef-decl name='__uintmax_t' type-id='7359adad' id='04d82f4b'/>
- <pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
- <qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
- <qualified-type-def type-id='12bf5c5e' const='yes' id='180e47ee'/>
- <pointer-type-def type-id='180e47ee' size-in-bits='64' id='a27af98c'/>
- <pointer-type-def type-id='92f86508' size-in-bits='64' id='7ef33f92'/>
- <function-decl name='strtoimax' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='9d26089a'/>
- <parameter type-id='8c85230f'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='e104d842'/>
- </function-decl>
- <function-decl name='strtoumax' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='9d26089a'/>
- <parameter type-id='8c85230f'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='f8b828c9'/>
- </function-decl>
- <function-decl name='strcmp' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <parameter type-id='80f4b756'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='zfs_tunable_lookup' mangled-name='zfs_tunable_lookup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_lookup'>
- <parameter type-id='80f4b756' name='name'/>
- <return type-id='a27af98c'/>
- </function-decl>
- <function-decl name='zfs_tunable_iter' mangled-name='zfs_tunable_iter' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_iter'>
- <parameter type-id='d8d5f4ab' name='cb'/>
- <parameter type-id='eaa32e2f' name='arg'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='zfs_tunable_set' mangled-name='zfs_tunable_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_set'>
- <parameter type-id='a27af98c' name='zt'/>
- <parameter type-id='80f4b756' name='val'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='zfs_tunable_get' mangled-name='zfs_tunable_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_get'>
- <parameter type-id='a27af98c' name='zt'/>
- <parameter type-id='26a90f95' name='val'/>
- <parameter type-id='b59d7dce' name='valsz'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-type size-in-bits='64' id='92f86508'>
- <parameter type-id='a27af98c'/>
- <parameter type-id='eaa32e2f'/>
- <return type-id='95e97e5e'/>
- </function-type>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libzfs_core/libzfs_core.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>
- <type-decl name='char' size-in-bits='8' id='a84c031d'/>
- <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>
- <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2048' id='d1617432'>
- <subrange length='256' type-id='7359adad' id='36e5b9fa'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2816' id='514368c7'>
- <subrange length='352' type-id='7359adad' id='b715cd6f'/>
- </array-type-def>
- <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>
- <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='448' id='6093ff7c'>
- <subrange length='56' type-id='7359adad' id='f8137894'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='65536' id='163f6aa5'>
- <subrange length='8192' type-id='7359adad' id='c88f397d'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='infinite' id='e84913bd'>
- <subrange length='infinite' type-id='7359adad' id='031f2035'/>
- </array-type-def>
- <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='a4036571'/>
- <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='010ae0b9'/>
- <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='79bd3751'/>
- <type-decl name='int' size-in-bits='32' id='95e97e5e'/>
- <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'/>
- <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>
- <array-type-def dimensions='1' type-id='9c313c2d' size-in-bits='2176' id='8c2bcad1'>
- <subrange length='34' type-id='7359adad' id='6a6a7e00'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='9c313c2d' size-in-bits='256' id='85c64d26'>
- <subrange length='4' type-id='7359adad' id='16fe7105'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='b96825af' size-in-bits='96' id='fa8ef949'>
- <subrange length='12' type-id='7359adad' id='84827bdc'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='b96825af' size-in-bits='128' id='fa9986a5'>
- <subrange length='16' type-id='7359adad' id='848d0938'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='b96825af' size-in-bits='24' id='d3490169'>
- <subrange length='3' type-id='7359adad' id='56f209d2'/>
- </array-type-def>
- <array-type-def dimensions='1' type-id='b96825af' size-in-bits='40' id='0f4ddd0b'>
- <subrange length='5' type-id='7359adad' id='53010e10'/>
- </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='b96825af' size-in-bits='64' id='13339fda'>
- <subrange length='8' type-id='7359adad' id='56e0c0b1'/>
- </array-type-def>
- <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='9cac1fee'/>
- <type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/>
- <type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/>
- <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/>
- <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/>
- <type-decl name='variadic parameter type' id='2c1145c5'/>
- <type-decl name='void' id='48b5725f'/>
- <enum-decl name='lzc_dataset_type' id='bc9887f1'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='LZC_DATSET_TYPE_ZFS' value='2'/>
- <enumerator name='LZC_DATSET_TYPE_ZVOL' value='3'/>
- </enum-decl>
- <enum-decl name='lzc_send_flags' id='bfbd3c8e'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='LZC_SEND_FLAG_EMBED_DATA' value='1'/>
- <enumerator name='LZC_SEND_FLAG_LARGE_BLOCK' value='2'/>
- <enumerator name='LZC_SEND_FLAG_COMPRESS' value='4'/>
- <enumerator name='LZC_SEND_FLAG_RAW' value='8'/>
- <enumerator name='LZC_SEND_FLAG_SAVED' value='16'/>
- </enum-decl>
- <class-decl name='ddt_key_t' size-in-bits='320' is-struct='yes' naming-typedef-id='67f6d2cf' visibility='default' id='5fae1718'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ddk_cksum' type-id='39730d0b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='ddk_prop' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='ddt_key_t' type-id='5fae1718' id='67f6d2cf'/>
- <enum-decl name='dmu_object_type' id='04b3b0b9'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='DMU_OT_NONE' value='0'/>
- <enumerator name='DMU_OT_OBJECT_DIRECTORY' value='1'/>
- <enumerator name='DMU_OT_OBJECT_ARRAY' value='2'/>
- <enumerator name='DMU_OT_PACKED_NVLIST' value='3'/>
- <enumerator name='DMU_OT_PACKED_NVLIST_SIZE' value='4'/>
- <enumerator name='DMU_OT_BPOBJ' value='5'/>
- <enumerator name='DMU_OT_BPOBJ_HDR' value='6'/>
- <enumerator name='DMU_OT_SPACE_MAP_HEADER' value='7'/>
- <enumerator name='DMU_OT_SPACE_MAP' value='8'/>
- <enumerator name='DMU_OT_INTENT_LOG' value='9'/>
- <enumerator name='DMU_OT_DNODE' value='10'/>
- <enumerator name='DMU_OT_OBJSET' value='11'/>
- <enumerator name='DMU_OT_DSL_DIR' value='12'/>
- <enumerator name='DMU_OT_DSL_DIR_CHILD_MAP' value='13'/>
- <enumerator name='DMU_OT_DSL_DS_SNAP_MAP' value='14'/>
- <enumerator name='DMU_OT_DSL_PROPS' value='15'/>
- <enumerator name='DMU_OT_DSL_DATASET' value='16'/>
- <enumerator name='DMU_OT_ZNODE' value='17'/>
- <enumerator name='DMU_OT_OLDACL' value='18'/>
- <enumerator name='DMU_OT_PLAIN_FILE_CONTENTS' value='19'/>
- <enumerator name='DMU_OT_DIRECTORY_CONTENTS' value='20'/>
- <enumerator name='DMU_OT_MASTER_NODE' value='21'/>
- <enumerator name='DMU_OT_UNLINKED_SET' value='22'/>
- <enumerator name='DMU_OT_ZVOL' value='23'/>
- <enumerator name='DMU_OT_ZVOL_PROP' value='24'/>
- <enumerator name='DMU_OT_PLAIN_OTHER' value='25'/>
- <enumerator name='DMU_OT_UINT64_OTHER' value='26'/>
- <enumerator name='DMU_OT_ZAP_OTHER' value='27'/>
- <enumerator name='DMU_OT_ERROR_LOG' value='28'/>
- <enumerator name='DMU_OT_SPA_HISTORY' value='29'/>
- <enumerator name='DMU_OT_SPA_HISTORY_OFFSETS' value='30'/>
- <enumerator name='DMU_OT_POOL_PROPS' value='31'/>
- <enumerator name='DMU_OT_DSL_PERMS' value='32'/>
- <enumerator name='DMU_OT_ACL' value='33'/>
- <enumerator name='DMU_OT_SYSACL' value='34'/>
- <enumerator name='DMU_OT_FUID' value='35'/>
- <enumerator name='DMU_OT_FUID_SIZE' value='36'/>
- <enumerator name='DMU_OT_NEXT_CLONES' value='37'/>
- <enumerator name='DMU_OT_SCAN_QUEUE' value='38'/>
- <enumerator name='DMU_OT_USERGROUP_USED' value='39'/>
- <enumerator name='DMU_OT_USERGROUP_QUOTA' value='40'/>
- <enumerator name='DMU_OT_USERREFS' value='41'/>
- <enumerator name='DMU_OT_DDT_ZAP' value='42'/>
- <enumerator name='DMU_OT_DDT_STATS' value='43'/>
- <enumerator name='DMU_OT_SA' value='44'/>
- <enumerator name='DMU_OT_SA_MASTER_NODE' value='45'/>
- <enumerator name='DMU_OT_SA_ATTR_REGISTRATION' value='46'/>
- <enumerator name='DMU_OT_SA_ATTR_LAYOUTS' value='47'/>
- <enumerator name='DMU_OT_SCAN_XLATE' value='48'/>
- <enumerator name='DMU_OT_DEDUP' value='49'/>
- <enumerator name='DMU_OT_DEADLIST' value='50'/>
- <enumerator name='DMU_OT_DEADLIST_HDR' value='51'/>
- <enumerator name='DMU_OT_DSL_CLONES' value='52'/>
- <enumerator name='DMU_OT_BPOBJ_SUBOBJ' value='53'/>
- <enumerator name='DMU_OT_NUMTYPES' value='54'/>
- <enumerator name='DMU_OTN_UINT8_DATA' value='128'/>
- <enumerator name='DMU_OTN_UINT8_METADATA' value='192'/>
- <enumerator name='DMU_OTN_UINT16_DATA' value='129'/>
- <enumerator name='DMU_OTN_UINT16_METADATA' value='193'/>
- <enumerator name='DMU_OTN_UINT32_DATA' value='130'/>
- <enumerator name='DMU_OTN_UINT32_METADATA' value='194'/>
- <enumerator name='DMU_OTN_UINT64_DATA' value='131'/>
- <enumerator name='DMU_OTN_UINT64_METADATA' value='195'/>
- <enumerator name='DMU_OTN_ZAP_DATA' value='132'/>
- <enumerator name='DMU_OTN_ZAP_METADATA' value='196'/>
- <enumerator name='DMU_OTN_UINT8_ENC_DATA' value='160'/>
- <enumerator name='DMU_OTN_UINT8_ENC_METADATA' value='224'/>
- <enumerator name='DMU_OTN_UINT16_ENC_DATA' value='161'/>
- <enumerator name='DMU_OTN_UINT16_ENC_METADATA' value='225'/>
- <enumerator name='DMU_OTN_UINT32_ENC_DATA' value='162'/>
- <enumerator name='DMU_OTN_UINT32_ENC_METADATA' value='226'/>
- <enumerator name='DMU_OTN_UINT64_ENC_DATA' value='163'/>
- <enumerator name='DMU_OTN_UINT64_ENC_METADATA' value='227'/>
- <enumerator name='DMU_OTN_ZAP_ENC_DATA' value='164'/>
- <enumerator name='DMU_OTN_ZAP_ENC_METADATA' value='228'/>
- </enum-decl>
- <typedef-decl name='dmu_object_type_t' type-id='04b3b0b9' id='5c9d8906'/>
- <class-decl name='dmu_objset_stats' size-in-bits='2304' is-struct='yes' visibility='default' id='098f0221'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='dds_num_clones' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='dds_creation_txg' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='dds_guid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='dds_type' type-id='230f1e16' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='dds_is_snapshot' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='232'>
- <var-decl name='dds_inconsistent' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='240'>
- <var-decl name='dds_redacted' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='248'>
- <var-decl name='dds_origin' type-id='d1617432' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2296'>
- <var-decl name='dds_flags' type-id='b96825af' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='dmu_objset_stats_t' type-id='098f0221' id='b2c14f17'/>
- <enum-decl name='dmu_objset_type' id='6b1b19f9'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='DMU_OST_NONE' value='0'/>
- <enumerator name='DMU_OST_META' value='1'/>
- <enumerator name='DMU_OST_ZFS' value='2'/>
- <enumerator name='DMU_OST_ZVOL' value='3'/>
- <enumerator name='DMU_OST_OTHER' value='4'/>
- <enumerator name='DMU_OST_ANY' value='5'/>
- <enumerator name='DMU_OST_NUMTYPES' value='6'/>
- </enum-decl>
- <typedef-decl name='dmu_objset_type_t' type-id='6b1b19f9' id='230f1e16'/>
- <enum-decl name='pool_initialize_func' id='5c246ad4'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='POOL_INITIALIZE_START' value='0'/>
- <enumerator name='POOL_INITIALIZE_CANCEL' value='1'/>
- <enumerator name='POOL_INITIALIZE_SUSPEND' value='2'/>
- <enumerator name='POOL_INITIALIZE_UNINIT' value='3'/>
- <enumerator name='POOL_INITIALIZE_FUNCS' value='4'/>
- </enum-decl>
- <typedef-decl name='pool_initialize_func_t' type-id='5c246ad4' id='7063e1ab'/>
- <enum-decl name='pool_trim_func' id='54ed608a'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='POOL_TRIM_START' value='0'/>
- <enumerator name='POOL_TRIM_CANCEL' value='1'/>
- <enumerator name='POOL_TRIM_SUSPEND' value='2'/>
- <enumerator name='POOL_TRIM_FUNCS' value='3'/>
- </enum-decl>
- <typedef-decl name='pool_trim_func_t' type-id='54ed608a' id='b1146b8d'/>
- <enum-decl name='zfs_ioc' id='12033f13'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='ZFS_IOC_FIRST' value='23040'/>
- <enumerator name='ZFS_IOC' value='23040'/>
- <enumerator name='ZFS_IOC_POOL_CREATE' value='23040'/>
- <enumerator name='ZFS_IOC_POOL_DESTROY' value='23041'/>
- <enumerator name='ZFS_IOC_POOL_IMPORT' value='23042'/>
- <enumerator name='ZFS_IOC_POOL_EXPORT' value='23043'/>
- <enumerator name='ZFS_IOC_POOL_CONFIGS' value='23044'/>
- <enumerator name='ZFS_IOC_POOL_STATS' value='23045'/>
- <enumerator name='ZFS_IOC_POOL_TRYIMPORT' value='23046'/>
- <enumerator name='ZFS_IOC_POOL_SCAN' value='23047'/>
- <enumerator name='ZFS_IOC_POOL_FREEZE' value='23048'/>
- <enumerator name='ZFS_IOC_POOL_UPGRADE' value='23049'/>
- <enumerator name='ZFS_IOC_POOL_GET_HISTORY' value='23050'/>
- <enumerator name='ZFS_IOC_VDEV_ADD' value='23051'/>
- <enumerator name='ZFS_IOC_VDEV_REMOVE' value='23052'/>
- <enumerator name='ZFS_IOC_VDEV_SET_STATE' value='23053'/>
- <enumerator name='ZFS_IOC_VDEV_ATTACH' value='23054'/>
- <enumerator name='ZFS_IOC_VDEV_DETACH' value='23055'/>
- <enumerator name='ZFS_IOC_VDEV_SETPATH' value='23056'/>
- <enumerator name='ZFS_IOC_VDEV_SETFRU' value='23057'/>
- <enumerator name='ZFS_IOC_OBJSET_STATS' value='23058'/>
- <enumerator name='ZFS_IOC_OBJSET_ZPLPROPS' value='23059'/>
- <enumerator name='ZFS_IOC_DATASET_LIST_NEXT' value='23060'/>
- <enumerator name='ZFS_IOC_SNAPSHOT_LIST_NEXT' value='23061'/>
- <enumerator name='ZFS_IOC_SET_PROP' value='23062'/>
- <enumerator name='ZFS_IOC_CREATE' value='23063'/>
- <enumerator name='ZFS_IOC_DESTROY' value='23064'/>
- <enumerator name='ZFS_IOC_ROLLBACK' value='23065'/>
- <enumerator name='ZFS_IOC_RENAME' value='23066'/>
- <enumerator name='ZFS_IOC_RECV' value='23067'/>
- <enumerator name='ZFS_IOC_SEND' value='23068'/>
- <enumerator name='ZFS_IOC_INJECT_FAULT' value='23069'/>
- <enumerator name='ZFS_IOC_CLEAR_FAULT' value='23070'/>
- <enumerator name='ZFS_IOC_INJECT_LIST_NEXT' value='23071'/>
- <enumerator name='ZFS_IOC_ERROR_LOG' value='23072'/>
- <enumerator name='ZFS_IOC_CLEAR' value='23073'/>
- <enumerator name='ZFS_IOC_PROMOTE' value='23074'/>
- <enumerator name='ZFS_IOC_SNAPSHOT' value='23075'/>
- <enumerator name='ZFS_IOC_DSOBJ_TO_DSNAME' value='23076'/>
- <enumerator name='ZFS_IOC_OBJ_TO_PATH' value='23077'/>
- <enumerator name='ZFS_IOC_POOL_SET_PROPS' value='23078'/>
- <enumerator name='ZFS_IOC_POOL_GET_PROPS' value='23079'/>
- <enumerator name='ZFS_IOC_SET_FSACL' value='23080'/>
- <enumerator name='ZFS_IOC_GET_FSACL' value='23081'/>
- <enumerator name='ZFS_IOC_SHARE' value='23082'/>
- <enumerator name='ZFS_IOC_INHERIT_PROP' value='23083'/>
- <enumerator name='ZFS_IOC_SMB_ACL' value='23084'/>
- <enumerator name='ZFS_IOC_USERSPACE_ONE' value='23085'/>
- <enumerator name='ZFS_IOC_USERSPACE_MANY' value='23086'/>
- <enumerator name='ZFS_IOC_USERSPACE_UPGRADE' value='23087'/>
- <enumerator name='ZFS_IOC_HOLD' value='23088'/>
- <enumerator name='ZFS_IOC_RELEASE' value='23089'/>
- <enumerator name='ZFS_IOC_GET_HOLDS' value='23090'/>
- <enumerator name='ZFS_IOC_OBJSET_RECVD_PROPS' value='23091'/>
- <enumerator name='ZFS_IOC_VDEV_SPLIT' value='23092'/>
- <enumerator name='ZFS_IOC_NEXT_OBJ' value='23093'/>
- <enumerator name='ZFS_IOC_DIFF' value='23094'/>
- <enumerator name='ZFS_IOC_TMP_SNAPSHOT' value='23095'/>
- <enumerator name='ZFS_IOC_OBJ_TO_STATS' value='23096'/>
- <enumerator name='ZFS_IOC_SPACE_WRITTEN' value='23097'/>
- <enumerator name='ZFS_IOC_SPACE_SNAPS' value='23098'/>
- <enumerator name='ZFS_IOC_DESTROY_SNAPS' value='23099'/>
- <enumerator name='ZFS_IOC_POOL_REGUID' value='23100'/>
- <enumerator name='ZFS_IOC_POOL_REOPEN' value='23101'/>
- <enumerator name='ZFS_IOC_SEND_PROGRESS' value='23102'/>
- <enumerator name='ZFS_IOC_LOG_HISTORY' value='23103'/>
- <enumerator name='ZFS_IOC_SEND_NEW' value='23104'/>
- <enumerator name='ZFS_IOC_SEND_SPACE' value='23105'/>
- <enumerator name='ZFS_IOC_CLONE' value='23106'/>
- <enumerator name='ZFS_IOC_BOOKMARK' value='23107'/>
- <enumerator name='ZFS_IOC_GET_BOOKMARKS' value='23108'/>
- <enumerator name='ZFS_IOC_DESTROY_BOOKMARKS' value='23109'/>
- <enumerator name='ZFS_IOC_RECV_NEW' value='23110'/>
- <enumerator name='ZFS_IOC_POOL_SYNC' value='23111'/>
- <enumerator name='ZFS_IOC_CHANNEL_PROGRAM' value='23112'/>
- <enumerator name='ZFS_IOC_LOAD_KEY' value='23113'/>
- <enumerator name='ZFS_IOC_UNLOAD_KEY' value='23114'/>
- <enumerator name='ZFS_IOC_CHANGE_KEY' value='23115'/>
- <enumerator name='ZFS_IOC_REMAP' value='23116'/>
- <enumerator name='ZFS_IOC_POOL_CHECKPOINT' value='23117'/>
- <enumerator name='ZFS_IOC_POOL_DISCARD_CHECKPOINT' value='23118'/>
- <enumerator name='ZFS_IOC_POOL_INITIALIZE' value='23119'/>
- <enumerator name='ZFS_IOC_POOL_TRIM' value='23120'/>
- <enumerator name='ZFS_IOC_REDACT' value='23121'/>
- <enumerator name='ZFS_IOC_GET_BOOKMARK_PROPS' value='23122'/>
- <enumerator name='ZFS_IOC_WAIT' value='23123'/>
- <enumerator name='ZFS_IOC_WAIT_FS' value='23124'/>
- <enumerator name='ZFS_IOC_VDEV_GET_PROPS' value='23125'/>
- <enumerator name='ZFS_IOC_VDEV_SET_PROPS' value='23126'/>
- <enumerator name='ZFS_IOC_POOL_SCRUB' value='23127'/>
- <enumerator name='ZFS_IOC_POOL_PREFETCH' value='23128'/>
- <enumerator name='ZFS_IOC_DDT_PRUNE' value='23129'/>
- <enumerator name='ZFS_IOC_PLATFORM' value='23168'/>
- <enumerator name='ZFS_IOC_EVENTS_NEXT' value='23169'/>
- <enumerator name='ZFS_IOC_EVENTS_CLEAR' value='23170'/>
- <enumerator name='ZFS_IOC_EVENTS_SEEK' value='23171'/>
- <enumerator name='ZFS_IOC_NEXTBOOT' value='23172'/>
- <enumerator name='ZFS_IOC_JAIL' value='23173'/>
- <enumerator name='ZFS_IOC_USERNS_ATTACH' value='23173'/>
- <enumerator name='ZFS_IOC_UNJAIL' value='23174'/>
- <enumerator name='ZFS_IOC_USERNS_DETACH' value='23174'/>
- <enumerator name='ZFS_IOC_SET_BOOTENV' value='23175'/>
- <enumerator name='ZFS_IOC_GET_BOOTENV' value='23176'/>
- <enumerator name='ZFS_IOC_LAST' value='23177'/>
- </enum-decl>
- <typedef-decl name='zfs_ioc_t' type-id='12033f13' id='5b35941c'/>
- <enum-decl name='zpool_wait_activity_t' naming-typedef-id='73446457' id='849338e3'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='ZPOOL_WAIT_CKPT_DISCARD' value='0'/>
- <enumerator name='ZPOOL_WAIT_FREE' value='1'/>
- <enumerator name='ZPOOL_WAIT_INITIALIZE' value='2'/>
- <enumerator name='ZPOOL_WAIT_REPLACE' value='3'/>
- <enumerator name='ZPOOL_WAIT_REMOVE' value='4'/>
- <enumerator name='ZPOOL_WAIT_RESILVER' value='5'/>
- <enumerator name='ZPOOL_WAIT_SCRUB' value='6'/>
- <enumerator name='ZPOOL_WAIT_TRIM' value='7'/>
- <enumerator name='ZPOOL_WAIT_RAIDZ_EXPAND' value='8'/>
- <enumerator name='ZPOOL_WAIT_NUM_ACTIVITIES' value='9'/>
- </enum-decl>
- <typedef-decl name='zpool_wait_activity_t' type-id='849338e3' id='73446457'/>
- <enum-decl name='zfs_wait_activity_t' naming-typedef-id='3024501a' id='527d5dc6'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='ZFS_WAIT_DELETEQ' value='0'/>
- <enumerator name='ZFS_WAIT_NUM_ACTIVITIES' value='1'/>
- </enum-decl>
- <typedef-decl name='zfs_wait_activity_t' type-id='527d5dc6' id='3024501a'/>
- <enum-decl name='zpool_prefetch_type_t' naming-typedef-id='e55ff6bc' id='0299ab50'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='ZPOOL_PREFETCH_NONE' value='0'/>
- <enumerator name='ZPOOL_PREFETCH_DDT' value='1'/>
- </enum-decl>
- <typedef-decl name='zpool_prefetch_type_t' type-id='0299ab50' id='e55ff6bc'/>
- <enum-decl name='zpool_ddt_prune_unit_t' naming-typedef-id='02e25ab0' id='509ae11c'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='ZPOOL_DDT_PRUNE_NONE' value='0'/>
- <enumerator name='ZPOOL_DDT_PRUNE_AGE' value='1'/>
- <enumerator name='ZPOOL_DDT_PRUNE_PERCENTAGE' value='2'/>
- </enum-decl>
- <typedef-decl name='zpool_ddt_prune_unit_t' type-id='509ae11c' id='02e25ab0'/>
- <enum-decl name='data_type_t' naming-typedef-id='8d0687d2' id='aeeae136'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='DATA_TYPE_DONTCARE' value='-1'/>
- <enumerator name='DATA_TYPE_UNKNOWN' value='0'/>
- <enumerator name='DATA_TYPE_BOOLEAN' value='1'/>
- <enumerator name='DATA_TYPE_BYTE' value='2'/>
- <enumerator name='DATA_TYPE_INT16' value='3'/>
- <enumerator name='DATA_TYPE_UINT16' value='4'/>
- <enumerator name='DATA_TYPE_INT32' value='5'/>
- <enumerator name='DATA_TYPE_UINT32' value='6'/>
- <enumerator name='DATA_TYPE_INT64' value='7'/>
- <enumerator name='DATA_TYPE_UINT64' value='8'/>
- <enumerator name='DATA_TYPE_STRING' value='9'/>
- <enumerator name='DATA_TYPE_BYTE_ARRAY' value='10'/>
- <enumerator name='DATA_TYPE_INT16_ARRAY' value='11'/>
- <enumerator name='DATA_TYPE_UINT16_ARRAY' value='12'/>
- <enumerator name='DATA_TYPE_INT32_ARRAY' value='13'/>
- <enumerator name='DATA_TYPE_UINT32_ARRAY' value='14'/>
- <enumerator name='DATA_TYPE_INT64_ARRAY' value='15'/>
- <enumerator name='DATA_TYPE_UINT64_ARRAY' value='16'/>
- <enumerator name='DATA_TYPE_STRING_ARRAY' value='17'/>
- <enumerator name='DATA_TYPE_HRTIME' value='18'/>
- <enumerator name='DATA_TYPE_NVLIST' value='19'/>
- <enumerator name='DATA_TYPE_NVLIST_ARRAY' value='20'/>
- <enumerator name='DATA_TYPE_BOOLEAN_VALUE' value='21'/>
- <enumerator name='DATA_TYPE_INT8' value='22'/>
- <enumerator name='DATA_TYPE_UINT8' value='23'/>
- <enumerator name='DATA_TYPE_BOOLEAN_ARRAY' value='24'/>
- <enumerator name='DATA_TYPE_INT8_ARRAY' value='25'/>
- <enumerator name='DATA_TYPE_UINT8_ARRAY' value='26'/>
- <enumerator name='DATA_TYPE_DOUBLE' value='27'/>
- </enum-decl>
- <typedef-decl name='data_type_t' type-id='aeeae136' id='8d0687d2'/>
- <class-decl name='nvpair' size-in-bits='128' is-struct='yes' visibility='default' id='1c34e459'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='nvp_size' type-id='3ff5601b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='nvp_name_sz' type-id='23bd8cb5' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='48'>
- <var-decl name='nvp_reserve' type-id='23bd8cb5' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='nvp_value_elem' type-id='3ff5601b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='nvp_type' type-id='8d0687d2' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='nvp_name' type-id='e84913bd' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='nvpair_t' type-id='1c34e459' id='57928edf'/>
- <class-decl name='nvlist' size-in-bits='192' is-struct='yes' visibility='default' id='ac266fd9'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='nvl_version' type-id='3ff5601b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='nvl_nvflag' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='nvl_priv' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='nvl_flag' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='nvl_pad' type-id='3ff5601b' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='nvlist_t' type-id='ac266fd9' id='8e8d4be3'/>
- <class-decl name='zio_cksum' size-in-bits='256' is-struct='yes' visibility='default' id='1d53e28b'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='zc_word' type-id='85c64d26' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='zio_cksum_t' type-id='1d53e28b' id='39730d0b'/>
- <class-decl name='drr_begin' size-in-bits='2432' is-struct='yes' visibility='default' id='09fcdc01'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_magic' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_versioninfo' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_creation_time' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_type' type-id='230f1e16' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='drr_flags' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='drr_fromguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='drr_toname' type-id='d1617432' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='dmu_replay_record' size-in-bits='2496' is-struct='yes' visibility='default' id='781a52d7'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_type' type-id='08f5ca17' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='drr_payloadlen' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_u' type-id='ac5ab595' visibility='default'/>
- </data-member>
- </class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='08f5ca17'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='DRR_BEGIN' value='0'/>
- <enumerator name='DRR_OBJECT' value='1'/>
- <enumerator name='DRR_FREEOBJECTS' value='2'/>
- <enumerator name='DRR_WRITE' value='3'/>
- <enumerator name='DRR_FREE' value='4'/>
- <enumerator name='DRR_END' value='5'/>
- <enumerator name='DRR_WRITE_BYREF' value='6'/>
- <enumerator name='DRR_SPILL' value='7'/>
- <enumerator name='DRR_WRITE_EMBEDDED' value='8'/>
- <enumerator name='DRR_OBJECT_RANGE' value='9'/>
- <enumerator name='DRR_REDACT' value='10'/>
- <enumerator name='DRR_NUMTYPES' value='11'/>
- </enum-decl>
- <union-decl name='__anonymous_union__1' size-in-bits='2432' is-anonymous='yes' visibility='default' id='ac5ab595'>
- <data-member access='public'>
- <var-decl name='drr_begin' type-id='09fcdc01' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_end' type-id='6ee25631' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_object' type-id='f9ad530b' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_freeobjects' type-id='a27d958e' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_write' type-id='4cc69e4b' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_free' type-id='c836cfd2' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_write_byref' type-id='e511cdce' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_spill' type-id='1e69a80a' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_write_embedded' type-id='98b1345e' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_object_range' type-id='aba1f9e1' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_redact' type-id='50389039' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='drr_checksum' type-id='a5fe3647' visibility='default'/>
- </data-member>
- </union-decl>
- <class-decl name='drr_end' size-in-bits='320' is-struct='yes' visibility='default' id='6ee25631'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_checksum' type-id='39730d0b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_object' size-in-bits='448' is-struct='yes' visibility='default' id='f9ad530b'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_type' type-id='5c9d8906' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='drr_bonustype' type-id='5c9d8906' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_blksz' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='drr_bonuslen' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_checksumtype' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='200'>
- <var-decl name='drr_compress' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='208'>
- <var-decl name='drr_dn_slots' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='216'>
- <var-decl name='drr_flags' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='drr_raw_bonuslen' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='drr_indblkshift' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='328'>
- <var-decl name='drr_nlevels' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='336'>
- <var-decl name='drr_nblkptr' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='344'>
- <var-decl name='drr_pad' type-id='0f4ddd0b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='drr_maxblkid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_freeobjects' size-in-bits='192' is-struct='yes' visibility='default' id='a27d958e'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_firstobj' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_numobjs' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_write' size-in-bits='1088' is-struct='yes' visibility='default' id='4cc69e4b'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_type' type-id='5c9d8906' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='drr_pad' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_offset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_logical_size' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='drr_checksumtype' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='328'>
- <var-decl name='drr_flags' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='336'>
- <var-decl name='drr_compressiontype' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='344'>
- <var-decl name='drr_pad2' type-id='0f4ddd0b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='drr_key' type-id='67f6d2cf' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='drr_compressed_size' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='drr_salt' type-id='13339fda' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='drr_iv' type-id='fa8ef949' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='928'>
- <var-decl name='drr_mac' type-id='fa9986a5' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_free' size-in-bits='256' is-struct='yes' visibility='default' id='c836cfd2'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_offset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_length' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_write_byref' size-in-bits='832' is-struct='yes' visibility='default' id='e511cdce'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_offset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_length' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_refguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='drr_refobject' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='drr_refoffset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='drr_checksumtype' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='456'>
- <var-decl name='drr_flags' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='464'>
- <var-decl name='drr_pad2' type-id='0f562bd0' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='drr_key' type-id='67f6d2cf' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_spill' size-in-bits='640' is-struct='yes' visibility='default' id='1e69a80a'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_length' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_flags' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='200'>
- <var-decl name='drr_compressiontype' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='208'>
- <var-decl name='drr_pad' type-id='0f562bd0' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_compressed_size' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='drr_salt' type-id='13339fda' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='drr_iv' type-id='fa8ef949' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='480'>
- <var-decl name='drr_mac' type-id='fa9986a5' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='608'>
- <var-decl name='drr_type' type-id='5c9d8906' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_write_embedded' size-in-bits='384' is-struct='yes' visibility='default' id='98b1345e'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_offset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_length' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_compression' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='264'>
- <var-decl name='drr_etype' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='272'>
- <var-decl name='drr_pad' type-id='0f562bd0' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='drr_lsize' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='drr_psize' type-id='8f92235e' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_object_range' size-in-bits='512' is-struct='yes' visibility='default' id='aba1f9e1'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_firstobj' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_numslots' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_salt' type-id='13339fda' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='drr_iv' type-id='fa8ef949' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='drr_mac' type-id='fa9986a5' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='480'>
- <var-decl name='drr_flags' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='488'>
- <var-decl name='drr_pad' type-id='d3490169' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_redact' size-in-bits='256' is-struct='yes' visibility='default' id='50389039'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='drr_offset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='drr_length' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='drr_toguid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <class-decl name='drr_checksum' size-in-bits='2432' is-struct='yes' visibility='default' id='a5fe3647'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='drr_pad' type-id='8c2bcad1' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2176'>
- <var-decl name='drr_checksum' type-id='39730d0b' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='dmu_replay_record_t' type-id='781a52d7' id='8b8fc893'/>
- <class-decl name='zinject_record' size-in-bits='2944' is-struct='yes' visibility='default' id='3216f820'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='zi_objset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='zi_object' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='zi_start' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='zi_end' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='zi_guid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='zi_level' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='zi_error' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='zi_type' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='zi_freq' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='480'>
- <var-decl name='zi_failfast' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='zi_func' type-id='d1617432' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2560'>
- <var-decl name='zi_iotype' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2592'>
- <var-decl name='zi_duration' type-id='3ff5601b' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2624'>
- <var-decl name='zi_timer' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2688'>
- <var-decl name='zi_nlanes' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2752'>
- <var-decl name='zi_cmd' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2784'>
- <var-decl name='zi_dvas' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2816'>
- <var-decl name='zi_match_count' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2880'>
- <var-decl name='zi_inject_count' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='zinject_record_t' type-id='3216f820' id='a4301ca6'/>
- <class-decl name='zfs_share' size-in-bits='256' is-struct='yes' visibility='default' id='feb6f2da'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='z_exportdata' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='z_sharedata' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='z_sharetype' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='z_sharemax' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='zfs_share_t' type-id='feb6f2da' id='ee5cec36'/>
- <class-decl name='zfs_cmd' size-in-bits='109952' is-struct='yes' visibility='default' id='3522cd69'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='zc_name' type-id='d16c6df4' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32768'>
- <var-decl name='zc_nvlist_src' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32832'>
- <var-decl name='zc_nvlist_src_size' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32896'>
- <var-decl name='zc_nvlist_dst' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='32960'>
- <var-decl name='zc_nvlist_dst_size' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='33024'>
- <var-decl name='zc_nvlist_dst_filled' type-id='c19b74c3' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='33056'>
- <var-decl name='zc_pad2' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='33088'>
- <var-decl name='zc_history' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='33152'>
- <var-decl name='zc_value' type-id='163f6aa5' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='98688'>
- <var-decl name='zc_string' type-id='d1617432' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='100736'>
- <var-decl name='zc_guid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='100800'>
- <var-decl name='zc_nvlist_conf' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='100864'>
- <var-decl name='zc_nvlist_conf_size' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='100928'>
- <var-decl name='zc_cookie' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='100992'>
- <var-decl name='zc_objset_type' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='101056'>
- <var-decl name='zc_perm_action' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='101120'>
- <var-decl name='zc_history_len' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='101184'>
- <var-decl name='zc_history_offset' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='101248'>
- <var-decl name='zc_obj' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='101312'>
- <var-decl name='zc_iflags' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='101376'>
- <var-decl name='zc_share' type-id='ee5cec36' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='101632'>
- <var-decl name='zc_objset_stats' type-id='b2c14f17' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='103936'>
- <var-decl name='zc_begin_record' type-id='09fcdc01' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='106368'>
- <var-decl name='' type-id='ac5ab596' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109312'>
- <var-decl name='zc_cleanup_fd' type-id='95e97e5e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109344'>
- <var-decl name='zc_simple' type-id='b96825af' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109352'>
- <var-decl name='zc_pad' type-id='d3490169' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109376'>
- <var-decl name='zc_sendobj' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109440'>
- <var-decl name='zc_fromobj' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109504'>
- <var-decl name='zc_createtxg' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109568'>
- <var-decl name='zc_stat' type-id='0371a9c7' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='109888'>
- <var-decl name='zc_zoneid' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <union-decl name='__anonymous_union__' size-in-bits='2944' is-anonymous='yes' visibility='default' id='ac5ab596'>
- <data-member access='public'>
- <var-decl name='zc_inject_record' type-id='a4301ca6' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='' type-id='e7f43f72' visibility='default'/>
- </data-member>
- </union-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='2944' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f72'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='zc_pad1' type-id='514368c7' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2816'>
- <var-decl name='zc_defer_destroy' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2848'>
- <var-decl name='zc_flags' type-id='8f92235e' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='2880'>
- <var-decl name='zc_action_handle' type-id='9c313c2d' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='zfs_cmd_t' type-id='3522cd69' id='a5559cdd'/>
- <class-decl name='zfs_stat' size-in-bits='320' is-struct='yes' visibility='default' id='6417f0b9'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='zs_gen' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='zs_mode' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='zs_links' type-id='9c313c2d' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='zs_ctime' type-id='c1c22e6c' visibility='default'/>
- </data-member>
- </class-decl>
- <typedef-decl name='zfs_stat_t' type-id='6417f0b9' id='0371a9c7'/>
- <enum-decl name='boolean_t' naming-typedef-id='c19b74c3' id='f58c8277'>
- <underlying-type type-id='9cac1fee'/>
- <enumerator name='B_FALSE' value='0'/>
- <enumerator name='B_TRUE' value='1'/>
- </enum-decl>
- <typedef-decl name='boolean_t' type-id='f58c8277' id='c19b74c3'/>
- <typedef-decl name='uchar_t' type-id='002ac4a6' id='d8bf0010'/>
- <typedef-decl name='uint_t' type-id='f0981eeb' id='3502e3ff'/>
- <typedef-decl name='pthread_t' type-id='7359adad' id='4051f5e7'/>
- <union-decl name='pthread_attr_t' size-in-bits='448' visibility='default' id='b63afacd'>
- <data-member access='public'>
- <var-decl name='__size' type-id='6093ff7c' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='__align' type-id='bd54fe1a' visibility='default'/>
- </data-member>
- </union-decl>
- <typedef-decl name='pthread_attr_t' type-id='b63afacd' id='7d8569fd'/>
- <union-decl name='pthread_mutex_t' size-in-bits='320' naming-typedef-id='7a6844eb' visibility='default' id='70681f9b'>
- <data-member access='public'>
- <var-decl name='__data' type-id='4c734837' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='__size' type-id='36c46961' visibility='default'/>
- </data-member>
- <data-member access='public'>
- <var-decl name='__align' type-id='bd54fe1a' visibility='default'/>
- </data-member>
- </union-decl>
- <typedef-decl name='pthread_mutex_t' type-id='70681f9b' id='7a6844eb'/>
- <typedef-decl name='int16_t' type-id='03896e23' id='23bd8cb5'/>
- <typedef-decl name='int32_t' type-id='33f57a65' id='3ff5601b'/>
- <typedef-decl name='uint8_t' type-id='c51d6389' id='b96825af'/>
- <typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/>
- <typedef-decl name='uint64_t' type-id='8910171f' id='9c313c2d'/>
- <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>
- <class-decl name='stat' size-in-bits='1152' is-struct='yes' visibility='default' id='aafc373f'>
- <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='e43e523d' 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='dbc43803' 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>
- <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_list_t' type-id='0e01899c' id='518fb49c'/>
- <typedef-decl name='__uint8_t' type-id='002ac4a6' id='c51d6389'/>
- <typedef-decl name='__int16_t' type-id='a2185560' id='03896e23'/>
- <typedef-decl name='__int32_t' type-id='95e97e5e' id='33f57a65'/>
- <typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/>
- <typedef-decl name='__uint64_t' type-id='7359adad' id='8910171f'/>
- <typedef-decl name='__dev_t' type-id='7359adad' id='35ed8932'/>
- <typedef-decl name='__uid_t' type-id='f0981eeb' id='cc5fcceb'/>
- <typedef-decl name='__gid_t' type-id='f0981eeb' id='d94ec6d9'/>
- <typedef-decl name='__ino_t' type-id='7359adad' id='e43e523d'/>
- <typedef-decl name='__mode_t' type-id='f0981eeb' id='e1c52942'/>
- <typedef-decl name='__nlink_t' type-id='7359adad' id='80f0b9df'/>
- <typedef-decl name='__off_t' type-id='bd54fe1a' id='79989e9c'/>
- <typedef-decl name='__off64_t' type-id='bd54fe1a' id='724e4de6'/>
- <typedef-decl name='__time_t' type-id='bd54fe1a' id='65eda9c0'/>
- <typedef-decl name='__blksize_t' type-id='bd54fe1a' id='d3f10a7f'/>
- <typedef-decl name='__blkcnt_t' type-id='bd54fe1a' id='dbc43803'/>
- <typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/>
- <typedef-decl name='__syscall_slong_t' type-id='bd54fe1a' id='03085adc'/>
- <typedef-decl name='FILE' type-id='ec1ed955' id='aa12d1ba'/>
- <typedef-decl name='_IO_lock_t' type-id='48b5725f' id='bb4788fa'/>
- <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='_codecvt' type-id='570f8c59' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='_wide_data' type-id='c65a1f29' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='_freeres_list' type-id='dca988a5' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='_freeres_buf' 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='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='ssize_t' type-id='41060289' id='79a0948f'/>
- <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/>
- <pointer-type-def type-id='aa12d1ba' size-in-bits='64' id='822cd80b'/>
- <qualified-type-def type-id='822cd80b' restrict='yes' id='e75a27e9'/>
- <pointer-type-def type-id='ec1ed955' size-in-bits='64' id='dca988a5'/>
- <pointer-type-def type-id='a4036571' size-in-bits='64' id='570f8c59'/>
- <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='79bd3751' size-in-bits='64' id='c65a1f29'/>
- <pointer-type-def type-id='724e4de6' size-in-bits='64' id='ecf845f9'/>
- <pointer-type-def type-id='0e01899c' size-in-bits='64' id='4d98cd5a'/>
- <pointer-type-def type-id='c19b74c3' size-in-bits='64' id='37e3bd22'/>
- <pointer-type-def type-id='a84c031d' size-in-bits='64' id='26a90f95'/>
- <qualified-type-def type-id='a84c031d' const='yes' id='9b45d938'/>
- <pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/>
- <qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/>
- <qualified-type-def type-id='8b8fc893' const='yes' id='9623bc03'/>
- <pointer-type-def type-id='9623bc03' size-in-bits='64' id='8341348b'/>
- <qualified-type-def type-id='8e8d4be3' const='yes' id='693c3853'/>
- <pointer-type-def type-id='693c3853' size-in-bits='64' id='22cce67b'/>
- <qualified-type-def type-id='57928edf' const='yes' id='642ee20f'/>
- <pointer-type-def type-id='642ee20f' size-in-bits='64' id='dace003f'/>
- <qualified-type-def type-id='7d8569fd' const='yes' id='e06dee2d'/>
- <pointer-type-def type-id='e06dee2d' size-in-bits='64' id='540db505'/>
- <qualified-type-def type-id='540db505' restrict='yes' id='e1815e87'/>
- <qualified-type-def type-id='d8bf0010' const='yes' id='a9125480'/>
- <pointer-type-def type-id='a9125480' size-in-bits='64' id='d1db479e'/>
- <qualified-type-def type-id='b96825af' const='yes' id='2b61797f'/>
- <pointer-type-def type-id='2b61797f' size-in-bits='64' id='9f7200cf'/>
- <pointer-type-def type-id='c70fa2e8' size-in-bits='64' id='2e711a2a'/>
- <pointer-type-def type-id='95e97e5e' size-in-bits='64' id='7292109c'/>
- <pointer-type-def type-id='8e8d4be3' size-in-bits='64' id='5ce45b60'/>
- <pointer-type-def type-id='5ce45b60' size-in-bits='64' id='857bb57e'/>
- <pointer-type-def type-id='57928edf' size-in-bits='64' id='3fa542f0'/>
- <pointer-type-def type-id='7a6844eb' size-in-bits='64' id='18c91f9e'/>
- <pointer-type-def type-id='4051f5e7' size-in-bits='64' id='e01b5462'/>
- <qualified-type-def type-id='e01b5462' restrict='yes' id='cc338b26'/>
- <pointer-type-def type-id='b59d7dce' size-in-bits='64' id='78c01427'/>
- <pointer-type-def type-id='aafc373f' size-in-bits='64' id='4330df87'/>
- <pointer-type-def type-id='9c313c2d' size-in-bits='64' id='5d6479ae'/>
- <pointer-type-def type-id='b96825af' size-in-bits='64' id='ae3e8ca6'/>
- <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/>
- <pointer-type-def type-id='cd5d79f4' size-in-bits='64' id='5ad9edb6'/>
- <qualified-type-def type-id='eaa32e2f' restrict='yes' id='1b7446cd'/>
- <pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/>
- <pointer-type-def type-id='3522cd69' size-in-bits='64' id='b65f7fd1'/>
- <pointer-type-def type-id='a5559cdd' size-in-bits='64' id='e4ec4540'/>
- <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='a4036571'/>
- <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='010ae0b9'/>
- <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='79bd3751'/>
- <function-decl name='nvlist_print' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='822cd80b'/>
- <parameter type-id='5ce45b60'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='nvlist_free' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='nvlist_unpack' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='26a90f95'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='857bb57e'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='nvlist_lookup_uint64' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='22cce67b'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='5d6479ae'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='nvlist_lookup_nvlist' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='857bb57e'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='nvlist_next_nvpair' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='dace003f'/>
- <return type-id='3fa542f0'/>
- </function-decl>
- <function-decl name='nvpair_name' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='dace003f'/>
- <return type-id='80f4b756'/>
- </function-decl>
- <function-decl name='fnvlist_alloc' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='5ce45b60'/>
- </function-decl>
- <function-decl name='fnvlist_free' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_pack' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='78c01427'/>
- <return type-id='26a90f95'/>
- </function-decl>
- <function-decl name='fnvlist_pack_free' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='26a90f95'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_unpack' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='26a90f95'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='5ce45b60'/>
- </function-decl>
- <function-decl name='fnvlist_dup' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='22cce67b'/>
- <return type-id='5ce45b60'/>
- </function-decl>
- <function-decl name='fnvlist_add_boolean' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_add_boolean_value' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='c19b74c3'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_add_int32' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='3ff5601b'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_add_uint64' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='9c313c2d'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_add_string' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='80f4b756'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_add_nvlist' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='5ce45b60'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_add_byte_array' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='d1db479e'/>
- <parameter type-id='3502e3ff'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_add_uint8_array' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='5ce45b60'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='9f7200cf'/>
- <parameter type-id='3502e3ff'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='fnvlist_lookup_boolean_value' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='22cce67b'/>
- <parameter type-id='80f4b756'/>
- <return type-id='c19b74c3'/>
- </function-decl>
- <function-decl name='fnvlist_lookup_uint64' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='22cce67b'/>
- <parameter type-id='80f4b756'/>
- <return type-id='9c313c2d'/>
- </function-decl>
- <function-decl name='fnvlist_lookup_string' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='22cce67b'/>
- <parameter type-id='80f4b756'/>
- <return type-id='80f4b756'/>
- </function-decl>
- <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'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='80f4b756'/>
- <parameter is-variadic='yes'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='strlcpy' mangled-name='strlcpy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strlcpy'>
- <parameter type-id='26a90f95'/>
- <parameter type-id='80f4b756'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='b59d7dce'/>
- </function-decl>
- <function-decl name='__errno_location' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='7292109c'/>
- </function-decl>
- <function-decl name='pthread_create' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='cc338b26'/>
- <parameter type-id='e1815e87'/>
- <parameter type-id='5ad9edb6'/>
- <parameter type-id='1b7446cd'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='pthread_join' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='4051f5e7'/>
- <parameter type-id='63e171df'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='pthread_mutex_lock' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='18c91f9e'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='pthread_mutex_unlock' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='18c91f9e'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='fclose' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='822cd80b'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='malloc' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='b59d7dce'/>
- <return type-id='eaa32e2f'/>
- </function-decl>
- <function-decl name='free' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='eaa32e2f'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='getenv' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <return type-id='26a90f95'/>
- </function-decl>
- <function-decl name='strchr' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='26a90f95'/>
- </function-decl>
- <function-decl name='strrchr' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='26a90f95'/>
- </function-decl>
- <function-decl name='strcspn' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='80f4b756'/>
- <parameter type-id='80f4b756'/>
- <return type-id='b59d7dce'/>
- </function-decl>
- <function-decl name='close' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='pipe2' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='7292109c'/>
- <parameter type-id='95e97e5e'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='splice' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='ecf845f9'/>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='ecf845f9'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='f0981eeb'/>
- <return type-id='41060289'/>
- </function-decl>
- <function-decl name='__open_too_many_args' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='__open_missing_mode' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='__fprintf_chk' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='e75a27e9'/>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='9d26089a'/>
- <parameter is-variadic='yes'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='__read_chk' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='eaa32e2f'/>
- <parameter type-id='b59d7dce'/>
- <parameter type-id='b59d7dce'/>
- <return type-id='79a0948f'/>
- </function-decl>
- <function-decl name='libzfs_core_init' mangled-name='libzfs_core_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libzfs_core_init'>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='libzfs_core_fini' mangled-name='libzfs_core_fini' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libzfs_core_fini'>
- <return type-id='48b5725f'/>
- </function-decl>
- <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='ioc'/>
- <parameter type-id='e4ec4540' name='zc'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_scrub' mangled-name='lzc_scrub' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_scrub'>
- <parameter type-id='5b35941c' name='ioc'/>
- <parameter type-id='80f4b756' name='name'/>
- <parameter type-id='5ce45b60' name='source'/>
- <parameter type-id='857bb57e' name='resultp'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_create' mangled-name='lzc_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_create'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='bc9887f1' name='type'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='ae3e8ca6' name='wkeydata'/>
- <parameter type-id='3502e3ff' name='wkeylen'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_clone' mangled-name='lzc_clone' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_clone'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='80f4b756' name='origin'/>
- <parameter type-id='5ce45b60' name='props'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_promote' mangled-name='lzc_promote' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_promote'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='26a90f95' name='snapnamebuf'/>
- <parameter type-id='95e97e5e' name='snapnamelen'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_rename' mangled-name='lzc_rename' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_rename'>
- <parameter type-id='80f4b756' name='source'/>
- <parameter type-id='80f4b756' name='target'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_destroy' mangled-name='lzc_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_destroy'>
- <parameter type-id='80f4b756' name='fsname'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_snapshot' mangled-name='lzc_snapshot' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_snapshot'>
- <parameter type-id='5ce45b60' name='snaps'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_destroy_snaps' mangled-name='lzc_destroy_snaps' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_destroy_snaps'>
- <parameter type-id='5ce45b60' name='snaps'/>
- <parameter type-id='c19b74c3' name='defer'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_snaprange_space' mangled-name='lzc_snaprange_space' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_snaprange_space'>
- <parameter type-id='80f4b756' name='firstsnap'/>
- <parameter type-id='80f4b756' name='lastsnap'/>
- <parameter type-id='5d6479ae' name='usedp'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_exists' mangled-name='lzc_exists' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_exists'>
- <parameter type-id='80f4b756' name='dataset'/>
- <return type-id='c19b74c3'/>
- </function-decl>
- <function-decl name='lzc_sync' mangled-name='lzc_sync' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_sync'>
- <parameter type-id='80f4b756' name='pool_name'/>
- <parameter type-id='5ce45b60' name='innvl'/>
- <parameter type-id='857bb57e' name='outnvl'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_hold' mangled-name='lzc_hold' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_hold'>
- <parameter type-id='5ce45b60' name='holds'/>
- <parameter type-id='95e97e5e' name='cleanup_fd'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_release' mangled-name='lzc_release' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_release'>
- <parameter type-id='5ce45b60' name='holds'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_get_holds' mangled-name='lzc_get_holds' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_get_holds'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='857bb57e' name='holdsp'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_get_props' mangled-name='lzc_get_props' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_get_props'>
- <parameter type-id='80f4b756' name='poolname'/>
- <parameter type-id='857bb57e' name='props'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_send_wrapper' mangled-name='lzc_send_wrapper' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_send_wrapper'>
- <parameter type-id='2e711a2a' name='func'/>
- <parameter type-id='95e97e5e' name='orig_fd'/>
- <parameter type-id='eaa32e2f' name='data'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_send' mangled-name='lzc_send' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_send'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='80f4b756' name='from'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <parameter type-id='bfbd3c8e' name='flags'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_send_redacted' mangled-name='lzc_send_redacted' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_send_redacted'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='80f4b756' name='from'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <parameter type-id='bfbd3c8e' name='flags'/>
- <parameter type-id='80f4b756' name='redactbook'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_send_resume' mangled-name='lzc_send_resume' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_send_resume'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='80f4b756' name='from'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <parameter type-id='bfbd3c8e' name='flags'/>
- <parameter type-id='9c313c2d' name='resumeobj'/>
- <parameter type-id='9c313c2d' name='resumeoff'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_send_resume_redacted' mangled-name='lzc_send_resume_redacted' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_send_resume_redacted'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='80f4b756' name='from'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <parameter type-id='bfbd3c8e' name='flags'/>
- <parameter type-id='9c313c2d' name='resumeobj'/>
- <parameter type-id='9c313c2d' name='resumeoff'/>
- <parameter type-id='80f4b756' name='redactbook'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_send_space_resume_redacted' mangled-name='lzc_send_space_resume_redacted' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_send_space_resume_redacted'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='80f4b756' name='from'/>
- <parameter type-id='bfbd3c8e' name='flags'/>
- <parameter type-id='9c313c2d' name='resumeobj'/>
- <parameter type-id='9c313c2d' name='resumeoff'/>
- <parameter type-id='9c313c2d' name='resume_bytes'/>
- <parameter type-id='80f4b756' name='redactbook'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <parameter type-id='5d6479ae' name='spacep'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_send_space' mangled-name='lzc_send_space' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_send_space'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='80f4b756' name='from'/>
- <parameter type-id='bfbd3c8e' name='flags'/>
- <parameter type-id='5d6479ae' name='spacep'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_receive' mangled-name='lzc_receive' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_receive'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='80f4b756' name='origin'/>
- <parameter type-id='c19b74c3' name='force'/>
- <parameter type-id='c19b74c3' name='raw'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_receive_resumable' mangled-name='lzc_receive_resumable' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_receive_resumable'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='80f4b756' name='origin'/>
- <parameter type-id='c19b74c3' name='force'/>
- <parameter type-id='c19b74c3' name='raw'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_receive_with_header' mangled-name='lzc_receive_with_header' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_receive_with_header'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='80f4b756' name='origin'/>
- <parameter type-id='c19b74c3' name='force'/>
- <parameter type-id='c19b74c3' name='resumable'/>
- <parameter type-id='c19b74c3' name='raw'/>
- <parameter type-id='95e97e5e' name='fd'/>
- <parameter type-id='8341348b' name='begin_record'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_receive_one' mangled-name='lzc_receive_one' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_receive_one'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='80f4b756' name='origin'/>
- <parameter type-id='c19b74c3' name='force'/>
- <parameter type-id='c19b74c3' name='resumable'/>
- <parameter type-id='c19b74c3' name='raw'/>
- <parameter type-id='95e97e5e' name='input_fd'/>
- <parameter type-id='8341348b' name='begin_record'/>
- <parameter type-id='95e97e5e' name='cleanup_fd'/>
- <parameter type-id='5d6479ae' name='read_bytes'/>
- <parameter type-id='5d6479ae' name='errflags'/>
- <parameter type-id='5d6479ae' name='action_handle'/>
- <parameter type-id='857bb57e' name='errors'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_receive_with_cmdprops' mangled-name='lzc_receive_with_cmdprops' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_receive_with_cmdprops'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='5ce45b60' name='cmdprops'/>
- <parameter type-id='ae3e8ca6' name='wkeydata'/>
- <parameter type-id='3502e3ff' name='wkeylen'/>
- <parameter type-id='80f4b756' name='origin'/>
- <parameter type-id='c19b74c3' name='force'/>
- <parameter type-id='c19b74c3' name='resumable'/>
- <parameter type-id='c19b74c3' name='raw'/>
- <parameter type-id='95e97e5e' name='input_fd'/>
- <parameter type-id='8341348b' name='begin_record'/>
- <parameter type-id='95e97e5e' name='cleanup_fd'/>
- <parameter type-id='5d6479ae' name='read_bytes'/>
- <parameter type-id='5d6479ae' name='errflags'/>
- <parameter type-id='5d6479ae' name='action_handle'/>
- <parameter type-id='857bb57e' name='errors'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_receive_with_heal' mangled-name='lzc_receive_with_heal' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_receive_with_heal'>
- <parameter type-id='80f4b756' name='snapname'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='5ce45b60' name='cmdprops'/>
- <parameter type-id='ae3e8ca6' name='wkeydata'/>
- <parameter type-id='3502e3ff' name='wkeylen'/>
- <parameter type-id='80f4b756' name='origin'/>
- <parameter type-id='c19b74c3' name='force'/>
- <parameter type-id='c19b74c3' name='heal'/>
- <parameter type-id='c19b74c3' name='resumable'/>
- <parameter type-id='c19b74c3' name='raw'/>
- <parameter type-id='95e97e5e' name='input_fd'/>
- <parameter type-id='8341348b' name='begin_record'/>
- <parameter type-id='95e97e5e' name='cleanup_fd'/>
- <parameter type-id='5d6479ae' name='read_bytes'/>
- <parameter type-id='5d6479ae' name='errflags'/>
- <parameter type-id='5d6479ae' name='action_handle'/>
- <parameter type-id='857bb57e' name='errors'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_rollback' mangled-name='lzc_rollback' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_rollback'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='26a90f95' name='snapnamebuf'/>
- <parameter type-id='95e97e5e' name='snapnamelen'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_rollback_to' mangled-name='lzc_rollback_to' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_rollback_to'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='80f4b756' name='snapname'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_bookmark' mangled-name='lzc_bookmark' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_bookmark'>
- <parameter type-id='5ce45b60' name='bookmarks'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_get_bookmarks' mangled-name='lzc_get_bookmarks' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_get_bookmarks'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='857bb57e' name='bmarks'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_get_bookmark_props' mangled-name='lzc_get_bookmark_props' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_get_bookmark_props'>
- <parameter type-id='80f4b756' name='bookmark'/>
- <parameter type-id='857bb57e' name='props'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_destroy_bookmarks' mangled-name='lzc_destroy_bookmarks' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_destroy_bookmarks'>
- <parameter type-id='5ce45b60' name='bmarks'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_channel_program' mangled-name='lzc_channel_program' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_channel_program'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='80f4b756' name='program'/>
- <parameter type-id='9c313c2d' name='instrlimit'/>
- <parameter type-id='9c313c2d' name='memlimit'/>
- <parameter type-id='5ce45b60' name='argnvl'/>
- <parameter type-id='857bb57e' name='outnvl'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_pool_checkpoint' mangled-name='lzc_pool_checkpoint' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_pool_checkpoint'>
- <parameter type-id='80f4b756' name='pool'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_pool_checkpoint_discard' mangled-name='lzc_pool_checkpoint_discard' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_pool_checkpoint_discard'>
- <parameter type-id='80f4b756' name='pool'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_pool_prefetch' mangled-name='lzc_pool_prefetch' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_pool_prefetch'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='e55ff6bc' name='type'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_channel_program_nosync' mangled-name='lzc_channel_program_nosync' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_channel_program_nosync'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='80f4b756' name='program'/>
- <parameter type-id='9c313c2d' name='timeout'/>
- <parameter type-id='9c313c2d' name='memlimit'/>
- <parameter type-id='5ce45b60' name='argnvl'/>
- <parameter type-id='857bb57e' name='outnvl'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_get_vdev_prop' mangled-name='lzc_get_vdev_prop' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_get_vdev_prop'>
- <parameter type-id='80f4b756' name='poolname'/>
- <parameter type-id='5ce45b60' name='innvl'/>
- <parameter type-id='857bb57e' name='outnvl'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_set_vdev_prop' mangled-name='lzc_set_vdev_prop' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_set_vdev_prop'>
- <parameter type-id='80f4b756' name='poolname'/>
- <parameter type-id='5ce45b60' name='innvl'/>
- <parameter type-id='857bb57e' name='outnvl'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_load_key' mangled-name='lzc_load_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_load_key'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='c19b74c3' name='noop'/>
- <parameter type-id='ae3e8ca6' name='wkeydata'/>
- <parameter type-id='3502e3ff' name='wkeylen'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_unload_key' mangled-name='lzc_unload_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_unload_key'>
- <parameter type-id='80f4b756' name='fsname'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_change_key' mangled-name='lzc_change_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_change_key'>
- <parameter type-id='80f4b756' name='fsname'/>
- <parameter type-id='9c313c2d' name='crypt_cmd'/>
- <parameter type-id='5ce45b60' name='props'/>
- <parameter type-id='ae3e8ca6' name='wkeydata'/>
- <parameter type-id='3502e3ff' name='wkeylen'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_reopen' mangled-name='lzc_reopen' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_reopen'>
- <parameter type-id='80f4b756' name='pool_name'/>
- <parameter type-id='c19b74c3' name='scrub_restart'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_initialize' mangled-name='lzc_initialize' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_initialize'>
- <parameter type-id='80f4b756' name='poolname'/>
- <parameter type-id='7063e1ab' name='cmd_type'/>
- <parameter type-id='5ce45b60' name='vdevs'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_trim' mangled-name='lzc_trim' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_trim'>
- <parameter type-id='80f4b756' name='poolname'/>
- <parameter type-id='b1146b8d' name='cmd_type'/>
- <parameter type-id='9c313c2d' name='rate'/>
- <parameter type-id='c19b74c3' name='secure'/>
- <parameter type-id='5ce45b60' name='vdevs'/>
- <parameter type-id='857bb57e' name='errlist'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_redact' mangled-name='lzc_redact' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_redact'>
- <parameter type-id='80f4b756' name='snapshot'/>
- <parameter type-id='80f4b756' name='bookname'/>
- <parameter type-id='5ce45b60' name='snapnv'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_wait' mangled-name='lzc_wait' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_wait'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='73446457' name='activity'/>
- <parameter type-id='37e3bd22' name='waited'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_wait_tag' mangled-name='lzc_wait_tag' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_wait_tag'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='73446457' name='activity'/>
- <parameter type-id='9c313c2d' name='tag'/>
- <parameter type-id='37e3bd22' name='waited'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_wait_fs' mangled-name='lzc_wait_fs' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_wait_fs'>
- <parameter type-id='80f4b756' name='fs'/>
- <parameter type-id='3024501a' name='activity'/>
- <parameter type-id='37e3bd22' name='waited'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_set_bootenv' mangled-name='lzc_set_bootenv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_set_bootenv'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='22cce67b' name='env'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_get_bootenv' mangled-name='lzc_get_bootenv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_get_bootenv'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='857bb57e' name='outnvl'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_ddt_prune' mangled-name='lzc_ddt_prune' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_ddt_prune'>
- <parameter type-id='80f4b756' name='pool'/>
- <parameter type-id='02e25ab0' name='unit'/>
- <parameter type-id='9c313c2d' name='amount'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='lzc_ioctl_fd_os' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='7359adad'/>
- <parameter type-id='b65f7fd1'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-type size-in-bits='64' id='c70fa2e8'>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='eaa32e2f'/>
- <return type-id='95e97e5e'/>
- </function-type>
- <function-type size-in-bits='64' id='cd5d79f4'>
- <parameter type-id='eaa32e2f'/>
- <return type-id='eaa32e2f'/>
- </function-type>
- </abi-instr>
- <abi-instr address-size='64' path='lib/libzfs_core/os/linux/libzfs_core_ioctl.c' language='LANG_C99'>
- <function-decl name='ioctl' visibility='default' binding='global' size-in-bits='64'>
- <parameter type-id='95e97e5e'/>
- <parameter type-id='7359adad'/>
- <parameter is-variadic='yes'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- </abi-instr>
-</abi-corpus>
diff --git a/lib/libzfs_core/libzfs_core.c b/lib/libzfs_core/libzfs_core.c
deleted file mode 100644
index 9347aa7c6a28..000000000000
--- a/lib/libzfs_core/libzfs_core.c
+++ /dev/null
@@ -1,1996 +0,0 @@
-// SPDX-License-Identifier: CDDL-1.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 https://opensource.org/licenses/CDDL-1.0.
- * 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 (c) 2012, 2020 by Delphix. All rights reserved.
- * Copyright (c) 2013 Steven Hartland. All rights reserved.
- * Copyright 2017 RackTop Systems.
- * Copyright (c) 2017 Open-E, Inc. All Rights Reserved.
- * Copyright (c) 2019, 2020 by Christian Schwarz. All rights reserved.
- * Copyright (c) 2019 Datto Inc.
- */
-
-/*
- * LibZFS_Core (lzc) is intended to replace most functionality in libzfs.
- * It has the following characteristics:
- *
- * - Thread Safe. libzfs_core is accessible concurrently from multiple
- * threads. This is accomplished primarily by avoiding global data
- * (e.g. caching). Since it's thread-safe, there is no reason for a
- * process to have multiple libzfs "instances". Therefore, we store
- * our few pieces of data (e.g. the file descriptor) in global
- * variables. The fd is reference-counted so that the libzfs_core
- * library can be "initialized" multiple times (e.g. by different
- * consumers within the same process).
- *
- * - Committed Interface. The libzfs_core interface will be committed,
- * therefore consumers can compile against it and be confident that
- * their code will continue to work on future releases of this code.
- * Currently, the interface is Evolving (not Committed), but we intend
- * to commit to it once it is more complete and we determine that it
- * meets the needs of all consumers.
- *
- * - Programmatic Error Handling. libzfs_core communicates errors with
- * defined error numbers, and doesn't print anything to stdout/stderr.
- *
- * - Thin Layer. libzfs_core is a thin layer, marshaling arguments
- * to/from the kernel ioctls. There is generally a 1:1 correspondence
- * between libzfs_core functions and ioctls to ZFS_DEV.
- *
- * - Clear Atomicity. Because libzfs_core functions are generally 1:1
- * with kernel ioctls, and kernel ioctls are general atomic, each
- * libzfs_core function is atomic. For example, creating multiple
- * snapshots with a single call to lzc_snapshot() is atomic -- it
- * can't fail with only some of the requested snapshots created, even
- * in the event of power loss or system crash.
- *
- * - Continued libzfs Support. Some higher-level operations (e.g.
- * support for "zfs send -R") are too complicated to fit the scope of
- * libzfs_core. This functionality will continue to live in libzfs.
- * Where appropriate, libzfs will use the underlying atomic operations
- * of libzfs_core. For example, libzfs may implement "zfs send -R |
- * zfs receive" by using individual "send one snapshot", rename,
- * destroy, and "receive one snapshot" operations in libzfs_core.
- * /sbin/zfs and /sbin/zpool will link with both libzfs and
- * libzfs_core. Other consumers should aim to use only libzfs_core,
- * since that will be the supported, stable interface going forwards.
- */
-
-#include <libzfs_core.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef ZFS_DEBUG
-#include <stdio.h>
-#endif
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <libzutil.h>
-#include <sys/nvpair.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/zfs_ioctl.h>
-#if __FreeBSD__
-#define BIG_PIPE_SIZE (64 * 1024) /* From sys/pipe.h */
-#endif
-
-#include "libzfs_core_impl.h"
-
-static int g_fd = -1;
-static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER;
-static int g_refcount;
-
-static int g_ioc_trace = 0;
-
-#ifdef ZFS_DEBUG
-static zfs_ioc_t fail_ioc_cmd = ZFS_IOC_LAST;
-static zfs_errno_t fail_ioc_err;
-
-static void
-libzfs_core_debug_ioc(void)
-{
- /*
- * To test running newer user space binaries with kernel's
- * that don't yet support an ioctl or a new ioctl arg we
- * provide an override to intentionally fail an ioctl.
- *
- * USAGE:
- * The override variable, ZFS_IOC_TEST, is of the form "cmd:err"
- *
- * For example, to fail a ZFS_IOC_POOL_CHECKPOINT with a
- * ZFS_ERR_IOC_CMD_UNAVAIL, the string would be "0x5a4d:1029"
- *
- * $ sudo sh -c "ZFS_IOC_TEST=0x5a4d:1029 zpool checkpoint tank"
- * cannot checkpoint 'tank': the loaded zfs module does not support
- * this operation. A reboot may be required to enable this operation.
- */
- if (fail_ioc_cmd == ZFS_IOC_LAST) {
- char *ioc_test = getenv("ZFS_IOC_TEST");
- unsigned int ioc_num = 0, ioc_err = 0;
-
- if (ioc_test != NULL &&
- sscanf(ioc_test, "%i:%i", &ioc_num, &ioc_err) == 2 &&
- ioc_num < ZFS_IOC_LAST) {
- fail_ioc_cmd = ioc_num;
- fail_ioc_err = ioc_err;
- }
- }
-}
-#endif
-
-int
-libzfs_core_init(void)
-{
- (void) pthread_mutex_lock(&g_lock);
- if (g_refcount == 0) {
- g_fd = open(ZFS_DEV, O_RDWR|O_CLOEXEC);
- if (g_fd < 0) {
- (void) pthread_mutex_unlock(&g_lock);
- return (errno);
- }
- }
- g_refcount++;
-
-#ifdef ZFS_DEBUG
- libzfs_core_debug_ioc();
-#endif
-
- if (getenv("ZFS_IOC_TRACE"))
- g_ioc_trace = 1;
-
- (void) pthread_mutex_unlock(&g_lock);
- return (0);
-}
-
-void
-libzfs_core_fini(void)
-{
- (void) pthread_mutex_lock(&g_lock);
- ASSERT3S(g_refcount, >, 0);
-
- g_refcount--;
-
- if (g_refcount == 0 && g_fd != -1) {
- (void) close(g_fd);
- g_fd = -1;
- }
- (void) pthread_mutex_unlock(&g_lock);
-}
-
-int
-lzc_ioctl_fd(int fd, unsigned long ioc, zfs_cmd_t *zc)
-{
- if (!g_ioc_trace)
- return (lzc_ioctl_fd_os(fd, ioc, zc));
-
- nvlist_t *nvl;
-
- fprintf(stderr, "=== lzc_ioctl: call: ioc=0x%lx name=%s\n",
- ioc, zc->zc_name[0] ? zc->zc_name : "[none]");
- if (zc->zc_nvlist_src) {
- nvl = fnvlist_unpack(
- (void *)(uintptr_t)zc->zc_nvlist_src,
- zc->zc_nvlist_src_size);
- nvlist_print(stderr, nvl);
- fnvlist_free(nvl);
- }
-
- int rc = lzc_ioctl_fd_os(fd, ioc, zc);
- int err = errno;
-
- fprintf(stderr, "=== lzc_ioctl: result: ioc=0x%lx name=%s "
- "rc=%d errno=%d\n", ioc, zc->zc_name[0] ? zc->zc_name : "[none]",
- rc, (rc < 0 ? err : 0));
- if (rc >= 0 && zc->zc_nvlist_dst) {
- nvl = fnvlist_unpack(
- (void *)(uintptr_t)zc->zc_nvlist_dst,
- zc->zc_nvlist_dst_size);
- nvlist_print(stderr, nvl);
- fnvlist_free(nvl);
- }
-
- errno = err;
- return (rc);
-}
-
-static int
-lzc_ioctl(zfs_ioc_t ioc, const char *name,
- nvlist_t *source, nvlist_t **resultp)
-{
- zfs_cmd_t zc = {"\0"};
- int error = 0;
- char *packed = NULL;
- size_t size = 0;
-
- ASSERT3S(g_refcount, >, 0);
- VERIFY3S(g_fd, !=, -1);
-
-#ifdef ZFS_DEBUG
- if (ioc == fail_ioc_cmd)
- return (fail_ioc_err);
-#endif
-
- if (name != NULL)
- (void) strlcpy(zc.zc_name, name, sizeof (zc.zc_name));
-
- if (source != NULL) {
- packed = fnvlist_pack(source, &size);
- zc.zc_nvlist_src = (uint64_t)(uintptr_t)packed;
- zc.zc_nvlist_src_size = size;
- }
-
- if (resultp != NULL) {
- *resultp = NULL;
- if (ioc == ZFS_IOC_CHANNEL_PROGRAM) {
- zc.zc_nvlist_dst_size = fnvlist_lookup_uint64(source,
- ZCP_ARG_MEMLIMIT);
- } else {
- zc.zc_nvlist_dst_size = MAX(size * 2, 128 * 1024);
- }
- zc.zc_nvlist_dst = (uint64_t)(uintptr_t)
- malloc(zc.zc_nvlist_dst_size);
- if (zc.zc_nvlist_dst == (uint64_t)0) {
- error = ENOMEM;
- goto out;
- }
- }
-
- 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.
- *
- * Channel programs that exit with ENOMEM ran over the
- * lua memory sandbox; they should not be retried.
- */
- if (errno == ENOMEM && resultp != NULL &&
- ioc != ZFS_IOC_CHANNEL_PROGRAM) {
- free((void *)(uintptr_t)zc.zc_nvlist_dst);
- zc.zc_nvlist_dst_size *= 2;
- zc.zc_nvlist_dst = (uint64_t)(uintptr_t)
- malloc(zc.zc_nvlist_dst_size);
- if (zc.zc_nvlist_dst == (uint64_t)0) {
- error = ENOMEM;
- goto out;
- }
- } else {
- error = errno;
- break;
- }
- }
- if (zc.zc_nvlist_dst_filled && resultp != NULL) {
- *resultp = fnvlist_unpack((void *)(uintptr_t)zc.zc_nvlist_dst,
- zc.zc_nvlist_dst_size);
- }
-
-out:
- if (packed != NULL)
- fnvlist_pack_free(packed, size);
- free((void *)(uintptr_t)zc.zc_nvlist_dst);
- return (error);
-}
-
-int
-lzc_scrub(zfs_ioc_t ioc, const char *name,
- nvlist_t *source, nvlist_t **resultp)
-{
- return (lzc_ioctl(ioc, name, source, resultp));
-}
-
-int
-lzc_create(const char *fsname, enum lzc_dataset_type type, nvlist_t *props,
- uint8_t *wkeydata, uint_t wkeylen)
-{
- int error;
- nvlist_t *hidden_args = NULL;
- nvlist_t *args = fnvlist_alloc();
-
- fnvlist_add_int32(args, "type", (dmu_objset_type_t)type);
- if (props != NULL)
- fnvlist_add_nvlist(args, "props", props);
-
- if (wkeydata != NULL) {
- hidden_args = fnvlist_alloc();
- fnvlist_add_uint8_array(hidden_args, "wkeydata", wkeydata,
- wkeylen);
- fnvlist_add_nvlist(args, ZPOOL_HIDDEN_ARGS, hidden_args);
- }
-
- error = lzc_ioctl(ZFS_IOC_CREATE, fsname, args, NULL);
- nvlist_free(hidden_args);
- nvlist_free(args);
- return (error);
-}
-
-int
-lzc_clone(const char *fsname, const char *origin, nvlist_t *props)
-{
- int error;
- nvlist_t *hidden_args = NULL;
- nvlist_t *args = fnvlist_alloc();
-
- fnvlist_add_string(args, "origin", origin);
- if (props != NULL)
- fnvlist_add_nvlist(args, "props", props);
- error = lzc_ioctl(ZFS_IOC_CLONE, fsname, args, NULL);
- nvlist_free(hidden_args);
- nvlist_free(args);
- return (error);
-}
-
-int
-lzc_promote(const char *fsname, char *snapnamebuf, int snapnamelen)
-{
- /*
- * The promote ioctl is still legacy, so we need to construct our
- * own zfs_cmd_t rather than using lzc_ioctl().
- */
- zfs_cmd_t zc = {"\0"};
-
- ASSERT3S(g_refcount, >, 0);
- VERIFY3S(g_fd, !=, -1);
-
- (void) strlcpy(zc.zc_name, fsname, sizeof (zc.zc_name));
- 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);
- return (error);
- }
- return (0);
-}
-
-int
-lzc_rename(const char *source, const char *target)
-{
- zfs_cmd_t zc = {"\0"};
- int error;
-
- ASSERT3S(g_refcount, >, 0);
- 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 = lzc_ioctl_fd(g_fd, ZFS_IOC_RENAME, &zc);
- if (error != 0)
- error = errno;
- return (error);
-}
-
-int
-lzc_destroy(const char *fsname)
-{
- int error;
- nvlist_t *args = fnvlist_alloc();
- error = lzc_ioctl(ZFS_IOC_DESTROY, fsname, args, NULL);
- nvlist_free(args);
- return (error);
-}
-
-/*
- * Creates snapshots.
- *
- * The keys in the snaps nvlist are the snapshots to be created.
- * They must all be in the same pool.
- *
- * The props nvlist is properties to set. Currently only user properties
- * are supported. { user:prop_name -> string value }
- *
- * The returned results nvlist will have an entry for each snapshot that failed.
- * The value will be the (int32) error code.
- *
- * The return value will be 0 if all snapshots were created, otherwise it will
- * be the errno of a (unspecified) snapshot that failed.
- */
-int
-lzc_snapshot(nvlist_t *snaps, nvlist_t *props, nvlist_t **errlist)
-{
- nvpair_t *elem;
- nvlist_t *args;
- int error;
- char pool[ZFS_MAX_DATASET_NAME_LEN];
-
- *errlist = NULL;
-
- /* determine the pool name */
- elem = nvlist_next_nvpair(snaps, NULL);
- if (elem == NULL)
- return (0);
- (void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
- pool[strcspn(pool, "/@")] = '\0';
-
- args = fnvlist_alloc();
- fnvlist_add_nvlist(args, "snaps", snaps);
- if (props != NULL)
- fnvlist_add_nvlist(args, "props", props);
-
- error = lzc_ioctl(ZFS_IOC_SNAPSHOT, pool, args, errlist);
- nvlist_free(args);
-
- return (error);
-}
-
-/*
- * Destroys snapshots.
- *
- * The keys in the snaps nvlist are the snapshots to be destroyed.
- * They must all be in the same pool.
- *
- * Snapshots that do not exist will be silently ignored.
- *
- * If 'defer' is not set, and a snapshot has user holds or clones, the
- * destroy operation will fail and none of the snapshots will be
- * destroyed.
- *
- * If 'defer' is set, and a snapshot has user holds or clones, it will be
- * marked for deferred destruction, and will be destroyed when the last hold
- * or clone is removed/destroyed.
- *
- * The return value will be 0 if all snapshots were destroyed (or marked for
- * later destruction if 'defer' is set) or didn't exist to begin with.
- *
- * Otherwise the return value will be the errno of a (unspecified) snapshot
- * that failed, no snapshots will be destroyed, and the errlist will have an
- * entry for each snapshot that failed. The value in the errlist will be
- * the (int32) error code.
- */
-int
-lzc_destroy_snaps(nvlist_t *snaps, boolean_t defer, nvlist_t **errlist)
-{
- nvpair_t *elem;
- nvlist_t *args;
- int error;
- char pool[ZFS_MAX_DATASET_NAME_LEN];
-
- /* determine the pool name */
- elem = nvlist_next_nvpair(snaps, NULL);
- if (elem == NULL)
- return (0);
- (void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
- pool[strcspn(pool, "/@")] = '\0';
-
- args = fnvlist_alloc();
- fnvlist_add_nvlist(args, "snaps", snaps);
- if (defer)
- fnvlist_add_boolean(args, "defer");
-
- error = lzc_ioctl(ZFS_IOC_DESTROY_SNAPS, pool, args, errlist);
- nvlist_free(args);
-
- return (error);
-}
-
-int
-lzc_snaprange_space(const char *firstsnap, const char *lastsnap,
- uint64_t *usedp)
-{
- nvlist_t *args;
- nvlist_t *result;
- int err;
- char fs[ZFS_MAX_DATASET_NAME_LEN];
- char *atp;
-
- /* determine the fs name */
- (void) strlcpy(fs, firstsnap, sizeof (fs));
- atp = strchr(fs, '@');
- if (atp == NULL)
- return (EINVAL);
- *atp = '\0';
-
- args = fnvlist_alloc();
- fnvlist_add_string(args, "firstsnap", firstsnap);
-
- err = lzc_ioctl(ZFS_IOC_SPACE_SNAPS, lastsnap, args, &result);
- nvlist_free(args);
- if (err == 0)
- *usedp = fnvlist_lookup_uint64(result, "used");
- fnvlist_free(result);
-
- return (err);
-}
-
-boolean_t
-lzc_exists(const char *dataset)
-{
- /*
- * The objset_stats ioctl is still legacy, so we need to construct our
- * own zfs_cmd_t rather than using lzc_ioctl().
- */
- zfs_cmd_t zc = {"\0"};
-
- ASSERT3S(g_refcount, >, 0);
- VERIFY3S(g_fd, !=, -1);
-
- (void) strlcpy(zc.zc_name, dataset, sizeof (zc.zc_name));
- return (lzc_ioctl_fd(g_fd, ZFS_IOC_OBJSET_STATS, &zc) == 0);
-}
-
-/*
- * outnvl is unused.
- * It was added to preserve the function signature in case it is
- * needed in the future.
- */
-int
-lzc_sync(const char *pool_name, nvlist_t *innvl, nvlist_t **outnvl)
-{
- (void) outnvl;
- return (lzc_ioctl(ZFS_IOC_POOL_SYNC, pool_name, innvl, NULL));
-}
-
-/*
- * Create "user holds" on snapshots. If there is a hold on a snapshot,
- * the snapshot can not be destroyed. (However, it can be marked for deletion
- * by lzc_destroy_snaps(defer=B_TRUE).)
- *
- * The keys in the nvlist are snapshot names.
- * The snapshots must all be in the same pool.
- * The value is the name of the hold (string type).
- *
- * If cleanup_fd is not -1, it must be the result of open(ZFS_DEV, O_EXCL).
- * In this case, when the cleanup_fd is closed (including on process
- * termination), the holds will be released. If the system is shut down
- * uncleanly, the holds will be released when the pool is next opened
- * or imported.
- *
- * Holds for snapshots which don't exist will be skipped and have an entry
- * added to errlist, but will not cause an overall failure.
- *
- * The return value will be 0 if all holds, for snapshots that existed,
- * were successfully created.
- *
- * Otherwise the return value will be the errno of a (unspecified) hold that
- * failed and no holds will be created.
- *
- * In all cases the errlist will have an entry for each hold that failed
- * (name = snapshot), with its value being the error code (int32).
- */
-int
-lzc_hold(nvlist_t *holds, int cleanup_fd, nvlist_t **errlist)
-{
- char pool[ZFS_MAX_DATASET_NAME_LEN];
- nvlist_t *args;
- nvpair_t *elem;
- int error;
-
- /* determine the pool name */
- elem = nvlist_next_nvpair(holds, NULL);
- if (elem == NULL)
- return (0);
- (void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
- pool[strcspn(pool, "/@")] = '\0';
-
- args = fnvlist_alloc();
- fnvlist_add_nvlist(args, "holds", holds);
- if (cleanup_fd != -1)
- fnvlist_add_int32(args, "cleanup_fd", cleanup_fd);
-
- error = lzc_ioctl(ZFS_IOC_HOLD, pool, args, errlist);
- nvlist_free(args);
- return (error);
-}
-
-/*
- * Release "user holds" on snapshots. If the snapshot has been marked for
- * deferred destroy (by lzc_destroy_snaps(defer=B_TRUE)), it does not have
- * any clones, and all the user holds are removed, then the snapshot will be
- * destroyed.
- *
- * The keys in the nvlist are snapshot names.
- * The snapshots must all be in the same pool.
- * The value is an nvlist whose keys are the holds to remove.
- *
- * Holds which failed to release because they didn't exist will have an entry
- * added to errlist, but will not cause an overall failure.
- *
- * The return value will be 0 if the nvl holds was empty or all holds that
- * existed, were successfully removed.
- *
- * Otherwise the return value will be the errno of a (unspecified) hold that
- * failed to release and no holds will be released.
- *
- * In all cases the errlist will have an entry for each hold that failed to
- * to release.
- */
-int
-lzc_release(nvlist_t *holds, nvlist_t **errlist)
-{
- char pool[ZFS_MAX_DATASET_NAME_LEN];
- nvpair_t *elem;
-
- /* determine the pool name */
- elem = nvlist_next_nvpair(holds, NULL);
- if (elem == NULL)
- return (0);
- (void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
- pool[strcspn(pool, "/@")] = '\0';
-
- return (lzc_ioctl(ZFS_IOC_RELEASE, pool, holds, errlist));
-}
-
-/*
- * Retrieve list of user holds on the specified snapshot.
- *
- * On success, *holdsp will be set to an nvlist which the caller must free.
- * The keys are the names of the holds, and the value is the creation time
- * of the hold (uint64) in seconds since the epoch.
- */
-int
-lzc_get_holds(const char *snapname, nvlist_t **holdsp)
-{
- return (lzc_ioctl(ZFS_IOC_GET_HOLDS, snapname, NULL, holdsp));
-}
-
-int
-lzc_get_props(const char *poolname, nvlist_t **props)
-{
- return (lzc_ioctl(ZFS_IOC_POOL_GET_PROPS, poolname, NULL, props));
-}
-
-static unsigned int
-max_pipe_buffer(int infd)
-{
-#if __linux__
- static unsigned int max;
- if (max == 0) {
- max = 1048576; /* fs/pipe.c default */
-
- FILE *procf = fopen("/proc/sys/fs/pipe-max-size", "re");
- if (procf != NULL) {
- if (fscanf(procf, "%u", &max) <= 0) {
- /* ignore error: max untouched if parse fails */
- }
- fclose(procf);
- }
- }
-
- unsigned int cur = fcntl(infd, F_GETPIPE_SZ);
- /*
- * Sadly, Linux has an unfixed deadlock if you do SETPIPE_SZ on a pipe
- * with data in it.
- * cf. #13232, https://bugzilla.kernel.org/show_bug.cgi?id=212295
- *
- * And since the problem is in waking up the writer, there's nothing
- * we can do about it from here.
- *
- * So if people want to, they can set this, but they
- * may regret it...
- */
- if (getenv("ZFS_SET_PIPE_MAX") == NULL)
- return (cur);
- if (cur < max && fcntl(infd, F_SETPIPE_SZ, max) != -1)
- cur = max;
- return (cur);
-#else
- /* FreeBSD automatically resizes */
- (void) infd;
- return (BIG_PIPE_SIZE);
-#endif
-}
-
-#if __linux__
-struct send_worker_ctx {
- int from; /* read end of pipe, with send data; closed on exit */
- int to; /* original arbitrary output fd; mustn't be a pipe */
-};
-
-static void *
-send_worker(void *arg)
-{
- struct send_worker_ctx *ctx = arg;
- unsigned int bufsiz = max_pipe_buffer(ctx->from);
- ssize_t rd;
-
- for (;;) {
- rd = splice(ctx->from, NULL, ctx->to, NULL, bufsiz,
- SPLICE_F_MOVE | SPLICE_F_MORE);
- if ((rd == -1 && errno != EINTR) || rd == 0)
- break;
- }
- int err = (rd == -1) ? errno : 0;
- close(ctx->from);
- return ((void *)(uintptr_t)err);
-}
-#endif
-
-/*
- * Since Linux 5.10, 4d03e3cc59828c82ee89ea6e27a2f3cdf95aaadf
- * ("fs: don't allow kernel reads and writes without iter ops"),
- * ZFS_IOC_SEND* will EINVAL when writing to /dev/null, /dev/zero, &c.
- *
- * This wrapper transparently executes func() with a pipe
- * by spawning a thread to copy from that pipe to the original output
- * in the background.
- *
- * Returns the error from func(), if nonzero,
- * otherwise the error from the thread.
- *
- * No-op if orig_fd is -1, already a pipe (but the buffer size is bumped),
- * and on not-Linux; as such, it is safe to wrap/call wrapped functions
- * in a wrapped context.
- */
-int
-lzc_send_wrapper(int (*func)(int, void *), int orig_fd, void *data)
-{
-#if __linux__
- struct stat sb;
- if (orig_fd != -1 && fstat(orig_fd, &sb) == -1)
- return (errno);
- if (orig_fd == -1 || S_ISFIFO(sb.st_mode)) {
- if (orig_fd != -1)
- (void) max_pipe_buffer(orig_fd);
- return (func(orig_fd, data));
- }
- if ((fcntl(orig_fd, F_GETFL) & O_ACCMODE) == O_RDONLY)
- return (errno = EBADF);
-
- int rw[2];
- if (pipe2(rw, O_CLOEXEC) == -1)
- return (errno);
-
- int err;
- pthread_t send_thread;
- struct send_worker_ctx ctx = {.from = rw[0], .to = orig_fd};
- if ((err = pthread_create(&send_thread, NULL, send_worker, &ctx))
- != 0) {
- close(rw[0]);
- close(rw[1]);
- return (errno = err);
- }
-
- err = func(rw[1], data);
-
- void *send_err;
- close(rw[1]);
- pthread_join(send_thread, &send_err);
- if (err == 0 && send_err != 0)
- errno = err = (uintptr_t)send_err;
-
- return (err);
-#else
- return (func(orig_fd, data));
-#endif
-}
-
-/*
- * Generate a zfs send stream for the specified snapshot and write it to
- * the specified file descriptor.
- *
- * "snapname" is the full name of the snapshot to send (e.g. "pool/fs@snap")
- *
- * If "from" is NULL, a full (non-incremental) stream will be sent.
- * If "from" is non-NULL, it must be the full name of a snapshot or
- * bookmark to send an incremental from (e.g. "pool/fs@earlier_snap" or
- * "pool/fs#earlier_bmark"). If non-NULL, the specified snapshot or
- * bookmark must represent an earlier point in the history of "snapname").
- * It can be an earlier snapshot in the same filesystem or zvol as "snapname",
- * or it can be the origin of "snapname"'s filesystem, or an earlier
- * snapshot in the origin, etc.
- *
- * "fd" is the file descriptor to write the send stream to.
- *
- * If "flags" contains LZC_SEND_FLAG_LARGE_BLOCK, the stream is permitted
- * to contain DRR_WRITE records with drr_length > 128K, and DRR_OBJECT
- * records with drr_blksz > 128K.
- *
- * If "flags" contains LZC_SEND_FLAG_EMBED_DATA, the stream is permitted
- * to contain DRR_WRITE_EMBEDDED records with drr_etype==BP_EMBEDDED_TYPE_DATA,
- * which the receiving system must support (as indicated by support
- * for the "embedded_data" feature).
- *
- * If "flags" contains LZC_SEND_FLAG_COMPRESS, the stream is generated by using
- * compressed WRITE records for blocks which are compressed on disk and in
- * memory. If the lz4_compress feature is active on the sending system, then
- * the receiving system must have that feature enabled as well.
- *
- * If "flags" contains LZC_SEND_FLAG_RAW, the stream is generated, for encrypted
- * datasets, by sending data exactly as it exists on disk. This allows backups
- * to be taken even if encryption keys are not currently loaded.
- */
-int
-lzc_send(const char *snapname, const char *from, int fd,
- enum lzc_send_flags flags)
-{
- return (lzc_send_resume_redacted(snapname, from, fd, flags, 0, 0,
- NULL));
-}
-
-int
-lzc_send_redacted(const char *snapname, const char *from, int fd,
- enum lzc_send_flags flags, const char *redactbook)
-{
- return (lzc_send_resume_redacted(snapname, from, fd, flags, 0, 0,
- redactbook));
-}
-
-int
-lzc_send_resume(const char *snapname, const char *from, int fd,
- enum lzc_send_flags flags, uint64_t resumeobj, uint64_t resumeoff)
-{
- return (lzc_send_resume_redacted(snapname, from, fd, flags, resumeobj,
- resumeoff, NULL));
-}
-
-/*
- * snapname: The name of the "tosnap", or the snapshot whose contents we are
- * sending.
- * from: The name of the "fromsnap", or the incremental source.
- * fd: File descriptor to write the stream to.
- * flags: flags that determine features to be used by the stream.
- * resumeobj: Object to resume from, for resuming send
- * resumeoff: Offset to resume from, for resuming send.
- * redactnv: nvlist of string -> boolean(ignored) containing the names of all
- * the snapshots that we should redact with respect to.
- * redactbook: Name of the redaction bookmark to create.
- *
- * Pre-wrapped.
- */
-static int
-lzc_send_resume_redacted_cb_impl(const char *snapname, const char *from, int fd,
- enum lzc_send_flags flags, uint64_t resumeobj, uint64_t resumeoff,
- const char *redactbook)
-{
- nvlist_t *args;
- int err;
-
- args = fnvlist_alloc();
- fnvlist_add_int32(args, "fd", fd);
- if (from != NULL)
- fnvlist_add_string(args, "fromsnap", from);
- if (flags & LZC_SEND_FLAG_LARGE_BLOCK)
- fnvlist_add_boolean(args, "largeblockok");
- if (flags & LZC_SEND_FLAG_EMBED_DATA)
- fnvlist_add_boolean(args, "embedok");
- if (flags & LZC_SEND_FLAG_COMPRESS)
- fnvlist_add_boolean(args, "compressok");
- if (flags & LZC_SEND_FLAG_RAW)
- fnvlist_add_boolean(args, "rawok");
- if (flags & LZC_SEND_FLAG_SAVED)
- fnvlist_add_boolean(args, "savedok");
- if (resumeobj != 0 || resumeoff != 0) {
- fnvlist_add_uint64(args, "resume_object", resumeobj);
- fnvlist_add_uint64(args, "resume_offset", resumeoff);
- }
- if (redactbook != NULL)
- fnvlist_add_string(args, "redactbook", redactbook);
-
- err = lzc_ioctl(ZFS_IOC_SEND_NEW, snapname, args, NULL);
- nvlist_free(args);
- return (err);
-}
-
-struct lzc_send_resume_redacted {
- const char *snapname;
- const char *from;
- enum lzc_send_flags flags;
- uint64_t resumeobj;
- uint64_t resumeoff;
- const char *redactbook;
-};
-
-static int
-lzc_send_resume_redacted_cb(int fd, void *arg)
-{
- struct lzc_send_resume_redacted *zsrr = arg;
- return (lzc_send_resume_redacted_cb_impl(zsrr->snapname, zsrr->from,
- fd, zsrr->flags, zsrr->resumeobj, zsrr->resumeoff,
- zsrr->redactbook));
-}
-
-int
-lzc_send_resume_redacted(const char *snapname, const char *from, int fd,
- enum lzc_send_flags flags, uint64_t resumeobj, uint64_t resumeoff,
- const char *redactbook)
-{
- struct lzc_send_resume_redacted zsrr = {
- .snapname = snapname,
- .from = from,
- .flags = flags,
- .resumeobj = resumeobj,
- .resumeoff = resumeoff,
- .redactbook = redactbook,
- };
- return (lzc_send_wrapper(lzc_send_resume_redacted_cb, fd, &zsrr));
-}
-
-/*
- * "from" can be NULL, a snapshot, or a bookmark.
- *
- * If from is NULL, a full (non-incremental) stream will be estimated. This
- * is calculated very efficiently.
- *
- * If from is a snapshot, lzc_send_space uses the deadlists attached to
- * each snapshot to efficiently estimate the stream size.
- *
- * If from is a bookmark, the indirect blocks in the destination snapshot
- * are traversed, looking for blocks with a birth time since the creation TXG of
- * the snapshot this bookmark was created from. This will result in
- * significantly more I/O and be less efficient than a send space estimation on
- * an equivalent snapshot. This process is also used if redact_snaps is
- * non-null.
- *
- * Pre-wrapped.
- */
-static int
-lzc_send_space_resume_redacted_cb_impl(const char *snapname, const char *from,
- enum lzc_send_flags flags, uint64_t resumeobj, uint64_t resumeoff,
- uint64_t resume_bytes, const char *redactbook, int fd, uint64_t *spacep)
-{
- nvlist_t *args;
- nvlist_t *result;
- int err;
-
- args = fnvlist_alloc();
- if (from != NULL)
- fnvlist_add_string(args, "from", from);
- if (flags & LZC_SEND_FLAG_LARGE_BLOCK)
- fnvlist_add_boolean(args, "largeblockok");
- if (flags & LZC_SEND_FLAG_EMBED_DATA)
- fnvlist_add_boolean(args, "embedok");
- if (flags & LZC_SEND_FLAG_COMPRESS)
- fnvlist_add_boolean(args, "compressok");
- if (flags & LZC_SEND_FLAG_RAW)
- fnvlist_add_boolean(args, "rawok");
- if (resumeobj != 0 || resumeoff != 0) {
- fnvlist_add_uint64(args, "resume_object", resumeobj);
- fnvlist_add_uint64(args, "resume_offset", resumeoff);
- fnvlist_add_uint64(args, "bytes", resume_bytes);
- }
- if (redactbook != NULL)
- fnvlist_add_string(args, "redactbook", redactbook);
- if (fd != -1)
- fnvlist_add_int32(args, "fd", fd);
-
- err = lzc_ioctl(ZFS_IOC_SEND_SPACE, snapname, args, &result);
- nvlist_free(args);
- if (err == 0)
- *spacep = fnvlist_lookup_uint64(result, "space");
- nvlist_free(result);
- return (err);
-}
-
-struct lzc_send_space_resume_redacted {
- const char *snapname;
- const char *from;
- enum lzc_send_flags flags;
- uint64_t resumeobj;
- uint64_t resumeoff;
- uint64_t resume_bytes;
- const char *redactbook;
- uint64_t *spacep;
-};
-
-static int
-lzc_send_space_resume_redacted_cb(int fd, void *arg)
-{
- struct lzc_send_space_resume_redacted *zssrr = arg;
- return (lzc_send_space_resume_redacted_cb_impl(zssrr->snapname,
- zssrr->from, zssrr->flags, zssrr->resumeobj, zssrr->resumeoff,
- zssrr->resume_bytes, zssrr->redactbook, fd, zssrr->spacep));
-}
-
-int
-lzc_send_space_resume_redacted(const char *snapname, const char *from,
- enum lzc_send_flags flags, uint64_t resumeobj, uint64_t resumeoff,
- uint64_t resume_bytes, const char *redactbook, int fd, uint64_t *spacep)
-{
- struct lzc_send_space_resume_redacted zssrr = {
- .snapname = snapname,
- .from = from,
- .flags = flags,
- .resumeobj = resumeobj,
- .resumeoff = resumeoff,
- .resume_bytes = resume_bytes,
- .redactbook = redactbook,
- .spacep = spacep,
- };
- return (lzc_send_wrapper(lzc_send_space_resume_redacted_cb,
- fd, &zssrr));
-}
-
-int
-lzc_send_space(const char *snapname, const char *from,
- enum lzc_send_flags flags, uint64_t *spacep)
-{
- return (lzc_send_space_resume_redacted(snapname, from, flags, 0, 0, 0,
- NULL, -1, spacep));
-}
-
-static int
-recv_read(int fd, void *buf, int ilen)
-{
- char *cp = buf;
- int rv;
- int len = ilen;
-
- do {
- rv = read(fd, cp, len);
- cp += rv;
- len -= rv;
- } while (rv > 0);
-
- if (rv < 0 || len != 0)
- return (EIO);
-
- return (0);
-}
-
-/*
- * Linux adds ZFS_IOC_RECV_NEW for resumable and raw streams and preserves the
- * legacy ZFS_IOC_RECV user/kernel interface. The new interface supports all
- * stream options but is currently only used for resumable streams. This way
- * updated user space utilities will interoperate with older kernel modules.
- *
- * Non-Linux OpenZFS platforms have opted to modify the legacy interface.
- */
-static int
-recv_impl(const char *snapname, nvlist_t *recvdprops, nvlist_t *localprops,
- uint8_t *wkeydata, uint_t wkeylen, const char *origin, boolean_t force,
- boolean_t heal, boolean_t resumable, boolean_t raw, int input_fd,
- const dmu_replay_record_t *begin_record, uint64_t *read_bytes,
- uint64_t *errflags, nvlist_t **errors)
-{
- dmu_replay_record_t drr;
- char fsname[MAXPATHLEN];
- char *atp;
- int error;
- boolean_t payload = B_FALSE;
-
- ASSERT3S(g_refcount, >, 0);
- VERIFY3S(g_fd, !=, -1);
-
- /* Set 'fsname' to the name of containing filesystem */
- (void) strlcpy(fsname, snapname, sizeof (fsname));
- atp = strchr(fsname, '@');
- if (atp == NULL)
- return (EINVAL);
- *atp = '\0';
-
- /* If the fs does not exist, try its parent. */
- if (!lzc_exists(fsname)) {
- char *slashp = strrchr(fsname, '/');
- if (slashp == NULL)
- return (ENOENT);
- *slashp = '\0';
- }
-
- /*
- * It is not uncommon for gigabytes to be processed by zfs receive.
- * Speculatively increase the buffer size if supported by the platform.
- */
- struct stat sb;
- if (fstat(input_fd, &sb) == -1)
- return (errno);
- if (S_ISFIFO(sb.st_mode))
- (void) max_pipe_buffer(input_fd);
-
- /*
- * The begin_record is normally a non-byteswapped BEGIN record.
- * For resumable streams it may be set to any non-byteswapped
- * dmu_replay_record_t.
- */
- if (begin_record == NULL) {
- error = recv_read(input_fd, &drr, sizeof (drr));
- if (error != 0)
- return (error);
- } else {
- drr = *begin_record;
- payload = (begin_record->drr_payloadlen != 0);
- }
-
- /*
- * All receives with a payload should use the new interface.
- */
- if (resumable || heal || raw || wkeydata != NULL || payload) {
- nvlist_t *outnvl = NULL;
- nvlist_t *innvl = fnvlist_alloc();
-
- fnvlist_add_string(innvl, "snapname", snapname);
-
- if (recvdprops != NULL)
- fnvlist_add_nvlist(innvl, "props", recvdprops);
-
- if (localprops != NULL)
- fnvlist_add_nvlist(innvl, "localprops", localprops);
-
- if (wkeydata != NULL) {
- /*
- * wkeydata must be placed in the special
- * ZPOOL_HIDDEN_ARGS nvlist so that it
- * will not be printed to the zpool history.
- */
- nvlist_t *hidden_args = fnvlist_alloc();
- fnvlist_add_uint8_array(hidden_args, "wkeydata",
- wkeydata, wkeylen);
- fnvlist_add_nvlist(innvl, ZPOOL_HIDDEN_ARGS,
- hidden_args);
- nvlist_free(hidden_args);
- }
-
- if (origin != NULL && strlen(origin))
- fnvlist_add_string(innvl, "origin", origin);
-
- fnvlist_add_byte_array(innvl, "begin_record",
- (uchar_t *)&drr, sizeof (drr));
-
- fnvlist_add_int32(innvl, "input_fd", input_fd);
-
- if (force)
- fnvlist_add_boolean(innvl, "force");
-
- if (resumable)
- fnvlist_add_boolean(innvl, "resumable");
-
- if (heal)
- fnvlist_add_boolean(innvl, "heal");
-
- error = lzc_ioctl(ZFS_IOC_RECV_NEW, fsname, innvl, &outnvl);
-
- if (error == 0 && read_bytes != NULL)
- error = nvlist_lookup_uint64(outnvl, "read_bytes",
- read_bytes);
-
- if (error == 0 && errflags != NULL)
- error = nvlist_lookup_uint64(outnvl, "error_flags",
- errflags);
-
- if (error == 0 && errors != NULL) {
- nvlist_t *nvl;
- error = nvlist_lookup_nvlist(outnvl, "errors", &nvl);
- if (error == 0)
- *errors = fnvlist_dup(nvl);
- }
-
- fnvlist_free(innvl);
- fnvlist_free(outnvl);
- } else {
- zfs_cmd_t zc = {"\0"};
- char *rp_packed = NULL;
- char *lp_packed = NULL;
- size_t size;
-
- ASSERT3S(g_refcount, >, 0);
-
- (void) strlcpy(zc.zc_name, fsname, sizeof (zc.zc_name));
- (void) strlcpy(zc.zc_value, snapname, sizeof (zc.zc_value));
-
- if (recvdprops != NULL) {
- rp_packed = fnvlist_pack(recvdprops, &size);
- zc.zc_nvlist_src = (uint64_t)(uintptr_t)rp_packed;
- zc.zc_nvlist_src_size = size;
- }
-
- if (localprops != NULL) {
- lp_packed = fnvlist_pack(localprops, &size);
- zc.zc_nvlist_conf = (uint64_t)(uintptr_t)lp_packed;
- zc.zc_nvlist_conf_size = size;
- }
-
- if (origin != NULL)
- (void) strlcpy(zc.zc_string, origin,
- sizeof (zc.zc_string));
-
- ASSERT3S(drr.drr_type, ==, DRR_BEGIN);
- zc.zc_begin_record = drr.drr_u.drr_begin;
- zc.zc_guid = force;
- zc.zc_cookie = input_fd;
- zc.zc_cleanup_fd = -1;
- zc.zc_action_handle = 0;
-
- zc.zc_nvlist_dst_size = 128 * 1024;
- zc.zc_nvlist_dst = (uint64_t)(uintptr_t)
- malloc(zc.zc_nvlist_dst_size);
-
- error = lzc_ioctl_fd(g_fd, ZFS_IOC_RECV, &zc);
- if (error != 0) {
- error = errno;
- } else {
- if (read_bytes != NULL)
- *read_bytes = zc.zc_cookie;
-
- if (errflags != NULL)
- *errflags = zc.zc_obj;
-
- if (errors != NULL)
- VERIFY0(nvlist_unpack(
- (void *)(uintptr_t)zc.zc_nvlist_dst,
- zc.zc_nvlist_dst_size, errors, KM_SLEEP));
- }
-
- if (rp_packed != NULL)
- fnvlist_pack_free(rp_packed, size);
- if (lp_packed != NULL)
- fnvlist_pack_free(lp_packed, size);
- free((void *)(uintptr_t)zc.zc_nvlist_dst);
- }
-
- return (error);
-}
-
-/*
- * The simplest receive case: receive from the specified fd, creating the
- * specified snapshot. Apply the specified properties as "received" properties
- * (which can be overridden by locally-set properties). If the stream is a
- * clone, its origin snapshot must be specified by 'origin'. The 'force'
- * flag will cause the target filesystem to be rolled back or destroyed if
- * necessary to receive.
- *
- * Return 0 on success or an errno on failure.
- *
- * Note: this interface does not work on dedup'd streams
- * (those with DMU_BACKUP_FEATURE_DEDUP).
- */
-int
-lzc_receive(const char *snapname, nvlist_t *props, const char *origin,
- boolean_t force, boolean_t raw, int fd)
-{
- return (recv_impl(snapname, props, NULL, NULL, 0, origin, force,
- B_FALSE, B_FALSE, raw, fd, NULL, NULL, NULL, NULL));
-}
-
-/*
- * Like lzc_receive, but if the receive fails due to premature stream
- * termination, the intermediate state will be preserved on disk. In this
- * case, ECKSUM will be returned. The receive may subsequently be resumed
- * with a resuming send stream generated by lzc_send_resume().
- */
-int
-lzc_receive_resumable(const char *snapname, nvlist_t *props, const char *origin,
- boolean_t force, boolean_t raw, int fd)
-{
- return (recv_impl(snapname, props, NULL, NULL, 0, origin, force,
- B_FALSE, B_TRUE, raw, fd, NULL, NULL, NULL, NULL));
-}
-
-/*
- * Like lzc_receive, but allows the caller to read the begin record and then to
- * pass it in. That could be useful if the caller wants to derive, for example,
- * the snapname or the origin parameters based on the information contained in
- * the begin record.
- * The begin record must be in its original form as read from the stream,
- * in other words, it should not be byteswapped.
- *
- * The 'resumable' parameter allows to obtain the same behavior as with
- * lzc_receive_resumable.
- */
-int
-lzc_receive_with_header(const char *snapname, nvlist_t *props,
- const char *origin, boolean_t force, boolean_t resumable, boolean_t raw,
- int fd, const dmu_replay_record_t *begin_record)
-{
- if (begin_record == NULL)
- return (EINVAL);
-
- return (recv_impl(snapname, props, NULL, NULL, 0, origin, force,
- B_FALSE, resumable, raw, fd, begin_record, NULL, NULL, NULL));
-}
-
-/*
- * Like lzc_receive, but allows the caller to pass all supported arguments
- * and retrieve all values returned. The only additional input parameter
- * is 'cleanup_fd' which is used to set a cleanup-on-exit file descriptor.
- *
- * The following parameters all provide return values. Several may be set
- * in the failure case and will contain additional information.
- *
- * The 'read_bytes' value will be set to the total number of bytes read.
- *
- * The 'errflags' value will contain zprop_errflags_t flags which are
- * used to describe any failures.
- *
- * The 'action_handle' and 'cleanup_fd' are no longer used, and are ignored.
- *
- * The 'errors' nvlist contains an entry for each unapplied received
- * property. Callers are responsible for freeing this nvlist.
- */
-int
-lzc_receive_one(const char *snapname, nvlist_t *props,
- const char *origin, boolean_t force, boolean_t resumable, boolean_t raw,
- int input_fd, const dmu_replay_record_t *begin_record, int cleanup_fd,
- uint64_t *read_bytes, uint64_t *errflags, uint64_t *action_handle,
- nvlist_t **errors)
-{
- (void) action_handle, (void) cleanup_fd;
- return (recv_impl(snapname, props, NULL, NULL, 0, origin, force,
- B_FALSE, resumable, raw, input_fd, begin_record,
- read_bytes, errflags, errors));
-}
-
-/*
- * Like lzc_receive_one, but allows the caller to pass an additional 'cmdprops'
- * argument.
- *
- * The 'cmdprops' nvlist contains both override ('zfs receive -o') and
- * exclude ('zfs receive -x') properties. Callers are responsible for freeing
- * this nvlist
- */
-int
-lzc_receive_with_cmdprops(const char *snapname, nvlist_t *props,
- nvlist_t *cmdprops, uint8_t *wkeydata, uint_t wkeylen, const char *origin,
- boolean_t force, boolean_t resumable, boolean_t raw, int input_fd,
- const dmu_replay_record_t *begin_record, int cleanup_fd,
- uint64_t *read_bytes, uint64_t *errflags, uint64_t *action_handle,
- nvlist_t **errors)
-{
- (void) action_handle, (void) cleanup_fd;
- return (recv_impl(snapname, props, cmdprops, wkeydata, wkeylen, origin,
- force, B_FALSE, resumable, raw, input_fd, begin_record,
- read_bytes, errflags, errors));
-}
-
-/*
- * Like lzc_receive_with_cmdprops, but allows the caller to pass an additional
- * 'heal' argument.
- *
- * The heal arguments tells us to heal the provided snapshot using the provided
- * send stream
- */
-int lzc_receive_with_heal(const char *snapname, nvlist_t *props,
- nvlist_t *cmdprops, uint8_t *wkeydata, uint_t wkeylen, const char *origin,
- boolean_t force, boolean_t heal, boolean_t resumable, boolean_t raw,
- int input_fd, const dmu_replay_record_t *begin_record, int cleanup_fd,
- uint64_t *read_bytes, uint64_t *errflags, uint64_t *action_handle,
- nvlist_t **errors)
-{
- (void) action_handle, (void) cleanup_fd;
- return (recv_impl(snapname, props, cmdprops, wkeydata, wkeylen, origin,
- force, heal, resumable, raw, input_fd, begin_record,
- read_bytes, errflags, errors));
-}
-
-/*
- * Roll back this filesystem or volume to its most recent snapshot.
- * If snapnamebuf is not NULL, it will be filled in with the name
- * of the most recent snapshot.
- * Note that the latest snapshot may change if a new one is concurrently
- * created or the current one is destroyed. lzc_rollback_to can be used
- * to roll back to a specific latest snapshot.
- *
- * Return 0 on success or an errno on failure.
- */
-int
-lzc_rollback(const char *fsname, char *snapnamebuf, int snapnamelen)
-{
- nvlist_t *args;
- nvlist_t *result;
- int err;
-
- args = fnvlist_alloc();
- err = lzc_ioctl(ZFS_IOC_ROLLBACK, fsname, args, &result);
- nvlist_free(args);
- if (err == 0 && snapnamebuf != NULL) {
- const char *snapname = fnvlist_lookup_string(result, "target");
- (void) strlcpy(snapnamebuf, snapname, snapnamelen);
- }
- nvlist_free(result);
-
- return (err);
-}
-
-/*
- * Roll back this filesystem or volume to the specified snapshot,
- * if possible.
- *
- * Return 0 on success or an errno on failure.
- */
-int
-lzc_rollback_to(const char *fsname, const char *snapname)
-{
- nvlist_t *args;
- nvlist_t *result;
- int err;
-
- args = fnvlist_alloc();
- fnvlist_add_string(args, "target", snapname);
- err = lzc_ioctl(ZFS_IOC_ROLLBACK, fsname, args, &result);
- nvlist_free(args);
- nvlist_free(result);
- return (err);
-}
-
-/*
- * Creates new bookmarks from existing snapshot or bookmark.
- *
- * The bookmarks nvlist maps from the full name of the new bookmark to
- * the full name of the source snapshot or bookmark.
- * All the bookmarks and snapshots must be in the same pool.
- * The new bookmarks names must be unique.
- * => see function dsl_bookmark_create_nvl_validate
- *
- * The returned results nvlist will have an entry for each bookmark that failed.
- * The value will be the (int32) error code.
- *
- * The return value will be 0 if all bookmarks were created, otherwise it will
- * be the errno of a (undetermined) bookmarks that failed.
- */
-int
-lzc_bookmark(nvlist_t *bookmarks, nvlist_t **errlist)
-{
- nvpair_t *elem;
- int error;
- char pool[ZFS_MAX_DATASET_NAME_LEN];
-
- /* determine pool name from first bookmark */
- elem = nvlist_next_nvpair(bookmarks, NULL);
- if (elem == NULL)
- return (0);
- (void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
- pool[strcspn(pool, "/#")] = '\0';
-
- error = lzc_ioctl(ZFS_IOC_BOOKMARK, pool, bookmarks, errlist);
-
- return (error);
-}
-
-/*
- * Retrieve bookmarks.
- *
- * Retrieve the list of bookmarks for the given file system. The props
- * parameter is an nvlist of property names (with no values) that will be
- * returned for each bookmark.
- *
- * The following are valid properties on bookmarks, most of which are numbers
- * (represented as uint64 in the nvlist), except redact_snaps, which is a
- * uint64 array, and redact_complete, which is a boolean
- *
- * "guid" - globally unique identifier of the snapshot it refers to
- * "createtxg" - txg when the snapshot it refers to was created
- * "creation" - timestamp when the snapshot it refers to was created
- * "ivsetguid" - IVset guid for identifying encrypted snapshots
- * "redact_snaps" - list of guids of the redaction snapshots for the specified
- * bookmark. If the bookmark is not a redaction bookmark, the nvlist will
- * not contain an entry for this value. If it is redacted with respect to
- * no snapshots, it will contain value -> NULL uint64 array
- * "redact_complete" - boolean value; true if the redaction bookmark is
- * complete, false otherwise.
- *
- * The format of the returned nvlist as follows:
- * <short name of bookmark> -> {
- * <name of property> -> {
- * "value" -> uint64
- * }
- * ...
- * "redact_snaps" -> {
- * "value" -> uint64 array
- * }
- * "redact_complete" -> {
- * "value" -> boolean value
- * }
- * }
- */
-int
-lzc_get_bookmarks(const char *fsname, nvlist_t *props, nvlist_t **bmarks)
-{
- return (lzc_ioctl(ZFS_IOC_GET_BOOKMARKS, fsname, props, bmarks));
-}
-
-/*
- * Get bookmark properties.
- *
- * Given a bookmark's full name, retrieve all properties for the bookmark.
- *
- * The format of the returned property list is as follows:
- * {
- * <name of property> -> {
- * "value" -> uint64
- * }
- * ...
- * "redact_snaps" -> {
- * "value" -> uint64 array
- * }
- */
-int
-lzc_get_bookmark_props(const char *bookmark, nvlist_t **props)
-{
- int error;
-
- nvlist_t *innvl = fnvlist_alloc();
- error = lzc_ioctl(ZFS_IOC_GET_BOOKMARK_PROPS, bookmark, innvl, props);
- fnvlist_free(innvl);
-
- return (error);
-}
-
-/*
- * Destroys bookmarks.
- *
- * The keys in the bmarks nvlist are the bookmarks to be destroyed.
- * They must all be in the same pool. Bookmarks are specified as
- * <fs>#<bmark>.
- *
- * Bookmarks that do not exist will be silently ignored.
- *
- * The return value will be 0 if all bookmarks that existed were destroyed.
- *
- * Otherwise the return value will be the errno of a (undetermined) bookmark
- * that failed, no bookmarks will be destroyed, and the errlist will have an
- * entry for each bookmarks that failed. The value in the errlist will be
- * the (int32) error code.
- */
-int
-lzc_destroy_bookmarks(nvlist_t *bmarks, nvlist_t **errlist)
-{
- nvpair_t *elem;
- int error;
- char pool[ZFS_MAX_DATASET_NAME_LEN];
-
- /* determine the pool name */
- elem = nvlist_next_nvpair(bmarks, NULL);
- if (elem == NULL)
- return (0);
- (void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
- pool[strcspn(pool, "/#")] = '\0';
-
- error = lzc_ioctl(ZFS_IOC_DESTROY_BOOKMARKS, pool, bmarks, errlist);
-
- return (error);
-}
-
-static int
-lzc_channel_program_impl(const char *pool, const char *program, boolean_t sync,
- uint64_t instrlimit, uint64_t memlimit, nvlist_t *argnvl, nvlist_t **outnvl)
-{
- int error;
- nvlist_t *args;
-
- args = fnvlist_alloc();
- fnvlist_add_string(args, ZCP_ARG_PROGRAM, program);
- fnvlist_add_nvlist(args, ZCP_ARG_ARGLIST, argnvl);
- fnvlist_add_boolean_value(args, ZCP_ARG_SYNC, sync);
- fnvlist_add_uint64(args, ZCP_ARG_INSTRLIMIT, instrlimit);
- fnvlist_add_uint64(args, ZCP_ARG_MEMLIMIT, memlimit);
- error = lzc_ioctl(ZFS_IOC_CHANNEL_PROGRAM, pool, args, outnvl);
- fnvlist_free(args);
-
- return (error);
-}
-
-/*
- * Executes a channel program.
- *
- * If this function returns 0 the channel program was successfully loaded and
- * ran without failing. Note that individual commands the channel program ran
- * may have failed and the channel program is responsible for reporting such
- * errors through outnvl if they are important.
- *
- * This method may also return:
- *
- * EINVAL The program contains syntax errors, or an invalid memory or time
- * limit was given. No part of the channel program was executed.
- * If caused by syntax errors, 'outnvl' contains information about the
- * errors.
- *
- * ECHRNG The program was executed, but encountered a runtime error, such as
- * calling a function with incorrect arguments, invoking the error()
- * function directly, failing an assert() command, etc. Some portion
- * of the channel program may have executed and committed changes.
- * Information about the failure can be found in 'outnvl'.
- *
- * ENOMEM The program fully executed, but the output buffer was not large
- * enough to store the returned value. No output is returned through
- * 'outnvl'.
- *
- * ENOSPC The program was terminated because it exceeded its memory usage
- * limit. Some portion of the channel program may have executed and
- * committed changes to disk. No output is returned through 'outnvl'.
- *
- * ETIME The program was terminated because it exceeded its Lua instruction
- * limit. Some portion of the channel program may have executed and
- * committed changes to disk. No output is returned through 'outnvl'.
- */
-int
-lzc_channel_program(const char *pool, const char *program, uint64_t instrlimit,
- uint64_t memlimit, nvlist_t *argnvl, nvlist_t **outnvl)
-{
- return (lzc_channel_program_impl(pool, program, B_TRUE, instrlimit,
- memlimit, argnvl, outnvl));
-}
-
-/*
- * Creates a checkpoint for the specified pool.
- *
- * If this function returns 0 the pool was successfully checkpointed.
- *
- * This method may also return:
- *
- * ZFS_ERR_CHECKPOINT_EXISTS
- * The pool already has a checkpoint. A pools can only have one
- * checkpoint at most, at any given time.
- *
- * ZFS_ERR_DISCARDING_CHECKPOINT
- * ZFS is in the middle of discarding a checkpoint for this pool.
- * The pool can be checkpointed again once the discard is done.
- *
- * ZFS_DEVRM_IN_PROGRESS
- * A vdev is currently being removed. The pool cannot be
- * checkpointed until the device removal is done.
- *
- * ZFS_VDEV_TOO_BIG
- * One or more top-level vdevs exceed the maximum vdev size
- * supported for this feature.
- */
-int
-lzc_pool_checkpoint(const char *pool)
-{
- int error;
-
- nvlist_t *result = NULL;
- nvlist_t *args = fnvlist_alloc();
-
- error = lzc_ioctl(ZFS_IOC_POOL_CHECKPOINT, pool, args, &result);
-
- fnvlist_free(args);
- fnvlist_free(result);
-
- return (error);
-}
-
-/*
- * Discard the checkpoint from the specified pool.
- *
- * If this function returns 0 the checkpoint was successfully discarded.
- *
- * This method may also return:
- *
- * ZFS_ERR_NO_CHECKPOINT
- * The pool does not have a checkpoint.
- *
- * ZFS_ERR_DISCARDING_CHECKPOINT
- * ZFS is already in the middle of discarding the checkpoint.
- */
-int
-lzc_pool_checkpoint_discard(const char *pool)
-{
- int error;
-
- nvlist_t *result = NULL;
- nvlist_t *args = fnvlist_alloc();
-
- error = lzc_ioctl(ZFS_IOC_POOL_DISCARD_CHECKPOINT, pool, args, &result);
-
- fnvlist_free(args);
- fnvlist_free(result);
-
- return (error);
-}
-
-/*
- * Load the requested data type for the specified pool.
- */
-int
-lzc_pool_prefetch(const char *pool, zpool_prefetch_type_t type)
-{
- int error;
- nvlist_t *result = NULL;
- nvlist_t *args = fnvlist_alloc();
-
- fnvlist_add_int32(args, ZPOOL_PREFETCH_TYPE, type);
-
- error = lzc_ioctl(ZFS_IOC_POOL_PREFETCH, pool, args, &result);
-
- fnvlist_free(args);
- fnvlist_free(result);
-
- return (error);
-}
-
-/*
- * Executes a read-only channel program.
- *
- * A read-only channel program works programmatically the same way as a
- * normal channel program executed with lzc_channel_program(). The only
- * difference is it runs exclusively in open-context and therefore can
- * return faster. The downside to that, is that the program cannot change
- * on-disk state by calling functions from the zfs.sync submodule.
- *
- * The return values of this function (and their meaning) are exactly the
- * same as the ones described in lzc_channel_program().
- */
-int
-lzc_channel_program_nosync(const char *pool, const char *program,
- uint64_t timeout, uint64_t memlimit, nvlist_t *argnvl, nvlist_t **outnvl)
-{
- return (lzc_channel_program_impl(pool, program, B_FALSE, timeout,
- memlimit, argnvl, outnvl));
-}
-
-int
-lzc_get_vdev_prop(const char *poolname, nvlist_t *innvl, nvlist_t **outnvl)
-{
- return (lzc_ioctl(ZFS_IOC_VDEV_GET_PROPS, poolname, innvl, outnvl));
-}
-
-int
-lzc_set_vdev_prop(const char *poolname, nvlist_t *innvl, nvlist_t **outnvl)
-{
- return (lzc_ioctl(ZFS_IOC_VDEV_SET_PROPS, poolname, innvl, outnvl));
-}
-
-/*
- * Performs key management functions
- *
- * crypto_cmd should be a value from dcp_cmd_t. If the command specifies to
- * load or change a wrapping key, the key should be specified in the
- * hidden_args nvlist so that it is not logged.
- */
-int
-lzc_load_key(const char *fsname, boolean_t noop, uint8_t *wkeydata,
- uint_t wkeylen)
-{
- int error;
- nvlist_t *ioc_args;
- nvlist_t *hidden_args;
-
- if (wkeydata == NULL)
- return (EINVAL);
-
- ioc_args = fnvlist_alloc();
- hidden_args = fnvlist_alloc();
- fnvlist_add_uint8_array(hidden_args, "wkeydata", wkeydata, wkeylen);
- fnvlist_add_nvlist(ioc_args, ZPOOL_HIDDEN_ARGS, hidden_args);
- if (noop)
- fnvlist_add_boolean(ioc_args, "noop");
- error = lzc_ioctl(ZFS_IOC_LOAD_KEY, fsname, ioc_args, NULL);
- nvlist_free(hidden_args);
- nvlist_free(ioc_args);
-
- return (error);
-}
-
-int
-lzc_unload_key(const char *fsname)
-{
- return (lzc_ioctl(ZFS_IOC_UNLOAD_KEY, fsname, NULL, NULL));
-}
-
-int
-lzc_change_key(const char *fsname, uint64_t crypt_cmd, nvlist_t *props,
- uint8_t *wkeydata, uint_t wkeylen)
-{
- int error;
- nvlist_t *ioc_args = fnvlist_alloc();
- nvlist_t *hidden_args = NULL;
-
- fnvlist_add_uint64(ioc_args, "crypt_cmd", crypt_cmd);
-
- if (wkeydata != NULL) {
- hidden_args = fnvlist_alloc();
- fnvlist_add_uint8_array(hidden_args, "wkeydata", wkeydata,
- wkeylen);
- fnvlist_add_nvlist(ioc_args, ZPOOL_HIDDEN_ARGS, hidden_args);
- }
-
- if (props != NULL)
- fnvlist_add_nvlist(ioc_args, "props", props);
-
- error = lzc_ioctl(ZFS_IOC_CHANGE_KEY, fsname, ioc_args, NULL);
- nvlist_free(hidden_args);
- nvlist_free(ioc_args);
-
- return (error);
-}
-
-int
-lzc_reopen(const char *pool_name, boolean_t scrub_restart)
-{
- nvlist_t *args = fnvlist_alloc();
- int error;
-
- fnvlist_add_boolean_value(args, "scrub_restart", scrub_restart);
-
- error = lzc_ioctl(ZFS_IOC_POOL_REOPEN, pool_name, args, NULL);
- nvlist_free(args);
- return (error);
-}
-
-/*
- * Changes initializing state.
- *
- * vdevs should be a list of (<key>, guid) where guid is a uint64 vdev GUID.
- * The key is ignored.
- *
- * If there are errors related to vdev arguments, per-vdev errors are returned
- * in an nvlist with the key "vdevs". Each error is a (guid, errno) pair where
- * guid is stringified with PRIu64, and errno is one of the following as
- * an int64_t:
- * - ENODEV if the device was not found
- * - EINVAL if the devices is not a leaf or is not concrete (e.g. missing)
- * - EROFS if the device is not writeable
- * - EBUSY start requested but the device is already being either
- * initialized or trimmed
- * - ESRCH cancel/suspend requested but device is not being initialized
- *
- * If the errlist is empty, then return value will be:
- * - EINVAL if one or more arguments was invalid
- * - Other spa_open failures
- * - 0 if the operation succeeded
- */
-int
-lzc_initialize(const char *poolname, pool_initialize_func_t cmd_type,
- nvlist_t *vdevs, nvlist_t **errlist)
-{
- int error;
-
- nvlist_t *args = fnvlist_alloc();
- fnvlist_add_uint64(args, ZPOOL_INITIALIZE_COMMAND, (uint64_t)cmd_type);
- fnvlist_add_nvlist(args, ZPOOL_INITIALIZE_VDEVS, vdevs);
-
- error = lzc_ioctl(ZFS_IOC_POOL_INITIALIZE, poolname, args, errlist);
-
- fnvlist_free(args);
-
- return (error);
-}
-
-/*
- * Changes TRIM state.
- *
- * vdevs should be a list of (<key>, guid) where guid is a uint64 vdev GUID.
- * The key is ignored.
- *
- * If there are errors related to vdev arguments, per-vdev errors are returned
- * in an nvlist with the key "vdevs". Each error is a (guid, errno) pair where
- * guid is stringified with PRIu64, and errno is one of the following as
- * an int64_t:
- * - ENODEV if the device was not found
- * - EINVAL if the devices is not a leaf or is not concrete (e.g. missing)
- * - EROFS if the device is not writeable
- * - EBUSY start requested but the device is already being either trimmed
- * or initialized
- * - ESRCH cancel/suspend requested but device is not being initialized
- * - EOPNOTSUPP if the device does not support TRIM (or secure TRIM)
- *
- * If the errlist is empty, then return value will be:
- * - EINVAL if one or more arguments was invalid
- * - Other spa_open failures
- * - 0 if the operation succeeded
- */
-int
-lzc_trim(const char *poolname, pool_trim_func_t cmd_type, uint64_t rate,
- boolean_t secure, nvlist_t *vdevs, nvlist_t **errlist)
-{
- int error;
-
- nvlist_t *args = fnvlist_alloc();
- fnvlist_add_uint64(args, ZPOOL_TRIM_COMMAND, (uint64_t)cmd_type);
- fnvlist_add_nvlist(args, ZPOOL_TRIM_VDEVS, vdevs);
- fnvlist_add_uint64(args, ZPOOL_TRIM_RATE, rate);
- fnvlist_add_boolean_value(args, ZPOOL_TRIM_SECURE, secure);
-
- error = lzc_ioctl(ZFS_IOC_POOL_TRIM, poolname, args, errlist);
-
- fnvlist_free(args);
-
- return (error);
-}
-
-/*
- * Create a redaction bookmark named bookname by redacting snapshot with respect
- * to all the snapshots in snapnv.
- */
-int
-lzc_redact(const char *snapshot, const char *bookname, nvlist_t *snapnv)
-{
- nvlist_t *args = fnvlist_alloc();
- fnvlist_add_string(args, "bookname", bookname);
- fnvlist_add_nvlist(args, "snapnv", snapnv);
- int error = lzc_ioctl(ZFS_IOC_REDACT, snapshot, args, NULL);
- fnvlist_free(args);
- return (error);
-}
-
-static int
-wait_common(const char *pool, zpool_wait_activity_t activity, boolean_t use_tag,
- uint64_t tag, boolean_t *waited)
-{
- nvlist_t *args = fnvlist_alloc();
- nvlist_t *result = NULL;
-
- fnvlist_add_int32(args, ZPOOL_WAIT_ACTIVITY, activity);
- if (use_tag)
- fnvlist_add_uint64(args, ZPOOL_WAIT_TAG, tag);
-
- int error = lzc_ioctl(ZFS_IOC_WAIT, pool, args, &result);
-
- if (error == 0 && waited != NULL)
- *waited = fnvlist_lookup_boolean_value(result,
- ZPOOL_WAIT_WAITED);
-
- fnvlist_free(args);
- fnvlist_free(result);
-
- return (error);
-}
-
-int
-lzc_wait(const char *pool, zpool_wait_activity_t activity, boolean_t *waited)
-{
- return (wait_common(pool, activity, B_FALSE, 0, waited));
-}
-
-int
-lzc_wait_tag(const char *pool, zpool_wait_activity_t activity, uint64_t tag,
- boolean_t *waited)
-{
- return (wait_common(pool, activity, B_TRUE, tag, waited));
-}
-
-int
-lzc_wait_fs(const char *fs, zfs_wait_activity_t activity, boolean_t *waited)
-{
- nvlist_t *args = fnvlist_alloc();
- nvlist_t *result = NULL;
-
- fnvlist_add_int32(args, ZFS_WAIT_ACTIVITY, activity);
-
- int error = lzc_ioctl(ZFS_IOC_WAIT_FS, fs, args, &result);
-
- if (error == 0 && waited != NULL)
- *waited = fnvlist_lookup_boolean_value(result,
- ZFS_WAIT_WAITED);
-
- fnvlist_free(args);
- fnvlist_free(result);
-
- return (error);
-}
-
-/*
- * Set the bootenv contents for the given pool.
- */
-int
-lzc_set_bootenv(const char *pool, const nvlist_t *env)
-{
- return (lzc_ioctl(ZFS_IOC_SET_BOOTENV, pool, (nvlist_t *)env, NULL));
-}
-
-/*
- * Get the contents of the bootenv of the given pool.
- */
-int
-lzc_get_bootenv(const char *pool, nvlist_t **outnvl)
-{
- return (lzc_ioctl(ZFS_IOC_GET_BOOTENV, pool, NULL, outnvl));
-}
-
-/*
- * Prune the specified amount from the pool's dedup table.
- */
-int
-lzc_ddt_prune(const char *pool, zpool_ddt_prune_unit_t unit, uint64_t amount)
-{
- int error;
-
- nvlist_t *result = NULL;
- nvlist_t *args = fnvlist_alloc();
-
- fnvlist_add_int32(args, DDT_PRUNE_UNIT, unit);
- fnvlist_add_uint64(args, DDT_PRUNE_AMOUNT, amount);
-
- error = lzc_ioctl(ZFS_IOC_DDT_PRUNE, pool, args, &result);
-
- fnvlist_free(args);
- fnvlist_free(result);
-
- return (error);
-}
diff --git a/lib/libzfs_core/libzfs_core.pc.in b/lib/libzfs_core/libzfs_core.pc.in
deleted file mode 100644
index bc9582ea33d0..000000000000
--- a/lib/libzfs_core/libzfs_core.pc.in
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: libzfs_core
-Description: LibZFS core library
-Version: @VERSION@
-URL: https://github.com/openzfs/zfs
-Requires.private: @LIBBLKID_PC@ @LIBUUID_PC@ @LIBTIRPC_PC@ @ZLIB_PC@
-Cflags: -I${includedir}/libzfs -I${includedir}/libspl
-Libs: -L${libdir} -lzfs_core -lnvpair
-Libs.private: @LIBCLOCK_GETTIME@ @LIBUDEV_LIBS@ -lm -pthread
diff --git a/lib/libzfs_core/libzfs_core.suppr b/lib/libzfs_core/libzfs_core.suppr
deleted file mode 100644
index 109d331cfd51..000000000000
--- a/lib/libzfs_core/libzfs_core.suppr
+++ /dev/null
@@ -1,5 +0,0 @@
-[suppress_type]
- name = FILE*
-
-[suppress_type]
- name = pthread_cond_t
diff --git a/lib/libzfs_core/libzfs_core_impl.h b/lib/libzfs_core/libzfs_core_impl.h
deleted file mode 100644
index baf9a7a95834..000000000000
--- a/lib/libzfs_core/libzfs_core_impl.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// SPDX-License-Identifier: CDDL-1.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 https://opensource.org/licenses/CDDL-1.0.
- * 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 (c) 2012, 2020 by Delphix. All rights reserved.
- * Copyright 2017 RackTop Systems.
- * Copyright (c) 2017 Open-E, Inc. All Rights Reserved.
- * Copyright (c) 2019 Datto Inc.
- */
-
-#ifndef _LIBZFS_CORE_IMPL_H
-#define _LIBZFS_CORE_IMPL_H
-
-struct zfs_cmd;
-int lzc_ioctl_fd_os(int, unsigned long, struct zfs_cmd *);
-
-#endif /* _LIBZFS_CORE_IMPL_H */
diff --git a/lib/libzfs_core/os/freebsd/libzfs_core_ioctl.c b/lib/libzfs_core/os/freebsd/libzfs_core_ioctl.c
deleted file mode 100644
index 39e217a9349e..000000000000
--- a/lib/libzfs_core/os/freebsd/libzfs_core_ioctl.c
+++ /dev/null
@@ -1,136 +0,0 @@
-// SPDX-License-Identifier: CDDL-1.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 https://opensource.org/licenses/CDDL-1.0.
- * 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
- */
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/sysctl.h>
-#include <sys/zfs_ioctl.h>
-#include <os/freebsd/zfs/sys/zfs_ioctl_compat.h>
-#include <err.h>
-#include <libzfs_core.h>
-#include "libzfs_core_impl.h"
-
-int zfs_ioctl_version = ZFS_IOCVER_UNDEF;
-
-/*
- * Get zfs_ioctl_version
- */
-static int
-get_zfs_ioctl_version(void)
-{
- size_t ver_size;
- int ver = ZFS_IOCVER_NONE;
-
- ver_size = sizeof (ver);
- (void) sysctlbyname("vfs.zfs.version.ioctl", &ver, &ver_size, NULL, 0);
-
- return (ver);
-}
-
-static int
-zcmd_ioctl_compat(int fd, int request, zfs_cmd_t *zc, const int cflag)
-{
- int ret;
-#ifdef ZFS_LEGACY_SUPPORT
- int newrequest;
- void *zc_c = NULL;
-#endif
- unsigned long ncmd;
- zfs_iocparm_t zp;
-
- switch (cflag) {
- case ZFS_CMD_COMPAT_NONE:
- ncmd = _IOWR('Z', request, zfs_iocparm_t);
- zp.zfs_cmd = (uint64_t)(uintptr_t)zc;
- zp.zfs_cmd_size = sizeof (zfs_cmd_t);
- zp.zfs_ioctl_version = ZFS_IOCVER_OZFS;
- break;
-#ifdef ZFS_LEGACY_SUPPORT
- case ZFS_CMD_COMPAT_LEGACY:
- newrequest = zfs_ioctl_ozfs_to_legacy(request);
- ncmd = _IOWR('Z', newrequest, zfs_iocparm_t);
- zc_c = malloc(sizeof (zfs_cmd_legacy_t));
- zfs_cmd_ozfs_to_legacy(zc, zc_c);
- zp.zfs_cmd = (uint64_t)(uintptr_t)zc_c;
- zp.zfs_cmd_size = sizeof (zfs_cmd_legacy_t);
- zp.zfs_ioctl_version = ZFS_IOCVER_LEGACY;
- break;
-#endif
- default:
- abort();
- return (EINVAL);
- }
-
- ret = ioctl(fd, ncmd, &zp);
- if (ret) {
-#ifdef ZFS_LEGACY_SUPPORT
- if (zc_c)
- free(zc_c);
-#endif
- return (ret);
- }
-#ifdef ZFS_LEGACY_SUPPORT
- if (zc_c) {
- zfs_cmd_legacy_to_ozfs(zc_c, zc);
- free(zc_c);
- }
-#endif
- return (ret);
-}
-
-/*
- * This is FreeBSD version of ioctl, because Solaris' ioctl() updates
- * zc_nvlist_dst_size even if an error is returned, on FreeBSD if an
- * error is returned zc_nvlist_dst_size won't be updated.
- */
-int
-lzc_ioctl_fd_os(int fd, unsigned long request, zfs_cmd_t *zc)
-{
- size_t oldsize;
- int ret, cflag = ZFS_CMD_COMPAT_NONE;
-
- if (zfs_ioctl_version == ZFS_IOCVER_UNDEF)
- zfs_ioctl_version = get_zfs_ioctl_version();
-
- switch (zfs_ioctl_version) {
-#ifdef ZFS_LEGACY_SUPPORT
- case ZFS_IOCVER_LEGACY:
- cflag = ZFS_CMD_COMPAT_LEGACY;
- break;
-#endif
- case ZFS_IOCVER_OZFS:
- cflag = ZFS_CMD_COMPAT_NONE;
- break;
- default:
- errx(1, "unrecognized zfs ioctl version %d",
- zfs_ioctl_version);
- }
-
- oldsize = zc->zc_nvlist_dst_size;
- ret = zcmd_ioctl_compat(fd, request, zc, cflag);
-
- if (ret == 0 && oldsize < zc->zc_nvlist_dst_size) {
- ret = -1;
- errno = ENOMEM;
- }
-
- return (ret);
-}
diff --git a/lib/libzfs_core/os/linux/libzfs_core_ioctl.c b/lib/libzfs_core/os/linux/libzfs_core_ioctl.c
deleted file mode 100644
index 6823588e23e2..000000000000
--- a/lib/libzfs_core/os/linux/libzfs_core_ioctl.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// SPDX-License-Identifier: CDDL-1.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 https://opensource.org/licenses/CDDL-1.0.
- * 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
- */
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/zfs_ioctl.h>
-#include <libzfs_core.h>
-#include "libzfs_core_impl.h"
-
-int
-lzc_ioctl_fd_os(int fd, unsigned long request, zfs_cmd_t *zc)
-{
- return (ioctl(fd, request, zc));
-}