diff options
Diffstat (limited to 'lib/libzfsbootenv')
-rw-r--r-- | lib/libzfsbootenv/.gitignore | 1 | ||||
-rw-r--r-- | lib/libzfsbootenv/Makefile.am | 29 | ||||
-rw-r--r-- | lib/libzfsbootenv/libzfsbootenv.abi | 584 | ||||
-rw-r--r-- | lib/libzfsbootenv/libzfsbootenv.pc.in | 12 | ||||
-rw-r--r-- | lib/libzfsbootenv/libzfsbootenv.suppr | 2 | ||||
-rw-r--r-- | lib/libzfsbootenv/lzbe_device.c | 164 | ||||
-rw-r--r-- | lib/libzfsbootenv/lzbe_pair.c | 349 | ||||
-rw-r--r-- | lib/libzfsbootenv/lzbe_util.c | 40 |
8 files changed, 0 insertions, 1181 deletions
diff --git a/lib/libzfsbootenv/.gitignore b/lib/libzfsbootenv/.gitignore deleted file mode 100644 index 3fea5c642d02..000000000000 --- a/lib/libzfsbootenv/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/libzfsbootenv.pc diff --git a/lib/libzfsbootenv/Makefile.am b/lib/libzfsbootenv/Makefile.am deleted file mode 100644 index 118f154821fc..000000000000 --- a/lib/libzfsbootenv/Makefile.am +++ /dev/null @@ -1,29 +0,0 @@ -libzfsbootenv_la_CFLAGS = $(AM_CFLAGS) $(LIBRARY_CFLAGS) -libzfsbootenv_la_CFLAGS += -fvisibility=hidden - -lib_LTLIBRARIES += libzfsbootenv.la -CPPCHECKTARGETS += libzfsbootenv.la - -libzfsbootenv_la_CPPFLAGS = $(AM_CPPFLAGS) -libzfsbootenv_la_CPPFLAGS += -I$(srcdir)/include/os/@ac_system_l@/zfs - -dist_libzfsbootenv_la_SOURCES = \ - %D%/lzbe_device.c \ - %D%/lzbe_pair.c \ - %D%/lzbe_util.c - -libzfsbootenv_la_LIBADD = \ - libzfs.la \ - libnvpair.la - -libzfsbootenv_la_LDFLAGS = - -if !ASAN_ENABLED -libzfsbootenv_la_LDFLAGS += -Wl,-z,defs -endif - -libzfsbootenv_la_LDFLAGS += -version-info 1:0:0 - -pkgconfig_DATA += %D%/libzfsbootenv.pc - -dist_noinst_DATA += %D%/libzfsbootenv.abi %D%/libzfsbootenv.suppr diff --git a/lib/libzfsbootenv/libzfsbootenv.abi b/lib/libzfsbootenv/libzfsbootenv.abi deleted file mode 100644 index bf866b0fa61b..000000000000 --- a/lib/libzfsbootenv/libzfsbootenv.abi +++ /dev/null @@ -1,584 +0,0 @@ -<abi-corpus version='2.0' architecture='elf-amd-x86_64' soname='libzfsbootenv.so.1'> - <elf-needed> - <dependency name='libzfs.so.6'/> - <dependency name='libnvpair.so.3'/> - <dependency name='libc.so.6'/> - </elf-needed> - <elf-function-symbols> - <elf-symbol name='lzbe_add_pair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='lzbe_bootenv_print' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='lzbe_get_boot_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='lzbe_nvlist_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='lzbe_nvlist_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='lzbe_nvlist_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='lzbe_remove_pair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - <elf-symbol name='lzbe_set_boot_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> - </elf-function-symbols> - <abi-instr address-size='64' path='lib/libzfsbootenv/lzbe_device.c' language='LANG_C99'> - <type-decl name='char' size-in-bits='8' id='a84c031d'/> - <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='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='libzfs_handle' is-struct='yes' visibility='default' is-declaration-only='yes' id='c8a9d9d8'/> - <class-decl name='zpool_handle' is-struct='yes' visibility='default' is-declaration-only='yes' id='67002a8a'/> - <type-decl name='int' size-in-bits='32' id='95e97e5e'/> - <type-decl name='long int' size-in-bits='64' id='bd54fe1a'/> - <type-decl name='signed char' size-in-bits='8' id='28577a57'/> - <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='9cac1fee'/> - <type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/> - <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/> - <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/> - <type-decl name='variadic parameter type' id='2c1145c5'/> - <type-decl name='void' id='48b5725f'/> - <typedef-decl name='zpool_handle_t' type-id='67002a8a' id='b1efc708'/> - <typedef-decl name='libzfs_handle_t' type-id='c8a9d9d8' id='95942d0c'/> - <enum-decl name='lzbe_flags' id='2b77720b'> - <underlying-type type-id='9cac1fee'/> - <enumerator name='lzbe_add' value='0'/> - <enumerator name='lzbe_replace' value='1'/> - </enum-decl> - <typedef-decl name='lzbe_flags_t' type-id='2b77720b' id='a1936f04'/> - <class-decl name='nvlist' size-in-bits='192' is-struct='yes' visibility='default' id='ac266fd9'> - <data-member access='public' layout-offset-in-bits='0'> - <var-decl name='nvl_version' type-id='3ff5601b' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='32'> - <var-decl name='nvl_nvflag' type-id='8f92235e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='64'> - <var-decl name='nvl_priv' type-id='9c313c2d' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='128'> - <var-decl name='nvl_flag' type-id='8f92235e' visibility='default'/> - </data-member> - <data-member access='public' layout-offset-in-bits='160'> - <var-decl name='nvl_pad' type-id='3ff5601b' visibility='default'/> - </data-member> - </class-decl> - <typedef-decl name='nvlist_t' type-id='ac266fd9' id='8e8d4be3'/> - <enum-decl name='boolean_t' naming-typedef-id='c19b74c3' id='f58c8277'> - <underlying-type type-id='9cac1fee'/> - <enumerator name='B_FALSE' value='0'/> - <enumerator name='B_TRUE' value='1'/> - </enum-decl> - <typedef-decl name='boolean_t' type-id='f58c8277' id='c19b74c3'/> - <typedef-decl name='int32_t' type-id='33f57a65' id='3ff5601b'/> - <typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/> - <typedef-decl name='uint64_t' type-id='8910171f' id='9c313c2d'/> - <typedef-decl name='__int32_t' type-id='95e97e5e' id='33f57a65'/> - <typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/> - <typedef-decl name='__uint64_t' type-id='7359adad' id='8910171f'/> - <typedef-decl name='__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> - <typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/> - <pointer-type-def type-id='aa12d1ba' size-in-bits='64' id='822cd80b'/> - <qualified-type-def type-id='822cd80b' restrict='yes' id='e75a27e9'/> - <pointer-type-def type-id='ec1ed955' size-in-bits='64' id='dca988a5'/> - <pointer-type-def type-id='a4036571' size-in-bits='64' id='570f8c59'/> - <pointer-type-def type-id='bb4788fa' size-in-bits='64' id='cecf4ea7'/> - <pointer-type-def type-id='010ae0b9' size-in-bits='64' id='e4c6fa61'/> - <pointer-type-def type-id='79bd3751' size-in-bits='64' id='c65a1f29'/> - <pointer-type-def type-id='a84c031d' size-in-bits='64' id='26a90f95'/> - <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='a84c031d' const='yes' id='9b45d938'/> - <pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/> - <qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/> - <pointer-type-def type-id='80f4b756' size-in-bits='64' id='7d3cd834'/> - <qualified-type-def type-id='8e8d4be3' const='yes' id='693c3853'/> - <pointer-type-def type-id='693c3853' size-in-bits='64' id='22cce67b'/> - <pointer-type-def type-id='95942d0c' size-in-bits='64' id='b0382bb3'/> - <pointer-type-def type-id='8e8d4be3' size-in-bits='64' id='5ce45b60'/> - <pointer-type-def type-id='5ce45b60' size-in-bits='64' id='857bb57e'/> - <pointer-type-def type-id='9c313c2d' size-in-bits='64' id='5d6479ae'/> - <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/> - <pointer-type-def type-id='b1efc708' size-in-bits='64' id='4c81de99'/> - <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='libzfs_handle' is-struct='yes' visibility='default' is-declaration-only='yes' id='c8a9d9d8'/> - <class-decl name='zpool_handle' is-struct='yes' visibility='default' is-declaration-only='yes' id='67002a8a'/> - <function-decl name='libzfs_init' visibility='default' binding='global' size-in-bits='64'> - <return type-id='b0382bb3'/> - </function-decl> - <function-decl name='libzfs_fini' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='b0382bb3'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='libzfs_error_description' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='b0382bb3'/> - <return type-id='80f4b756'/> - </function-decl> - <function-decl name='zpool_open' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='b0382bb3'/> - <parameter type-id='80f4b756'/> - <return type-id='4c81de99'/> - </function-decl> - <function-decl name='zpool_close' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='4c81de99'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='zpool_set_bootenv' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='4c81de99'/> - <parameter type-id='22cce67b'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='zpool_get_bootenv' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='4c81de99'/> - <parameter type-id='857bb57e'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_free' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='nvlist_lookup_uint64' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='22cce67b'/> - <parameter type-id='80f4b756'/> - <parameter type-id='5d6479ae'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_lookup_string' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='22cce67b'/> - <parameter type-id='80f4b756'/> - <parameter type-id='7d3cd834'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_exists' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='22cce67b'/> - <parameter type-id='80f4b756'/> - <return type-id='c19b74c3'/> - </function-decl> - <function-decl name='fnvlist_alloc' visibility='default' binding='global' size-in-bits='64'> - <return type-id='5ce45b60'/> - </function-decl> - <function-decl name='fnvlist_free' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='fnvlist_add_uint64' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='9c313c2d'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='fnvlist_add_string' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='80f4b756'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='fnvlist_remove' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='free' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='eaa32e2f'/> - <return type-id='48b5725f'/> - </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='strdup' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='80f4b756'/> - <return type-id='26a90f95'/> - </function-decl> - <function-decl name='strlen' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='80f4b756'/> - <return type-id='b59d7dce'/> - </function-decl> - <function-decl name='__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='__asprintf_chk' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='8c85230f'/> - <parameter type-id='95e97e5e'/> - <parameter type-id='9d26089a'/> - <parameter is-variadic='yes'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='lzbe_set_boot_device' mangled-name='lzbe_set_boot_device' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_set_boot_device'> - <parameter type-id='80f4b756' name='pool'/> - <parameter type-id='a1936f04' name='flag'/> - <parameter type-id='80f4b756' name='device'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='lzbe_get_boot_device' mangled-name='lzbe_get_boot_device' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_get_boot_device'> - <parameter type-id='80f4b756' name='pool'/> - <parameter type-id='9b23c9ad' name='device'/> - <return type-id='95e97e5e'/> - </function-decl> - </abi-instr> - <abi-instr address-size='64' path='lib/libzfsbootenv/lzbe_pair.c' language='LANG_C99'> - <type-decl name='short int' size-in-bits='16' id='a2185560'/> - <type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/> - <typedef-decl name='uchar_t' type-id='002ac4a6' id='d8bf0010'/> - <typedef-decl name='uint_t' type-id='f0981eeb' id='3502e3ff'/> - <typedef-decl name='int8_t' type-id='2171a512' id='ee31ee44'/> - <typedef-decl name='int16_t' type-id='03896e23' id='23bd8cb5'/> - <typedef-decl name='int64_t' type-id='0c9942d2' id='9da381c4'/> - <typedef-decl name='uint8_t' type-id='c51d6389' id='b96825af'/> - <typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/> - <typedef-decl name='__int8_t' type-id='28577a57' id='2171a512'/> - <typedef-decl name='__uint8_t' type-id='002ac4a6' id='c51d6389'/> - <typedef-decl name='__int16_t' type-id='a2185560' id='03896e23'/> - <typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/> - <typedef-decl name='__int64_t' type-id='bd54fe1a' id='0c9942d2'/> - <qualified-type-def type-id='c19b74c3' const='yes' id='12373e33'/> - <pointer-type-def type-id='12373e33' size-in-bits='64' id='c5f6c15b'/> - <qualified-type-def type-id='80f4b756' const='yes' id='b99c00c9'/> - <pointer-type-def type-id='b99c00c9' size-in-bits='64' id='13956559'/> - <qualified-type-def type-id='23bd8cb5' const='yes' id='75f7b0c5'/> - <pointer-type-def type-id='75f7b0c5' size-in-bits='64' id='a3eb883d'/> - <qualified-type-def type-id='3ff5601b' const='yes' id='922df12b'/> - <pointer-type-def type-id='922df12b' size-in-bits='64' id='1f526493'/> - <qualified-type-def type-id='9da381c4' const='yes' id='f07b7694'/> - <pointer-type-def type-id='f07b7694' size-in-bits='64' id='505bed1a'/> - <qualified-type-def type-id='ee31ee44' const='yes' id='721c32d4'/> - <pointer-type-def type-id='721c32d4' size-in-bits='64' id='a06445da'/> - <qualified-type-def type-id='22cce67b' const='yes' id='d2816df0'/> - <pointer-type-def type-id='d2816df0' size-in-bits='64' id='3bbfee2e'/> - <qualified-type-def type-id='d8bf0010' const='yes' id='a9125480'/> - <pointer-type-def type-id='a9125480' size-in-bits='64' id='d1db479e'/> - <qualified-type-def type-id='149c6638' const='yes' id='b01a5ac8'/> - <pointer-type-def type-id='b01a5ac8' size-in-bits='64' id='1b7d11c6'/> - <qualified-type-def type-id='8f92235e' const='yes' id='b9930aae'/> - <pointer-type-def type-id='b9930aae' size-in-bits='64' id='a6798dcc'/> - <qualified-type-def type-id='9c313c2d' const='yes' id='c3b7ba7d'/> - <pointer-type-def type-id='c3b7ba7d' size-in-bits='64' id='713a56f5'/> - <qualified-type-def type-id='b96825af' const='yes' id='2b61797f'/> - <pointer-type-def type-id='2b61797f' size-in-bits='64' id='9f7200cf'/> - <pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/> - <function-decl name='nvlist_alloc' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='857bb57e'/> - <parameter type-id='3502e3ff'/> - <parameter type-id='95e97e5e'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_dup' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='22cce67b'/> - <parameter type-id='857bb57e'/> - <parameter type-id='95e97e5e'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_boolean_value' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='c19b74c3'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_byte' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='d8bf0010'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int8' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='ee31ee44'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint8' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='b96825af'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int16' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='23bd8cb5'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint16' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='149c6638'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int32' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='3ff5601b'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint32' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='8f92235e'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int64' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='9da381c4'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint64' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='9c313c2d'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_string' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='80f4b756'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_nvlist' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='22cce67b'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_boolean_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='c5f6c15b'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_byte_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='d1db479e'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int8_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='a06445da'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint8_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='9f7200cf'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int16_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='a3eb883d'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint16_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='1b7d11c6'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int32_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='1f526493'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint32_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='a6798dcc'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_int64_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='505bed1a'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_uint64_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='713a56f5'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_string_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='13956559'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_add_nvlist_array' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='3bbfee2e'/> - <parameter type-id='3502e3ff'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_remove_all' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='nvlist_lookup_nvlist' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='5ce45b60'/> - <parameter type-id='80f4b756'/> - <parameter type-id='857bb57e'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='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='lzbe_nvlist_get' mangled-name='lzbe_nvlist_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_nvlist_get'> - <parameter type-id='80f4b756' name='pool'/> - <parameter type-id='80f4b756' name='key'/> - <parameter type-id='63e171df' name='ptr'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='lzbe_nvlist_set' mangled-name='lzbe_nvlist_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_nvlist_set'> - <parameter type-id='80f4b756' name='pool'/> - <parameter type-id='80f4b756' name='key'/> - <parameter type-id='eaa32e2f' name='ptr'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='lzbe_nvlist_free' mangled-name='lzbe_nvlist_free' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_nvlist_free'> - <parameter type-id='eaa32e2f' name='ptr'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='lzbe_add_pair' mangled-name='lzbe_add_pair' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_add_pair'> - <parameter type-id='eaa32e2f' name='ptr'/> - <parameter type-id='80f4b756' name='key'/> - <parameter type-id='80f4b756' name='type'/> - <parameter type-id='eaa32e2f' name='value'/> - <parameter type-id='b59d7dce' name='size'/> - <return type-id='95e97e5e'/> - </function-decl> - <function-decl name='lzbe_remove_pair' mangled-name='lzbe_remove_pair' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_remove_pair'> - <parameter type-id='eaa32e2f' name='ptr'/> - <parameter type-id='80f4b756' name='key'/> - <return type-id='95e97e5e'/> - </function-decl> - </abi-instr> - <abi-instr address-size='64' path='lib/libzfsbootenv/lzbe_util.c' language='LANG_C99'> - <function-decl name='nvlist_print' visibility='default' binding='global' size-in-bits='64'> - <parameter type-id='822cd80b'/> - <parameter type-id='5ce45b60'/> - <return type-id='48b5725f'/> - </function-decl> - <function-decl name='lzbe_bootenv_print' mangled-name='lzbe_bootenv_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_bootenv_print'> - <parameter type-id='80f4b756' name='pool'/> - <parameter type-id='80f4b756' name='nvlist'/> - <parameter type-id='822cd80b' name='of'/> - <return type-id='95e97e5e'/> - </function-decl> - </abi-instr> -</abi-corpus> diff --git a/lib/libzfsbootenv/libzfsbootenv.pc.in b/lib/libzfsbootenv/libzfsbootenv.pc.in deleted file mode 100644 index 986286d9bc8c..000000000000 --- a/lib/libzfsbootenv/libzfsbootenv.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: libzfsbootenv -Description: LibZFSBootENV library -Version: @VERSION@ -URL: https://github.com/openzfs/zfs -Requires: libzfs -Cflags: -I${includedir} -Libs: -L${libdir} -lzfsbootenv diff --git a/lib/libzfsbootenv/libzfsbootenv.suppr b/lib/libzfsbootenv/libzfsbootenv.suppr deleted file mode 100644 index f4db8a49e4f2..000000000000 --- a/lib/libzfsbootenv/libzfsbootenv.suppr +++ /dev/null @@ -1,2 +0,0 @@ -[suppress_type] - name = FILE* diff --git a/lib/libzfsbootenv/lzbe_device.c b/lib/libzfsbootenv/lzbe_device.c deleted file mode 100644 index f155960bfea0..000000000000 --- a/lib/libzfsbootenv/lzbe_device.c +++ /dev/null @@ -1,164 +0,0 @@ -// SPDX-License-Identifier: CDDL-1.0 -/* - * This file and its contents are supplied under the terms of the - * Common Development and Distribution License ("CDDL"), version 1.0. - * You may only use this file in accordance with the terms of version - * 1.0 of the CDDL. - * - * A full copy of the text of the CDDL should have accompanied this - * source. A copy of the CDDL is also available via the Internet at - * http://www.illumos.org/license/CDDL. - */ -/* - * Copyright 2020 Toomas Soome <tsoome@me.com> - */ - -#include <sys/types.h> -#include <string.h> -#include <libzfs.h> -#include <libzfsbootenv.h> -#include <sys/zfs_bootenv.h> -#include <sys/vdev_impl.h> - -/* - * Store device name to zpool label bootenv area. - * This call will set bootenv version to VB_NVLIST, if bootenv currently - * does contain other version, then old data will be replaced. - */ -int -lzbe_set_boot_device(const char *pool, lzbe_flags_t flag, const char *device) -{ - libzfs_handle_t *hdl; - zpool_handle_t *zphdl; - nvlist_t *nv; - char *descriptor; - uint64_t version; - int rv = -1; - - if (pool == NULL || *pool == '\0') - return (rv); - - if ((hdl = libzfs_init()) == NULL) - return (rv); - - zphdl = zpool_open(hdl, pool); - if (zphdl == NULL) { - libzfs_fini(hdl); - return (rv); - } - - switch (flag) { - case lzbe_add: - rv = zpool_get_bootenv(zphdl, &nv); - if (rv == 0) { - /* - * We got the nvlist, check for version. - * if version is missing or is not VB_NVLIST, - * create new list. - */ - rv = nvlist_lookup_uint64(nv, BOOTENV_VERSION, - &version); - if (rv == 0 && version == VB_NVLIST) - break; - - /* Drop this nvlist */ - fnvlist_free(nv); - } - zfs_fallthrough; - case lzbe_replace: - nv = fnvlist_alloc(); - break; - default: - return (rv); - } - - /* version is mandatory */ - fnvlist_add_uint64(nv, BOOTENV_VERSION, VB_NVLIST); - - rv = 0; - /* - * If device name is empty, remove boot device configuration. - */ - if ((device == NULL || *device == '\0')) { - if (nvlist_exists(nv, OS_BOOTONCE)) - fnvlist_remove(nv, OS_BOOTONCE); - } else { - /* - * Use device name directly if it does start with - * prefix "zfs:". Otherwise, add prefix and suffix. - */ - if (strncmp(device, "zfs:", 4) == 0) { - fnvlist_add_string(nv, OS_BOOTONCE, device); - } else { - if (asprintf(&descriptor, "zfs:%s:", device) > 0) { - fnvlist_add_string(nv, OS_BOOTONCE, descriptor); - free(descriptor); - } else - rv = ENOMEM; - } - } - if (rv == 0) - rv = zpool_set_bootenv(zphdl, nv); - if (rv != 0) - fprintf(stderr, "%s\n", libzfs_error_description(hdl)); - - fnvlist_free(nv); - zpool_close(zphdl); - libzfs_fini(hdl); - return (rv); -} - -/* - * Return boot device name from bootenv, if set. - */ -int -lzbe_get_boot_device(const char *pool, char **device) -{ - libzfs_handle_t *hdl; - zpool_handle_t *zphdl; - nvlist_t *nv; - const char *val; - int rv = -1; - - if (pool == NULL || *pool == '\0' || device == NULL) - return (rv); - - if ((hdl = libzfs_init()) == NULL) - return (rv); - - zphdl = zpool_open(hdl, pool); - if (zphdl == NULL) { - libzfs_fini(hdl); - return (rv); - } - - rv = zpool_get_bootenv(zphdl, &nv); - if (rv == 0) { - rv = nvlist_lookup_string(nv, OS_BOOTONCE, &val); - if (rv == 0) { - /* - * zfs device descriptor is in form of "zfs:dataset:", - * we only do need dataset name. - */ - if (strncmp(val, "zfs:", 4) == 0) { - char *tmp = strdup(val + 4); - if (tmp != NULL) { - size_t len = strlen(tmp); - - if (tmp[len - 1] == ':') - tmp[len - 1] = '\0'; - *device = tmp; - } else { - rv = ENOMEM; - } - } else { - rv = EINVAL; - } - } - nvlist_free(nv); - } - - zpool_close(zphdl); - libzfs_fini(hdl); - return (rv); -} diff --git a/lib/libzfsbootenv/lzbe_pair.c b/lib/libzfsbootenv/lzbe_pair.c deleted file mode 100644 index 3f576a569f28..000000000000 --- a/lib/libzfsbootenv/lzbe_pair.c +++ /dev/null @@ -1,349 +0,0 @@ -// SPDX-License-Identifier: CDDL-1.0 -/* - * This file and its contents are supplied under the terms of the - * Common Development and Distribution License ("CDDL"), version 1.0. - * You may only use this file in accordance with the terms of version - * 1.0 of the CDDL. - * - * A full copy of the text of the CDDL should have accompanied this - * source. A copy of the CDDL is also available via the Internet at - * http://www.illumos.org/license/CDDL. - */ -/* - * Copyright 2020 Toomas Soome <tsoome@me.com> - */ - -#include <sys/types.h> -#include <string.h> -#include <libzfs.h> -#include <libzfsbootenv.h> -#include <sys/zfs_bootenv.h> -#include <sys/vdev_impl.h> - -/* - * Get or create nvlist. If key is not NULL, get nvlist from bootenv, - * otherwise return bootenv. - */ -int -lzbe_nvlist_get(const char *pool, const char *key, void **ptr) -{ - libzfs_handle_t *hdl; - zpool_handle_t *zphdl; - nvlist_t *nv; - int rv = -1; - - if (pool == NULL || *pool == '\0') - return (rv); - - if ((hdl = libzfs_init()) == NULL) { - return (rv); - } - - zphdl = zpool_open(hdl, pool); - if (zphdl == NULL) { - libzfs_fini(hdl); - return (rv); - } - - rv = zpool_get_bootenv(zphdl, &nv); - if (rv == 0) { - nvlist_t *nvl, *dup; - - if (key != NULL) { - rv = nvlist_lookup_nvlist(nv, key, &nvl); - if (rv == 0) { - rv = nvlist_dup(nvl, &dup, 0); - nvlist_free(nv); - if (rv == 0) - nv = dup; - else - nv = NULL; - } else { - nvlist_free(nv); - rv = nvlist_alloc(&nv, NV_UNIQUE_NAME, 0); - } - } - *ptr = nv; - } - - zpool_close(zphdl); - libzfs_fini(hdl); - return (rv); -} - -int -lzbe_nvlist_set(const char *pool, const char *key, void *ptr) -{ - libzfs_handle_t *hdl; - zpool_handle_t *zphdl; - nvlist_t *nv; - uint64_t version; - int rv = -1; - - if (pool == NULL || *pool == '\0') - return (rv); - - if ((hdl = libzfs_init()) == NULL) { - return (rv); - } - - zphdl = zpool_open(hdl, pool); - if (zphdl == NULL) { - libzfs_fini(hdl); - return (rv); - } - - if (key != NULL) { - rv = zpool_get_bootenv(zphdl, &nv); - if (rv == 0) { - /* - * We got the nvlist, check for version. - * if version is missing or is not VB_NVLIST, - * create new list. - */ - rv = nvlist_lookup_uint64(nv, BOOTENV_VERSION, - &version); - if (rv != 0 || version != VB_NVLIST) { - /* Drop this nvlist */ - fnvlist_free(nv); - /* Create and prepare new nvlist */ - nv = fnvlist_alloc(); - fnvlist_add_uint64(nv, BOOTENV_VERSION, - VB_NVLIST); - } - rv = nvlist_add_nvlist(nv, key, ptr); - if (rv == 0) - rv = zpool_set_bootenv(zphdl, nv); - nvlist_free(nv); - } - } else { - rv = zpool_set_bootenv(zphdl, ptr); - } - - zpool_close(zphdl); - libzfs_fini(hdl); - return (rv); -} - -/* - * free nvlist we got via lzbe_nvlist_get() - */ -void -lzbe_nvlist_free(void *ptr) -{ - nvlist_free(ptr); -} - -static const char *typenames[] = { - "DATA_TYPE_UNKNOWN", - "DATA_TYPE_BOOLEAN", - "DATA_TYPE_BYTE", - "DATA_TYPE_INT16", - "DATA_TYPE_UINT16", - "DATA_TYPE_INT32", - "DATA_TYPE_UINT32", - "DATA_TYPE_INT64", - "DATA_TYPE_UINT64", - "DATA_TYPE_STRING", - "DATA_TYPE_BYTE_ARRAY", - "DATA_TYPE_INT16_ARRAY", - "DATA_TYPE_UINT16_ARRAY", - "DATA_TYPE_INT32_ARRAY", - "DATA_TYPE_UINT32_ARRAY", - "DATA_TYPE_INT64_ARRAY", - "DATA_TYPE_UINT64_ARRAY", - "DATA_TYPE_STRING_ARRAY", - "DATA_TYPE_HRTIME", - "DATA_TYPE_NVLIST", - "DATA_TYPE_NVLIST_ARRAY", - "DATA_TYPE_BOOLEAN_VALUE", - "DATA_TYPE_INT8", - "DATA_TYPE_UINT8", - "DATA_TYPE_BOOLEAN_ARRAY", - "DATA_TYPE_INT8_ARRAY", - "DATA_TYPE_UINT8_ARRAY" -}; - -static int -nvpair_type_from_name(const char *name) -{ - unsigned i; - - for (i = 0; i < ARRAY_SIZE(typenames); i++) { - if (strcmp(name, typenames[i]) == 0) - return (i); - } - return (0); -} - -/* - * Add pair defined by key, type and value into nvlist. - */ -int -lzbe_add_pair(void *ptr, const char *key, const char *type, void *value, - size_t size) -{ - nvlist_t *nv = ptr; - data_type_t dt; - int rv = 0; - - if (ptr == NULL || key == NULL || value == NULL) - return (rv); - - if (type == NULL) - type = "DATA_TYPE_STRING"; - dt = nvpair_type_from_name(type); - if (dt == DATA_TYPE_UNKNOWN) - return (EINVAL); - - switch (dt) { - case DATA_TYPE_BYTE: - if (size != sizeof (uint8_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_byte(nv, key, *(uint8_t *)value); - break; - - case DATA_TYPE_INT16: - if (size != sizeof (int16_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_int16(nv, key, *(int16_t *)value); - break; - - case DATA_TYPE_UINT16: - if (size != sizeof (uint16_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_uint16(nv, key, *(uint16_t *)value); - break; - - case DATA_TYPE_INT32: - if (size != sizeof (int32_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_int32(nv, key, *(int32_t *)value); - break; - - case DATA_TYPE_UINT32: - if (size != sizeof (uint32_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_uint32(nv, key, *(uint32_t *)value); - break; - - case DATA_TYPE_INT64: - if (size != sizeof (int64_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_int64(nv, key, *(int64_t *)value); - break; - - case DATA_TYPE_UINT64: - if (size != sizeof (uint64_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_uint64(nv, key, *(uint64_t *)value); - break; - - case DATA_TYPE_STRING: - rv = nvlist_add_string(nv, key, value); - break; - - case DATA_TYPE_BYTE_ARRAY: - rv = nvlist_add_byte_array(nv, key, value, size); - break; - - case DATA_TYPE_INT16_ARRAY: - rv = nvlist_add_int16_array(nv, key, value, size); - break; - - case DATA_TYPE_UINT16_ARRAY: - rv = nvlist_add_uint16_array(nv, key, value, size); - break; - - case DATA_TYPE_INT32_ARRAY: - rv = nvlist_add_int32_array(nv, key, value, size); - break; - - case DATA_TYPE_UINT32_ARRAY: - rv = nvlist_add_uint32_array(nv, key, value, size); - break; - - case DATA_TYPE_INT64_ARRAY: - rv = nvlist_add_int64_array(nv, key, value, size); - break; - - case DATA_TYPE_UINT64_ARRAY: - rv = nvlist_add_uint64_array(nv, key, value, size); - break; - - case DATA_TYPE_STRING_ARRAY: - rv = nvlist_add_string_array(nv, key, value, size); - break; - - case DATA_TYPE_NVLIST: - rv = nvlist_add_nvlist(nv, key, (nvlist_t *)value); - break; - - case DATA_TYPE_NVLIST_ARRAY: - rv = nvlist_add_nvlist_array(nv, key, (const nvlist_t **)value, - size); - break; - - case DATA_TYPE_BOOLEAN_VALUE: - if (size != sizeof (boolean_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_boolean_value(nv, key, *(boolean_t *)value); - break; - - case DATA_TYPE_INT8: - if (size != sizeof (int8_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_int8(nv, key, *(int8_t *)value); - break; - - case DATA_TYPE_UINT8: - if (size != sizeof (uint8_t)) { - rv = EINVAL; - break; - } - rv = nvlist_add_uint8(nv, key, *(uint8_t *)value); - break; - - case DATA_TYPE_BOOLEAN_ARRAY: - rv = nvlist_add_boolean_array(nv, key, value, size); - break; - - case DATA_TYPE_INT8_ARRAY: - rv = nvlist_add_int8_array(nv, key, value, size); - break; - - case DATA_TYPE_UINT8_ARRAY: - rv = nvlist_add_uint8_array(nv, key, value, size); - break; - - default: - return (ENOTSUP); - } - - return (rv); -} - -int -lzbe_remove_pair(void *ptr, const char *key) -{ - - return (nvlist_remove_all(ptr, key)); -} diff --git a/lib/libzfsbootenv/lzbe_util.c b/lib/libzfsbootenv/lzbe_util.c deleted file mode 100644 index fc60f698f3bc..000000000000 --- a/lib/libzfsbootenv/lzbe_util.c +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: CDDL-1.0 -/* - * This file and its contents are supplied under the terms of the - * Common Development and Distribution License ("CDDL"), version 1.0. - * You may only use this file in accordance with the terms of version - * 1.0 of the CDDL. - * - * A full copy of the text of the CDDL should have accompanied this - * source. A copy of the CDDL is also available via the Internet at - * http://www.illumos.org/license/CDDL. - */ -/* - * Copyright 2020 Toomas Soome <tsoome@me.com> - */ - -#include <sys/types.h> -#include <string.h> -#include <libzfs.h> -#include <libzfsbootenv.h> - -/* - * Output bootenv information. - */ -int -lzbe_bootenv_print(const char *pool, const char *nvlist, FILE *of) -{ - nvlist_t *nv; - int rv = -1; - - if (pool == NULL || *pool == '\0' || of == NULL) - return (rv); - - rv = lzbe_nvlist_get(pool, nvlist, (void **)&nv); - if (rv == 0) { - nvlist_print(of, nv); - nvlist_free(nv); - } - - return (rv); -} |