diff options
Diffstat (limited to 'lib/libuutil')
-rw-r--r-- | lib/libuutil/Makefile.am | 28 | ||||
-rw-r--r-- | lib/libuutil/libuutil.abi | 2428 | ||||
-rw-r--r-- | lib/libuutil/libuutil.suppr | 2 | ||||
-rw-r--r-- | lib/libuutil/uu_alloc.c | 136 | ||||
-rw-r--r-- | lib/libuutil/uu_avl.c | 569 | ||||
-rw-r--r-- | lib/libuutil/uu_ident.c | 123 | ||||
-rw-r--r-- | lib/libuutil/uu_list.c | 723 | ||||
-rw-r--r-- | lib/libuutil/uu_misc.c | 255 | ||||
-rw-r--r-- | lib/libuutil/uu_string.c | 55 |
9 files changed, 0 insertions, 4319 deletions
diff --git a/lib/libuutil/Makefile.am b/lib/libuutil/Makefile.am deleted file mode 100644 index b973ce3cca4c..000000000000 --- a/lib/libuutil/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -libuutil_la_CFLAGS = $(AM_CFLAGS) $(LIBRARY_CFLAGS) $(LIBRARY_CFLAGS) - -lib_LTLIBRARIES += libuutil.la -CPPCHECKTARGETS += libuutil.la - -libuutil_la_SOURCES = \ - %D%/uu_alloc.c \ - %D%/uu_avl.c \ - %D%/uu_ident.c \ - %D%/uu_list.c \ - %D%/uu_misc.c \ - %D%/uu_string.c - -libuutil_la_LIBADD = \ - libavl.la \ - libspl.la - -libuutil_la_LIBADD += $(LTLIBINTL) - -libuutil_la_LDFLAGS = -pthread - -if !ASAN_ENABLED -libuutil_la_LDFLAGS += -Wl,-z,defs -endif - -libuutil_la_LDFLAGS += -version-info 3:0:0 - -dist_noinst_DATA += %D%/libuutil.abi %D%/libuutil.suppr diff --git a/lib/libuutil/libuutil.abi b/lib/libuutil/libuutil.abi deleted file mode 100644 index 2a740afa07ca..000000000000 --- a/lib/libuutil/libuutil.abi +++ /dev/null @@ -1,2428 +0,0 @@ -<abi-corpus version='2.0' architecture='elf-amd-x86_64' soname='libuutil.so.3'> - <elf-needed> - <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='avl_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_destroy_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_insert_here' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_is_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_nearest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_swap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_update_gt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_update_lt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='avl_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='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='list_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_insert_after' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_insert_before' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_insert_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_insert_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_is_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_link_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_link_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_link_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_move_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_remove_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_remove_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='list_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='membar_consumer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='membar_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='membar_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='membar_producer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='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='uu_avl_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_lockup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_nearest_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_nearest_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_node_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_teardown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_walk_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_walk_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_avl_walk_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_check_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_insert_after' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_insert_before' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_lockup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_nearest_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_nearest_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_node_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_teardown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_walk_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_walk_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_list_walk_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_memdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_msprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_panic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_set_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_strbw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_strcaseeq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_strdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_streq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_strerror' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_strndup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='uu_zalloc' 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'> - <typedef-decl name='__pid_t' type-id='95e97e5e' id='3629bad8'/> - <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='getpid' visibility='default' binding='global' size-in-bits='64'> - <return type-id='3629bad8'/> - </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='int16_t' type-id='03896e23' id='23bd8cb5'/> - <typedef-decl name='int32_t' type-id='33f57a65' id='3ff5601b'/> - <typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/> - <typedef-decl name='__int16_t' type-id='a2185560' id='03896e23'/> - <typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/> - <typedef-decl name='__int32_t' type-id='95e97e5e' id='33f57a65'/> - <typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/> - <typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/> - <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 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> - <typedef-decl name='uint64_t' type-id='8910171f' id='9c313c2d'/> - <typedef-decl name='__uint64_t' type-id='7359adad' id='8910171f'/> - <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> - <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/> - </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='f0981eeb' id='e1c52942'/> - <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='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='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='fclose' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='822cd80b'/> - <return type-id='95e97e5e'/> - </function-decl> - <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='getenv' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='80f4b756'/> - <return type-id='26a90f95'/> - </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='__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='__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='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'> - <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> - <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='__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='__ino64_t' type-id='7359adad' id='71288a47'/> - <typedef-decl name='__nlink_t' type-id='7359adad' id='80f0b9df'/> - <typedef-decl name='__blksize_t' type-id='bd54fe1a' id='d3f10a7f'/> - <typedef-decl name='__blkcnt64_t' type-id='bd54fe1a' id='4e711bf1'/> - <typedef-decl name='__syscall_slong_t' type-id='bd54fe1a' id='03085adc'/> - <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> - <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='__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='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'/> - <typedef-decl name='__time_t' type-id='bd54fe1a' id='65eda9c0'/> - <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='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/libuutil/uu_alloc.c' language='LANG_C99'> - <type-decl name='char' size-in-bits='8' id='a84c031d'/> - <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='variadic parameter type' id='2c1145c5'/> - <type-decl name='void' id='48b5725f'/> - <typedef-decl name='uint_t' type-id='f0981eeb' id='3502e3ff'/> - <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/> - <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'/> - <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/> - <function-decl name='uu_set_error' mangled-name='uu_set_error' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_set_error'> - <parameter type-id='3502e3ff'/> - <return type-id='48b5725f'/> - </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='strlen' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='80f4b756'/> - <return type-id='b59d7dce'/> - </function-decl> - <function-decl name='strnlen' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='80f4b756'/> - <parameter type-id='b59d7dce'/> - <return type-id='b59d7dce'/> - </function-decl> - <function-decl name='uu_zalloc' mangled-name='uu_zalloc' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_zalloc'> - <parameter type-id='b59d7dce' name='n'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_free' mangled-name='uu_free' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_free'> - <parameter type-id='eaa32e2f' name='p'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_strdup' mangled-name='uu_strdup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strdup'> - <parameter type-id='80f4b756' name='str'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='uu_strndup' mangled-name='uu_strndup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strndup'> - <parameter type-id='80f4b756' name='s'/> - <parameter type-id='b59d7dce' name='n'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='uu_memdup' mangled-name='uu_memdup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_memdup'> - <parameter type-id='eaa32e2f' name='buf'/> - <parameter type-id='b59d7dce' name='sz'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_msprintf' mangled-name='uu_msprintf' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_msprintf'> - <parameter type-id='80f4b756' name='format'/> - <parameter is-variadic='yes'/> - <return type-id='26a90f95'/> - </function-decl> - </abi-instr> - <abi-instr address-size='64' path='lib/libuutil/uu_avl.c' language='LANG_C99'> - <array-type-def dimensions='1' type-id='bf311473' size-in-bits='128' id='f0f65199'> - <subrange length='2' type-id='7359adad' id='52efc4ef'/> - </array-type-def> - <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='32' id='8e0573fd'> - <subrange length='4' type-id='7359adad' id='16fe7105'/> - </array-type-def> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='512' id='59daf3ef'> - <subrange length='64' type-id='7359adad' id='b10be967'/> - </array-type-def> - <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='e475ab95' size-in-bits='192' id='0ce65a8b'> - <subrange length='3' type-id='7359adad' id='56f209d2'/> - </array-type-def> - <type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/> - <typedef-decl name='uu_compare_fn_t' type-id='add6e811' id='40f93560'/> - <typedef-decl name='uu_walk_fn_t' type-id='96ee24a5' id='9d1aa0dc'/> - <typedef-decl name='uu_avl_pool_t' type-id='12a530a8' id='7f84e390'/> - <typedef-decl name='uu_avl_t' type-id='4af029d1' id='bb7f0973'/> - <class-decl name='uu_avl_node' size-in-bits='192' is-struct='yes' visibility='default' id='f65f4326'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='uan_opaque' type-id='0ce65a8b' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='uu_avl_node_t' type-id='f65f4326' id='73a65116'/> - <typedef-decl name='uu_avl_walk_t' type-id='e70a39e3' id='edd8457b'/> - <typedef-decl name='uu_avl_index_t' type-id='e475ab95' id='5d7f5fc8'/> - <class-decl name='uu_avl_walk' size-in-bits='320' is-struct='yes' visibility='default' id='e70a39e3'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='uaw_next' type-id='5842d146' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='uaw_prev' type-id='5842d146' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='uaw_avl' type-id='a5c21a38' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='uaw_next_result' type-id='eaa32e2f' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='uaw_dir' type-id='ee31ee44' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='264'> - <var-decl name='uaw_robust' type-id='b96825af' visibility='default'/> - </data-member> - </class-decl> - <class-decl name='uu_avl' size-in-bits='960' is-struct='yes' visibility='default' id='4af029d1'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='ua_next' type-id='a5c21a38' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='ua_prev' type-id='a5c21a38' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='ua_pool' type-id='de82c773' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='ua_parent' type-id='eaa32e2f' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='ua_debug' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='264'> - <var-decl name='ua_index' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='320'> - <var-decl name='ua_tree' type-id='b351119f' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='640'> - <var-decl name='ua_null_walk' type-id='edd8457b' visibility='default'/> - </data-member> - </class-decl> - <class-decl name='uu_avl_pool' size-in-bits='2176' is-struct='yes' visibility='default' id='12a530a8'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='uap_next' type-id='de82c773' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='uap_prev' type-id='de82c773' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='uap_name' type-id='59daf3ef' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='640'> - <var-decl name='uap_nodeoffset' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='704'> - <var-decl name='uap_objsize' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='768'> - <var-decl name='uap_cmp' type-id='d502b39f' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='832'> - <var-decl name='uap_debug' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='840'> - <var-decl name='uap_last_index' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='896'> - <var-decl name='uap_lock' type-id='7a6844eb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='1216'> - <var-decl name='uap_null_avl' type-id='bb7f0973' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='avl_tree_t' type-id='b351119f' id='f20fbd51'/> - <typedef-decl name='avl_index_t' type-id='e475ab95' id='fba6cb51'/> - <class-decl name='avl_node' size-in-bits='192' is-struct='yes' visibility='default' id='428b67b3'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='avl_child' type-id='f0f65199' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='avl_pcb' type-id='e475ab95' visibility='default'/> - </data-member> - </class-decl> - <class-decl name='avl_tree' size-in-bits='320' is-struct='yes' visibility='default' id='b351119f'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='avl_root' type-id='bf311473' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='avl_compar' type-id='585e1de9' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='avl_offset' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='avl_numnodes' type-id='ee1f298e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='avl_pad' type-id='b59d7dce' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='ulong_t' type-id='7359adad' id='ee1f298e'/> - <typedef-decl name='uintptr_t' type-id='7359adad' id='e475ab95'/> - <union-decl name='pthread_mutexattr_t' size-in-bits='32' naming-typedef-id='8afd6070' visibility='default' id='7300eb00'> - <data-member access='public'> - <var-decl name='__size' type-id='8e0573fd' visibility='default'/> - </data-member> - <data-member access='public'> - <var-decl name='__align' type-id='95e97e5e' visibility='default'/> - </data-member> - </union-decl> - <typedef-decl name='pthread_mutexattr_t' type-id='7300eb00' id='8afd6070'/> - <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='int8_t' type-id='2171a512' id='ee31ee44'/> - <typedef-decl name='uint8_t' type-id='c51d6389' id='b96825af'/> - <typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/> - <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='__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='__int8_t' type-id='28577a57' id='2171a512'/> - <typedef-decl name='__uint8_t' type-id='002ac4a6' id='c51d6389'/> - <typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/> - <pointer-type-def type-id='0e01899c' size-in-bits='64' id='4d98cd5a'/> - <pointer-type-def type-id='fba6cb51' size-in-bits='64' id='32adbf30'/> - <pointer-type-def type-id='428b67b3' size-in-bits='64' id='bf311473'/> - <pointer-type-def type-id='b351119f' size-in-bits='64' id='716943c7'/> - <pointer-type-def type-id='f20fbd51' size-in-bits='64' id='a3681dea'/> - <qualified-type-def type-id='8afd6070' const='yes' id='1d853360'/> - <pointer-type-def type-id='1d853360' size-in-bits='64' id='c2afbd7e'/> - <pointer-type-def type-id='96ee24a5' size-in-bits='64' id='585e1de9'/> - <pointer-type-def type-id='7a6844eb' size-in-bits='64' id='18c91f9e'/> - <pointer-type-def type-id='5d7f5fc8' size-in-bits='64' id='813a2225'/> - <pointer-type-def type-id='73a65116' size-in-bits='64' id='2dc35b9d'/> - <pointer-type-def type-id='7f84e390' size-in-bits='64' id='de82c773'/> - <pointer-type-def type-id='bb7f0973' size-in-bits='64' id='a5c21a38'/> - <pointer-type-def type-id='edd8457b' size-in-bits='64' id='5842d146'/> - <pointer-type-def type-id='40f93560' size-in-bits='64' id='d502b39f'/> - <pointer-type-def type-id='9d1aa0dc' size-in-bits='64' id='30a42b6d'/> - <pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/> - <function-decl name='uu_check_name' mangled-name='uu_check_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_check_name'> - <parameter type-id='80f4b756'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='uu_panic' mangled-name='uu_panic' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_panic'> - <parameter type-id='80f4b756'/> - <parameter is-variadic='yes'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_create' mangled-name='avl_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_create'> - <parameter type-id='a3681dea'/> - <parameter type-id='585e1de9'/> - <parameter type-id='b59d7dce'/> - <parameter type-id='b59d7dce'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_find' mangled-name='avl_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_find'> - <parameter type-id='a3681dea'/> - <parameter type-id='eaa32e2f'/> - <parameter type-id='32adbf30'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_insert' mangled-name='avl_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert'> - <parameter type-id='a3681dea'/> - <parameter type-id='eaa32e2f'/> - <parameter type-id='fba6cb51'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_first' mangled-name='avl_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_first'> - <parameter type-id='a3681dea'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_last' mangled-name='avl_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_last'> - <parameter type-id='a3681dea'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_nearest' mangled-name='avl_nearest' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_nearest'> - <parameter type-id='a3681dea'/> - <parameter type-id='fba6cb51'/> - <parameter type-id='95e97e5e'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_remove' mangled-name='avl_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_remove'> - <parameter type-id='a3681dea'/> - <parameter type-id='eaa32e2f'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_numnodes' mangled-name='avl_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_numnodes'> - <parameter type-id='a3681dea'/> - <return type-id='ee1f298e'/> - </function-decl> - <function-decl name='avl_destroy_nodes' mangled-name='avl_destroy_nodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy_nodes'> - <parameter type-id='a3681dea'/> - <parameter type-id='63e171df'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='avl_destroy' mangled-name='avl_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy'> - <parameter type-id='a3681dea'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_walk' mangled-name='avl_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_walk'> - <parameter type-id='716943c7'/> - <parameter type-id='eaa32e2f'/> - <parameter type-id='95e97e5e'/> - <return type-id='eaa32e2f'/> - </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='pthread_mutex_init' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='18c91f9e'/> - <parameter type-id='c2afbd7e'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='pthread_mutex_destroy' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='18c91f9e'/> - <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='uu_avl_pool_create' mangled-name='uu_avl_pool_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_pool_create'> - <parameter type-id='80f4b756' name='name'/> - <parameter type-id='b59d7dce' name='objsize'/> - <parameter type-id='b59d7dce' name='nodeoffset'/> - <parameter type-id='d502b39f' name='compare_func'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='de82c773'/> - </function-decl> - <function-decl name='uu_avl_pool_destroy' mangled-name='uu_avl_pool_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_pool_destroy'> - <parameter type-id='de82c773' name='pp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_node_init' mangled-name='uu_avl_node_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_node_init'> - <parameter type-id='eaa32e2f' name='base'/> - <parameter type-id='2dc35b9d' name='np'/> - <parameter type-id='de82c773' name='pp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_node_fini' mangled-name='uu_avl_node_fini' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_node_fini'> - <parameter type-id='eaa32e2f' name='base'/> - <parameter type-id='2dc35b9d' name='np'/> - <parameter type-id='de82c773' name='pp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_create' mangled-name='uu_avl_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_create'> - <parameter type-id='de82c773' name='pp'/> - <parameter type-id='eaa32e2f' name='parent'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='a5c21a38'/> - </function-decl> - <function-decl name='uu_avl_destroy' mangled-name='uu_avl_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_destroy'> - <parameter type-id='a5c21a38' name='ap'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_numnodes' mangled-name='uu_avl_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_numnodes'> - <parameter type-id='a5c21a38' name='ap'/> - <return type-id='b59d7dce'/> - </function-decl> - <function-decl name='uu_avl_first' mangled-name='uu_avl_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_first'> - <parameter type-id='a5c21a38' name='ap'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_last' mangled-name='uu_avl_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_last'> - <parameter type-id='a5c21a38' name='ap'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_next' mangled-name='uu_avl_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_next'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='eaa32e2f' name='node'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_prev' mangled-name='uu_avl_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_prev'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='eaa32e2f' name='node'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_walk_start' mangled-name='uu_avl_walk_start' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk_start'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='5842d146'/> - </function-decl> - <function-decl name='uu_avl_walk_next' mangled-name='uu_avl_walk_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk_next'> - <parameter type-id='5842d146' name='wp'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_walk_end' mangled-name='uu_avl_walk_end' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk_end'> - <parameter type-id='5842d146' name='wp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_walk' mangled-name='uu_avl_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='30a42b6d' name='func'/> - <parameter type-id='eaa32e2f' name='private'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='uu_avl_remove' mangled-name='uu_avl_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_remove'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='eaa32e2f' name='elem'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_teardown' mangled-name='uu_avl_teardown' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_teardown'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='63e171df' name='cookie'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_find' mangled-name='uu_avl_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_find'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='eaa32e2f' name='elem'/> - <parameter type-id='eaa32e2f' name='private'/> - <parameter type-id='813a2225' name='out'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_insert' mangled-name='uu_avl_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_insert'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='eaa32e2f' name='elem'/> - <parameter type-id='5d7f5fc8' name='idx'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_nearest_next' mangled-name='uu_avl_nearest_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_nearest_next'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='5d7f5fc8' name='idx'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_nearest_prev' mangled-name='uu_avl_nearest_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_nearest_prev'> - <parameter type-id='a5c21a38' name='ap'/> - <parameter type-id='5d7f5fc8' name='idx'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_avl_lockup' mangled-name='uu_avl_lockup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_lockup'> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_avl_release' mangled-name='uu_avl_release' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_release'> - <return type-id='48b5725f'/> - </function-decl> - <function-type size-in-bits='64' id='96ee24a5'> - <parameter type-id='eaa32e2f'/> - <parameter type-id='eaa32e2f'/> - <return type-id='95e97e5e'/> - </function-type> - <function-type size-in-bits='64' id='add6e811'> - <parameter type-id='eaa32e2f'/> - <parameter type-id='eaa32e2f'/> - <parameter type-id='eaa32e2f'/> - <return type-id='95e97e5e'/> - </function-type> - </abi-instr> - <abi-instr address-size='64' path='lib/libuutil/uu_ident.c' language='LANG_C99'> - <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> - </abi-instr> - <abi-instr address-size='64' path='lib/libuutil/uu_list.c' language='LANG_C99'> - <array-type-def dimensions='1' type-id='e475ab95' size-in-bits='128' id='d0e9cdae'> - <subrange length='2' type-id='7359adad' id='52efc4ef'/> - </array-type-def> - <typedef-decl name='uu_list_pool_t' type-id='55168cab' id='38a2549d'/> - <typedef-decl name='uu_list_t' type-id='1d04bdf0' id='82e88484'/> - <class-decl name='uu_list_node' size-in-bits='128' is-struct='yes' visibility='default' id='f8f3cec5'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='uln_opaque' type-id='d0e9cdae' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='uu_list_node_t' type-id='f8f3cec5' id='c4dc472f'/> - <typedef-decl name='uu_list_walk_t' type-id='b80e3208' id='9fed32d2'/> - <typedef-decl name='uu_list_index_t' type-id='e475ab95' id='f0dd35ff'/> - <class-decl name='uu_list_node_impl' size-in-bits='128' is-struct='yes' visibility='default' id='700a795c'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='uln_next' type-id='5af1298a' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='uln_prev' type-id='5af1298a' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='uu_list_node_impl_t' type-id='700a795c' id='8e5864b0'/> - <class-decl name='uu_list_walk' size-in-bits='320' is-struct='yes' visibility='default' id='b80e3208'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='ulw_next' type-id='4d848103' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='ulw_prev' type-id='4d848103' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='ulw_list' type-id='0c0b229b' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='ulw_dir' type-id='ee31ee44' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='200'> - <var-decl name='ulw_robust' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='ulw_next_result' type-id='a085247f' visibility='default'/> - </data-member> - </class-decl> - <class-decl name='uu_list' size-in-bits='896' is-struct='yes' visibility='default' id='1d04bdf0'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='ul_next' type-id='0c0b229b' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='ul_prev' type-id='0c0b229b' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='ul_pool' type-id='0941e04e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='192'> - <var-decl name='ul_parent' type-id='eaa32e2f' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='256'> - <var-decl name='ul_offset' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='320'> - <var-decl name='ul_numnodes' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='384'> - <var-decl name='ul_debug' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='392'> - <var-decl name='ul_sorted' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='400'> - <var-decl name='ul_index' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='448'> - <var-decl name='ul_null_node' type-id='8e5864b0' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='576'> - <var-decl name='ul_null_walk' type-id='9fed32d2' visibility='default'/> - </data-member> - </class-decl> - <class-decl name='uu_list_pool' size-in-bits='2112' is-struct='yes' visibility='default' id='55168cab'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='ulp_next' type-id='0941e04e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='ulp_prev' type-id='0941e04e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='ulp_name' type-id='59daf3ef' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='640'> - <var-decl name='ulp_nodeoffset' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='704'> - <var-decl name='ulp_objsize' type-id='b59d7dce' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='768'> - <var-decl name='ulp_cmp' type-id='d502b39f' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='832'> - <var-decl name='ulp_debug' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='840'> - <var-decl name='ulp_last_index' type-id='b96825af' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='896'> - <var-decl name='ulp_lock' type-id='7a6844eb' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='1216'> - <var-decl name='ulp_null_list' type-id='82e88484' visibility='default'/> - </data-member> - </class-decl> - <pointer-type-def type-id='f0dd35ff' size-in-bits='64' id='ecbc0046'/> - <pointer-type-def type-id='700a795c' size-in-bits='64' id='5af1298a'/> - <pointer-type-def type-id='8e5864b0' size-in-bits='64' id='a085247f'/> - <pointer-type-def type-id='c4dc472f' size-in-bits='64' id='dbe143f4'/> - <pointer-type-def type-id='38a2549d' size-in-bits='64' id='0941e04e'/> - <pointer-type-def type-id='82e88484' size-in-bits='64' id='0c0b229b'/> - <pointer-type-def type-id='9fed32d2' size-in-bits='64' id='4d848103'/> - <function-decl name='uu_list_pool_create' mangled-name='uu_list_pool_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_pool_create'> - <parameter type-id='80f4b756' name='name'/> - <parameter type-id='b59d7dce' name='objsize'/> - <parameter type-id='b59d7dce' name='nodeoffset'/> - <parameter type-id='d502b39f' name='compare_func'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='0941e04e'/> - </function-decl> - <function-decl name='uu_list_pool_destroy' mangled-name='uu_list_pool_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_pool_destroy'> - <parameter type-id='0941e04e' name='pp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_node_init' mangled-name='uu_list_node_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_node_init'> - <parameter type-id='eaa32e2f' name='base'/> - <parameter type-id='dbe143f4' name='np_arg'/> - <parameter type-id='0941e04e' name='pp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_node_fini' mangled-name='uu_list_node_fini' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_node_fini'> - <parameter type-id='eaa32e2f' name='base'/> - <parameter type-id='dbe143f4' name='np_arg'/> - <parameter type-id='0941e04e' name='pp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_create' mangled-name='uu_list_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_create'> - <parameter type-id='0941e04e' name='pp'/> - <parameter type-id='eaa32e2f' name='parent'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='0c0b229b'/> - </function-decl> - <function-decl name='uu_list_destroy' mangled-name='uu_list_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_destroy'> - <parameter type-id='0c0b229b' name='lp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_insert' mangled-name='uu_list_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_insert'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='eaa32e2f' name='elem'/> - <parameter type-id='f0dd35ff' name='idx'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_find' mangled-name='uu_list_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_find'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='eaa32e2f' name='elem'/> - <parameter type-id='eaa32e2f' name='private'/> - <parameter type-id='ecbc0046' name='out'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_nearest_next' mangled-name='uu_list_nearest_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_nearest_next'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='f0dd35ff' name='idx'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_nearest_prev' mangled-name='uu_list_nearest_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_nearest_prev'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='f0dd35ff' name='idx'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_walk_start' mangled-name='uu_list_walk_start' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk_start'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='4d848103'/> - </function-decl> - <function-decl name='uu_list_walk_next' mangled-name='uu_list_walk_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk_next'> - <parameter type-id='4d848103' name='wp'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_walk_end' mangled-name='uu_list_walk_end' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk_end'> - <parameter type-id='4d848103' name='wp'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_walk' mangled-name='uu_list_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='30a42b6d' name='func'/> - <parameter type-id='eaa32e2f' name='private'/> - <parameter type-id='8f92235e' name='flags'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='uu_list_remove' mangled-name='uu_list_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_remove'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='eaa32e2f' name='elem'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_teardown' mangled-name='uu_list_teardown' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_teardown'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='63e171df' name='cookie'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_insert_before' mangled-name='uu_list_insert_before' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_insert_before'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='eaa32e2f' name='target'/> - <parameter type-id='eaa32e2f' name='elem'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='uu_list_insert_after' mangled-name='uu_list_insert_after' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_insert_after'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='eaa32e2f' name='target'/> - <parameter type-id='eaa32e2f' name='elem'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='uu_list_numnodes' mangled-name='uu_list_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_numnodes'> - <parameter type-id='0c0b229b' name='lp'/> - <return type-id='b59d7dce'/> - </function-decl> - <function-decl name='uu_list_first' mangled-name='uu_list_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_first'> - <parameter type-id='0c0b229b' name='lp'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_last' mangled-name='uu_list_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_last'> - <parameter type-id='0c0b229b' name='lp'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_next' mangled-name='uu_list_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_next'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='eaa32e2f' name='elem'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_prev' mangled-name='uu_list_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_prev'> - <parameter type-id='0c0b229b' name='lp'/> - <parameter type-id='eaa32e2f' name='elem'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='uu_list_lockup' mangled-name='uu_list_lockup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_lockup'> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='uu_list_release' mangled-name='uu_list_release' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_release'> - <return type-id='48b5725f'/> - </function-decl> - </abi-instr> - <abi-instr address-size='64' path='lib/libuutil/uu_misc.c' language='LANG_C99'> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='8' id='89feb1ec'> - <subrange length='1' type-id='7359adad' id='52f813b4'/> - </array-type-def> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='160' id='664ac0b7'> - <subrange length='20' type-id='7359adad' id='fdca39cf'/> - </array-type-def> - <class-decl name='_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'/> - <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> - <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/> - <typedef-decl name='pthread_t' type-id='7359adad' id='4051f5e7'/> - <typedef-decl name='pthread_key_t' type-id='f0981eeb' id='2de5383b'/> - <typedef-decl name='__off_t' type-id='bd54fe1a' id='79989e9c'/> - <typedef-decl name='__off64_t' type-id='bd54fe1a' id='724e4de6'/> - <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> - <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='d5027220' size-in-bits='64' id='b7f2d5e6'/> - <qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/> - <pointer-type-def type-id='95e97e5e' size-in-bits='64' id='7292109c'/> - <pointer-type-def type-id='2de5383b' size-in-bits='64' id='ce04b822'/> - <pointer-type-def type-id='ee076206' size-in-bits='64' id='953b12f8'/> - <pointer-type-def type-id='c5c76c9c' size-in-bits='64' id='b7f9d8e6'/> - <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='__errno_location' visibility='default' binding='global' size-in-bits='64'> - <return type-id='7292109c'/> - </function-decl> - <function-decl name='dcgettext' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='80f4b756'/> - <parameter type-id='80f4b756'/> - <parameter type-id='95e97e5e'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='pthread_self' visibility='default' binding='global' size-in-bits='64'> - <return type-id='4051f5e7'/> - </function-decl> - <function-decl name='pthread_key_create' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='ce04b822'/> - <parameter type-id='b7f9d8e6'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='pthread_getspecific' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='2de5383b'/> - <return type-id='eaa32e2f'/> - </function-decl> - <function-decl name='pthread_setspecific' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='2de5383b'/> - <parameter type-id='eaa32e2f'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='pthread_atfork' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='953b12f8'/> - <parameter type-id='953b12f8'/> - <parameter type-id='953b12f8'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='abort' visibility='default' binding='global' size-in-bits='64'> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='pause' visibility='default' binding='global' size-in-bits='64'> - <return type-id='95e97e5e'/> - </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='uu_error' mangled-name='uu_error' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_error'> - <return type-id='8f92235e'/> - </function-decl> - <function-decl name='uu_strerror' mangled-name='uu_strerror' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strerror'> - <parameter type-id='8f92235e' name='code'/> - <return type-id='80f4b756'/> - </function-decl> - <function-type size-in-bits='64' id='ee076206'> - <return type-id='48b5725f'/> - </function-type> - <function-type size-in-bits='64' id='c5c76c9c'> - <parameter type-id='eaa32e2f'/> - <return type-id='48b5725f'/> - </function-type> - </abi-instr> - <abi-instr address-size='64' path='lib/libuutil/uu_string.c' language='LANG_C99'> - <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='9cac1fee'/> - <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'/> - <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='strncmp' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='80f4b756'/> - <parameter type-id='80f4b756'/> - <parameter type-id='b59d7dce'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='strcasecmp' 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='uu_streq' mangled-name='uu_streq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_streq'> - <parameter type-id='80f4b756' name='a'/> - <parameter type-id='80f4b756' name='b'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='uu_strcaseeq' mangled-name='uu_strcaseeq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strcaseeq'> - <parameter type-id='80f4b756' name='a'/> - <parameter type-id='80f4b756' name='b'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='uu_strbw' mangled-name='uu_strbw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strbw'> - <parameter type-id='80f4b756' name='a'/> - <parameter type-id='80f4b756' name='b'/> - <return type-id='c19b74c3'/> - </function-decl> - </abi-instr> - <abi-instr address-size='64' path='module/avl/avl.c' language='LANG_C99'> - <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='avl_insert_here' mangled-name='avl_insert_here' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert_here'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='new_data'/> - <parameter type-id='eaa32e2f' name='here'/> - <parameter type-id='95e97e5e' name='direction'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_add' mangled-name='avl_add' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_add'> - <parameter type-id='a3681dea' name='tree'/> - <parameter type-id='eaa32e2f' name='new_node'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_update_lt' mangled-name='avl_update_lt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_lt'> - <parameter type-id='a3681dea' name='t'/> - <parameter type-id='eaa32e2f' name='obj'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='avl_update_gt' mangled-name='avl_update_gt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_gt'> - <parameter type-id='a3681dea' name='t'/> - <parameter type-id='eaa32e2f' name='obj'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='avl_update' mangled-name='avl_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update'> - <parameter type-id='a3681dea' name='t'/> - <parameter type-id='eaa32e2f' name='obj'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='avl_swap' mangled-name='avl_swap' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_swap'> - <parameter type-id='a3681dea' name='tree1'/> - <parameter type-id='a3681dea' name='tree2'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='avl_is_empty' mangled-name='avl_is_empty' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_is_empty'> - <parameter type-id='a3681dea' name='tree'/> - <return type-id='c19b74c3'/> - </function-decl> - </abi-instr> -</abi-corpus> diff --git a/lib/libuutil/libuutil.suppr b/lib/libuutil/libuutil.suppr deleted file mode 100644 index f4db8a49e4f2..000000000000 --- a/lib/libuutil/libuutil.suppr +++ /dev/null @@ -1,2 +0,0 @@ -[suppress_type] - name = FILE* diff --git a/lib/libuutil/uu_alloc.c b/lib/libuutil/uu_alloc.c deleted file mode 100644 index dc2276e3d8b0..000000000000 --- a/lib/libuutil/uu_alloc.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 - */ -/* - * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#include "libuutil_common.h" - -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -void * -uu_zalloc(size_t n) -{ - void *p = malloc(n); - - if (p == NULL) { - uu_set_error(UU_ERROR_SYSTEM); - return (NULL); - } - - (void) memset(p, 0, n); - - return (p); -} - -void -uu_free(void *p) -{ - free(p); -} - -char * -uu_strdup(const char *str) -{ - char *buf = NULL; - - if (str != NULL) { - size_t sz; - - sz = strlen(str) + 1; - buf = uu_zalloc(sz); - if (buf != NULL) - (void) memcpy(buf, str, sz); - } - return (buf); -} - -/* - * Duplicate up to n bytes of a string. Kind of sort of like - * strdup(strlcpy(s, n)). - */ -char * -uu_strndup(const char *s, size_t n) -{ - size_t len; - char *p; - - len = strnlen(s, n); - p = uu_zalloc(len + 1); - if (p == NULL) - return (NULL); - - if (len > 0) - (void) memcpy(p, s, len); - p[len] = '\0'; - - return (p); -} - -/* - * Duplicate a block of memory. Combines malloc with memcpy, much as - * strdup combines malloc, strlen, and strcpy. - */ -void * -uu_memdup(const void *buf, size_t sz) -{ - void *p; - - p = uu_zalloc(sz); - if (p == NULL) - return (NULL); - (void) memcpy(p, buf, sz); - return (p); -} - -char * -uu_msprintf(const char *format, ...) -{ - va_list args; - char attic[1]; - uint_t M, m; - char *b; - - va_start(args, format); - M = vsnprintf(attic, 1, format, args); - va_end(args); - - for (;;) { - m = M; - if ((b = uu_zalloc(m + 1)) == NULL) - return (NULL); - - va_start(args, format); - M = vsnprintf(b, m + 1, format, args); - va_end(args); - - if (M == m) - break; /* sizes match */ - - uu_free(b); - } - - return (b); -} diff --git a/lib/libuutil/uu_avl.c b/lib/libuutil/uu_avl.c deleted file mode 100644 index a741bfa0fc94..000000000000 --- a/lib/libuutil/uu_avl.c +++ /dev/null @@ -1,569 +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 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - - - -#include "libuutil_common.h" - -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <sys/avl.h> - -static uu_avl_pool_t uu_null_apool = { &uu_null_apool, &uu_null_apool }; -static pthread_mutex_t uu_apool_list_lock = PTHREAD_MUTEX_INITIALIZER; - -/* - * The index mark change on every insert and delete, to catch stale - * references. - * - * We leave the low bit alone, since the avl code uses it. - */ -#define INDEX_MAX (sizeof (uintptr_t) - 2) -#define INDEX_NEXT(m) (((m) == INDEX_MAX)? 2 : ((m) + 2) & INDEX_MAX) - -#define INDEX_DECODE(i) ((i) & ~INDEX_MAX) -#define INDEX_ENCODE(p, n) (((n) & ~INDEX_MAX) | (p)->ua_index) -#define INDEX_VALID(p, i) (((i) & INDEX_MAX) == (p)->ua_index) -#define INDEX_CHECK(i) (((i) & INDEX_MAX) != 0) - -/* - * When an element is inactive (not in a tree), we keep a marked pointer to - * its containing pool in its first word, and a NULL pointer in its second. - * - * On insert, we use these to verify that it comes from the correct pool. - */ -#define NODE_ARRAY(p, n) ((uintptr_t *)((uintptr_t)(n) + \ - (pp)->uap_nodeoffset)) - -#define POOL_TO_MARKER(pp) (((uintptr_t)(pp) | 1)) - -#define DEAD_MARKER 0xc4 - -uu_avl_pool_t * -uu_avl_pool_create(const char *name, size_t objsize, size_t nodeoffset, - uu_compare_fn_t *compare_func, uint32_t flags) -{ - uu_avl_pool_t *pp, *next, *prev; - - if (name == NULL || - uu_check_name(name, UU_NAME_DOMAIN) == -1 || - nodeoffset + sizeof (uu_avl_node_t) > objsize || - compare_func == NULL) { - uu_set_error(UU_ERROR_INVALID_ARGUMENT); - return (NULL); - } - - if (flags & ~UU_AVL_POOL_DEBUG) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (NULL); - } - - pp = uu_zalloc(sizeof (uu_avl_pool_t)); - if (pp == NULL) { - uu_set_error(UU_ERROR_NO_MEMORY); - return (NULL); - } - - (void) strlcpy(pp->uap_name, name, sizeof (pp->uap_name)); - pp->uap_nodeoffset = nodeoffset; - pp->uap_objsize = objsize; - pp->uap_cmp = compare_func; - if (flags & UU_AVL_POOL_DEBUG) - pp->uap_debug = 1; - pp->uap_last_index = 0; - - (void) pthread_mutex_init(&pp->uap_lock, NULL); - - pp->uap_null_avl.ua_next = &pp->uap_null_avl; - pp->uap_null_avl.ua_prev = &pp->uap_null_avl; - - (void) pthread_mutex_lock(&uu_apool_list_lock); - pp->uap_next = next = &uu_null_apool; - pp->uap_prev = prev = next->uap_prev; - next->uap_prev = pp; - prev->uap_next = pp; - (void) pthread_mutex_unlock(&uu_apool_list_lock); - - return (pp); -} - -void -uu_avl_pool_destroy(uu_avl_pool_t *pp) -{ - if (pp->uap_debug) { - if (pp->uap_null_avl.ua_next != &pp->uap_null_avl || - pp->uap_null_avl.ua_prev != &pp->uap_null_avl) { - uu_panic("uu_avl_pool_destroy: Pool \"%.*s\" (%p) has " - "outstanding avls, or is corrupt.\n", - (int)sizeof (pp->uap_name), pp->uap_name, - (void *)pp); - } - } - (void) pthread_mutex_lock(&uu_apool_list_lock); - pp->uap_next->uap_prev = pp->uap_prev; - pp->uap_prev->uap_next = pp->uap_next; - (void) pthread_mutex_unlock(&uu_apool_list_lock); - (void) pthread_mutex_destroy(&pp->uap_lock); - pp->uap_prev = NULL; - pp->uap_next = NULL; - uu_free(pp); -} - -void -uu_avl_node_init(void *base, uu_avl_node_t *np, uu_avl_pool_t *pp) -{ - uintptr_t *na = (uintptr_t *)np; - - if (pp->uap_debug) { - uintptr_t offset = (uintptr_t)np - (uintptr_t)base; - if (offset + sizeof (*np) > pp->uap_objsize) { - uu_panic("uu_avl_node_init(%p, %p, %p (\"%s\")): " - "offset %ld doesn't fit in object (size %ld)\n", - base, (void *)np, (void *)pp, pp->uap_name, - (long)offset, (long)pp->uap_objsize); - } - if (offset != pp->uap_nodeoffset) { - uu_panic("uu_avl_node_init(%p, %p, %p (\"%s\")): " - "offset %ld doesn't match pool's offset (%ld)\n", - base, (void *)np, (void *)pp, pp->uap_name, - (long)offset, (long)pp->uap_objsize); - } - } - - na[0] = POOL_TO_MARKER(pp); - na[1] = 0; -} - -void -uu_avl_node_fini(void *base, uu_avl_node_t *np, uu_avl_pool_t *pp) -{ - uintptr_t *na = (uintptr_t *)np; - - if (pp->uap_debug) { - if (na[0] == DEAD_MARKER && na[1] == DEAD_MARKER) { - uu_panic("uu_avl_node_fini(%p, %p, %p (\"%s\")): " - "node already finied\n", - base, (void *)np, (void *)pp, pp->uap_name); - } - if (na[0] != POOL_TO_MARKER(pp) || na[1] != 0) { - uu_panic("uu_avl_node_fini(%p, %p, %p (\"%s\")): " - "node corrupt, in tree, or in different pool\n", - base, (void *)np, (void *)pp, pp->uap_name); - } - } - - na[0] = DEAD_MARKER; - na[1] = DEAD_MARKER; - na[2] = DEAD_MARKER; -} - -struct uu_avl_node_compare_info { - uu_compare_fn_t *ac_compare; - void *ac_private; - void *ac_right; - void *ac_found; -}; - -static int -uu_avl_node_compare(const void *l, const void *r) -{ - struct uu_avl_node_compare_info *info = - (struct uu_avl_node_compare_info *)l; - - int res = info->ac_compare(r, info->ac_right, info->ac_private); - - if (res == 0) { - if (info->ac_found == NULL) - info->ac_found = (void *)r; - return (-1); - } - if (res < 0) - return (1); - return (-1); -} - -uu_avl_t * -uu_avl_create(uu_avl_pool_t *pp, void *parent, uint32_t flags) -{ - uu_avl_t *ap, *next, *prev; - - if (flags & ~UU_AVL_DEBUG) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (NULL); - } - - ap = uu_zalloc(sizeof (*ap)); - if (ap == NULL) { - uu_set_error(UU_ERROR_NO_MEMORY); - return (NULL); - } - - ap->ua_pool = pp; - ap->ua_parent = parent; - ap->ua_debug = pp->uap_debug || (flags & UU_AVL_DEBUG); - ap->ua_index = (pp->uap_last_index = INDEX_NEXT(pp->uap_last_index)); - - avl_create(&ap->ua_tree, &uu_avl_node_compare, pp->uap_objsize, - pp->uap_nodeoffset); - - ap->ua_null_walk.uaw_next = &ap->ua_null_walk; - ap->ua_null_walk.uaw_prev = &ap->ua_null_walk; - - (void) pthread_mutex_lock(&pp->uap_lock); - next = &pp->uap_null_avl; - prev = next->ua_prev; - ap->ua_next = next; - ap->ua_prev = prev; - next->ua_prev = ap; - prev->ua_next = ap; - (void) pthread_mutex_unlock(&pp->uap_lock); - - return (ap); -} - -void -uu_avl_destroy(uu_avl_t *ap) -{ - uu_avl_pool_t *pp = ap->ua_pool; - - if (ap->ua_debug) { - if (avl_numnodes(&ap->ua_tree) != 0) { - uu_panic("uu_avl_destroy(%p): tree not empty\n", - (void *)ap); - } - if (ap->ua_null_walk.uaw_next != &ap->ua_null_walk || - ap->ua_null_walk.uaw_prev != &ap->ua_null_walk) { - uu_panic("uu_avl_destroy(%p): outstanding walkers\n", - (void *)ap); - } - } - (void) pthread_mutex_lock(&pp->uap_lock); - ap->ua_next->ua_prev = ap->ua_prev; - ap->ua_prev->ua_next = ap->ua_next; - (void) pthread_mutex_unlock(&pp->uap_lock); - ap->ua_prev = NULL; - ap->ua_next = NULL; - - ap->ua_pool = NULL; - avl_destroy(&ap->ua_tree); - - uu_free(ap); -} - -size_t -uu_avl_numnodes(uu_avl_t *ap) -{ - return (avl_numnodes(&ap->ua_tree)); -} - -void * -uu_avl_first(uu_avl_t *ap) -{ - return (avl_first(&ap->ua_tree)); -} - -void * -uu_avl_last(uu_avl_t *ap) -{ - return (avl_last(&ap->ua_tree)); -} - -void * -uu_avl_next(uu_avl_t *ap, void *node) -{ - return (AVL_NEXT(&ap->ua_tree, node)); -} - -void * -uu_avl_prev(uu_avl_t *ap, void *node) -{ - return (AVL_PREV(&ap->ua_tree, node)); -} - -static void -_avl_walk_init(uu_avl_walk_t *wp, uu_avl_t *ap, uint32_t flags) -{ - uu_avl_walk_t *next, *prev; - - int robust = (flags & UU_WALK_ROBUST); - int direction = (flags & UU_WALK_REVERSE)? -1 : 1; - - (void) memset(wp, 0, sizeof (*wp)); - wp->uaw_avl = ap; - wp->uaw_robust = robust; - wp->uaw_dir = direction; - - if (direction > 0) - wp->uaw_next_result = avl_first(&ap->ua_tree); - else - wp->uaw_next_result = avl_last(&ap->ua_tree); - - if (ap->ua_debug || robust) { - wp->uaw_next = next = &ap->ua_null_walk; - wp->uaw_prev = prev = next->uaw_prev; - next->uaw_prev = wp; - prev->uaw_next = wp; - } -} - -static void * -_avl_walk_advance(uu_avl_walk_t *wp, uu_avl_t *ap) -{ - void *np = wp->uaw_next_result; - - avl_tree_t *t = &ap->ua_tree; - - if (np == NULL) - return (NULL); - - wp->uaw_next_result = (wp->uaw_dir > 0)? AVL_NEXT(t, np) : - AVL_PREV(t, np); - - return (np); -} - -static void -_avl_walk_fini(uu_avl_walk_t *wp) -{ - if (wp->uaw_next != NULL) { - wp->uaw_next->uaw_prev = wp->uaw_prev; - wp->uaw_prev->uaw_next = wp->uaw_next; - wp->uaw_next = NULL; - wp->uaw_prev = NULL; - } - wp->uaw_avl = NULL; - wp->uaw_next_result = NULL; -} - -uu_avl_walk_t * -uu_avl_walk_start(uu_avl_t *ap, uint32_t flags) -{ - uu_avl_walk_t *wp; - - if (flags & ~(UU_WALK_ROBUST | UU_WALK_REVERSE)) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (NULL); - } - - wp = uu_zalloc(sizeof (*wp)); - if (wp == NULL) { - uu_set_error(UU_ERROR_NO_MEMORY); - return (NULL); - } - - _avl_walk_init(wp, ap, flags); - return (wp); -} - -void * -uu_avl_walk_next(uu_avl_walk_t *wp) -{ - return (_avl_walk_advance(wp, wp->uaw_avl)); -} - -void -uu_avl_walk_end(uu_avl_walk_t *wp) -{ - _avl_walk_fini(wp); - uu_free(wp); -} - -int -uu_avl_walk(uu_avl_t *ap, uu_walk_fn_t *func, void *private, uint32_t flags) -{ - void *e; - uu_avl_walk_t my_walk; - - int status = UU_WALK_NEXT; - - if (flags & ~(UU_WALK_ROBUST | UU_WALK_REVERSE)) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (-1); - } - - _avl_walk_init(&my_walk, ap, flags); - while (status == UU_WALK_NEXT && - (e = _avl_walk_advance(&my_walk, ap)) != NULL) - status = (*func)(e, private); - _avl_walk_fini(&my_walk); - - if (status >= 0) - return (0); - uu_set_error(UU_ERROR_CALLBACK_FAILED); - return (-1); -} - -void -uu_avl_remove(uu_avl_t *ap, void *elem) -{ - uu_avl_walk_t *wp; - uu_avl_pool_t *pp = ap->ua_pool; - uintptr_t *na = NODE_ARRAY(pp, elem); - - if (ap->ua_debug) { - /* - * invalidate outstanding uu_avl_index_ts. - */ - ap->ua_index = INDEX_NEXT(ap->ua_index); - } - - /* - * Robust walkers most be advanced, if we are removing the node - * they are currently using. In debug mode, non-robust walkers - * are also on the walker list. - */ - for (wp = ap->ua_null_walk.uaw_next; wp != &ap->ua_null_walk; - wp = wp->uaw_next) { - if (wp->uaw_robust) { - if (elem == wp->uaw_next_result) - (void) _avl_walk_advance(wp, ap); - } else if (wp->uaw_next_result != NULL) { - uu_panic("uu_avl_remove(%p, %p): active non-robust " - "walker\n", (void *)ap, elem); - } - } - - avl_remove(&ap->ua_tree, elem); - - na[0] = POOL_TO_MARKER(pp); - na[1] = 0; -} - -void * -uu_avl_teardown(uu_avl_t *ap, void **cookie) -{ - void *elem = avl_destroy_nodes(&ap->ua_tree, cookie); - - if (elem != NULL) { - uu_avl_pool_t *pp = ap->ua_pool; - uintptr_t *na = NODE_ARRAY(pp, elem); - - na[0] = POOL_TO_MARKER(pp); - na[1] = 0; - } - return (elem); -} - -void * -uu_avl_find(uu_avl_t *ap, void *elem, void *private, uu_avl_index_t *out) -{ - struct uu_avl_node_compare_info info; - void *result; - - info.ac_compare = ap->ua_pool->uap_cmp; - info.ac_private = private; - info.ac_right = elem; - info.ac_found = NULL; - - result = avl_find(&ap->ua_tree, &info, out); - if (out != NULL) - *out = INDEX_ENCODE(ap, *out); - - if (ap->ua_debug && result != NULL) - uu_panic("uu_avl_find: internal error: avl_find succeeded\n"); - - return (info.ac_found); -} - -void -uu_avl_insert(uu_avl_t *ap, void *elem, uu_avl_index_t idx) -{ - if (ap->ua_debug) { - uu_avl_pool_t *pp = ap->ua_pool; - uintptr_t *na = NODE_ARRAY(pp, elem); - - if (na[1] != 0) - uu_panic("uu_avl_insert(%p, %p, %p): node already " - "in tree, or corrupt\n", - (void *)ap, elem, (void *)idx); - if (na[0] == 0) - uu_panic("uu_avl_insert(%p, %p, %p): node not " - "initialized\n", - (void *)ap, elem, (void *)idx); - if (na[0] != POOL_TO_MARKER(pp)) - uu_panic("uu_avl_insert(%p, %p, %p): node from " - "other pool, or corrupt\n", - (void *)ap, elem, (void *)idx); - - if (!INDEX_VALID(ap, idx)) - uu_panic("uu_avl_insert(%p, %p, %p): %s\n", - (void *)ap, elem, (void *)idx, - INDEX_CHECK(idx)? "outdated index" : - "invalid index"); - - /* - * invalidate outstanding uu_avl_index_ts. - */ - ap->ua_index = INDEX_NEXT(ap->ua_index); - } - avl_insert(&ap->ua_tree, elem, INDEX_DECODE(idx)); -} - -void * -uu_avl_nearest_next(uu_avl_t *ap, uu_avl_index_t idx) -{ - if (ap->ua_debug && !INDEX_VALID(ap, idx)) - uu_panic("uu_avl_nearest_next(%p, %p): %s\n", - (void *)ap, (void *)idx, INDEX_CHECK(idx)? - "outdated index" : "invalid index"); - return (avl_nearest(&ap->ua_tree, INDEX_DECODE(idx), AVL_AFTER)); -} - -void * -uu_avl_nearest_prev(uu_avl_t *ap, uu_avl_index_t idx) -{ - if (ap->ua_debug && !INDEX_VALID(ap, idx)) - uu_panic("uu_avl_nearest_prev(%p, %p): %s\n", - (void *)ap, (void *)idx, INDEX_CHECK(idx)? - "outdated index" : "invalid index"); - return (avl_nearest(&ap->ua_tree, INDEX_DECODE(idx), AVL_BEFORE)); -} - -/* - * called from uu_lockup() and uu_release(), as part of our fork1()-safety. - */ -void -uu_avl_lockup(void) -{ - uu_avl_pool_t *pp; - - (void) pthread_mutex_lock(&uu_apool_list_lock); - for (pp = uu_null_apool.uap_next; pp != &uu_null_apool; - pp = pp->uap_next) - (void) pthread_mutex_lock(&pp->uap_lock); -} - -void -uu_avl_release(void) -{ - uu_avl_pool_t *pp; - - for (pp = uu_null_apool.uap_next; pp != &uu_null_apool; - pp = pp->uap_next) - (void) pthread_mutex_unlock(&pp->uap_lock); - (void) pthread_mutex_unlock(&uu_apool_list_lock); -} diff --git a/lib/libuutil/uu_ident.c b/lib/libuutil/uu_ident.c deleted file mode 100644 index 87fde4d98086..000000000000 --- a/lib/libuutil/uu_ident.c +++ /dev/null @@ -1,123 +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, Version 1.0 only - * (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 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - - - -#include "libuutil_common.h" - -#include <string.h> - -/* - * We require names of the form: - * [provider,]identifier[/[provider,]identifier]... - * - * Where provider is either a stock symbol (SUNW) or a java-style reversed - * domain name (com.sun). - * - * Both providers and identifiers must start with a letter, and may - * only contain alphanumerics, dashes, and underlines. Providers - * may also contain periods. - * - * Note that we do _not_ use the macros in <ctype.h>, since they are affected - * by the current locale settings. - */ - -#define IS_ALPHA(c) \ - (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z')) - -#define IS_DIGIT(c) \ - ((c) >= '0' && (c) <= '9') - -static int -is_valid_ident(const char *s, const char *e, int allowdot) -{ - char c; - - if (s >= e) - return (0); /* name is empty */ - - c = *s++; - if (!IS_ALPHA(c)) - return (0); /* does not start with letter */ - - while (s < e && (c = *s++) != 0) { - if (IS_ALPHA(c) || IS_DIGIT(c) || c == '-' || c == '_' || - (allowdot && c == '.')) - continue; - return (0); /* invalid character */ - } - return (1); -} - -static int -is_valid_component(const char *b, const char *e, uint_t flags) -{ - char *sp; - - if (flags & UU_NAME_DOMAIN) { - sp = strchr(b, ','); - if (sp != NULL && sp < e) { - if (!is_valid_ident(b, sp, 1)) - return (0); - b = sp + 1; - } - } - - return (is_valid_ident(b, e, 0)); -} - -int -uu_check_name(const char *name, uint_t flags) -{ - const char *end = name + strlen(name); - const char *p; - - if (flags & ~(UU_NAME_DOMAIN | UU_NAME_PATH)) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (-1); - } - - if (!(flags & UU_NAME_PATH)) { - if (!is_valid_component(name, end, flags)) - goto bad; - return (0); - } - - while ((p = strchr(name, '/')) != NULL) { - if (!is_valid_component(name, p - 1, flags)) - goto bad; - name = p + 1; - } - if (!is_valid_component(name, end, flags)) - goto bad; - - return (0); - -bad: - uu_set_error(UU_ERROR_INVALID_ARGUMENT); - return (-1); -} diff --git a/lib/libuutil/uu_list.c b/lib/libuutil/uu_list.c deleted file mode 100644 index 6c303bde9c81..000000000000 --- a/lib/libuutil/uu_list.c +++ /dev/null @@ -1,723 +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 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - - - -#include "libuutil_common.h" - -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <sys/time.h> - -#define ELEM_TO_NODE(lp, e) \ - ((uu_list_node_impl_t *)((uintptr_t)(e) + (lp)->ul_offset)) - -#define NODE_TO_ELEM(lp, n) \ - ((void *)((uintptr_t)(n) - (lp)->ul_offset)) - -/* - * uu_list_index_ts define a location for insertion. They are simply a - * pointer to the object after the insertion point. We store a mark - * in the low-bits of the index, to help prevent mistakes. - * - * When debugging, the index mark changes on every insert and delete, to - * catch stale references. - */ -#define INDEX_MAX (sizeof (uintptr_t) - 1) -#define INDEX_NEXT(m) (((m) == INDEX_MAX)? 1 : ((m) + 1) & INDEX_MAX) - -#define INDEX_TO_NODE(i) ((uu_list_node_impl_t *)((i) & ~INDEX_MAX)) -#define NODE_TO_INDEX(p, n) (((uintptr_t)(n) & ~INDEX_MAX) | (p)->ul_index) -#define INDEX_VALID(p, i) (((i) & INDEX_MAX) == (p)->ul_index) -#define INDEX_CHECK(i) (((i) & INDEX_MAX) != 0) - -#define POOL_TO_MARKER(pp) ((void *)((uintptr_t)(pp) | 1)) - -static uu_list_pool_t uu_null_lpool = { &uu_null_lpool, &uu_null_lpool }; -static pthread_mutex_t uu_lpool_list_lock = PTHREAD_MUTEX_INITIALIZER; - -uu_list_pool_t * -uu_list_pool_create(const char *name, size_t objsize, - size_t nodeoffset, uu_compare_fn_t *compare_func, uint32_t flags) -{ - uu_list_pool_t *pp, *next, *prev; - - if (name == NULL || - uu_check_name(name, UU_NAME_DOMAIN) == -1 || - nodeoffset + sizeof (uu_list_node_t) > objsize) { - uu_set_error(UU_ERROR_INVALID_ARGUMENT); - return (NULL); - } - - if (flags & ~UU_LIST_POOL_DEBUG) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (NULL); - } - - pp = uu_zalloc(sizeof (uu_list_pool_t)); - if (pp == NULL) { - uu_set_error(UU_ERROR_NO_MEMORY); - return (NULL); - } - - (void) strlcpy(pp->ulp_name, name, sizeof (pp->ulp_name)); - pp->ulp_nodeoffset = nodeoffset; - pp->ulp_objsize = objsize; - pp->ulp_cmp = compare_func; - if (flags & UU_LIST_POOL_DEBUG) - pp->ulp_debug = 1; - pp->ulp_last_index = 0; - - (void) pthread_mutex_init(&pp->ulp_lock, NULL); - - pp->ulp_null_list.ul_next = &pp->ulp_null_list; - pp->ulp_null_list.ul_prev = &pp->ulp_null_list; - - (void) pthread_mutex_lock(&uu_lpool_list_lock); - pp->ulp_next = next = &uu_null_lpool; - pp->ulp_prev = prev = next->ulp_prev; - next->ulp_prev = pp; - prev->ulp_next = pp; - (void) pthread_mutex_unlock(&uu_lpool_list_lock); - - return (pp); -} - -void -uu_list_pool_destroy(uu_list_pool_t *pp) -{ - if (pp->ulp_debug) { - if (pp->ulp_null_list.ul_next != &pp->ulp_null_list || - pp->ulp_null_list.ul_prev != &pp->ulp_null_list) { - uu_panic("uu_list_pool_destroy: Pool \"%.*s\" (%p) has " - "outstanding lists, or is corrupt.\n", - (int)sizeof (pp->ulp_name), pp->ulp_name, - (void *)pp); - } - } - (void) pthread_mutex_lock(&uu_lpool_list_lock); - pp->ulp_next->ulp_prev = pp->ulp_prev; - pp->ulp_prev->ulp_next = pp->ulp_next; - (void) pthread_mutex_unlock(&uu_lpool_list_lock); - pp->ulp_prev = NULL; - pp->ulp_next = NULL; - uu_free(pp); -} - -void -uu_list_node_init(void *base, uu_list_node_t *np_arg, uu_list_pool_t *pp) -{ - uu_list_node_impl_t *np = (uu_list_node_impl_t *)np_arg; - - if (pp->ulp_debug) { - uintptr_t offset = (uintptr_t)np - (uintptr_t)base; - if (offset + sizeof (*np) > pp->ulp_objsize) { - uu_panic("uu_list_node_init(%p, %p, %p (\"%s\")): " - "offset %ld doesn't fit in object (size %ld)\n", - base, (void *)np, (void *)pp, pp->ulp_name, - (long)offset, (long)pp->ulp_objsize); - } - if (offset != pp->ulp_nodeoffset) { - uu_panic("uu_list_node_init(%p, %p, %p (\"%s\")): " - "offset %ld doesn't match pool's offset (%ld)\n", - base, (void *)np, (void *)pp, pp->ulp_name, - (long)offset, (long)pp->ulp_objsize); - } - } - np->uln_next = POOL_TO_MARKER(pp); - np->uln_prev = NULL; -} - -void -uu_list_node_fini(void *base, uu_list_node_t *np_arg, uu_list_pool_t *pp) -{ - uu_list_node_impl_t *np = (uu_list_node_impl_t *)np_arg; - - if (pp->ulp_debug) { - if (np->uln_next == NULL && - np->uln_prev == NULL) { - uu_panic("uu_list_node_fini(%p, %p, %p (\"%s\")): " - "node already finied\n", - base, (void *)np_arg, (void *)pp, pp->ulp_name); - } - if (np->uln_next != POOL_TO_MARKER(pp) || - np->uln_prev != NULL) { - uu_panic("uu_list_node_fini(%p, %p, %p (\"%s\")): " - "node corrupt or on list\n", - base, (void *)np_arg, (void *)pp, pp->ulp_name); - } - } - np->uln_next = NULL; - np->uln_prev = NULL; -} - -uu_list_t * -uu_list_create(uu_list_pool_t *pp, void *parent, uint32_t flags) -{ - uu_list_t *lp, *next, *prev; - - if (flags & ~(UU_LIST_DEBUG | UU_LIST_SORTED)) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (NULL); - } - - if ((flags & UU_LIST_SORTED) && pp->ulp_cmp == NULL) { - if (pp->ulp_debug) - uu_panic("uu_list_create(%p, ...): requested " - "UU_LIST_SORTED, but pool has no comparison func\n", - (void *)pp); - uu_set_error(UU_ERROR_NOT_SUPPORTED); - return (NULL); - } - - lp = uu_zalloc(sizeof (*lp)); - if (lp == NULL) { - uu_set_error(UU_ERROR_NO_MEMORY); - return (NULL); - } - - lp->ul_pool = pp; - lp->ul_parent = parent; - lp->ul_offset = pp->ulp_nodeoffset; - lp->ul_debug = pp->ulp_debug || (flags & UU_LIST_DEBUG); - lp->ul_sorted = (flags & UU_LIST_SORTED); - lp->ul_numnodes = 0; - lp->ul_index = (pp->ulp_last_index = INDEX_NEXT(pp->ulp_last_index)); - - lp->ul_null_node.uln_next = &lp->ul_null_node; - lp->ul_null_node.uln_prev = &lp->ul_null_node; - - lp->ul_null_walk.ulw_next = &lp->ul_null_walk; - lp->ul_null_walk.ulw_prev = &lp->ul_null_walk; - - (void) pthread_mutex_lock(&pp->ulp_lock); - next = &pp->ulp_null_list; - prev = next->ul_prev; - lp->ul_next = next; - lp->ul_prev = prev; - next->ul_prev = lp; - prev->ul_next = lp; - (void) pthread_mutex_unlock(&pp->ulp_lock); - - return (lp); -} - -void -uu_list_destroy(uu_list_t *lp) -{ - uu_list_pool_t *pp = lp->ul_pool; - - if (lp->ul_debug) { - if (lp->ul_null_node.uln_next != &lp->ul_null_node || - lp->ul_null_node.uln_prev != &lp->ul_null_node) { - uu_panic("uu_list_destroy(%p): list not empty\n", - (void *)lp); - } - if (lp->ul_numnodes != 0) { - uu_panic("uu_list_destroy(%p): numnodes is nonzero, " - "but list is empty\n", (void *)lp); - } - if (lp->ul_null_walk.ulw_next != &lp->ul_null_walk || - lp->ul_null_walk.ulw_prev != &lp->ul_null_walk) { - uu_panic("uu_list_destroy(%p): outstanding walkers\n", - (void *)lp); - } - } - - (void) pthread_mutex_lock(&pp->ulp_lock); - lp->ul_next->ul_prev = lp->ul_prev; - lp->ul_prev->ul_next = lp->ul_next; - (void) pthread_mutex_unlock(&pp->ulp_lock); - lp->ul_prev = NULL; - lp->ul_next = NULL; - lp->ul_pool = NULL; - uu_free(lp); -} - -static void -list_insert(uu_list_t *lp, uu_list_node_impl_t *np, uu_list_node_impl_t *prev, - uu_list_node_impl_t *next) -{ - if (lp->ul_debug) { - if (next->uln_prev != prev || prev->uln_next != next) - uu_panic("insert(%p): internal error: %p and %p not " - "neighbors\n", (void *)lp, (void *)next, - (void *)prev); - - if (np->uln_next != POOL_TO_MARKER(lp->ul_pool) || - np->uln_prev != NULL) { - uu_panic("insert(%p): elem %p node %p corrupt, " - "not initialized, or already in a list.\n", - (void *)lp, NODE_TO_ELEM(lp, np), (void *)np); - } - /* - * invalidate outstanding uu_list_index_ts. - */ - lp->ul_index = INDEX_NEXT(lp->ul_index); - } - np->uln_next = next; - np->uln_prev = prev; - next->uln_prev = np; - prev->uln_next = np; - - lp->ul_numnodes++; -} - -void -uu_list_insert(uu_list_t *lp, void *elem, uu_list_index_t idx) -{ - uu_list_node_impl_t *np; - - np = INDEX_TO_NODE(idx); - if (np == NULL) - np = &lp->ul_null_node; - - if (lp->ul_debug) { - if (!INDEX_VALID(lp, idx)) - uu_panic("uu_list_insert(%p, %p, %p): %s\n", - (void *)lp, elem, (void *)idx, - INDEX_CHECK(idx)? "outdated index" : - "invalid index"); - if (np->uln_prev == NULL) - uu_panic("uu_list_insert(%p, %p, %p): out-of-date " - "index\n", (void *)lp, elem, (void *)idx); - } - - list_insert(lp, ELEM_TO_NODE(lp, elem), np->uln_prev, np); -} - -void * -uu_list_find(uu_list_t *lp, void *elem, void *private, uu_list_index_t *out) -{ - int sorted = lp->ul_sorted; - uu_compare_fn_t *func = lp->ul_pool->ulp_cmp; - uu_list_node_impl_t *np; - - if (func == NULL) { - if (out != NULL) - *out = 0; - uu_set_error(UU_ERROR_NOT_SUPPORTED); - return (NULL); - } - for (np = lp->ul_null_node.uln_next; np != &lp->ul_null_node; - np = np->uln_next) { - void *ep = NODE_TO_ELEM(lp, np); - int cmp = func(ep, elem, private); - if (cmp == 0) { - if (out != NULL) - *out = NODE_TO_INDEX(lp, np); - return (ep); - } - if (sorted && cmp > 0) { - if (out != NULL) - *out = NODE_TO_INDEX(lp, np); - return (NULL); - } - } - if (out != NULL) - *out = NODE_TO_INDEX(lp, 0); - return (NULL); -} - -void * -uu_list_nearest_next(uu_list_t *lp, uu_list_index_t idx) -{ - uu_list_node_impl_t *np = INDEX_TO_NODE(idx); - - if (np == NULL) - np = &lp->ul_null_node; - - if (lp->ul_debug) { - if (!INDEX_VALID(lp, idx)) - uu_panic("uu_list_nearest_next(%p, %p): %s\n", - (void *)lp, (void *)idx, - INDEX_CHECK(idx)? "outdated index" : - "invalid index"); - if (np->uln_prev == NULL) - uu_panic("uu_list_nearest_next(%p, %p): out-of-date " - "index\n", (void *)lp, (void *)idx); - } - - if (np == &lp->ul_null_node) - return (NULL); - else - return (NODE_TO_ELEM(lp, np)); -} - -void * -uu_list_nearest_prev(uu_list_t *lp, uu_list_index_t idx) -{ - uu_list_node_impl_t *np = INDEX_TO_NODE(idx); - - if (np == NULL) - np = &lp->ul_null_node; - - if (lp->ul_debug) { - if (!INDEX_VALID(lp, idx)) - uu_panic("uu_list_nearest_prev(%p, %p): %s\n", - (void *)lp, (void *)idx, INDEX_CHECK(idx)? - "outdated index" : "invalid index"); - if (np->uln_prev == NULL) - uu_panic("uu_list_nearest_prev(%p, %p): out-of-date " - "index\n", (void *)lp, (void *)idx); - } - - if ((np = np->uln_prev) == &lp->ul_null_node) - return (NULL); - else - return (NODE_TO_ELEM(lp, np)); -} - -static void -list_walk_init(uu_list_walk_t *wp, uu_list_t *lp, uint32_t flags) -{ - uu_list_walk_t *next, *prev; - - int robust = (flags & UU_WALK_ROBUST); - int direction = (flags & UU_WALK_REVERSE)? -1 : 1; - - (void) memset(wp, 0, sizeof (*wp)); - wp->ulw_list = lp; - wp->ulw_robust = robust; - wp->ulw_dir = direction; - if (direction > 0) - wp->ulw_next_result = lp->ul_null_node.uln_next; - else - wp->ulw_next_result = lp->ul_null_node.uln_prev; - - if (lp->ul_debug || robust) { - /* - * Add this walker to the list's list of walkers so - * uu_list_remove() can advance us if somebody tries to - * remove ulw_next_result. - */ - wp->ulw_next = next = &lp->ul_null_walk; - wp->ulw_prev = prev = next->ulw_prev; - next->ulw_prev = wp; - prev->ulw_next = wp; - } -} - -static uu_list_node_impl_t * -list_walk_advance(uu_list_walk_t *wp, uu_list_t *lp) -{ - uu_list_node_impl_t *np = wp->ulw_next_result; - uu_list_node_impl_t *next; - - if (np == &lp->ul_null_node) - return (NULL); - - next = (wp->ulw_dir > 0)? np->uln_next : np->uln_prev; - - wp->ulw_next_result = next; - return (np); -} - -static void -list_walk_fini(uu_list_walk_t *wp) -{ - /* GLXXX debugging? */ - if (wp->ulw_next != NULL) { - wp->ulw_next->ulw_prev = wp->ulw_prev; - wp->ulw_prev->ulw_next = wp->ulw_next; - wp->ulw_next = NULL; - wp->ulw_prev = NULL; - } - wp->ulw_list = NULL; - wp->ulw_next_result = NULL; -} - -uu_list_walk_t * -uu_list_walk_start(uu_list_t *lp, uint32_t flags) -{ - uu_list_walk_t *wp; - - if (flags & ~(UU_WALK_ROBUST | UU_WALK_REVERSE)) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (NULL); - } - - wp = uu_zalloc(sizeof (*wp)); - if (wp == NULL) { - uu_set_error(UU_ERROR_NO_MEMORY); - return (NULL); - } - - list_walk_init(wp, lp, flags); - return (wp); -} - -void * -uu_list_walk_next(uu_list_walk_t *wp) -{ - uu_list_t *lp = wp->ulw_list; - uu_list_node_impl_t *np = list_walk_advance(wp, lp); - - if (np == NULL) - return (NULL); - - return (NODE_TO_ELEM(lp, np)); -} - -void -uu_list_walk_end(uu_list_walk_t *wp) -{ - list_walk_fini(wp); - uu_free(wp); -} - -int -uu_list_walk(uu_list_t *lp, uu_walk_fn_t *func, void *private, uint32_t flags) -{ - uu_list_node_impl_t *np; - - int status = UU_WALK_NEXT; - - int robust = (flags & UU_WALK_ROBUST); - int reverse = (flags & UU_WALK_REVERSE); - - if (flags & ~(UU_WALK_ROBUST | UU_WALK_REVERSE)) { - uu_set_error(UU_ERROR_UNKNOWN_FLAG); - return (-1); - } - - if (lp->ul_debug || robust) { - uu_list_walk_t *my_walk; - void *e; - - my_walk = uu_zalloc(sizeof (*my_walk)); - if (my_walk == NULL) - return (-1); - - list_walk_init(my_walk, lp, flags); - while (status == UU_WALK_NEXT && - (e = uu_list_walk_next(my_walk)) != NULL) - status = (*func)(e, private); - list_walk_fini(my_walk); - - uu_free(my_walk); - } else { - if (!reverse) { - for (np = lp->ul_null_node.uln_next; - status == UU_WALK_NEXT && np != &lp->ul_null_node; - np = np->uln_next) { - status = (*func)(NODE_TO_ELEM(lp, np), private); - } - } else { - for (np = lp->ul_null_node.uln_prev; - status == UU_WALK_NEXT && np != &lp->ul_null_node; - np = np->uln_prev) { - status = (*func)(NODE_TO_ELEM(lp, np), private); - } - } - } - if (status >= 0) - return (0); - uu_set_error(UU_ERROR_CALLBACK_FAILED); - return (-1); -} - -void -uu_list_remove(uu_list_t *lp, void *elem) -{ - uu_list_node_impl_t *np = ELEM_TO_NODE(lp, elem); - uu_list_walk_t *wp; - - if (lp->ul_debug) { - if (np->uln_prev == NULL) - uu_panic("uu_list_remove(%p, %p): elem not on list\n", - (void *)lp, elem); - /* - * invalidate outstanding uu_list_index_ts. - */ - lp->ul_index = INDEX_NEXT(lp->ul_index); - } - - /* - * robust walkers must be advanced. In debug mode, non-robust - * walkers are also on the list. If there are any, it's an error. - */ - for (wp = lp->ul_null_walk.ulw_next; wp != &lp->ul_null_walk; - wp = wp->ulw_next) { - if (wp->ulw_robust) { - if (np == wp->ulw_next_result) - (void) list_walk_advance(wp, lp); - } else if (wp->ulw_next_result != NULL) { - uu_panic("uu_list_remove(%p, %p): active non-robust " - "walker\n", (void *)lp, elem); - } - } - - np->uln_next->uln_prev = np->uln_prev; - np->uln_prev->uln_next = np->uln_next; - - lp->ul_numnodes--; - - np->uln_next = POOL_TO_MARKER(lp->ul_pool); - np->uln_prev = NULL; -} - -void * -uu_list_teardown(uu_list_t *lp, void **cookie) -{ - void *ep; - - /* - * XXX: disable list modification until list is empty - */ - if (lp->ul_debug && *cookie != NULL) - uu_panic("uu_list_teardown(%p, %p): unexpected cookie\n", - (void *)lp, (void *)cookie); - - ep = uu_list_first(lp); - if (ep) - uu_list_remove(lp, ep); - return (ep); -} - -int -uu_list_insert_before(uu_list_t *lp, void *target, void *elem) -{ - uu_list_node_impl_t *np = ELEM_TO_NODE(lp, target); - - if (target == NULL) - np = &lp->ul_null_node; - - if (lp->ul_debug) { - if (np->uln_prev == NULL) - uu_panic("uu_list_insert_before(%p, %p, %p): %p is " - "not currently on a list\n", - (void *)lp, target, elem, target); - } - if (lp->ul_sorted) { - if (lp->ul_debug) - uu_panic("uu_list_insert_before(%p, ...): list is " - "UU_LIST_SORTED\n", (void *)lp); - uu_set_error(UU_ERROR_NOT_SUPPORTED); - return (-1); - } - - list_insert(lp, ELEM_TO_NODE(lp, elem), np->uln_prev, np); - return (0); -} - -int -uu_list_insert_after(uu_list_t *lp, void *target, void *elem) -{ - uu_list_node_impl_t *np = ELEM_TO_NODE(lp, target); - - if (target == NULL) - np = &lp->ul_null_node; - - if (lp->ul_debug) { - if (np->uln_prev == NULL) - uu_panic("uu_list_insert_after(%p, %p, %p): %p is " - "not currently on a list\n", - (void *)lp, target, elem, target); - } - if (lp->ul_sorted) { - if (lp->ul_debug) - uu_panic("uu_list_insert_after(%p, ...): list is " - "UU_LIST_SORTED\n", (void *)lp); - uu_set_error(UU_ERROR_NOT_SUPPORTED); - return (-1); - } - - list_insert(lp, ELEM_TO_NODE(lp, elem), np, np->uln_next); - return (0); -} - -size_t -uu_list_numnodes(uu_list_t *lp) -{ - return (lp->ul_numnodes); -} - -void * -uu_list_first(uu_list_t *lp) -{ - uu_list_node_impl_t *n = lp->ul_null_node.uln_next; - if (n == &lp->ul_null_node) - return (NULL); - return (NODE_TO_ELEM(lp, n)); -} - -void * -uu_list_last(uu_list_t *lp) -{ - uu_list_node_impl_t *n = lp->ul_null_node.uln_prev; - if (n == &lp->ul_null_node) - return (NULL); - return (NODE_TO_ELEM(lp, n)); -} - -void * -uu_list_next(uu_list_t *lp, void *elem) -{ - uu_list_node_impl_t *n = ELEM_TO_NODE(lp, elem); - - n = n->uln_next; - if (n == &lp->ul_null_node) - return (NULL); - return (NODE_TO_ELEM(lp, n)); -} - -void * -uu_list_prev(uu_list_t *lp, void *elem) -{ - uu_list_node_impl_t *n = ELEM_TO_NODE(lp, elem); - - n = n->uln_prev; - if (n == &lp->ul_null_node) - return (NULL); - return (NODE_TO_ELEM(lp, n)); -} - -/* - * called from uu_lockup() and uu_release(), as part of our fork1()-safety. - */ -void -uu_list_lockup(void) -{ - uu_list_pool_t *pp; - - (void) pthread_mutex_lock(&uu_lpool_list_lock); - for (pp = uu_null_lpool.ulp_next; pp != &uu_null_lpool; - pp = pp->ulp_next) - (void) pthread_mutex_lock(&pp->ulp_lock); -} - -void -uu_list_release(void) -{ - uu_list_pool_t *pp; - - for (pp = uu_null_lpool.ulp_next; pp != &uu_null_lpool; - pp = pp->ulp_next) - (void) pthread_mutex_unlock(&pp->ulp_lock); - (void) pthread_mutex_unlock(&uu_lpool_list_lock); -} diff --git a/lib/libuutil/uu_misc.c b/lib/libuutil/uu_misc.c deleted file mode 100644 index 1166fdfb2231..000000000000 --- a/lib/libuutil/uu_misc.c +++ /dev/null @@ -1,255 +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) 2004, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#include "libuutil_common.h" - -#include <assert.h> -#include <errno.h> -#include <libintl.h> -#include <pthread.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/debug.h> -#include <unistd.h> -#include <ctype.h> - -#if !defined(TEXT_DOMAIN) -#define TEXT_DOMAIN "SYS_TEST" -#endif - -/* - * All of the old code under !defined(PTHREAD_ONCE_KEY_NP) - * is here to enable the building of a native version of - * libuutil.so when the build machine has not yet been upgraded - * to a version of libc that provides pthread_key_create_once_np(). - * It should all be deleted when solaris_nevada ships. - * The code is not MT-safe in a relaxed memory model. - */ - -#if defined(PTHREAD_ONCE_KEY_NP) -static pthread_key_t uu_error_key = PTHREAD_ONCE_KEY_NP; -#else /* PTHREAD_ONCE_KEY_NP */ -static pthread_key_t uu_error_key = 0; -static pthread_mutex_t uu_key_lock = PTHREAD_MUTEX_INITIALIZER; -#endif /* PTHREAD_ONCE_KEY_NP */ - -static int uu_error_key_setup = 0; - -static pthread_mutex_t uu_panic_lock = PTHREAD_MUTEX_INITIALIZER; -/* LINTED static unused */ -static const char *uu_panic_format; -/* LINTED static unused */ -static va_list uu_panic_args; -static pthread_t uu_panic_thread; - -static uint32_t _uu_main_error; -static __thread int _uu_main_thread = 0; - -void -uu_set_error(uint_t code) -{ - if (_uu_main_thread) { - _uu_main_error = code; - return; - } -#if defined(PTHREAD_ONCE_KEY_NP) - if (pthread_key_create_once_np(&uu_error_key, NULL) != 0) - uu_error_key_setup = -1; - else - uu_error_key_setup = 1; -#else /* PTHREAD_ONCE_KEY_NP */ - if (uu_error_key_setup == 0) { - (void) pthread_mutex_lock(&uu_key_lock); - if (uu_error_key_setup == 0) { - if (pthread_key_create(&uu_error_key, NULL) != 0) - uu_error_key_setup = -1; - else - uu_error_key_setup = 1; - } - (void) pthread_mutex_unlock(&uu_key_lock); - } -#endif /* PTHREAD_ONCE_KEY_NP */ - if (uu_error_key_setup > 0) - (void) pthread_setspecific(uu_error_key, - (void *)(uintptr_t)code); -} - -uint32_t -uu_error(void) -{ - if (_uu_main_thread) - return (_uu_main_error); - - if (uu_error_key_setup < 0) /* can't happen? */ - return (UU_ERROR_UNKNOWN); - - /* - * Because UU_ERROR_NONE == 0, if uu_set_error() was - * never called, then this will return UU_ERROR_NONE: - */ - return ((uint32_t)(uintptr_t)pthread_getspecific(uu_error_key)); -} - -const char * -uu_strerror(uint32_t code) -{ - const char *str; - - switch (code) { - case UU_ERROR_NONE: - str = dgettext(TEXT_DOMAIN, "No error"); - break; - - case UU_ERROR_INVALID_ARGUMENT: - str = dgettext(TEXT_DOMAIN, "Invalid argument"); - break; - - case UU_ERROR_UNKNOWN_FLAG: - str = dgettext(TEXT_DOMAIN, "Unknown flag passed"); - break; - - case UU_ERROR_NO_MEMORY: - str = dgettext(TEXT_DOMAIN, "Out of memory"); - break; - - case UU_ERROR_CALLBACK_FAILED: - str = dgettext(TEXT_DOMAIN, "Callback-initiated failure"); - break; - - case UU_ERROR_NOT_SUPPORTED: - str = dgettext(TEXT_DOMAIN, "Operation not supported"); - break; - - case UU_ERROR_EMPTY: - str = dgettext(TEXT_DOMAIN, "No value provided"); - break; - - case UU_ERROR_UNDERFLOW: - str = dgettext(TEXT_DOMAIN, "Value too small"); - break; - - case UU_ERROR_OVERFLOW: - str = dgettext(TEXT_DOMAIN, "Value too large"); - break; - - case UU_ERROR_INVALID_CHAR: - str = dgettext(TEXT_DOMAIN, - "Value contains unexpected character"); - break; - - case UU_ERROR_INVALID_DIGIT: - str = dgettext(TEXT_DOMAIN, - "Value contains digit not in base"); - break; - - case UU_ERROR_SYSTEM: - str = dgettext(TEXT_DOMAIN, "Underlying system error"); - break; - - case UU_ERROR_UNKNOWN: - str = dgettext(TEXT_DOMAIN, "Error status not known"); - break; - - default: - errno = ESRCH; - str = NULL; - break; - } - return (str); -} - -void -uu_panic(const char *format, ...) -{ - va_list args; - - va_start(args, format); - - (void) pthread_mutex_lock(&uu_panic_lock); - if (uu_panic_thread == 0) { - uu_panic_thread = pthread_self(); - uu_panic_format = format; - va_copy(uu_panic_args, args); - } - (void) pthread_mutex_unlock(&uu_panic_lock); - - (void) vfprintf(stderr, format, args); - - va_end(args); - - if (uu_panic_thread == pthread_self()) - abort(); - else - for (;;) - (void) pause(); -} - -static void -uu_lockup(void) -{ - (void) pthread_mutex_lock(&uu_panic_lock); -#if !defined(PTHREAD_ONCE_KEY_NP) - (void) pthread_mutex_lock(&uu_key_lock); -#endif - uu_avl_lockup(); - uu_list_lockup(); -} - -static void -uu_release(void) -{ - (void) pthread_mutex_unlock(&uu_panic_lock); -#if !defined(PTHREAD_ONCE_KEY_NP) - (void) pthread_mutex_unlock(&uu_key_lock); -#endif - uu_avl_release(); - uu_list_release(); -} - -static void -uu_release_child(void) -{ - uu_panic_format = NULL; - uu_panic_thread = 0; - - uu_release(); -} - -#ifdef __GNUC__ -static void -uu_init(void) __attribute__((constructor)); -#else -#pragma init(uu_init) -#endif - -static void -uu_init(void) -{ - _uu_main_thread = 1; - (void) pthread_atfork(uu_lockup, uu_release, uu_release_child); -} diff --git a/lib/libuutil/uu_string.c b/lib/libuutil/uu_string.c deleted file mode 100644 index 76f0a082607a..000000000000 --- a/lib/libuutil/uu_string.c +++ /dev/null @@ -1,55 +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) 2009, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/* - * String helper functions - */ - -#include <string.h> -#include <sys/types.h> -#include <ctype.h> -#include "libuutil.h" - -/* Return true if strings are equal */ -boolean_t -uu_streq(const char *a, const char *b) -{ - return (strcmp(a, b) == 0); -} - -/* Return true if strings are equal, case-insensitively */ -boolean_t -uu_strcaseeq(const char *a, const char *b) -{ - return (strcasecmp(a, b) == 0); -} - -/* Return true if string a Begins With string b */ -boolean_t -uu_strbw(const char *a, const char *b) -{ - return (strncmp(a, b, strlen(b)) == 0); -} |