Index: stand/libsa/zfs/Makefile.inc =================================================================== --- stand/libsa/zfs/Makefile.inc +++ stand/libsa/zfs/Makefile.inc @@ -6,8 +6,9 @@ .PATH: ${OZFS}/module/zstd/lib/common .PATH: ${OZFS}/module/zstd/lib/compress .PATH: ${OZFS}/module/zstd/lib/decompress +.PATH: ${OZFS}/module/icp/algs/blake3 ZFSSRC= zfs.c nvlist.c skein.c skein_block.c list.c -ZFSSRC+= zstd_shim.c +ZFSSRC+= zstd_shim.c blake3.c blake3_generic.c blake3_impl.c ZFSSRC+= entropy_common.c error_private.c ZFSSRC+= fse_compress.c fse_decompress.c hist.c ZFSSRC+= huf_compress.c huf_decompress.c pool.c xxhash.c @@ -32,6 +33,9 @@ CFLAGS.$i+= -include ${ZFSOSINC}/spl/sys/ccompile.h .endfor +CFLAGS_EARLY.blake3.c+= ${ZFS_EARLY} +CFLAGS_EARLY.blake3_generic.c+= ${ZFS_EARLY} +CFLAGS_EARLY.blake3_impl.c+= ${ZFS_EARLY} CFLAGS_EARLY.list.c+= ${ZFS_EARLY} CFLAGS_EARLY.zstd_shim.c+= ${ZFS_EARLY} Index: stand/libsa/zfs/zfsimpl.c =================================================================== --- stand/libsa/zfs/zfsimpl.c +++ stand/libsa/zfs/zfsimpl.c @@ -140,6 +140,7 @@ "org.freebsd:zstd_compress", "com.delphix:bookmark_written", "com.delphix:head_errlog", + "org.openzfs:blake3", NULL }; Index: stand/libsa/zfs/zstd_shim.c =================================================================== --- stand/libsa/zfs/zstd_shim.c +++ stand/libsa/zfs/zstd_shim.c @@ -35,7 +35,6 @@ */ #define ZFS_MODULE_PARAM_ARGS void -typedef int boolean_t; /* This one may be tough to get rid of */ /* TODO: openzfs/include/sys/uio_impl.h must not be included */ #ifndef _SYS_UIO_IMPL_H Index: sys/cddl/boot/zfs/zfsimpl.h =================================================================== --- sys/cddl/boot/zfs/zfsimpl.h +++ sys/cddl/boot/zfs/zfsimpl.h @@ -602,6 +602,7 @@ ZIO_CHECKSUM_SHA512, ZIO_CHECKSUM_SKEIN, ZIO_CHECKSUM_EDONR, + ZIO_CHECKSUM_BLAKE3, ZIO_CHECKSUM_FUNCTIONS }; Index: sys/cddl/boot/zfs/zfssubr.c =================================================================== --- sys/cddl/boot/zfs/zfssubr.c +++ sys/cddl/boot/zfs/zfssubr.c @@ -102,6 +102,7 @@ #include "blkptr.c" #include "fletcher.c" +#include "blake3_zfs.c" #include "sha256.c" #include "skein_zfs.c" @@ -140,7 +141,11 @@ ZCHECKSUM_FLAG_SALTED | ZCHECKSUM_FLAG_NOPWRITE, "skein"}, /* no edonr for now */ {{NULL, NULL}, NULL, NULL, ZCHECKSUM_FLAG_METADATA | - ZCHECKSUM_FLAG_SALTED | ZCHECKSUM_FLAG_NOPWRITE, "edonr"} + ZCHECKSUM_FLAG_SALTED | ZCHECKSUM_FLAG_NOPWRITE, "edonr"}, + {{zio_checksum_blake3_native, zio_checksum_blake3_byteswap}, + zio_checksum_blake3_tmpl_init, zio_checksum_blake3_tmpl_free, + ZCHECKSUM_FLAG_METADATA | ZCHECKSUM_FLAG_DEDUP | + ZCHECKSUM_FLAG_SALTED | ZCHECKSUM_FLAG_NOPWRITE, "blake3"} }; /* Index: sys/contrib/openzfs/include/os/freebsd/spl/sys/types.h =================================================================== --- sys/contrib/openzfs/include/os/freebsd/spl/sys/types.h +++ sys/contrib/openzfs/include/os/freebsd/spl/sys/types.h @@ -78,9 +78,6 @@ typedef mode_t o_mode_t; typedef uint64_t pgcnt_t; -#define B_FALSE 0 -#define B_TRUE 1 - typedef short index_t; typedef off_t offset_t; #ifndef _PTRDIFF_T_DECLARED @@ -90,14 +87,11 @@ typedef int64_t rlim64_t; typedef int major_t; -#else -#ifdef NEED_SOLARIS_BOOLEAN #if defined(__XOPEN_OR_POSIX) typedef enum { _B_FALSE, _B_TRUE } boolean_t; #else typedef enum { B_FALSE, B_TRUE } boolean_t; #endif /* defined(__XOPEN_OR_POSIX) */ -#endif typedef u_longlong_t u_offset_t; typedef u_longlong_t len_t; Index: sys/contrib/openzfs/include/sys/blake3.h =================================================================== --- sys/contrib/openzfs/include/sys/blake3.h +++ sys/contrib/openzfs/include/sys/blake3.h @@ -28,11 +28,13 @@ #ifndef BLAKE3_H #define BLAKE3_H -#ifdef _KERNEL +#if defined(_KERNEL) +#include +#elif defined(_STANDALONE) #include #else -#include #include +#include #endif #ifdef __cplusplus Index: sys/contrib/openzfs/include/sys/zfs_context.h =================================================================== --- sys/contrib/openzfs/include/sys/zfs_context.h +++ sys/contrib/openzfs/include/sys/zfs_context.h @@ -42,8 +42,8 @@ */ #if defined(__KERNEL__) || defined(_STANDALONE) #include -#include #include +#include #include #include #include