Date: Mon, 4 Mar 2019 19:14:34 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344776 - in projects/clang800-import: . cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/lib/libzfs/common contrib/bearssl contrib/ofed/libcxgb4 crypto/openssl crypto/openssl/... Message-ID: <201903041914.x24JEY2d007984@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Mon Mar 4 19:14:32 2019 New Revision: 344776 URL: https://svnweb.freebsd.org/changeset/base/344776 Log: Merge ^/head r344549 through r344775. Added: projects/clang800-import/contrib/bearssl/ - copied from r344775, head/contrib/bearssl/ projects/clang800-import/lib/libbearssl/ - copied from r344775, head/lib/libbearssl/ projects/clang800-import/lib/libsecureboot/ - copied from r344775, head/lib/libsecureboot/ projects/clang800-import/sbin/veriexec/ - copied from r344775, head/sbin/veriexec/ projects/clang800-import/share/man/man4/at45d.4 - copied unchanged from r344775, head/share/man/man4/at45d.4 projects/clang800-import/share/man/man4/mx25l.4 - copied unchanged from r344775, head/share/man/man4/mx25l.4 projects/clang800-import/sys/dev/usb/controller/generic_xhci.c - copied unchanged from r344775, head/sys/dev/usb/controller/generic_xhci.c projects/clang800-import/sys/dev/usb/controller/usb_nop_xceiv.c - copied unchanged from r344775, head/sys/dev/usb/controller/usb_nop_xceiv.c projects/clang800-import/sys/dev/xz/ - copied from r344775, head/sys/dev/xz/ projects/clang800-import/sys/modules/fdt/ - copied from r344775, head/sys/modules/fdt/ projects/clang800-import/sys/modules/xz/ - copied from r344775, head/sys/modules/xz/ projects/clang800-import/sys/powerpc/powernv/opal_async.c - copied unchanged from r344775, head/sys/powerpc/powernv/opal_async.c projects/clang800-import/sys/powerpc/powernv/opal_flash.c - copied unchanged from r344775, head/sys/powerpc/powernv/opal_flash.c projects/clang800-import/sys/sys/seqc.h - copied unchanged from r344775, head/sys/sys/seqc.h projects/clang800-import/tests/sys/common/ - copied from r344775, head/tests/sys/common/ projects/clang800-import/tests/sys/netpfil/pf/CVE-2019-5597.py - copied unchanged from r344775, head/tests/sys/netpfil/pf/CVE-2019-5597.py projects/clang800-import/tools/build/options/WITH_BEARSSL - copied unchanged from r344775, head/tools/build/options/WITH_BEARSSL projects/clang800-import/tools/build/options/WITH_LOADER_VERIEXEC - copied unchanged from r344775, head/tools/build/options/WITH_LOADER_VERIEXEC projects/clang800-import/tools/build/options/WITH_VERIEXEC - copied unchanged from r344775, head/tools/build/options/WITH_VERIEXEC projects/clang800-import/usr.bin/proccontrol/proccontrol.1 - copied unchanged from r344775, head/usr.bin/proccontrol/proccontrol.1 Deleted: projects/clang800-import/stand/efi/loader/arch/i386/efimd.c projects/clang800-import/sys/contrib/xz-embedded/freebsd/xz_malloc.c projects/clang800-import/sys/dev/drm/ projects/clang800-import/sys/dev/drm2/i915/ projects/clang800-import/sys/dev/drm2/radeon/ projects/clang800-import/sys/dev/usb/controller/xhci_mv.c projects/clang800-import/sys/sys/seq.h Modified: projects/clang800-import/MAINTAINERS (contents, props changed) projects/clang800-import/ObsoleteFiles.inc projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs.8 projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/clang800-import/contrib/ofed/libcxgb4/dev.c projects/clang800-import/crypto/openssl/CHANGES projects/clang800-import/crypto/openssl/CONTRIBUTING projects/clang800-import/crypto/openssl/Configure projects/clang800-import/crypto/openssl/INSTALL projects/clang800-import/crypto/openssl/LICENSE projects/clang800-import/crypto/openssl/NEWS projects/clang800-import/crypto/openssl/README projects/clang800-import/crypto/openssl/apps/apps.c projects/clang800-import/crypto/openssl/apps/ct_log_list.cnf projects/clang800-import/crypto/openssl/apps/dh1024.pem projects/clang800-import/crypto/openssl/apps/dh2048.pem projects/clang800-import/crypto/openssl/apps/dh4096.pem projects/clang800-import/crypto/openssl/apps/ocsp.c projects/clang800-import/crypto/openssl/apps/openssl.cnf projects/clang800-import/crypto/openssl/apps/pkcs12.c projects/clang800-import/crypto/openssl/apps/rehash.c projects/clang800-import/crypto/openssl/apps/s_cb.c projects/clang800-import/crypto/openssl/apps/s_client.c projects/clang800-import/crypto/openssl/apps/s_server.c projects/clang800-import/crypto/openssl/apps/speed.c projects/clang800-import/crypto/openssl/apps/verify.c projects/clang800-import/crypto/openssl/config projects/clang800-import/crypto/openssl/crypto/aes/asm/aes-x86_64.pl projects/clang800-import/crypto/openssl/crypto/aes/asm/aesni-x86_64.pl projects/clang800-import/crypto/openssl/crypto/aes/asm/aesv8-armx.pl projects/clang800-import/crypto/openssl/crypto/aes/asm/bsaes-x86_64.pl projects/clang800-import/crypto/openssl/crypto/aes/asm/vpaes-armv8.pl projects/clang800-import/crypto/openssl/crypto/aes/asm/vpaes-x86_64.pl projects/clang800-import/crypto/openssl/crypto/armcap.c projects/clang800-import/crypto/openssl/crypto/asn1/a_digest.c projects/clang800-import/crypto/openssl/crypto/asn1/a_sign.c projects/clang800-import/crypto/openssl/crypto/asn1/a_verify.c projects/clang800-import/crypto/openssl/crypto/asn1/ameth_lib.c projects/clang800-import/crypto/openssl/crypto/asn1/charmap.h projects/clang800-import/crypto/openssl/crypto/asn1/charmap.pl projects/clang800-import/crypto/openssl/crypto/asn1/d2i_pu.c projects/clang800-import/crypto/openssl/crypto/bio/b_addr.c projects/clang800-import/crypto/openssl/crypto/bio/bss_file.c projects/clang800-import/crypto/openssl/crypto/bio/bss_mem.c projects/clang800-import/crypto/openssl/crypto/bn/asm/armv8-mont.pl projects/clang800-import/crypto/openssl/crypto/bn/asm/ia64.S projects/clang800-import/crypto/openssl/crypto/bn/asm/mips.pl projects/clang800-import/crypto/openssl/crypto/bn/asm/rsaz-avx2.pl projects/clang800-import/crypto/openssl/crypto/bn/asm/sparcv8plus.S projects/clang800-import/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl projects/clang800-import/crypto/openssl/crypto/bn/bn_ctx.c projects/clang800-import/crypto/openssl/crypto/bn/bn_depr.c projects/clang800-import/crypto/openssl/crypto/bn/bn_div.c projects/clang800-import/crypto/openssl/crypto/bn/bn_exp.c projects/clang800-import/crypto/openssl/crypto/bn/bn_lib.c projects/clang800-import/crypto/openssl/crypto/bn/bn_prime.h projects/clang800-import/crypto/openssl/crypto/bn/bn_prime.pl projects/clang800-import/crypto/openssl/crypto/bn/bn_shift.c projects/clang800-import/crypto/openssl/crypto/chacha/asm/chacha-armv8.pl projects/clang800-import/crypto/openssl/crypto/cms/cms_kari.c projects/clang800-import/crypto/openssl/crypto/cms/cms_pwri.c projects/clang800-import/crypto/openssl/crypto/conf/conf_def.c projects/clang800-import/crypto/openssl/crypto/conf/conf_def.h projects/clang800-import/crypto/openssl/crypto/conf/conf_lib.c projects/clang800-import/crypto/openssl/crypto/conf/conf_mod.c projects/clang800-import/crypto/openssl/crypto/conf/conf_sap.c projects/clang800-import/crypto/openssl/crypto/conf/conf_ssl.c projects/clang800-import/crypto/openssl/crypto/conf/keysets.pl projects/clang800-import/crypto/openssl/crypto/cryptlib.c projects/clang800-import/crypto/openssl/crypto/des/asm/des_enc.m4 projects/clang800-import/crypto/openssl/crypto/dso/dso_dlfcn.c projects/clang800-import/crypto/openssl/crypto/ec/asm/ecp_nistz256-armv8.pl projects/clang800-import/crypto/openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl projects/clang800-import/crypto/openssl/crypto/ec/curve25519.c projects/clang800-import/crypto/openssl/crypto/ec/curve448/eddsa.c projects/clang800-import/crypto/openssl/crypto/ec/curve448/point_448.h projects/clang800-import/crypto/openssl/crypto/ec/ec2_smpl.c projects/clang800-import/crypto/openssl/crypto/ec/ec_ameth.c projects/clang800-import/crypto/openssl/crypto/ec/ec_err.c projects/clang800-import/crypto/openssl/crypto/ec/ec_lcl.h projects/clang800-import/crypto/openssl/crypto/ec/ecp_mont.c projects/clang800-import/crypto/openssl/crypto/ec/ecp_nist.c projects/clang800-import/crypto/openssl/crypto/ec/ecp_nistp224.c projects/clang800-import/crypto/openssl/crypto/ec/ecp_nistp256.c projects/clang800-import/crypto/openssl/crypto/ec/ecp_nistp521.c projects/clang800-import/crypto/openssl/crypto/ec/ecp_nistz256.c projects/clang800-import/crypto/openssl/crypto/ec/ecp_smpl.c projects/clang800-import/crypto/openssl/crypto/ec/ecx_meth.c projects/clang800-import/crypto/openssl/crypto/engine/README projects/clang800-import/crypto/openssl/crypto/engine/eng_devcrypto.c projects/clang800-import/crypto/openssl/crypto/engine/eng_lib.c projects/clang800-import/crypto/openssl/crypto/err/err.c projects/clang800-import/crypto/openssl/crypto/err/openssl.txt projects/clang800-import/crypto/openssl/crypto/evp/evp_enc.c projects/clang800-import/crypto/openssl/crypto/evp/evp_err.c projects/clang800-import/crypto/openssl/crypto/evp/p_lib.c projects/clang800-import/crypto/openssl/crypto/include/internal/bn_int.h projects/clang800-import/crypto/openssl/crypto/init.c projects/clang800-import/crypto/openssl/crypto/modes/asm/ghash-x86_64.pl projects/clang800-import/crypto/openssl/crypto/objects/obj_dat.h projects/clang800-import/crypto/openssl/crypto/objects/obj_dat.pl projects/clang800-import/crypto/openssl/crypto/objects/obj_xref.h projects/clang800-import/crypto/openssl/crypto/objects/objects.pl projects/clang800-import/crypto/openssl/crypto/objects/objxref.pl projects/clang800-import/crypto/openssl/crypto/pem/pem_info.c projects/clang800-import/crypto/openssl/crypto/perlasm/x86_64-xlate.pl projects/clang800-import/crypto/openssl/crypto/poly1305/asm/poly1305-armv8.pl projects/clang800-import/crypto/openssl/crypto/ppc_arch.h projects/clang800-import/crypto/openssl/crypto/ppccap.c projects/clang800-import/crypto/openssl/crypto/ppccpuid.pl projects/clang800-import/crypto/openssl/crypto/rand/rand_unix.c projects/clang800-import/crypto/openssl/crypto/rsa/rsa_ameth.c projects/clang800-import/crypto/openssl/crypto/rsa/rsa_oaep.c projects/clang800-import/crypto/openssl/crypto/rsa/rsa_ossl.c projects/clang800-import/crypto/openssl/crypto/rsa/rsa_pk1.c projects/clang800-import/crypto/openssl/crypto/rsa/rsa_ssl.c projects/clang800-import/crypto/openssl/crypto/rsa/rsa_x931g.c projects/clang800-import/crypto/openssl/crypto/sha/asm/keccak1600-armv8.pl projects/clang800-import/crypto/openssl/crypto/sha/asm/sha512-armv8.pl projects/clang800-import/crypto/openssl/crypto/srp/srp_lib.c projects/clang800-import/crypto/openssl/crypto/srp/srp_vfy.c projects/clang800-import/crypto/openssl/crypto/ui/ui_openssl.c projects/clang800-import/crypto/openssl/crypto/uid.c projects/clang800-import/crypto/openssl/crypto/x509/x509_vfy.c projects/clang800-import/crypto/openssl/crypto/x509/x_crl.c projects/clang800-import/crypto/openssl/crypto/x509/x_pubkey.c projects/clang800-import/crypto/openssl/crypto/x509/x_x509.c projects/clang800-import/crypto/openssl/doc/HOWTO/certificates.txt projects/clang800-import/crypto/openssl/doc/HOWTO/proxy_certificates.txt projects/clang800-import/crypto/openssl/doc/fingerprints.txt projects/clang800-import/crypto/openssl/doc/man1/ca.pod projects/clang800-import/crypto/openssl/doc/man1/ciphers.pod projects/clang800-import/crypto/openssl/doc/man1/cms.pod projects/clang800-import/crypto/openssl/doc/man1/dgst.pod projects/clang800-import/crypto/openssl/doc/man1/ec.pod projects/clang800-import/crypto/openssl/doc/man1/enc.pod projects/clang800-import/crypto/openssl/doc/man1/genpkey.pod projects/clang800-import/crypto/openssl/doc/man1/ocsp.pod projects/clang800-import/crypto/openssl/doc/man1/pkcs12.pod projects/clang800-import/crypto/openssl/doc/man1/pkcs8.pod projects/clang800-import/crypto/openssl/doc/man1/req.pod projects/clang800-import/crypto/openssl/doc/man1/s_client.pod projects/clang800-import/crypto/openssl/doc/man1/s_server.pod projects/clang800-import/crypto/openssl/doc/man1/smime.pod projects/clang800-import/crypto/openssl/doc/man1/storeutl.pod projects/clang800-import/crypto/openssl/doc/man1/verify.pod projects/clang800-import/crypto/openssl/doc/man1/x509.pod projects/clang800-import/crypto/openssl/doc/man3/ASN1_INTEGER_get_int64.pod projects/clang800-import/crypto/openssl/doc/man3/ASYNC_WAIT_CTX_new.pod projects/clang800-import/crypto/openssl/doc/man3/ASYNC_start_job.pod projects/clang800-import/crypto/openssl/doc/man3/BIO_new_CMS.pod projects/clang800-import/crypto/openssl/doc/man3/BN_generate_prime.pod projects/clang800-import/crypto/openssl/doc/man3/BN_rand.pod projects/clang800-import/crypto/openssl/doc/man3/BN_security_bits.pod projects/clang800-import/crypto/openssl/doc/man3/BUF_MEM_new.pod projects/clang800-import/crypto/openssl/doc/man3/CMS_get0_type.pod projects/clang800-import/crypto/openssl/doc/man3/CONF_modules_load_file.pod projects/clang800-import/crypto/openssl/doc/man3/CRYPTO_get_ex_new_index.pod projects/clang800-import/crypto/openssl/doc/man3/CTLOG_STORE_get0_log_by_id.pod projects/clang800-import/crypto/openssl/doc/man3/DH_size.pod projects/clang800-import/crypto/openssl/doc/man3/DTLS_get_data_mtu.pod projects/clang800-import/crypto/openssl/doc/man3/DTLS_set_timer_cb.pod projects/clang800-import/crypto/openssl/doc/man3/DTLSv1_listen.pod projects/clang800-import/crypto/openssl/doc/man3/EC_GROUP_copy.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_DigestInit.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_DigestSignInit.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_DigestVerifyInit.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_EncryptInit.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_CTX_ctrl.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_CTX_new.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_asn1_get_count.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_decrypt.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_derive.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_encrypt.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_get_default_digest_nid.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_keygen.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_new.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_print_private.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_sign.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_verify.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_PKEY_verify_recover.pod projects/clang800-import/crypto/openssl/doc/man3/EVP_SignInit.pod projects/clang800-import/crypto/openssl/doc/man3/HMAC.pod projects/clang800-import/crypto/openssl/doc/man3/OPENSSL_init_crypto.pod projects/clang800-import/crypto/openssl/doc/man3/OPENSSL_malloc.pod projects/clang800-import/crypto/openssl/doc/man3/OPENSSL_secure_malloc.pod projects/clang800-import/crypto/openssl/doc/man3/OSSL_STORE_INFO.pod projects/clang800-import/crypto/openssl/doc/man3/OSSL_STORE_LOADER.pod projects/clang800-import/crypto/openssl/doc/man3/OSSL_STORE_SEARCH.pod projects/clang800-import/crypto/openssl/doc/man3/OSSL_STORE_expect.pod projects/clang800-import/crypto/openssl/doc/man3/OSSL_STORE_open.pod projects/clang800-import/crypto/openssl/doc/man3/PEM_read_bio_ex.pod projects/clang800-import/crypto/openssl/doc/man3/PEM_write_bio_CMS_stream.pod projects/clang800-import/crypto/openssl/doc/man3/PEM_write_bio_PKCS7_stream.pod projects/clang800-import/crypto/openssl/doc/man3/PKCS12_parse.pod projects/clang800-import/crypto/openssl/doc/man3/PKCS7_sign.pod projects/clang800-import/crypto/openssl/doc/man3/PKCS7_sign_add_signer.pod projects/clang800-import/crypto/openssl/doc/man3/RAND_bytes.pod projects/clang800-import/crypto/openssl/doc/man3/RIPEMD160_Init.pod projects/clang800-import/crypto/openssl/doc/man3/RSA_get0_key.pod projects/clang800-import/crypto/openssl/doc/man3/RSA_padding_add_PKCS1_type_1.pod projects/clang800-import/crypto/openssl/doc/man3/RSA_size.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CIPHER_get_name.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_COMP_add_compression_method.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CONF_CTX_new.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CONF_CTX_set1_prefix.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CONF_CTX_set_flags.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CONF_cmd.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CONF_cmd_argv.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_add1_chain_cert.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_config.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_dane_enable.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_get0_param.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set0_CA_list.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set1_curves.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set1_verify_cert_store.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_ctlog_list_file.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_default_passwd_cb.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_info_callback.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_mode.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_msg_callback.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_num_tickets.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_options.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_record_padding_callback.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_security_level.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_session_ticket_cb.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_split_send_fragment.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_ssl_version.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_tlsext_status_cb.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_CTX_set_tlsext_ticket_key_cb.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_free.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_get0_cipher.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_get0_hostname.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_get0_id_context.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_get_protocol_version.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_has_ticket.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_is_resumable.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_SESSION_set1_id.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_export_keying_material.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_extension_supported.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_get_all_async_fds.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_get_error.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_get_version.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_key_update.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_read.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_read_early_data.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_set1_host.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_shutdown.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_want.pod projects/clang800-import/crypto/openssl/doc/man3/SSL_write.pod projects/clang800-import/crypto/openssl/doc/man3/UI_create_method.pod projects/clang800-import/crypto/openssl/doc/man3/UI_new.pod projects/clang800-import/crypto/openssl/doc/man3/X509_NAME_ENTRY_get_object.pod projects/clang800-import/crypto/openssl/doc/man3/X509_STORE_CTX_new.pod projects/clang800-import/crypto/openssl/doc/man3/X509_STORE_CTX_set_verify_cb.pod projects/clang800-import/crypto/openssl/doc/man3/X509_STORE_new.pod projects/clang800-import/crypto/openssl/doc/man3/X509_STORE_set_verify_cb_func.pod projects/clang800-import/crypto/openssl/doc/man3/X509_VERIFY_PARAM_set_flags.pod projects/clang800-import/crypto/openssl/doc/man3/X509_get0_signature.pod projects/clang800-import/crypto/openssl/doc/man3/X509_get_serialNumber.pod projects/clang800-import/crypto/openssl/doc/man3/X509_get_subject_name.pod projects/clang800-import/crypto/openssl/doc/man3/X509_sign.pod projects/clang800-import/crypto/openssl/doc/man3/d2i_PrivateKey.pod projects/clang800-import/crypto/openssl/doc/man3/i2d_CMS_bio_stream.pod projects/clang800-import/crypto/openssl/doc/man3/i2d_PKCS7_bio_stream.pod projects/clang800-import/crypto/openssl/doc/man5/config.pod projects/clang800-import/crypto/openssl/doc/man7/ct.pod projects/clang800-import/crypto/openssl/e_os.h projects/clang800-import/crypto/openssl/engines/e_dasync.c projects/clang800-import/crypto/openssl/include/internal/conf.h projects/clang800-import/crypto/openssl/include/internal/constant_time_locl.h projects/clang800-import/crypto/openssl/include/internal/cryptlib.h projects/clang800-import/crypto/openssl/include/internal/sockets.h projects/clang800-import/crypto/openssl/include/internal/thread_once.h projects/clang800-import/crypto/openssl/include/internal/tsan_assist.h projects/clang800-import/crypto/openssl/include/openssl/crypto.h projects/clang800-import/crypto/openssl/include/openssl/e_os2.h projects/clang800-import/crypto/openssl/include/openssl/ecerr.h projects/clang800-import/crypto/openssl/include/openssl/evp.h projects/clang800-import/crypto/openssl/include/openssl/evperr.h projects/clang800-import/crypto/openssl/include/openssl/lhash.h projects/clang800-import/crypto/openssl/include/openssl/obj_mac.h projects/clang800-import/crypto/openssl/include/openssl/opensslv.h projects/clang800-import/crypto/openssl/include/openssl/safestack.h projects/clang800-import/crypto/openssl/include/openssl/ssl.h projects/clang800-import/crypto/openssl/include/openssl/sslerr.h projects/clang800-import/crypto/openssl/include/openssl/x509_vfy.h projects/clang800-import/crypto/openssl/ssl/record/rec_layer_d1.c projects/clang800-import/crypto/openssl/ssl/record/rec_layer_s3.c projects/clang800-import/crypto/openssl/ssl/s3_enc.c projects/clang800-import/crypto/openssl/ssl/s3_lib.c projects/clang800-import/crypto/openssl/ssl/ssl_ciph.c projects/clang800-import/crypto/openssl/ssl/ssl_err.c projects/clang800-import/crypto/openssl/ssl/ssl_init.c projects/clang800-import/crypto/openssl/ssl/ssl_lib.c projects/clang800-import/crypto/openssl/ssl/ssl_locl.h projects/clang800-import/crypto/openssl/ssl/statem/extensions.c projects/clang800-import/crypto/openssl/ssl/statem/statem.c projects/clang800-import/crypto/openssl/ssl/statem/statem_clnt.c projects/clang800-import/crypto/openssl/ssl/statem/statem_lib.c projects/clang800-import/crypto/openssl/ssl/statem/statem_locl.h projects/clang800-import/crypto/openssl/ssl/statem/statem_srvr.c projects/clang800-import/crypto/openssl/ssl/t1_enc.c projects/clang800-import/crypto/openssl/ssl/t1_lib.c projects/clang800-import/crypto/openssl/ssl/tls13_enc.c projects/clang800-import/etc/mtree/BSD.include.dist projects/clang800-import/include/Makefile projects/clang800-import/lib/Makefile projects/clang800-import/lib/libc/net/sctp_sys_calls.c projects/clang800-import/lib/libc/sys/poll.2 projects/clang800-import/lib/libc/sys/procctl.2 projects/clang800-import/lib/libmt/mtlib.c projects/clang800-import/sbin/Makefile projects/clang800-import/sbin/camcontrol/camcontrol.c projects/clang800-import/sbin/fsck_ffs/fsck.h projects/clang800-import/sbin/fsck_ffs/globs.c projects/clang800-import/sbin/fsck_ffs/inode.c projects/clang800-import/sbin/fsck_ffs/pass1.c projects/clang800-import/sbin/fsck_ffs/setup.c projects/clang800-import/sbin/fsdb/fsdb.c projects/clang800-import/sbin/ifconfig/Makefile projects/clang800-import/sbin/ifconfig/af_inet.c projects/clang800-import/sbin/ifconfig/af_inet6.c projects/clang800-import/sbin/ifconfig/ifconfig.c projects/clang800-import/sbin/ifconfig/ifgroup.c projects/clang800-import/sbin/ipfw/ipfw.8 projects/clang800-import/sbin/nvmecontrol/nc_util.c projects/clang800-import/sbin/tunefs/tunefs.c projects/clang800-import/secure/lib/libcrypto/Makefile.inc projects/clang800-import/secure/lib/libcrypto/Makefile.man projects/clang800-import/secure/lib/libcrypto/aarch64/aesv8-armx.S projects/clang800-import/secure/lib/libcrypto/aarch64/armv8-mont.S projects/clang800-import/secure/lib/libcrypto/aarch64/chacha-armv8.S projects/clang800-import/secure/lib/libcrypto/aarch64/ecp_nistz256-armv8.S projects/clang800-import/secure/lib/libcrypto/aarch64/keccak1600-armv8.S projects/clang800-import/secure/lib/libcrypto/aarch64/poly1305-armv8.S projects/clang800-import/secure/lib/libcrypto/aarch64/sha256-armv8.S projects/clang800-import/secure/lib/libcrypto/aarch64/sha512-armv8.S projects/clang800-import/secure/lib/libcrypto/aarch64/vpaes-armv8.S projects/clang800-import/secure/lib/libcrypto/amd64/aes-x86_64.S projects/clang800-import/secure/lib/libcrypto/amd64/aesni-x86_64.S projects/clang800-import/secure/lib/libcrypto/amd64/bsaes-x86_64.S projects/clang800-import/secure/lib/libcrypto/amd64/ecp_nistz256-x86_64.S projects/clang800-import/secure/lib/libcrypto/amd64/ghash-x86_64.S projects/clang800-import/secure/lib/libcrypto/amd64/rsaz-avx2.S projects/clang800-import/secure/lib/libcrypto/amd64/vpaes-x86_64.S projects/clang800-import/secure/lib/libcrypto/amd64/x86_64-mont5.S projects/clang800-import/secure/lib/libcrypto/man/ADMISSIONS.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_INTEGER_get_int64.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_ITEM_lookup.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_STRING_TABLE_add.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_STRING_length.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_STRING_new.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_TIME_set.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_TYPE_get.3 projects/clang800-import/secure/lib/libcrypto/man/ASN1_generate_nconf.3 projects/clang800-import/secure/lib/libcrypto/man/ASYNC_WAIT_CTX_new.3 projects/clang800-import/secure/lib/libcrypto/man/ASYNC_start_job.3 projects/clang800-import/secure/lib/libcrypto/man/BF_encrypt.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_ADDR.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_ADDRINFO.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_connect.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_ctrl.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_f_base64.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_f_buffer.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_f_cipher.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_f_md.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_f_null.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_f_ssl.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_find_type.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_get_data.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_get_ex_new_index.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_new.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_new_CMS.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_parse_hostserv.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_printf.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_push.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_read.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_accept.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_bio.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_connect.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_fd.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_file.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_mem.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_null.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_s_socket.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_set_callback.3 projects/clang800-import/secure/lib/libcrypto/man/BIO_should_retry.3 projects/clang800-import/secure/lib/libcrypto/man/BN_BLINDING_new.3 projects/clang800-import/secure/lib/libcrypto/man/BN_CTX_new.3 projects/clang800-import/secure/lib/libcrypto/man/BN_CTX_start.3 projects/clang800-import/secure/lib/libcrypto/man/BN_add.3 projects/clang800-import/secure/lib/libcrypto/man/BN_add_word.3 projects/clang800-import/secure/lib/libcrypto/man/BN_bn2bin.3 projects/clang800-import/secure/lib/libcrypto/man/BN_cmp.3 projects/clang800-import/secure/lib/libcrypto/man/BN_copy.3 projects/clang800-import/secure/lib/libcrypto/man/BN_generate_prime.3 projects/clang800-import/secure/lib/libcrypto/man/BN_mod_inverse.3 projects/clang800-import/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 projects/clang800-import/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 projects/clang800-import/secure/lib/libcrypto/man/BN_new.3 projects/clang800-import/secure/lib/libcrypto/man/BN_num_bytes.3 projects/clang800-import/secure/lib/libcrypto/man/BN_rand.3 projects/clang800-import/secure/lib/libcrypto/man/BN_security_bits.3 projects/clang800-import/secure/lib/libcrypto/man/BN_set_bit.3 projects/clang800-import/secure/lib/libcrypto/man/BN_swap.3 projects/clang800-import/secure/lib/libcrypto/man/BN_zero.3 projects/clang800-import/secure/lib/libcrypto/man/BUF_MEM_new.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_add0_cert.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_add1_signer.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_compress.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_decrypt.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_encrypt.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_final.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_get0_type.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_sign.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_sign_receipt.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_uncompress.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_verify.3 projects/clang800-import/secure/lib/libcrypto/man/CMS_verify_receipt.3 projects/clang800-import/secure/lib/libcrypto/man/CONF_modules_free.3 projects/clang800-import/secure/lib/libcrypto/man/CONF_modules_load_file.3 projects/clang800-import/secure/lib/libcrypto/man/CRYPTO_THREAD_run_once.3 projects/clang800-import/secure/lib/libcrypto/man/CRYPTO_get_ex_new_index.3 projects/clang800-import/secure/lib/libcrypto/man/CTLOG_STORE_get0_log_by_id.3 projects/clang800-import/secure/lib/libcrypto/man/CTLOG_STORE_new.3 projects/clang800-import/secure/lib/libcrypto/man/CTLOG_new.3 projects/clang800-import/secure/lib/libcrypto/man/CT_POLICY_EVAL_CTX_new.3 projects/clang800-import/secure/lib/libcrypto/man/DEFINE_STACK_OF.3 projects/clang800-import/secure/lib/libcrypto/man/DES_random_key.3 projects/clang800-import/secure/lib/libcrypto/man/DH_generate_key.3 projects/clang800-import/secure/lib/libcrypto/man/DH_generate_parameters.3 projects/clang800-import/secure/lib/libcrypto/man/DH_get0_pqg.3 projects/clang800-import/secure/lib/libcrypto/man/DH_get_1024_160.3 projects/clang800-import/secure/lib/libcrypto/man/DH_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/DH_new.3 projects/clang800-import/secure/lib/libcrypto/man/DH_new_by_nid.3 projects/clang800-import/secure/lib/libcrypto/man/DH_set_method.3 projects/clang800-import/secure/lib/libcrypto/man/DH_size.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_SIG_new.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_do_sign.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_dup_DH.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_generate_key.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_generate_parameters.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_get0_pqg.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_new.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_set_method.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_sign.3 projects/clang800-import/secure/lib/libcrypto/man/DSA_size.3 projects/clang800-import/secure/lib/libcrypto/man/DTLS_get_data_mtu.3 projects/clang800-import/secure/lib/libcrypto/man/DTLS_set_timer_cb.3 projects/clang800-import/secure/lib/libcrypto/man/DTLSv1_listen.3 projects/clang800-import/secure/lib/libcrypto/man/ECDSA_SIG_new.3 projects/clang800-import/secure/lib/libcrypto/man/ECPKParameters_print.3 projects/clang800-import/secure/lib/libcrypto/man/EC_GFp_simple_method.3 projects/clang800-import/secure/lib/libcrypto/man/EC_GROUP_copy.3 projects/clang800-import/secure/lib/libcrypto/man/EC_GROUP_new.3 projects/clang800-import/secure/lib/libcrypto/man/EC_KEY_get_enc_flags.3 projects/clang800-import/secure/lib/libcrypto/man/EC_KEY_new.3 projects/clang800-import/secure/lib/libcrypto/man/EC_POINT_add.3 projects/clang800-import/secure/lib/libcrypto/man/EC_POINT_new.3 projects/clang800-import/secure/lib/libcrypto/man/ENGINE_add.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_GET_LIB.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_clear_error.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_error_string.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_get_error.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_load_strings.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_print_errors.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_put_error.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_remove_state.3 projects/clang800-import/secure/lib/libcrypto/man/ERR_set_mark.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_BytesToKey.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_CIPHER_CTX_get_cipher_data.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_CIPHER_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_DigestInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_DigestSignInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_EncodeInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_EncryptInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_MD_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_OpenInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_ASN1_METHOD.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_set1_pbe_pass.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_hkdf_md.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_scrypt_N.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_tls1_prf_md.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_asn1_get_count.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_cmp.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_derive.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest_nid.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_keygen.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_meth_get_count.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_new.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_print_private.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_sign.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_verify.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_SealInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_SignInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_VerifyInit.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_aes.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_aria.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_bf_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_blake2b512.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_camellia.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_cast5_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_chacha20.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_des.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_desx_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_idea_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_md2.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_md4.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_md5.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_mdc2.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_rc2_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_rc4.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_rc5_32_12_16_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_ripemd160.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_seed_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_sha1.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_sha224.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_sha3_224.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_sm3.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_sm4_cbc.3 projects/clang800-import/secure/lib/libcrypto/man/EVP_whirlpool.3 projects/clang800-import/secure/lib/libcrypto/man/HMAC.3 projects/clang800-import/secure/lib/libcrypto/man/MD5.3 projects/clang800-import/secure/lib/libcrypto/man/MDC2_Init.3 projects/clang800-import/secure/lib/libcrypto/man/OBJ_nid2obj.3 projects/clang800-import/secure/lib/libcrypto/man/OCSP_REQUEST_new.3 projects/clang800-import/secure/lib/libcrypto/man/OCSP_cert_to_id.3 projects/clang800-import/secure/lib/libcrypto/man/OCSP_request_add1_nonce.3 projects/clang800-import/secure/lib/libcrypto/man/OCSP_resp_find_status.3 projects/clang800-import/secure/lib/libcrypto/man/OCSP_response_status.3 projects/clang800-import/secure/lib/libcrypto/man/OCSP_sendreq_new.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_Applink.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_LH_COMPFUNC.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_LH_stats.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_config.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_fork_prepare.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_init_crypto.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_init_ssl.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_instrument_bus.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_malloc.3 projects/clang800-import/secure/lib/libcrypto/man/OPENSSL_secure_malloc.3 projects/clang800-import/secure/lib/libcrypto/man/OSSL_STORE_INFO.3 projects/clang800-import/secure/lib/libcrypto/man/OSSL_STORE_LOADER.3 projects/clang800-import/secure/lib/libcrypto/man/OSSL_STORE_SEARCH.3 projects/clang800-import/secure/lib/libcrypto/man/OSSL_STORE_expect.3 projects/clang800-import/secure/lib/libcrypto/man/OSSL_STORE_open.3 projects/clang800-import/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 projects/clang800-import/secure/lib/libcrypto/man/PEM_bytes_read_bio.3 projects/clang800-import/secure/lib/libcrypto/man/PEM_read.3 projects/clang800-import/secure/lib/libcrypto/man/PEM_read_CMS.3 projects/clang800-import/secure/lib/libcrypto/man/PEM_read_bio_PrivateKey.3 projects/clang800-import/secure/lib/libcrypto/man/PEM_read_bio_ex.3 projects/clang800-import/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 projects/clang800-import/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS12_create.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS12_newpass.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS12_parse.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS5_PBKDF2_HMAC.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS7_decrypt.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS7_encrypt.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS7_sign.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3 projects/clang800-import/secure/lib/libcrypto/man/PKCS7_verify.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_DRBG_generate.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_DRBG_get0_master.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_DRBG_new.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_DRBG_reseed.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_DRBG_set_callbacks.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_DRBG_set_ex_data.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_add.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_bytes.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_cleanup.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_egd.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_load_file.3 projects/clang800-import/secure/lib/libcrypto/man/RAND_set_rand_method.3 projects/clang800-import/secure/lib/libcrypto/man/RC4_set_key.3 projects/clang800-import/secure/lib/libcrypto/man/RIPEMD160_Init.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_blinding_on.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_check_key.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_generate_key.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_get0_key.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_new.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_print.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_private_encrypt.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_public_encrypt.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_set_method.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_sign.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 projects/clang800-import/secure/lib/libcrypto/man/RSA_size.3 projects/clang800-import/secure/lib/libcrypto/man/SCT_new.3 projects/clang800-import/secure/lib/libcrypto/man/SCT_print.3 projects/clang800-import/secure/lib/libcrypto/man/SCT_validate.3 projects/clang800-import/secure/lib/libcrypto/man/SHA256_Init.3 projects/clang800-import/secure/lib/libcrypto/man/SMIME_read_CMS.3 projects/clang800-import/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 projects/clang800-import/secure/lib/libcrypto/man/SMIME_write_CMS.3 projects/clang800-import/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CIPHER_get_name.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_COMP_add_compression_method.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CONF_CTX_new.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CONF_CTX_set1_prefix.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CONF_CTX_set_flags.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CONF_CTX_set_ssl_ctx.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CONF_cmd.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CONF_cmd_argv.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_add1_chain_cert.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_add_extra_chain_cert.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_add_session.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_config.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_ctrl.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_dane_enable.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_flush_sessions.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_free.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_get0_param.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_get_verify_mode.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_has_client_custom_ext.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_load_verify_locations.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_new.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_sess_number.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_sess_set_cache_size.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_sess_set_get_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_sessions.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set0_CA_list.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set1_curves.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set1_sigalgs.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set1_verify_cert_store.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_alpn_select_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_cert_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_cert_store.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_cert_verify_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_cipher_list.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_client_cert_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_client_hello_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_ct_validation_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_ctlog_list_file.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_default_passwd_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_ex_data.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_generate_session_id.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_info_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_keylog_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_max_cert_list.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_min_proto_version.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_mode.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_msg_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_num_tickets.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_options.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_psk_client_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_quiet_shutdown.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_read_ahead.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_record_padding_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_security_level.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_session_cache_mode.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_session_id_context.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_session_ticket_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_split_send_fragment.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_ssl_version.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_stateless_cookie_generate_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_timeout.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_servername_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_status_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_ticket_key_cb.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_use_srtp.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_tmp_dh_callback.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_set_verify.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_use_certificate.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_use_psk_identity_hint.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_CTX_use_serverinfo.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_free.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get0_cipher.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get0_hostname.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get0_id_context.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get0_peer.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get_compress_id.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get_ex_data.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get_protocol_version.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_get_time.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_has_ticket.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_is_resumable.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_print.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_SESSION_set1_id.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_accept.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_alert_type_string.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_alloc_buffers.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_check_chain.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_clear.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_connect.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_do_handshake.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_export_keying_material.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_extension_supported.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_free.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get0_peer_scts.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_SSL_CTX.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_all_async_fds.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_ciphers.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_client_random.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_current_cipher.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_default_timeout.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_error.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_extms_support.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_fd.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_peer_cert_chain.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_peer_certificate.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_peer_signature_nid.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_peer_tmp_key.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_psk_identity.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_rbio.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_session.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_shared_sigalgs.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_verify_result.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_get_version.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_in_init.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_key_update.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_library_init.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_load_client_CA_file.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_new.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_pending.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_read.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_read_early_data.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_rstate_string.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_session_reused.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_set1_host.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_set_bio.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_set_connect_state.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_set_fd.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_set_session.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_set_shutdown.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_set_verify_result.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_shutdown.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_state_string.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_want.3 projects/clang800-import/secure/lib/libcrypto/man/SSL_write.3 projects/clang800-import/secure/lib/libcrypto/man/UI_STRING.3 projects/clang800-import/secure/lib/libcrypto/man/UI_UTIL_read_pw.3 projects/clang800-import/secure/lib/libcrypto/man/UI_create_method.3 projects/clang800-import/secure/lib/libcrypto/man/UI_new.3 projects/clang800-import/secure/lib/libcrypto/man/X509V3_get_d2i.3 projects/clang800-import/secure/lib/libcrypto/man/X509_ALGOR_dup.3 projects/clang800-import/secure/lib/libcrypto/man/X509_CRL_get0_by_serial.3 projects/clang800-import/secure/lib/libcrypto/man/X509_EXTENSION_set_object.3 projects/clang800-import/secure/lib/libcrypto/man/X509_LOOKUP_hash_dir.3 projects/clang800-import/secure/lib/libcrypto/man/X509_LOOKUP_meth_new.3 projects/clang800-import/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 projects/clang800-import/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 projects/clang800-import/secure/lib/libcrypto/man/X509_NAME_get0_der.3 projects/clang800-import/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 projects/clang800-import/secure/lib/libcrypto/man/X509_NAME_print_ex.3 projects/clang800-import/secure/lib/libcrypto/man/X509_PUBKEY_new.3 projects/clang800-import/secure/lib/libcrypto/man/X509_SIG_get0.3 projects/clang800-import/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3 projects/clang800-import/secure/lib/libcrypto/man/X509_STORE_CTX_new.3 projects/clang800-import/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 projects/clang800-import/secure/lib/libcrypto/man/X509_STORE_add_cert.3 projects/clang800-import/secure/lib/libcrypto/man/X509_STORE_get0_param.3 projects/clang800-import/secure/lib/libcrypto/man/X509_STORE_new.3 projects/clang800-import/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 projects/clang800-import/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 projects/clang800-import/secure/lib/libcrypto/man/X509_check_ca.3 projects/clang800-import/secure/lib/libcrypto/man/X509_check_host.3 projects/clang800-import/secure/lib/libcrypto/man/X509_check_issued.3 projects/clang800-import/secure/lib/libcrypto/man/X509_check_private_key.3 projects/clang800-import/secure/lib/libcrypto/man/X509_cmp_time.3 projects/clang800-import/secure/lib/libcrypto/man/X509_digest.3 projects/clang800-import/secure/lib/libcrypto/man/X509_dup.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get0_notBefore.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get0_signature.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get0_uids.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get_extension_flags.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get_pubkey.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get_serialNumber.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get_subject_name.3 projects/clang800-import/secure/lib/libcrypto/man/X509_get_version.3 projects/clang800-import/secure/lib/libcrypto/man/X509_new.3 projects/clang800-import/secure/lib/libcrypto/man/X509_sign.3 projects/clang800-import/secure/lib/libcrypto/man/X509_verify_cert.3 projects/clang800-import/secure/lib/libcrypto/man/X509v3_get_ext_by_NID.3 projects/clang800-import/secure/lib/libcrypto/man/d2i_DHparams.3 projects/clang800-import/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey_bio.3 projects/clang800-import/secure/lib/libcrypto/man/d2i_PrivateKey.3 projects/clang800-import/secure/lib/libcrypto/man/d2i_SSL_SESSION.3 projects/clang800-import/secure/lib/libcrypto/man/d2i_X509.3 projects/clang800-import/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3 projects/clang800-import/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 projects/clang800-import/secure/lib/libcrypto/man/i2d_re_X509_tbs.3 projects/clang800-import/secure/lib/libcrypto/man/o2i_SCT_LIST.3 projects/clang800-import/secure/usr.bin/openssl/man/CA.pl.1 projects/clang800-import/secure/usr.bin/openssl/man/asn1parse.1 projects/clang800-import/secure/usr.bin/openssl/man/ca.1 projects/clang800-import/secure/usr.bin/openssl/man/ciphers.1 projects/clang800-import/secure/usr.bin/openssl/man/cms.1 projects/clang800-import/secure/usr.bin/openssl/man/crl.1 projects/clang800-import/secure/usr.bin/openssl/man/crl2pkcs7.1 projects/clang800-import/secure/usr.bin/openssl/man/dgst.1 projects/clang800-import/secure/usr.bin/openssl/man/dhparam.1 projects/clang800-import/secure/usr.bin/openssl/man/dsa.1 projects/clang800-import/secure/usr.bin/openssl/man/dsaparam.1 projects/clang800-import/secure/usr.bin/openssl/man/ec.1 projects/clang800-import/secure/usr.bin/openssl/man/ecparam.1 projects/clang800-import/secure/usr.bin/openssl/man/enc.1 projects/clang800-import/secure/usr.bin/openssl/man/engine.1 projects/clang800-import/secure/usr.bin/openssl/man/errstr.1 projects/clang800-import/secure/usr.bin/openssl/man/gendsa.1 projects/clang800-import/secure/usr.bin/openssl/man/genpkey.1 projects/clang800-import/secure/usr.bin/openssl/man/genrsa.1 projects/clang800-import/secure/usr.bin/openssl/man/list.1 projects/clang800-import/secure/usr.bin/openssl/man/nseq.1 projects/clang800-import/secure/usr.bin/openssl/man/ocsp.1 projects/clang800-import/secure/usr.bin/openssl/man/openssl.1 projects/clang800-import/secure/usr.bin/openssl/man/passwd.1 projects/clang800-import/secure/usr.bin/openssl/man/pkcs12.1 projects/clang800-import/secure/usr.bin/openssl/man/pkcs7.1 projects/clang800-import/secure/usr.bin/openssl/man/pkcs8.1 projects/clang800-import/secure/usr.bin/openssl/man/pkey.1 projects/clang800-import/secure/usr.bin/openssl/man/pkeyparam.1 projects/clang800-import/secure/usr.bin/openssl/man/pkeyutl.1 projects/clang800-import/secure/usr.bin/openssl/man/prime.1 projects/clang800-import/secure/usr.bin/openssl/man/rand.1 projects/clang800-import/secure/usr.bin/openssl/man/req.1 projects/clang800-import/secure/usr.bin/openssl/man/rsa.1 projects/clang800-import/secure/usr.bin/openssl/man/rsautl.1 projects/clang800-import/secure/usr.bin/openssl/man/s_client.1 projects/clang800-import/secure/usr.bin/openssl/man/s_server.1 projects/clang800-import/secure/usr.bin/openssl/man/s_time.1 projects/clang800-import/secure/usr.bin/openssl/man/sess_id.1 projects/clang800-import/secure/usr.bin/openssl/man/smime.1 projects/clang800-import/secure/usr.bin/openssl/man/speed.1 projects/clang800-import/secure/usr.bin/openssl/man/spkac.1 projects/clang800-import/secure/usr.bin/openssl/man/srp.1 projects/clang800-import/secure/usr.bin/openssl/man/storeutl.1 projects/clang800-import/secure/usr.bin/openssl/man/ts.1 projects/clang800-import/secure/usr.bin/openssl/man/tsget.1 projects/clang800-import/secure/usr.bin/openssl/man/verify.1 projects/clang800-import/secure/usr.bin/openssl/man/version.1 projects/clang800-import/secure/usr.bin/openssl/man/x509.1 projects/clang800-import/share/man/man4/Makefile projects/clang800-import/share/man/man4/geom_uzip.4 projects/clang800-import/share/man/man4/isp.4 projects/clang800-import/share/man/man4/rights.4 projects/clang800-import/share/mk/src.libnames.mk projects/clang800-import/share/mk/src.opts.mk projects/clang800-import/stand/common/boot.c projects/clang800-import/stand/common/bootstrap.h projects/clang800-import/stand/common/interp_forth.c projects/clang800-import/stand/common/interp_simple.c projects/clang800-import/stand/common/load_elf.c projects/clang800-import/stand/common/load_elf_obj.c projects/clang800-import/stand/common/module.c projects/clang800-import/stand/efi/loader/arch/arm/exec.c projects/clang800-import/stand/efi/loader/arch/i386/Makefile.inc projects/clang800-import/stand/efi/loader/arch/i386/elf32_freebsd.c projects/clang800-import/stand/ficl/Makefile.depend projects/clang800-import/stand/ficl/ficl.h projects/clang800-import/stand/ficl/fileaccess.c projects/clang800-import/stand/ficl32/Makefile.depend projects/clang800-import/stand/i386/loader/Makefile.depend projects/clang800-import/stand/liblua/Makefile projects/clang800-import/stand/liblua/lstd.c projects/clang800-import/stand/libsa/Makefile projects/clang800-import/stand/libsa/Makefile.depend projects/clang800-import/stand/libsa32/Makefile.depend projects/clang800-import/stand/loader.mk projects/clang800-import/sys/amd64/amd64/elf_machdep.c projects/clang800-import/sys/amd64/cloudabi32/cloudabi32_sysvec.c projects/clang800-import/sys/amd64/cloudabi64/cloudabi64_sysvec.c projects/clang800-import/sys/amd64/linux/linux_sysvec.c projects/clang800-import/sys/amd64/linux32/linux32_sysvec.c projects/clang800-import/sys/amd64/vmm/intel/vmx.c projects/clang800-import/sys/arm/arm/elf_machdep.c projects/clang800-import/sys/arm/cloudabi32/cloudabi32_sysvec.c projects/clang800-import/sys/arm/mv/files.arm7 projects/clang800-import/sys/arm/mv/files.mv projects/clang800-import/sys/arm64/arm64/elf32_machdep.c projects/clang800-import/sys/arm64/arm64/elf_machdep.c projects/clang800-import/sys/arm64/arm64/mp_machdep.c projects/clang800-import/sys/arm64/cloudabi32/cloudabi32_sysvec.c projects/clang800-import/sys/arm64/cloudabi64/cloudabi64_sysvec.c projects/clang800-import/sys/arm64/conf/GENERIC projects/clang800-import/sys/arm64/linux/linux_sysvec.c projects/clang800-import/sys/arm64/rockchip/clk/rk3328_cru.c projects/clang800-import/sys/arm64/rockchip/clk/rk3399_cru.c projects/clang800-import/sys/arm64/rockchip/clk/rk_clk_armclk.c projects/clang800-import/sys/arm64/rockchip/clk/rk_clk_armclk.h projects/clang800-import/sys/arm64/rockchip/clk/rk_clk_composite.c projects/clang800-import/sys/arm64/rockchip/clk/rk_clk_composite.h projects/clang800-import/sys/arm64/rockchip/clk/rk_clk_pll.c projects/clang800-import/sys/arm64/rockchip/clk/rk_clk_pll.h projects/clang800-import/sys/arm64/rockchip/rk805.c projects/clang800-import/sys/arm64/rockchip/rk805reg.h projects/clang800-import/sys/arm64/rockchip/rk_pinctrl.c projects/clang800-import/sys/cam/ctl/ctl.c projects/clang800-import/sys/cam/ctl/ctl_backend_block.c projects/clang800-import/sys/cam/ctl/ctl_backend_ramdisk.c projects/clang800-import/sys/cam/ctl/ctl_frontend_ioctl.c projects/clang800-import/sys/cam/ctl/ctl_io.h projects/clang800-import/sys/cam/ctl/ctl_private.h projects/clang800-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c projects/clang800-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c projects/clang800-import/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/clang800-import/sys/compat/ia32/ia32_sysvec.c projects/clang800-import/sys/compat/linuxkpi/common/include/linux/types.h projects/clang800-import/sys/conf/NOTES projects/clang800-import/sys/conf/files projects/clang800-import/sys/conf/files.arm64 projects/clang800-import/sys/conf/files.powerpc projects/clang800-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c projects/clang800-import/sys/contrib/xz-embedded/freebsd/xz_config.h projects/clang800-import/sys/crypto/chacha20/chacha.c projects/clang800-import/sys/crypto/chacha20/chacha.h projects/clang800-import/sys/dev/asmc/asmc.c projects/clang800-import/sys/dev/asmc/asmcvar.h projects/clang800-import/sys/dev/ath/ath_hal/ah.h projects/clang800-import/sys/dev/cxgb/cxgb_adapter.h projects/clang800-import/sys/dev/cxgb/cxgb_main.c projects/clang800-import/sys/dev/cxgbe/t4_main.c projects/clang800-import/sys/dev/cxgbe/t4_vf.c projects/clang800-import/sys/dev/fdt/fdt_slicer.c projects/clang800-import/sys/dev/flash/at45d.c projects/clang800-import/sys/dev/flash/mx25l.c projects/clang800-import/sys/dev/isp/isp_pci.c projects/clang800-import/sys/dev/ixgbe/if_ix.c projects/clang800-import/sys/dev/mmc/host/dwmmc_rockchip.c projects/clang800-import/sys/dev/nvme/nvme_ctrlr.c projects/clang800-import/sys/dev/nvme/nvme_ns.c projects/clang800-import/sys/dev/nvme/nvme_private.h projects/clang800-import/sys/dev/nvme/nvme_qpair.c projects/clang800-import/sys/dev/nvme/nvme_test.c projects/clang800-import/sys/dev/random/fortuna.c projects/clang800-import/sys/dev/random/hash.c projects/clang800-import/sys/dev/random/hash.h projects/clang800-import/sys/dev/rtwn/rtl8192c/r92c_init.c projects/clang800-import/sys/dev/rtwn/rtl8192c/r92c_reg.h projects/clang800-import/sys/dev/rtwn/rtl8192c/r92c_tx.c projects/clang800-import/sys/dev/rtwn/rtl8192c/usb/r92cu_init.c projects/clang800-import/sys/dev/spibus/spibus.c projects/clang800-import/sys/dev/syscons/scterm-dumb.c (contents, props changed) projects/clang800-import/sys/dev/syscons/scterm-sc.c (contents, props changed) projects/clang800-import/sys/fs/ext2fs/ext2_alloc.c projects/clang800-import/sys/fs/ext2fs/ext2_csum.c projects/clang800-import/sys/fs/ext2fs/ext2_extern.h projects/clang800-import/sys/fs/ext2fs/ext2_inode_cnv.c projects/clang800-import/sys/fs/ext2fs/ext2_vfsops.c projects/clang800-import/sys/fs/ext2fs/ext2fs.h projects/clang800-import/sys/fs/nfs/nfs_var.h projects/clang800-import/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/clang800-import/sys/fs/nfsserver/nfs_nfsdport.c projects/clang800-import/sys/fs/nfsserver/nfs_nfsdserv.c projects/clang800-import/sys/fs/nfsserver/nfs_nfsdsocket.c projects/clang800-import/sys/geom/concat/g_concat.c projects/clang800-import/sys/geom/uzip/g_uzip.c projects/clang800-import/sys/geom/uzip/g_uzip_lzma.c projects/clang800-import/sys/i386/cloudabi32/cloudabi32_sysvec.c projects/clang800-import/sys/i386/i386/elf_machdep.c projects/clang800-import/sys/i386/i386/pmap.c projects/clang800-import/sys/i386/include/pmap_nopae.h projects/clang800-import/sys/i386/include/pmap_pae.h projects/clang800-import/sys/i386/linux/linux_sysvec.c projects/clang800-import/sys/kern/imgact_aout.c projects/clang800-import/sys/kern/imgact_elf.c projects/clang800-import/sys/kern/init_main.c projects/clang800-import/sys/kern/kern_descrip.c projects/clang800-import/sys/kern/subr_bus.c projects/clang800-import/sys/kern/subr_vmem.c projects/clang800-import/sys/kern/uipc_shm.c projects/clang800-import/sys/kern/uipc_socket.c projects/clang800-import/sys/mips/conf/ALFA_HORNET_UB projects/clang800-import/sys/mips/conf/AP121 projects/clang800-import/sys/mips/conf/AP135 projects/clang800-import/sys/mips/conf/AP143 projects/clang800-import/sys/mips/conf/AP91 projects/clang800-import/sys/mips/conf/AP93 projects/clang800-import/sys/mips/conf/AP94 projects/clang800-import/sys/mips/conf/AP96 projects/clang800-import/sys/mips/conf/BCM projects/clang800-import/sys/mips/conf/CARAMBOLA2 projects/clang800-import/sys/mips/conf/DB120 projects/clang800-import/sys/mips/conf/DIR-655A1 projects/clang800-import/sys/mips/conf/DIR-825B1 projects/clang800-import/sys/mips/conf/ENH200 projects/clang800-import/sys/mips/conf/MT7620A_FDT projects/clang800-import/sys/mips/conf/MT7620N_FDT projects/clang800-import/sys/mips/conf/MT7621_FDT projects/clang800-import/sys/mips/conf/MT7628_FDT projects/clang800-import/sys/mips/conf/ONIONOMEGA projects/clang800-import/sys/mips/conf/PB47 projects/clang800-import/sys/mips/conf/PB92 projects/clang800-import/sys/mips/conf/PICOSTATION_M2HP projects/clang800-import/sys/mips/conf/ROCKET_M2HP projects/clang800-import/sys/mips/conf/ROUTERSTATION projects/clang800-import/sys/mips/conf/ROUTERSTATION_MFS projects/clang800-import/sys/mips/conf/RSPRO projects/clang800-import/sys/mips/conf/RSPRO_MFS projects/clang800-import/sys/mips/conf/RSPRO_STANDALONE projects/clang800-import/sys/mips/conf/RT3050_FDT projects/clang800-import/sys/mips/conf/RT3352_FDT projects/clang800-import/sys/mips/conf/RT3883_FDT projects/clang800-import/sys/mips/conf/RT5350_FDT projects/clang800-import/sys/mips/conf/TL-ARCHERC7V2 projects/clang800-import/sys/mips/conf/TL-WDR4300 projects/clang800-import/sys/mips/conf/TL-WR1043NDv2 projects/clang800-import/sys/mips/conf/TL-WR740Nv4 projects/clang800-import/sys/mips/conf/TP-MR3040 projects/clang800-import/sys/mips/conf/TP-WN1043ND projects/clang800-import/sys/mips/conf/WZR-300HP projects/clang800-import/sys/mips/conf/WZR-HPAG300H projects/clang800-import/sys/mips/conf/std.XLP projects/clang800-import/sys/mips/mips/elf_machdep.c projects/clang800-import/sys/mips/mips/freebsd32_machdep.c projects/clang800-import/sys/modules/Makefile projects/clang800-import/sys/modules/geom/geom_uzip/Makefile projects/clang800-import/sys/netinet/sctp_pcb.c projects/clang800-import/sys/netinet/sctp_usrreq.c projects/clang800-import/sys/netinet/tcp_subr.c projects/clang800-import/sys/netpfil/pf/pf_norm.c projects/clang800-import/sys/powerpc/booke/locore.S projects/clang800-import/sys/powerpc/booke/trap_subr.S projects/clang800-import/sys/powerpc/mpc85xx/platform_mpc85xx.c projects/clang800-import/sys/powerpc/powernv/opal.h projects/clang800-import/sys/powerpc/powernv/opal_dev.c projects/clang800-import/sys/powerpc/powernv/opal_i2c.c projects/clang800-import/sys/powerpc/powernv/opal_sensor.c projects/clang800-import/sys/powerpc/powerpc/elf32_machdep.c projects/clang800-import/sys/powerpc/powerpc/elf64_machdep.c projects/clang800-import/sys/powerpc/powerpc/intr_machdep.c projects/clang800-import/sys/powerpc/powerpc/machdep.c projects/clang800-import/sys/riscv/riscv/elf_machdep.c projects/clang800-import/sys/sparc64/sparc64/elf_machdep.c projects/clang800-import/sys/sys/capsicum.h projects/clang800-import/sys/sys/filedesc.h projects/clang800-import/sys/sys/interrupt.h projects/clang800-import/sys/sys/slicer.h projects/clang800-import/sys/sys/sysent.h projects/clang800-import/sys/ufs/ffs/ffs_alloc.c projects/clang800-import/sys/ufs/ffs/ffs_vnops.c projects/clang800-import/sys/ufs/ffs/fs.h projects/clang800-import/sys/vm/vm_kern.c projects/clang800-import/sys/vm/vm_phys.c projects/clang800-import/sys/vm/vnode_pager.c projects/clang800-import/tests/sys/Makefile projects/clang800-import/tests/sys/netipsec/tunnel/utils.subr projects/clang800-import/tests/sys/netpfil/pf/Makefile projects/clang800-import/tests/sys/netpfil/pf/anchor.sh projects/clang800-import/tests/sys/netpfil/pf/forward.sh projects/clang800-import/tests/sys/netpfil/pf/fragmentation.sh projects/clang800-import/tests/sys/netpfil/pf/names.sh projects/clang800-import/tests/sys/netpfil/pf/nat.sh projects/clang800-import/tests/sys/netpfil/pf/pass_block.sh projects/clang800-import/tests/sys/netpfil/pf/pfsync.sh projects/clang800-import/tests/sys/netpfil/pf/rdr.sh projects/clang800-import/tests/sys/netpfil/pf/route_to.sh projects/clang800-import/tests/sys/netpfil/pf/set_skip.sh projects/clang800-import/tests/sys/netpfil/pf/set_tos.sh projects/clang800-import/tests/sys/netpfil/pf/synproxy.sh projects/clang800-import/tests/sys/netpfil/pf/utils.subr projects/clang800-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang800-import/tools/tools/crypto/cryptocheck.c projects/clang800-import/tools/tools/netmap/pkt-gen.c projects/clang800-import/usr.bin/cmp/cmp.c projects/clang800-import/usr.bin/cmp/regular.c projects/clang800-import/usr.bin/cmp/special.c projects/clang800-import/usr.bin/cmp/tests/cmp_test2.sh projects/clang800-import/usr.bin/mt/mt.1 projects/clang800-import/usr.bin/netstat/inet.c projects/clang800-import/usr.bin/patch/common.h projects/clang800-import/usr.bin/patch/patch.c projects/clang800-import/usr.bin/patch/pch.c projects/clang800-import/usr.bin/proccontrol/Makefile projects/clang800-import/usr.bin/truss/syscalls.c projects/clang800-import/usr.sbin/kldxref/Makefile projects/clang800-import/usr.sbin/kldxref/ef_powerpc.c projects/clang800-import/usr.sbin/makefs/ffs.c projects/clang800-import/usr.sbin/rtsold/rtsold.c projects/clang800-import/usr.sbin/syslogd/syslogd.c projects/clang800-import/usr.sbin/sysrc/sysrc.8 Directory Properties: projects/clang800-import/ (props changed) projects/clang800-import/cddl/ (props changed) projects/clang800-import/cddl/contrib/opensolaris/ (props changed) projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/ (props changed) projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/clang800-import/crypto/openssl/ (props changed) projects/clang800-import/sys/cddl/contrib/opensolaris/ (props changed) projects/clang800-import/sys/contrib/xz-embedded/ (props changed) Modified: projects/clang800-import/MAINTAINERS ============================================================================== --- projects/clang800-import/MAINTAINERS Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/MAINTAINERS Mon Mar 4 19:14:32 2019 (r344776) @@ -106,7 +106,12 @@ usr.sbin/bsdconfig dteske Pre-commit phabricator revie usr.sbin/dpv dteske Pre-commit review requested. Keep in sync with libdpv. usr.sbin/pkg pkg@ Please coordinate behavior or flag changes with pkg team. usr.sbin/sysrc dteske Pre-commit phabricator review requested. Keep in sync with bsdconfig(8) sysrc.subr. -vmm(4) tychon, jhb Pre-commit review requested. +vmm(4) tychon, jhb Pre-commit review requested via #bhyve + phabricator group. +libvmmapi tychon, jhb Pre-commit review requested via #bhyve + phabricator group. +usr.sbin/bhyve* tychon, jhb Pre-commit review requested via #bhyve + phabricator group. autofs(5) trasz Pre-commit review recommended. iscsi(4) trasz Pre-commit review recommended. rctl(8) trasz Pre-commit review recommended. Modified: projects/clang800-import/ObsoleteFiles.inc ============================================================================== --- projects/clang800-import/ObsoleteFiles.inc Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/ObsoleteFiles.inc Mon Mar 4 19:14:32 2019 (r344776) @@ -190,9 +190,11 @@ OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt OLD_DIRS+=usr/lib/clang/7.0.1/lib/freebsd OLD_DIRS+=usr/lib/clang/7.0.1/lib OLD_DIRS+=usr/lib/clang/7.0.1 +# 20190227: rename seq.h to seqc.h +OLD_FILES+=usr/include/sys/seq.h # 20190222: libifconfig made INTERNALLIB -OLD_FILES+=/usr/lib/libprivateifconfig.a -OLD_FILES+=/usr/lib/libprivateifconfig_p.a +OLD_FILES+=usr/lib/libprivateifconfig.a +OLD_FILES+=usr/lib/libprivateifconfig_p.a # 20190131: pfil(9) changed OLD_FILES+=usr/share/man/man9/pfil_hook_get.9 OLD_FILES+=usr/share/man/man9/pfil_rlock.9 Modified: projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Mon Mar 4 19:14:32 2019 (r344776) @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 11, 2018 +.Dd February 15, 2018 .Dt ZFS 8 .Os .Sh NAME @@ -184,7 +184,7 @@ .Ar bookmark .Nm .Cm send -.Op Fl DLPRcenpv +.Op Fl DLPRVcenpv .Op Fl i Ar snapshot | Fl I Ar snapshot .Ar snapshot .Nm @@ -194,7 +194,7 @@ .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot .Nm .Cm send -.Op Fl Penv +.Op Fl PVenv .Fl t Ar receive_resume_token .Nm .Cm receive Ns | Ns Cm recv @@ -2607,7 +2607,7 @@ feature. .It Xo .Nm .Cm send -.Op Fl DLPRcenpv +.Op Fl DLPRVcenpv .Op Fl i Ar snapshot | Fl I Ar snapshot .Ar snapshot .Xc @@ -2753,6 +2753,8 @@ Print machine-parsable verbose information about the s .It Fl v, -verbose Print verbose information about the stream package generated. This information includes a per-second report of how much data has been sent. +.It Fl V +Set the process title to a per-second report of how much data has been sent. .El .Pp The format of the stream is committed. You will be able to receive your streams Modified: projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Mon Mar 4 19:14:32 2019 (r344776) @@ -3813,7 +3813,7 @@ zfs_do_send(int argc, char **argv) }; /* check options */ - while ((c = getopt_long(argc, argv, ":i:I:RbDpvnPLet:c", long_options, + while ((c = getopt_long(argc, argv, ":i:I:RbDpVvnPLet:c", long_options, NULL)) != -1) { switch (c) { case 'i': @@ -3837,6 +3837,10 @@ zfs_do_send(int argc, char **argv) flags.parsable = B_TRUE; flags.verbose = B_TRUE; break; + case 'V': + flags.progress = B_TRUE; + flags.progressastitle = B_TRUE; + break; case 'v': if (flags.verbose) extraverbose = B_TRUE; @@ -5812,8 +5816,13 @@ zfs_do_holds(int argc, char **argv) #define CHECK_SPINNER 30 #define SPINNER_TIME 3 /* seconds */ -#define MOUNT_TIME 5 /* seconds */ +#define MOUNT_TIME 1 /* seconds */ +typedef struct get_all_state { + boolean_t ga_verbose; + get_all_cb_t *ga_cbp; +} get_all_state_t; + static int get_one_dataset(zfs_handle_t *zhp, void *data) { @@ -5821,10 +5830,10 @@ get_one_dataset(zfs_handle_t *zhp, void *data) static int spinval = 0; static int spincheck = 0; static time_t last_spin_time = (time_t)0; - get_all_cb_t *cbp = data; + get_all_state_t *state = data; zfs_type_t type = zfs_get_type(zhp); - if (cbp->cb_verbose) { + if (state->ga_verbose) { if (--spincheck < 0) { time_t now = time(NULL); if (last_spin_time + SPINNER_TIME < now) { @@ -5850,26 +5859,24 @@ get_one_dataset(zfs_handle_t *zhp, void *data) zfs_close(zhp); return (0); } - libzfs_add_handle(cbp, zhp); - assert(cbp->cb_used <= cbp->cb_alloc); + libzfs_add_handle(state->ga_cbp, zhp); + assert(state->ga_cbp->cb_used <= state->ga_cbp->cb_alloc); return (0); } static void -get_all_datasets(zfs_handle_t ***dslist, size_t *count, boolean_t verbose) +get_all_datasets(get_all_cb_t *cbp, boolean_t verbose) { - get_all_cb_t cb = { 0 }; - cb.cb_verbose = verbose; - cb.cb_getone = get_one_dataset; + get_all_state_t state = { + .ga_verbose = verbose, + .ga_cbp = cbp + }; if (verbose) set_progress_header(gettext("Reading ZFS config")); - (void) zfs_iter_root(g_zfs, get_one_dataset, &cb); + (void) zfs_iter_root(g_zfs, get_one_dataset, &state); - *dslist = cb.cb_handles; - *count = cb.cb_used; - if (verbose) finish_progress(gettext("done.")); } @@ -5879,9 +5886,20 @@ get_all_datasets(zfs_handle_t ***dslist, size_t *count * similar, we have a common function with an extra parameter to determine which * mode we are using. */ -#define OP_SHARE 0x1 -#define OP_MOUNT 0x2 +typedef enum { OP_SHARE, OP_MOUNT } share_mount_op_t; +typedef struct share_mount_state { + share_mount_op_t sm_op; + boolean_t sm_verbose; + int sm_flags; + char *sm_options; + char *sm_proto; /* only valid for OP_SHARE */ + pthread_mutex_t sm_lock; /* protects the remaining fields */ + uint_t sm_total; /* number of filesystems to process */ + uint_t sm_done; /* number of filesystems processed */ + int sm_status; /* -1 if any of the share/mount operations failed */ +} share_mount_state_t; + /* * Share or mount a dataset. */ @@ -6101,9 +6119,6 @@ report_mount_progress(int current, int total) time_t now = time(NULL); char info[32]; - /* report 1..n instead of 0..n-1 */ - ++current; - /* display header if we're here for the first time */ if (current == 1) { set_progress_header(gettext("Mounting ZFS filesystems")); @@ -6122,6 +6137,29 @@ report_mount_progress(int current, int total) update_progress(info); } +/* + * zfs_foreach_mountpoint() callback that mounts or shares on filesystem and + * updates the progress meter + */ +static int +share_mount_one_cb(zfs_handle_t *zhp, void *arg) +{ + share_mount_state_t *sms = arg; + int ret; + + ret = share_mount_one(zhp, sms->sm_op, sms->sm_flags, sms->sm_proto, + B_FALSE, sms->sm_options); + + pthread_mutex_lock(&sms->sm_lock); + if (ret != 0) + sms->sm_status = ret; + sms->sm_done++; + if (sms->sm_verbose) + report_mount_progress(sms->sm_done, sms->sm_total); + pthread_mutex_unlock(&sms->sm_lock); + return (ret); +} + static void append_options(char *mntopts, char *newopts) { @@ -6194,8 +6232,6 @@ share_mount(int op, int argc, char **argv) /* check number of arguments */ if (do_all) { - zfs_handle_t **dslist = NULL; - size_t i, count = 0; char *protocol = NULL; if (op == OP_SHARE && argc > 0) { @@ -6216,35 +6252,48 @@ share_mount(int op, int argc, char **argv) } start_progress_timer(); - get_all_datasets(&dslist, &count, verbose); + get_all_cb_t cb = { 0 }; + get_all_datasets(&cb, verbose); - if (count == 0) + if (cb.cb_used == 0) { + if (options != NULL) + free(options); return (0); + } - qsort(dslist, count, sizeof (void *), libzfs_dataset_cmp); #ifdef illumos - sa_init_selective_arg_t sharearg; - sharearg.zhandle_arr = dslist; - sharearg.zhandle_len = count; - if ((ret = zfs_init_libshare_arg(zfs_get_handle(dslist[0]), - SA_INIT_SHARE_API_SELECTIVE, &sharearg)) != SA_OK) { - (void) fprintf(stderr, - gettext("Could not initialize libshare, %d"), ret); - return (ret); + if (op == OP_SHARE) { + sa_init_selective_arg_t sharearg; + sharearg.zhandle_arr = cb.cb_handles; + sharearg.zhandle_len = cb.cb_used; + if ((ret = zfs_init_libshare_arg(g_zfs, + SA_INIT_SHARE_API_SELECTIVE, &sharearg)) != SA_OK) { + (void) fprintf(stderr, gettext( + "Could not initialize libshare, %d"), ret); + return (ret); + } } #endif + share_mount_state_t share_mount_state = { 0 }; + share_mount_state.sm_op = op; + share_mount_state.sm_verbose = verbose; + share_mount_state.sm_flags = flags; + share_mount_state.sm_options = options; + share_mount_state.sm_proto = protocol; + share_mount_state.sm_total = cb.cb_used; + pthread_mutex_init(&share_mount_state.sm_lock, NULL); - for (i = 0; i < count; i++) { - if (verbose) - report_mount_progress(i, count); + /* + * libshare isn't mt-safe, so only do the operation in parallel + * if we're mounting. + */ + zfs_foreach_mountpoint(g_zfs, cb.cb_handles, cb.cb_used, + share_mount_one_cb, &share_mount_state, op == OP_MOUNT); + ret = share_mount_state.sm_status; - if (share_mount_one(dslist[i], op, flags, protocol, - B_FALSE, options) != 0) - ret = 1; - zfs_close(dslist[i]); - } - - free(dslist); + for (int i = 0; i < cb.cb_used; i++) + zfs_close(cb.cb_handles[i]); + free(cb.cb_handles); } else if (argc == 0) { struct mnttab entry; Modified: projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Mar 4 19:14:32 2019 (r344776) @@ -579,12 +579,12 @@ typedef struct get_all_cb { zfs_handle_t **cb_handles; size_t cb_alloc; size_t cb_used; - boolean_t cb_verbose; - int (*cb_getone)(zfs_handle_t *, void *); } get_all_cb_t; +void zfs_foreach_mountpoint(libzfs_handle_t *, zfs_handle_t **, size_t, + zfs_iter_f, void*, boolean_t); + void libzfs_add_handle(get_all_cb_t *, zfs_handle_t *); -int libzfs_dataset_cmp(const void *, const void *); /* * Functions to create and destroy datasets. @@ -651,6 +651,9 @@ typedef struct sendflags { /* compressed WRITE records are permitted */ boolean_t compress; + + /* show progress as process title(ie. -V) */ + boolean_t progressastitle; } sendflags_t; typedef boolean_t (snapfilter_cb_t)(zfs_handle_t *, void *); Modified: projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Mar 4 19:14:32 2019 (r344776) @@ -799,6 +799,7 @@ libzfs_mnttab_cache_compare(const void *arg1, const vo void libzfs_mnttab_init(libzfs_handle_t *hdl) { + pthread_mutex_init(&hdl->libzfs_mnttab_cache_lock, NULL); assert(avl_numnodes(&hdl->libzfs_mnttab_cache) == 0); avl_create(&hdl->libzfs_mnttab_cache, libzfs_mnttab_cache_compare, sizeof (mnttab_node_t), offsetof(mnttab_node_t, mtn_node)); @@ -839,6 +840,7 @@ libzfs_mnttab_fini(libzfs_handle_t *hdl) free(mtn); } avl_destroy(&hdl->libzfs_mnttab_cache); + (void) pthread_mutex_destroy(&hdl->libzfs_mnttab_cache_lock); } void @@ -853,6 +855,7 @@ libzfs_mnttab_find(libzfs_handle_t *hdl, const char *f { mnttab_node_t find; mnttab_node_t *mtn; + int ret = ENOENT; if (!hdl->libzfs_mnttab_enable) { struct mnttab srch = { 0 }; @@ -868,6 +871,7 @@ libzfs_mnttab_find(libzfs_handle_t *hdl, const char *f return (ENOENT); } + pthread_mutex_lock(&hdl->libzfs_mnttab_cache_lock); if (avl_numnodes(&hdl->libzfs_mnttab_cache) == 0) libzfs_mnttab_update(hdl); @@ -875,9 +879,10 @@ libzfs_mnttab_find(libzfs_handle_t *hdl, const char *f mtn = avl_find(&hdl->libzfs_mnttab_cache, &find, NULL); if (mtn) { *entry = mtn->mtn_mt; - return (0); + ret = 0; } - return (ENOENT); + pthread_mutex_unlock(&hdl->libzfs_mnttab_cache_lock); + return (ret); } void @@ -886,15 +891,17 @@ libzfs_mnttab_add(libzfs_handle_t *hdl, const char *sp { mnttab_node_t *mtn; - if (avl_numnodes(&hdl->libzfs_mnttab_cache) == 0) - return; - mtn = zfs_alloc(hdl, sizeof (mnttab_node_t)); - mtn->mtn_mt.mnt_special = zfs_strdup(hdl, special); - mtn->mtn_mt.mnt_mountp = zfs_strdup(hdl, mountp); - mtn->mtn_mt.mnt_fstype = zfs_strdup(hdl, MNTTYPE_ZFS); - mtn->mtn_mt.mnt_mntopts = zfs_strdup(hdl, mntopts); - avl_add(&hdl->libzfs_mnttab_cache, mtn); -} + pthread_mutex_lock(&hdl->libzfs_mnttab_cache_lock); + if (avl_numnodes(&hdl->libzfs_mnttab_cache) == 0) { + mtn = zfs_alloc(hdl, sizeof (mnttab_node_t)); + mtn->mtn_mt.mnt_special = zfs_strdup(hdl, special); + mtn->mtn_mt.mnt_mountp = zfs_strdup(hdl, mountp); + mtn->mtn_mt.mnt_fstype = zfs_strdup(hdl, MNTTYPE_ZFS); + mtn->mtn_mt.mnt_mntopts = zfs_strdup(hdl, mntopts); + avl_add(&hdl->libzfs_mnttab_cache, mtn); + } + pthread_mutex_unlock(&hdl->libzfs_mnttab_cache_lock); +} void libzfs_mnttab_remove(libzfs_handle_t *hdl, const char *fsname) @@ -902,6 +909,7 @@ libzfs_mnttab_remove(libzfs_handle_t *hdl, const char mnttab_node_t find; mnttab_node_t *ret; + pthread_mutex_lock(&hdl->libzfs_mnttab_cache_lock); find.mtn_mt.mnt_special = (char *)fsname; if ((ret = avl_find(&hdl->libzfs_mnttab_cache, (void *)&find, NULL)) != NULL) { @@ -912,6 +920,7 @@ libzfs_mnttab_remove(libzfs_handle_t *hdl, const char free(ret->mtn_mt.mnt_mntopts); free(ret); } + pthread_mutex_unlock(&hdl->libzfs_mnttab_cache_lock); } int Modified: projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h Mon Mar 4 19:14:32 2019 (r344776) @@ -22,7 +22,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011 Pawel Jakub Dawidek. All rights reserved. - * Copyright (c) 2011, 2016 by Delphix. All rights reserved. + * Copyright (c) 2011, 2017 by Delphix. All rights reserved. * Copyright (c) 2013 Martin Matuska <mm@FreeBSD.org>. All rights reserved. */ @@ -73,6 +73,13 @@ struct libzfs_handle { int libzfs_storeerr; /* stuff error messages into buffer */ void *libzfs_sharehdl; /* libshare handle */ boolean_t libzfs_mnttab_enable; + /* + * We need a lock to handle the case where parallel mount + * threads are populating the mnttab cache simultaneously. The + * lock only protects the integrity of the avl tree, and does + * not protect the contents of the mnttab entries themselves. + */ + pthread_mutex_t libzfs_mnttab_cache_lock; avl_tree_t libzfs_mnttab_cache; int libzfs_pool_iter; libzfs_fru_t **libzfs_fru_hash; Modified: projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Mon Mar 4 19:14:32 2019 (r344776) @@ -26,6 +26,7 @@ * Copyright 2016 Igor Kozhukhov <ikozhukhov@gmail.com> * Copyright 2017 Joyent, Inc. * Copyright 2017 RackTop Systems. + * Copyright 2018 OmniOS Community Edition (OmniOSce) Association. */ /* @@ -34,25 +35,25 @@ * they are used by mount and unmount and when changing a filesystem's * mountpoint. * - * zfs_is_mounted() - * zfs_mount() - * zfs_unmount() - * zfs_unmountall() + * zfs_is_mounted() + * zfs_mount() + * zfs_unmount() + * zfs_unmountall() * * This file also contains the functions used to manage sharing filesystems via * NFS and iSCSI: * - * zfs_is_shared() - * zfs_share() - * zfs_unshare() + * zfs_is_shared() + * zfs_share() + * zfs_unshare() * - * zfs_is_shared_nfs() - * zfs_is_shared_smb() - * zfs_share_proto() - * zfs_shareall(); - * zfs_unshare_nfs() - * zfs_unshare_smb() - * zfs_unshareall_nfs() + * zfs_is_shared_nfs() + * zfs_is_shared_smb() + * zfs_share_proto() + * zfs_shareall(); + * zfs_unshare_nfs() + * zfs_unshare_smb() + * zfs_unshareall_nfs() * zfs_unshareall_smb() * zfs_unshareall() * zfs_unshareall_bypath() @@ -60,8 +61,8 @@ * The following functions are available for pool consumers, and will * mount/unmount and share/unshare all datasets within pool: * - * zpool_enable_datasets() - * zpool_disable_datasets() + * zpool_enable_datasets() + * zpool_disable_datasets() */ #include <dirent.h> @@ -83,10 +84,14 @@ #include <libzfs.h> #include "libzfs_impl.h" +#include <thread_pool.h> #include <libshare.h> #define MAXISALEN 257 /* based on sysinfo(2) man page */ +static int mount_tp_nthr = 512; /* tpool threads for multi-threaded mounting */ + +static void zfs_mount_task(void *); static int zfs_share_proto(zfs_handle_t *, zfs_share_proto_t *); zfs_share_type_t zfs_is_shared_proto(zfs_handle_t *, char **, zfs_share_proto_t); @@ -1134,25 +1139,32 @@ remove_mountpoint(zfs_handle_t *zhp) } } +/* + * Add the given zfs handle to the cb_handles array, dynamically reallocating + * the array if it is out of space + */ void libzfs_add_handle(get_all_cb_t *cbp, zfs_handle_t *zhp) { if (cbp->cb_alloc == cbp->cb_used) { size_t newsz; - void *ptr; + zfs_handle_t **newhandles; - newsz = cbp->cb_alloc ? cbp->cb_alloc * 2 : 64; - ptr = zfs_realloc(zhp->zfs_hdl, - cbp->cb_handles, cbp->cb_alloc * sizeof (void *), - newsz * sizeof (void *)); - cbp->cb_handles = ptr; + newsz = cbp->cb_alloc != 0 ? cbp->cb_alloc * 2 : 64; + newhandles = zfs_realloc(zhp->zfs_hdl, + cbp->cb_handles, cbp->cb_alloc * sizeof (zfs_handle_t *), + newsz * sizeof (zfs_handle_t *)); + cbp->cb_handles = newhandles; cbp->cb_alloc = newsz; } cbp->cb_handles[cbp->cb_used++] = zhp; } +/* + * Recursive helper function used during file system enumeration + */ static int -mount_cb(zfs_handle_t *zhp, void *data) +zfs_iter_cb(zfs_handle_t *zhp, void *data) { get_all_cb_t *cbp = data; @@ -1178,104 +1190,362 @@ mount_cb(zfs_handle_t *zhp, void *data) } libzfs_add_handle(cbp, zhp); - if (zfs_iter_filesystems(zhp, mount_cb, cbp) != 0) { + if (zfs_iter_filesystems(zhp, zfs_iter_cb, cbp) != 0) { zfs_close(zhp); return (-1); } return (0); } -int -libzfs_dataset_cmp(const void *a, const void *b) +/* + * Sort comparator that compares two mountpoint paths. We sort these paths so + * that subdirectories immediately follow their parents. This means that we + * effectively treat the '/' character as the lowest value non-nul char. + * Since filesystems from non-global zones can have the same mountpoint + * as other filesystems, the comparator sorts global zone filesystems to + * the top of the list. This means that the global zone will traverse the + * filesystem list in the correct order and can stop when it sees the + * first zoned filesystem. In a non-global zone, only the delegated + * filesystems are seen. + * + * An example sorted list using this comparator would look like: + * + * /foo + * /foo/bar + * /foo/bar/baz + * /foo/baz + * /foo.bar + * /foo (NGZ1) + * /foo (NGZ2) + * + * The mount code depend on this ordering to deterministically iterate + * over filesystems in order to spawn parallel mount tasks. + */ +static int +mountpoint_cmp(const void *arga, const void *argb) { - zfs_handle_t **za = (zfs_handle_t **)a; - zfs_handle_t **zb = (zfs_handle_t **)b; + zfs_handle_t *const *zap = arga; + zfs_handle_t *za = *zap; + zfs_handle_t *const *zbp = argb; + zfs_handle_t *zb = *zbp; char mounta[MAXPATHLEN]; char mountb[MAXPATHLEN]; + const char *a = mounta; + const char *b = mountb; boolean_t gota, gotb; + uint64_t zoneda, zonedb; - if ((gota = (zfs_get_type(*za) == ZFS_TYPE_FILESYSTEM)) != 0) - verify(zfs_prop_get(*za, ZFS_PROP_MOUNTPOINT, mounta, + zoneda = zfs_prop_get_int(za, ZFS_PROP_ZONED); + zonedb = zfs_prop_get_int(zb, ZFS_PROP_ZONED); + if (zoneda && !zonedb) + return (1); + if (!zoneda && zonedb) + return (-1); + gota = (zfs_get_type(za) == ZFS_TYPE_FILESYSTEM); + if (gota) + verify(zfs_prop_get(za, ZFS_PROP_MOUNTPOINT, mounta, sizeof (mounta), NULL, NULL, 0, B_FALSE) == 0); - if ((gotb = (zfs_get_type(*zb) == ZFS_TYPE_FILESYSTEM)) != 0) - verify(zfs_prop_get(*zb, ZFS_PROP_MOUNTPOINT, mountb, + gotb = (zfs_get_type(zb) == ZFS_TYPE_FILESYSTEM); + if (gotb) + verify(zfs_prop_get(zb, ZFS_PROP_MOUNTPOINT, mountb, sizeof (mountb), NULL, NULL, 0, B_FALSE) == 0); - if (gota && gotb) - return (strcmp(mounta, mountb)); + if (gota && gotb) { + while (*a != '\0' && (*a == *b)) { + a++; + b++; + } + if (*a == *b) + return (0); + if (*a == '\0') + return (-1); + if (*b == '\0') + return (1); + if (*a == '/') + return (-1); + if (*b == '/') + return (1); + return (*a < *b ? -1 : *a > *b); + } if (gota) return (-1); if (gotb) return (1); - return (strcmp(zfs_get_name(a), zfs_get_name(b))); + /* + * If neither filesystem has a mountpoint, revert to sorting by + * datset name. + */ + return (strcmp(zfs_get_name(za), zfs_get_name(zb))); } /* + * Reutrn true if path2 is a child of path1 + */ +static boolean_t +libzfs_path_contains(const char *path1, const char *path2) +{ + return (strstr(path2, path1) == path2 && path2[strlen(path1)] == '/'); +} + + +static int +non_descendant_idx(zfs_handle_t **handles, size_t num_handles, int idx) +{ + char parent[ZFS_MAXPROPLEN]; + char child[ZFS_MAXPROPLEN]; + int i; + + verify(zfs_prop_get(handles[idx], ZFS_PROP_MOUNTPOINT, parent, + sizeof (parent), NULL, NULL, 0, B_FALSE) == 0); + + for (i = idx + 1; i < num_handles; i++) { + verify(zfs_prop_get(handles[i], ZFS_PROP_MOUNTPOINT, child, + sizeof (child), NULL, NULL, 0, B_FALSE) == 0); + if (!libzfs_path_contains(parent, child)) + break; + } + return (i); +} + +typedef struct mnt_param { + libzfs_handle_t *mnt_hdl; + tpool_t *mnt_tp; + zfs_handle_t **mnt_zhps; /* filesystems to mount */ + size_t mnt_num_handles; + int mnt_idx; /* Index of selected entry to mount */ + zfs_iter_f mnt_func; + void *mnt_data; +} mnt_param_t; + +/* + * Allocate and populate the parameter struct for mount function, and + * schedule mounting of the entry selected by idx. + */ +static void +zfs_dispatch_mount(libzfs_handle_t *hdl, zfs_handle_t **handles, + size_t num_handles, int idx, zfs_iter_f func, void *data, tpool_t *tp) +{ + mnt_param_t *mnt_param = zfs_alloc(hdl, sizeof (mnt_param_t)); + + mnt_param->mnt_hdl = hdl; + mnt_param->mnt_tp = tp; + mnt_param->mnt_zhps = handles; + mnt_param->mnt_num_handles = num_handles; + mnt_param->mnt_idx = idx; + mnt_param->mnt_func = func; + mnt_param->mnt_data = data; + + (void) tpool_dispatch(tp, zfs_mount_task, (void*)mnt_param); +} + +/* + * This is the structure used to keep state of mounting or sharing operations + * during a call to zpool_enable_datasets(). + */ +typedef struct mount_state { + /* + * ms_mntstatus is set to -1 if any mount fails. While multiple threads + * could update this variable concurrently, no synchronization is + * needed as it's only ever set to -1. + */ + int ms_mntstatus; + int ms_mntflags; + const char *ms_mntopts; +} mount_state_t; + +static int +zfs_mount_one(zfs_handle_t *zhp, void *arg) +{ + mount_state_t *ms = arg; + int ret = 0; + + if (zfs_mount(zhp, ms->ms_mntopts, ms->ms_mntflags) != 0) + ret = ms->ms_mntstatus = -1; + return (ret); +} + +static int +zfs_share_one(zfs_handle_t *zhp, void *arg) +{ + mount_state_t *ms = arg; + int ret = 0; + + if (zfs_share(zhp) != 0) + ret = ms->ms_mntstatus = -1; + return (ret); +} + +/* + * Thread pool function to mount one file system. On completion, it finds and + * schedules its children to be mounted. This depends on the sorting done in + * zfs_foreach_mountpoint(). Note that the degenerate case (chain of entries + * each descending from the previous) will have no parallelism since we always + * have to wait for the parent to finish mounting before we can schedule + * its children. + */ +static void +zfs_mount_task(void *arg) +{ + mnt_param_t *mp = arg; + int idx = mp->mnt_idx; + zfs_handle_t **handles = mp->mnt_zhps; + size_t num_handles = mp->mnt_num_handles; + char mountpoint[ZFS_MAXPROPLEN]; + + verify(zfs_prop_get(handles[idx], ZFS_PROP_MOUNTPOINT, mountpoint, + sizeof (mountpoint), NULL, NULL, 0, B_FALSE) == 0); + + if (mp->mnt_func(handles[idx], mp->mnt_data) != 0) + return; + + /* + * We dispatch tasks to mount filesystems with mountpoints underneath + * this one. We do this by dispatching the next filesystem with a + * descendant mountpoint of the one we just mounted, then skip all of + * its descendants, dispatch the next descendant mountpoint, and so on. + * The non_descendant_idx() function skips over filesystems that are + * descendants of the filesystem we just dispatched. + */ + for (int i = idx + 1; i < num_handles; + i = non_descendant_idx(handles, num_handles, i)) { + char child[ZFS_MAXPROPLEN]; + verify(zfs_prop_get(handles[i], ZFS_PROP_MOUNTPOINT, + child, sizeof (child), NULL, NULL, 0, B_FALSE) == 0); + + if (!libzfs_path_contains(mountpoint, child)) + break; /* not a descendant, return */ + zfs_dispatch_mount(mp->mnt_hdl, handles, num_handles, i, + mp->mnt_func, mp->mnt_data, mp->mnt_tp); + } + free(mp); +} + +/* + * Issue the func callback for each ZFS handle contained in the handles + * array. This function is used to mount all datasets, and so this function + * guarantees that filesystems for parent mountpoints are called before their + * children. As such, before issuing any callbacks, we first sort the array + * of handles by mountpoint. + * + * Callbacks are issued in one of two ways: + * + * 1. Sequentially: If the parallel argument is B_FALSE or the ZFS_SERIAL_MOUNT + * environment variable is set, then we issue callbacks sequentially. + * + * 2. In parallel: If the parallel argument is B_TRUE and the ZFS_SERIAL_MOUNT + * environment variable is not set, then we use a tpool to dispatch threads + * to mount filesystems in parallel. This function dispatches tasks to mount + * the filesystems at the top-level mountpoints, and these tasks in turn + * are responsible for recursively mounting filesystems in their children + * mountpoints. + */ +void +zfs_foreach_mountpoint(libzfs_handle_t *hdl, zfs_handle_t **handles, + size_t num_handles, zfs_iter_f func, void *data, boolean_t parallel) +{ + zoneid_t zoneid = getzoneid(); + + /* + * The ZFS_SERIAL_MOUNT environment variable is an undocumented + * variable that can be used as a convenience to do a/b comparison + * of serial vs. parallel mounting. + */ + boolean_t serial_mount = !parallel || + (getenv("ZFS_SERIAL_MOUNT") != NULL); + + /* + * Sort the datasets by mountpoint. See mountpoint_cmp for details + * of how these are sorted. + */ + qsort(handles, num_handles, sizeof (zfs_handle_t *), mountpoint_cmp); + + if (serial_mount) { + for (int i = 0; i < num_handles; i++) { + func(handles[i], data); + } + return; + } + + /* + * Issue the callback function for each dataset using a parallel + * algorithm that uses a thread pool to manage threads. + */ + tpool_t *tp = tpool_create(1, mount_tp_nthr, 0, NULL); + + /* + * There may be multiple "top level" mountpoints outside of the pool's + * root mountpoint, e.g.: /foo /bar. Dispatch a mount task for each of + * these. + */ + for (int i = 0; i < num_handles; + i = non_descendant_idx(handles, num_handles, i)) { + /* + * Since the mountpoints have been sorted so that the zoned + * filesystems are at the end, a zoned filesystem seen from + * the global zone means that we're done. + */ + if (zoneid == GLOBAL_ZONEID && + zfs_prop_get_int(handles[i], ZFS_PROP_ZONED)) + break; + zfs_dispatch_mount(hdl, handles, num_handles, i, func, data, + tp); + } + + tpool_wait(tp); /* wait for all scheduled mounts to complete */ + tpool_destroy(tp); +} + +/* * Mount and share all datasets within the given pool. This assumes that no - * datasets within the pool are currently mounted. Because users can create - * complicated nested hierarchies of mountpoints, we first gather all the - * datasets and mountpoints within the pool, and sort them by mountpoint. Once - * we have the list of all filesystems, we iterate over them in order and mount - * and/or share each one. + * datasets within the pool are currently mounted. */ #pragma weak zpool_mount_datasets = zpool_enable_datasets int zpool_enable_datasets(zpool_handle_t *zhp, const char *mntopts, int flags) { get_all_cb_t cb = { 0 }; - libzfs_handle_t *hdl = zhp->zpool_hdl; + mount_state_t ms = { 0 }; zfs_handle_t *zfsp; - int i, ret = -1; - int *good; + int ret = 0; - /* - * Gather all non-snap datasets within the pool. - */ - if ((zfsp = zfs_open(hdl, zhp->zpool_name, ZFS_TYPE_DATASET)) == NULL) + if ((zfsp = zfs_open(zhp->zpool_hdl, zhp->zpool_name, + ZFS_TYPE_DATASET)) == NULL) goto out; - libzfs_add_handle(&cb, zfsp); - if (zfs_iter_filesystems(zfsp, mount_cb, &cb) != 0) - goto out; /* - * Sort the datasets by mountpoint. + * Gather all non-snapshot datasets within the pool. Start by adding + * the root filesystem for this pool to the list, and then iterate + * over all child filesystems. */ - qsort(cb.cb_handles, cb.cb_used, sizeof (void *), - libzfs_dataset_cmp); + libzfs_add_handle(&cb, zfsp); + if (zfs_iter_filesystems(zfsp, zfs_iter_cb, &cb) != 0) + goto out; /* - * And mount all the datasets, keeping track of which ones - * succeeded or failed. + * Mount all filesystems */ - if ((good = zfs_alloc(zhp->zpool_hdl, - cb.cb_used * sizeof (int))) == NULL) - goto out; + ms.ms_mntopts = mntopts; + ms.ms_mntflags = flags; + zfs_foreach_mountpoint(zhp->zpool_hdl, cb.cb_handles, cb.cb_used, + zfs_mount_one, &ms, B_TRUE); + if (ms.ms_mntstatus != 0) + ret = ms.ms_mntstatus; - ret = 0; - for (i = 0; i < cb.cb_used; i++) { - if (zfs_mount(cb.cb_handles[i], mntopts, flags) != 0) - ret = -1; - else - good[i] = 1; - } - /* - * Then share all the ones that need to be shared. This needs - * to be a separate pass in order to avoid excessive reloading - * of the configuration. Good should never be NULL since - * zfs_alloc is supposed to exit if memory isn't available. + * Share all filesystems that need to be shared. This needs to be + * a separate pass because libshare is not mt-safe, and so we need + * to share serially. */ - for (i = 0; i < cb.cb_used; i++) { - if (good[i] && zfs_share(cb.cb_handles[i]) != 0) - ret = -1; - } + ms.ms_mntstatus = 0; + zfs_foreach_mountpoint(zhp->zpool_hdl, cb.cb_handles, cb.cb_used, + zfs_share_one, &ms, B_FALSE); + if (ms.ms_mntstatus != 0) + ret = ms.ms_mntstatus; - free(good); - out: - for (i = 0; i < cb.cb_used; i++) + for (int i = 0; i < cb.cb_used; i++) zfs_close(cb.cb_handles[i]); free(cb.cb_handles); Modified: projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Mon Mar 4 19:10:22 2019 (r344775) +++ projects/clang800-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Mon Mar 4 19:14:32 2019 (r344776) @@ -85,6 +85,8 @@ typedef struct progress_arg { zfs_handle_t *pa_zhp; int pa_fd; boolean_t pa_parsable; + boolean_t pa_astitle; + uint64_t pa_size; } progress_arg_t; typedef struct dataref { @@ -930,6 +932,7 @@ typedef struct send_dump_data { uint64_t prevsnap_obj; boolean_t seenfrom, seento, replicate, doall, fromorigin; boolean_t verbose, dryrun, parsable, progress, embed_data, std_out; + boolean_t progressastitle; boolean_t large_block, compress; int outfd; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201903041914.x24JEY2d007984>