Release notes for FreeBSD 16.0. This file describes new user-visible features, changes and updates relevant to users of binary FreeBSD releases. Each entry should describe the change in no more than several sentences and should reference manual pages where an interested user can find more information. Entries should wrap after 80 columns. Each entry should begin with one or more commit IDs on one line, specified as a comma separated list and/or range, followed by a colon and a newline. Entries should be separated by a newline. Changes to this file should not be MFCed. 4d707825bf62: The pdwait(2) system call was added. It provides wait(2)-like functionality for a process descriptor (see procdesc(4)). 5c2ee618d5ec: The pdrfork(2) system call was added. It behaves like rfork(2) but additionally returns a process descriptor (see procdesc(4)). 41ccf82b29f3, 591c7a08bf8a: On arm64, memcpy(3), memmove(3) and memset(3) are now implemented using the MOPS (Memory Operations) feature instructions when they are implemented by the system. 3f0aea09689f: posix_spawnattr_getexecfd_np(3) and posix_spawnattr_setexecfd_np(3) functions were added to libc. The latter causes posix_spawn(3) to call fexecve(2) on the specified file descriptor rather than executing the file at the provided path. fb4b0c911951: witness(4) now prints additional information to the system console when a lock order reversal is detected, making debugging such issues easier. 1322760fd127: It is now possible to compile both the 4BSD and ULE schedulers into the same kernel. The scheduler is selectable at boot-time using a tunable. See the SCHEDULERS section of the tuning(7) man page for details. 627e126dbb07: The default value of the net.inet6.ip6.connect_in6addr_wild has changed to 0. This means that connecting to the all-zeroes IPv6 address no longer implicitly results in a loopback connection. afa70a8496e9: The pthread_tryjoin_np(3) function was added to libthr(3). It provides the same functionality as pthread_join(3) but returns instead of blocking if the target thread has not yet exited. ecc039be7fdd: NanoBSD images can now be built as a non-root user. 7f54c65abc67: Update smartpqi(4) to vendor version 14.4690.0.2008 - 15.2.0.2008 for the SmartArray storage controllers. This adds support for new controllers, adds code that utilizes the new BIG_IOCTL_Command_struct and allows the I/O buffer size for a single passthrough ioctl to be stored as a 32 bit integer instead of the original 16 bit integer. b0d997095022: The pf firewall now supports passing IPv6 packets to divert(4) sockets via divert-to actions. 0fa7b3bee72e, c71f18998e0b, 4162a419a475, f5a77dc8f8df: LinuxKPI based wireless drivers, especially iwlwifi(4) are now supported on RISC-V. 8254b0dec02b3, bd55cbb50c588: The mac(4) framework has been extended to support jail operations, allowing a policy to constrain jail creation, modification, removal, and attachment. Jails have additionally been made a first-class mac(4) object, and a mac.label jail(8) property has been added to facilitate administration of their labels. c558eca47970: The smartpqi(4) driver was updated to vendor version 4660.0.2002 for the SmartArry storage controllers. 493d26c58e73: The aq(4) driver was added, imported from the vendor repository. This provides support for Aquantia / Marvell PCIe 1/2.5/5/10 Gigabit Ethernet adapters (AQC107, AQC108, AQC109, AQC111, AQC112). 1a7151f79664: A new CAM provider was added to dtrace. This enables tracing of I/O requests through the CAM layer without relying on fragile function boundary tracing. See dtrace_cam(4) for details. b8c99e7d912f: The tdestroy(3) function was added to libc. The tdestroy() function destroys a whole search tree, freeing all allocated nodes. 4bf8ce037dc8: The rge(4) driver was added, ported from OpenBSD. This provides support for RealTek RTL8125, RTL8126 and RTL8127 PCIe Ethernet controllers. cbc6f7e941e4: bhyve(8)'s VNC device can now listen on a unix(4) socket for VNC client connections. 39ee24182b92: An rc(8) service can now be started as a specific user for auditing purposes by setting the _audit_user rc.conf(5) variable. dcb0790bad43: A setaudit(8) utility was added to the base system. This provides a simple command-line wrapper for the setaudit(2) and setaudit_addr(2) system calls. 8e3fd450cc53, 949cff4dceff, 0e724de9ed6f, 9f49f436a9ec, e35191ccf3b3: Add support for an extension to NFSv4.2 (RFCnnnn) that supports handling of POSIX draft ACLs via getfacl(1)/setfacl(1). dbac191956f9, fe21dbf70aa8: Support for the kcmp(2) system call and fcntl(F_DUPFD_QUERY) for Linux binaries. a86dc94b84d1: tzdata2025c was imported. a98e5d785001: Add strdupa(3) and strndupa(3) macros for compatability with glibc. e967a2a03677: divert socket compat removal, consumers must use PF_DIVERT instead of PF_INET. 4453ec5b8716b, 2a3b1641756a: The reboot(8) and halt(8) commands now perform a graceful shutdown similar to the shutdown(8) command including invoking rc.d scripts to shutdown services. The fastboot(8) and fasthalt(8) commands still perform a "fast" reboot or shutdown. d9788eabffa4: ipfilter cannot be used in a jail by default. 0ff0c19e7f70: ipfs(8) is no longer built by default. 575efcfff22f: sendfile(2)'s SF_SYNC flag was removed. 057dae35ffc6, 51a01f3debff, ca3e47b0ea68: hwpmc(4) support for Intel Alder Lake 6-B7, 6-BA, and 6-BF CPU hwpmc(4) support for Intel Emerald Rapids CPUs hwpmc(4) support for Intel Alder Lake-N CPUs 1ecf01065b45: New library libuvmem provides the vmem(9) API to userspace applications. b6cad334e64: Make game controller devices accessible by members of the "game" group by default. 791c531402bd: Add driver for Feature Integration Technology Inc. (aka Fintek) F81232 USB to serial devices. ec0cd287f55f: Support for NVMe/TCP offload on Chelsio T7 adapters. The nvmf_che(4) module enables T7 adapters to process NVMe/TCP PDUs directly similar to the PDU offload provided by cxgbei(4) for iSCSI.