aboutsummaryrefslogtreecommitdiff
path: root/share/man
diff options
context:
space:
mode:
Diffstat (limited to 'share/man')
-rw-r--r--share/man/Makefile1
-rw-r--r--share/man/man1/Makefile26
-rw-r--r--share/man/man1/builtin.1269
-rw-r--r--share/man/man3/Makefile16
-rw-r--r--share/man/man3/alloca.383
-rw-r--r--share/man/man3/bitstring.32
-rw-r--r--share/man/man3/intro.36
-rw-r--r--share/man/man3/makedev.32
-rw-r--r--share/man/man3/pthread_condattr.35
-rw-r--r--share/man/man3/pthread_mutex_consistent.32
-rw-r--r--share/man/man3/pthread_mutexattr.32
-rw-r--r--share/man/man3/pthread_np.316
-rw-r--r--share/man/man3/pthread_rwlockattr_destroy.34
-rw-r--r--share/man/man3/pthread_rwlockattr_init.34
-rw-r--r--share/man/man3/pthread_signals_block_np.381
-rw-r--r--share/man/man3/pthread_sigqueue.32
-rw-r--r--share/man/man3/pthread_switch_add_np.386
-rw-r--r--share/man/man3/pthread_testcancel.36
-rw-r--r--share/man/man3/queue.3180
-rw-r--r--share/man/man3/stats.328
-rw-r--r--share/man/man3/stdarg.35
-rw-r--r--share/man/man3/sysexits.343
-rw-r--r--share/man/man3/timeradd.31
-rw-r--r--share/man/man3/tree.310
-rw-r--r--share/man/man3lua/Makefile1
-rw-r--r--share/man/man4/Makefile111
-rw-r--r--share/man/man4/acpi.48
-rw-r--r--share/man/man4/acpi_asus_wmi.410
-rw-r--r--share/man/man4/acpi_ged.42
-rw-r--r--share/man/man4/acpi_wmi.461
-rw-r--r--share/man/man4/agp.45
-rw-r--r--share/man/man4/ahc.415
-rw-r--r--share/man/man4/ahd.44
-rw-r--r--share/man/man4/altera_atse.4117
-rw-r--r--share/man/man4/altera_avgen.4153
-rw-r--r--share/man/man4/altera_jtag_uart.4119
-rw-r--r--share/man/man4/altera_sdcard.4116
-rw-r--r--share/man/man4/altq.42
-rw-r--r--share/man/man4/arswitch.435
-rw-r--r--share/man/man4/ath10k.431
-rw-r--r--share/man/man4/atopcase.44
-rw-r--r--share/man/man4/aue.416
-rw-r--r--share/man/man4/autofs.4 (renamed from share/man/man5/autofs.5)2
-rw-r--r--share/man/man4/axge.418
-rw-r--r--share/man/man4/blackhole.412
-rw-r--r--share/man/man4/bnxt.48
-rw-r--r--share/man/man4/bnxt_re.491
-rw-r--r--share/man/man4/bpf.42
-rw-r--r--share/man/man4/bridge.495
-rw-r--r--share/man/man4/capsicum.461
-rw-r--r--share/man/man4/carp.413
-rw-r--r--share/man/man4/ccd.45
-rw-r--r--share/man/man4/ccr.413
-rw-r--r--share/man/man4/cd.42
-rw-r--r--share/man/man4/cd9660.4 (renamed from share/man/man5/cd9660.5)7
-rw-r--r--share/man/man4/cdce.420
-rw-r--r--share/man/man4/ddb.422
-rw-r--r--share/man/man4/devfs.4 (renamed from share/man/man5/devfs.5)10
-rw-r--r--share/man/man4/disk.44
-rw-r--r--share/man/man4/ds1307.44
-rw-r--r--share/man/man4/ds3231.44
-rw-r--r--share/man/man4/dtrace_dtrace.4191
-rw-r--r--share/man/man4/dtrace_fbt.4332
-rw-r--r--share/man/man4/dtrace_kinst.412
-rw-r--r--share/man/man4/dtrace_profile.4129
-rw-r--r--share/man/man4/dummymbuf.4211
-rw-r--r--share/man/man4/dummynet.44
-rw-r--r--share/man/man4/e6000sw.446
-rw-r--r--share/man/man4/e6060sw.417
-rw-r--r--share/man/man4/efidev.42
-rw-r--r--share/man/man4/ena.424
-rw-r--r--share/man/man4/enc.42
-rw-r--r--share/man/man4/enic.42
-rw-r--r--share/man/man4/etherswitch.49
-rw-r--r--share/man/man4/ext2fs.4 (renamed from share/man/man5/ext2fs.5)2
-rw-r--r--share/man/man4/fd.410
-rw-r--r--share/man/man4/fdescfs.4 (renamed from share/man/man5/fdescfs.5)6
-rw-r--r--share/man/man4/ffs.4 (renamed from share/man/man7/ffs.7)8
-rw-r--r--share/man/man4/filemon.46
-rw-r--r--share/man/man4/firewire.47
-rw-r--r--share/man/man4/ftgpio.42
-rw-r--r--share/man/man4/fusefs.4 (renamed from share/man/man5/fusefs.5)2
-rw-r--r--share/man/man4/gbde.4302
-rw-r--r--share/man/man4/geom.43
-rw-r--r--share/man/man4/gif.4154
-rw-r--r--share/man/man4/gve.4109
-rw-r--r--share/man/man4/hidraw.414
-rw-r--r--share/man/man4/hv_netvsc.42
-rw-r--r--share/man/man4/hwt.4144
-rw-r--r--share/man/man4/iavf.4348
-rw-r--r--share/man/man4/ice.41087
-rw-r--r--share/man/man4/icmp.427
-rw-r--r--share/man/man4/igc.435
-rw-r--r--share/man/man4/iicsmb.48
-rw-r--r--share/man/man4/inet.410
-rw-r--r--share/man/man4/intro.48
-rw-r--r--share/man/man4/ip17x.442
-rw-r--r--share/man/man4/ipfirewall.42
-rw-r--r--share/man/man4/ipsec.410
-rw-r--r--share/man/man4/ipw.439
-rw-r--r--share/man/man4/isp.469
-rw-r--r--share/man/man4/iwi.447
-rw-r--r--share/man/man4/iwlwifi.4195
-rw-r--r--share/man/man4/iwlwififw.41977
-rw-r--r--share/man/man4/iwm.496
-rw-r--r--share/man/man4/iwn.4106
-rw-r--r--share/man/man4/iwx.4157
-rw-r--r--share/man/man4/ix.4 (renamed from share/man/man4/ixgbe.4)87
-rw-r--r--share/man/man4/ixl.47
-rw-r--r--share/man/man4/kld.44
-rw-r--r--share/man/man4/ktls.48
-rw-r--r--share/man/man4/lindebugfs.4 (renamed from share/man/man5/lindebugfs.5)10
-rw-r--r--share/man/man4/linprocfs.4167
-rw-r--r--share/man/man4/linsysfs.4 (renamed from share/man/man5/linsysfs.5)6
-rw-r--r--share/man/man4/linux.434
-rw-r--r--share/man/man4/linuxkpi.442
-rw-r--r--share/man/man4/linuxkpi_wlan.4134
-rw-r--r--share/man/man4/liquidio.42
-rw-r--r--share/man/man4/lo.46
-rw-r--r--share/man/man4/mac.44
-rw-r--r--share/man/man4/mac_bsdextended.44
-rw-r--r--share/man/man4/mac_do.4452
-rw-r--r--share/man/man4/man4.aarch64/Makefile2
-rw-r--r--share/man/man4/man4.aarch64/rk_gpio.42
-rw-r--r--share/man/man4/man4.aarch64/rk_grf_gpio.442
-rw-r--r--share/man/man4/man4.aarch64/rk_i2c.42
-rw-r--r--share/man/man4/man4.aarch64/rk_pinctrl.42
-rw-r--r--share/man/man4/man4.arm/Makefile2
-rw-r--r--share/man/man4/man4.arm/ar40xx.435
-rw-r--r--share/man/man4/man4.arm/aw_gpio.45
-rw-r--r--share/man/man4/man4.arm/aw_rtc.416
-rw-r--r--share/man/man4/man4.arm/aw_sid.46
-rw-r--r--share/man/man4/man4.arm/aw_syscon.410
-rw-r--r--share/man/man4/man4.arm/imx6_ahci.42
-rw-r--r--share/man/man4/man4.i386/Makefile1
-rw-r--r--share/man/man4/man4.powerpc/Makefile1
-rw-r--r--share/man/man4/md.46
-rw-r--r--share/man/man4/mem.41
-rw-r--r--share/man/man4/mlx.438
-rw-r--r--share/man/man4/mlx5io.42
-rw-r--r--share/man/man4/mpi3mr.42
-rw-r--r--share/man/man4/mqueuefs.4 (renamed from share/man/man5/mqueuefs.5)2
-rw-r--r--share/man/man4/msdosfs.4 (renamed from share/man/man5/msdosfs.5)6
-rw-r--r--share/man/man4/mt7915.447
-rw-r--r--share/man/man4/mt7921.447
-rw-r--r--share/man/man4/mtkswitch.445
-rw-r--r--share/man/man4/mtw.4118
-rw-r--r--share/man/man4/mx25l.412
-rw-r--r--share/man/man4/netmap.418
-rw-r--r--share/man/man4/nfslockd.445
-rw-r--r--share/man/man4/ng_iface.44
-rw-r--r--share/man/man4/ng_ksocket.413
-rw-r--r--share/man/man4/ng_nat.49
-rw-r--r--share/man/man4/ng_one2many.41
-rw-r--r--share/man/man4/ng_patch.413
-rw-r--r--share/man/man4/ng_pppoe.44
-rw-r--r--share/man/man4/nullfs.4 (renamed from share/man/man5/nullfs.5)2
-rw-r--r--share/man/man4/nvdimm.42
-rw-r--r--share/man/man4/nvme.49
-rw-r--r--share/man/man4/nvmf.427
-rw-r--r--share/man/man4/nvmf_tcp.415
-rw-r--r--share/man/man4/oce.48
-rw-r--r--share/man/man4/otus.494
-rw-r--r--share/man/man4/ow_temp.433
-rw-r--r--share/man/man4/p9fs.4127
-rw-r--r--share/man/man4/pci.458
-rw-r--r--share/man/man4/pcm.437
-rw-r--r--share/man/man4/pf.468
-rw-r--r--share/man/man4/pfsync.432
-rw-r--r--share/man/man4/procdesc.42
-rw-r--r--share/man/man4/procfs.4 (renamed from share/man/man5/procfs.5)14
-rw-r--r--share/man/man4/puc.4244
-rw-r--r--share/man/man4/qat.4192
-rw-r--r--share/man/man4/ral.427
-rw-r--r--share/man/man4/rights.413
-rw-r--r--share/man/man4/rsu.485
-rw-r--r--share/man/man4/rtsx.422
-rw-r--r--share/man/man4/rtw88.483
-rw-r--r--share/man/man4/rtw89.4112
-rw-r--r--share/man/man4/rtwn.4104
-rw-r--r--share/man/man4/rtwn_pci.426
-rw-r--r--share/man/man4/rtwn_usb.421
-rw-r--r--share/man/man4/rum.423
-rw-r--r--share/man/man4/run.4213
-rw-r--r--share/man/man4/sa.43
-rw-r--r--share/man/man4/safe.434
-rw-r--r--share/man/man4/safexcel.413
-rw-r--r--share/man/man4/scc.48
-rw-r--r--share/man/man4/sg.463
-rw-r--r--share/man/man4/smb.45
-rw-r--r--share/man/man4/smbfs.4 (renamed from share/man/man5/smbfs.5)9
-rw-r--r--share/man/man4/smsc.412
-rw-r--r--share/man/man4/snd_dummy.4 (renamed from share/man/man9/vm_map_simplify_entry.9)64
-rw-r--r--share/man/man4/snd_hda.425
-rw-r--r--share/man/man4/snd_hdsp.4176
-rw-r--r--share/man/man4/snd_hdspe.432
-rw-r--r--share/man/man4/snd_uaudio.443
-rw-r--r--share/man/man4/sndstat.4165
-rw-r--r--share/man/man4/splash.427
-rw-r--r--share/man/man4/stf.42
-rw-r--r--share/man/man4/syscons.410
-rw-r--r--share/man/man4/tarfs.4 (renamed from share/man/man5/tarfs.5)4
-rw-r--r--share/man/man4/tcp.489
-rw-r--r--share/man/man4/tmpfs.4 (renamed from share/man/man5/tmpfs.5)4
-rw-r--r--share/man/man4/tty.43
-rw-r--r--share/man/man4/twe.4278
-rw-r--r--share/man/man4/u3g.466
-rw-r--r--share/man/man4/uart.494
-rw-r--r--share/man/man4/uath.44
-rw-r--r--share/man/man4/uchcom.483
-rw-r--r--share/man/man4/udp.415
-rw-r--r--share/man/man4/ufshci.4181
-rw-r--r--share/man/man4/uftdi.4119
-rw-r--r--share/man/man4/uipaq.446
-rw-r--r--share/man/man4/umb.4119
-rw-r--r--share/man/man4/unionfs.4 (renamed from share/man/man5/unionfs.5)7
-rw-r--r--share/man/man4/unix.412
-rw-r--r--share/man/man4/upgt.49
-rw-r--r--share/man/man4/ural.430
-rw-r--r--share/man/man4/ure.442
-rw-r--r--share/man/man4/urtw.444
-rw-r--r--share/man/man4/usbhid.46
-rw-r--r--share/man/man4/vale.45
-rw-r--r--share/man/man4/veriexec.496
-rw-r--r--share/man/man4/virtio_gpu.42
-rw-r--r--share/man/man4/vlan.42
-rw-r--r--share/man/man4/vmd.42
-rw-r--r--share/man/man4/vmm.448
-rw-r--r--share/man/man4/vt.436
-rw-r--r--share/man/man4/vtnet.427
-rw-r--r--share/man/man4/watchdog.48
-rw-r--r--share/man/man4/wg.411
-rw-r--r--share/man/man4/witness.46
-rw-r--r--share/man/man4/wlan.47
-rw-r--r--share/man/man4/wlan_ccmp.41
-rw-r--r--share/man/man4/wlan_gcmp.472
-rw-r--r--share/man/man4/wlan_tkip.41
-rw-r--r--share/man/man4/wlan_wep.41
-rw-r--r--share/man/man4/wpi.454
-rw-r--r--share/man/man4/wsp.4158
-rw-r--r--share/man/man4/xen.41
-rw-r--r--share/man/man4/zyd.4147
-rw-r--r--share/man/man5/Makefile113
-rw-r--r--share/man/man5/core.548
-rw-r--r--share/man/man5/devfs.conf.56
-rw-r--r--share/man/man5/devfs.rules.52
-rw-r--r--share/man/man5/elf.554
-rw-r--r--share/man/man5/fstab.55
-rw-r--r--share/man/man5/hosts.equiv.51
-rw-r--r--share/man/man5/intro.535
-rw-r--r--share/man/man5/linprocfs.598
-rw-r--r--share/man/man5/make.conf.59
-rw-r--r--share/man/man5/motd.512
-rw-r--r--share/man/man5/mount.conf.56
-rw-r--r--share/man/man5/nsmb.conf.57
-rw-r--r--share/man/man5/pf.conf.5656
-rw-r--r--share/man/man5/rc.conf.5231
-rw-r--r--share/man/man5/resolver.52
-rw-r--r--share/man/man5/src.conf.5196
-rw-r--r--share/man/man5/style.Makefile.58
-rw-r--r--share/man/man5/style.mdoc.539
-rw-r--r--share/man/man6/Makefile1
-rw-r--r--share/man/man7/Makefile8
-rw-r--r--share/man/man7/arch.7132
-rw-r--r--share/man/man7/ascii.74
-rw-r--r--share/man/man7/build.779
-rw-r--r--share/man/man7/c.7237
-rw-r--r--share/man/man7/d.7287
-rw-r--r--share/man/man7/development.726
-rw-r--r--share/man/man7/hier.716
-rw-r--r--share/man/man7/intro.710
-rw-r--r--share/man/man7/mitigations.7177
-rw-r--r--share/man/man7/named_attribute.7294
-rw-r--r--share/man/man7/networking.756
-rw-r--r--share/man/man7/orders.74
-rw-r--r--share/man/man7/ports.716
-rw-r--r--share/man/man7/release.720
-rw-r--r--share/man/man7/security.712
-rw-r--r--share/man/man7/simd.767
-rw-r--r--share/man/man7/tests.713
-rw-r--r--share/man/man7/tracing.7100
-rw-r--r--share/man/man7/tuning.731
-rw-r--r--share/man/man8/Makefile40
-rw-r--r--share/man/man8/crash.832
-rw-r--r--share/man/man8/debug.sh.813
-rw-r--r--share/man/man8/diskless.87
-rw-r--r--share/man/man8/nanobsd.820
-rw-r--r--share/man/man8/rc.814
-rw-r--r--share/man/man8/rc.subr.886
-rw-r--r--share/man/man8/uefi.86
-rw-r--r--share/man/man9/BUS_CHILD_DETACHED.97
-rw-r--r--share/man/man9/BUS_CONFIG_INTR.916
-rw-r--r--share/man/man9/BUS_HINTED_CHILD.937
-rw-r--r--share/man/man9/DEVICE_ATTACH.99
-rw-r--r--share/man/man9/DEVICE_IDENTIFY.955
-rw-r--r--share/man/man9/MD5.976
-rw-r--r--share/man/man9/Makefile72
-rw-r--r--share/man/man9/OF_device_from_xref.914
-rw-r--r--share/man/man9/OF_node_from_xref.96
-rw-r--r--share/man/man9/PCI_IOV_ADD_VF.92
-rw-r--r--share/man/man9/PCI_IOV_INIT.92
-rw-r--r--share/man/man9/VOP_ADVISE.92
-rw-r--r--share/man/man9/VOP_ALLOCATE.92
-rw-r--r--share/man/man9/VOP_ATTRIB.922
-rw-r--r--share/man/man9/VOP_INOTIFY.960
-rw-r--r--share/man/man9/VOP_READ_PGCACHE.92
-rw-r--r--share/man/man9/VOP_SETLABEL.98
-rw-r--r--share/man/man9/accf_http.92
-rw-r--r--share/man/man9/accf_tls.92
-rw-r--r--share/man/man9/atomic.914
-rw-r--r--share/man/man9/bitset.92
-rw-r--r--share/man/man9/bus_attach_children.9152
-rw-r--r--share/man/man9/bus_delayed_attach_children.953
-rw-r--r--share/man/man9/bus_generic_attach.956
-rw-r--r--share/man/man9/bus_generic_detach.918
-rw-r--r--share/man/man9/bus_generic_print_child.977
-rw-r--r--share/man/man9/cdefs.9487
-rw-r--r--share/man/man9/cnv.936
-rw-r--r--share/man/man9/contigmalloc.924
-rw-r--r--share/man/man9/coredumper_register.9168
-rw-r--r--share/man/man9/counter.927
-rw-r--r--share/man/man9/cpu_machdep.9425
-rw-r--r--share/man/man9/cr_bsd_visible.98
-rw-r--r--share/man/man9/cr_cansee.96
-rw-r--r--share/man/man9/cr_canseeothergids.94
-rw-r--r--share/man/man9/crypto_request.913
-rw-r--r--share/man/man9/dev_clone.94
-rw-r--r--share/man/man9/dev_refthread.94
-rw-r--r--share/man/man9/devclass.97
-rw-r--r--share/man/man9/devfs_set_cdevpriv.94
-rw-r--r--share/man/man9/device_add_child.94
-rw-r--r--share/man/man9/device_delete_child.923
-rw-r--r--share/man/man9/device_probe_and_attach.9128
-rw-r--r--share/man/man9/disk.96
-rw-r--r--share/man/man9/dnv.926
-rw-r--r--share/man/man9/domain.91
-rw-r--r--share/man/man9/domainset.916
-rw-r--r--share/man/man9/firmware.96
-rw-r--r--share/man/man9/g_provider.92
-rw-r--r--share/man/man9/groupmember.98
-rw-r--r--share/man/man9/ieee80211.94
-rw-r--r--share/man/man9/ifnet.9613
-rw-r--r--share/man/man9/intr_event.910
-rw-r--r--share/man/man9/khelp.96
-rw-r--r--share/man/man9/lock.971
-rw-r--r--share/man/man9/make_dev.949
-rw-r--r--share/man/man9/malloc.911
-rw-r--r--share/man/man9/mbuf.936
-rw-r--r--share/man/man9/mi_switch.968
-rw-r--r--share/man/man9/mod_cc.92
-rw-r--r--share/man/man9/namei.9334
-rw-r--r--share/man/man9/nv.9514
-rw-r--r--share/man/man9/osd.96
-rw-r--r--share/man/man9/p_candebug.98
-rw-r--r--share/man/man9/p_cansee.94
-rw-r--r--share/man/man9/pci.927
-rw-r--r--share/man/man9/pci_iov_schema.92
-rw-r--r--share/man/man9/pfind.949
-rw-r--r--share/man/man9/pseudofs.910
-rw-r--r--share/man/man9/random.94
-rw-r--r--share/man/man9/refcount.92
-rw-r--r--share/man/man9/rman.935
-rw-r--r--share/man/man9/rtentry.92
-rw-r--r--share/man/man9/sglist.92
-rw-r--r--share/man/man9/style.9252
-rw-r--r--share/man/man9/sysctl.94
-rw-r--r--share/man/man9/tcp_functions.968
-rw-r--r--share/man/man9/vfs_getopt.96
-rw-r--r--share/man/man9/vm_map.925
-rw-r--r--share/man/man9/vm_map_protect.92
-rw-r--r--share/man/man9/vm_page_alloc.930
-rw-r--r--share/man/man9/vmem.917
-rw-r--r--share/man/man9/vnode.928
-rw-r--r--share/man/man9/zone.92
374 files changed, 15787 insertions, 6007 deletions
diff --git a/share/man/Makefile b/share/man/Makefile
index cf91101a27f0..51e560e199a5 100644
--- a/share/man/Makefile
+++ b/share/man/Makefile
@@ -1,4 +1,3 @@
-
.include <src.opts.mk>
# XXX MISSING: man3f
diff --git a/share/man/man1/Makefile b/share/man/man1/Makefile
index 04f05920c9a4..d3975c8e8084 100644
--- a/share/man/man1/Makefile
+++ b/share/man/man1/Makefile
@@ -1,17 +1,17 @@
-
.include <src.opts.mk>
-MAN= builtin.1 intro.1
+MANGROUPS= MAN
-.if ${MK_TESTS} != "no"
-ATF= ${SRCTOP}/contrib/atf
-.PATH: ${ATF}/doc
-MAN+= atf-test-program.1
-.endif
+MANLINKS= intro.1 introduction.1
+
+MANGROUPS+= RUNTIME
+RUNTIME= builtin.1 intro.1
+RUNTIMEPACKAGE= runtime
# Create MLINKS for Shell built in commands for which there are no userland
# utilities of the same name:
-MLINKS= builtin.1 alias.1 \
+RUNTIMELINKS=\
+ builtin.1 alias.1 \
builtin.1 alloc.1 \
builtin.1 bg.1 \
builtin.1 bind.1 \
@@ -56,6 +56,7 @@ MLINKS= builtin.1 alias.1 \
builtin.1 if.1 \
builtin.1 jobid.1 \
builtin.1 jobs.1 \
+ builtin.1 keybinds.1 \
builtin.1 limit.1 \
builtin.1 log.1 \
builtin.1 logout.1 \
@@ -96,6 +97,13 @@ MLINKS= builtin.1 alias.1 \
builtin.1 wait.1 \
builtin.1 where.1 \
builtin.1 while.1
-MLINKS+=intro.1 introduction.1
+
+.if ${MK_TESTS} != "no"
+MANGROUPS+= TESTS
+ATF= ${SRCTOP}/contrib/atf
+.PATH: ${ATF}/doc
+TESTS= atf-test-program.1
+TESTSPACKAGE= tests
+.endif
.include <bsd.prog.mk>
diff --git a/share/man/man1/builtin.1 b/share/man/man1/builtin.1
index d546548ab4e5..ee89006caea5 100644
--- a/share/man/man1/builtin.1
+++ b/share/man/man1/builtin.1
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 1999 Sheldon Hearn
.\"
.\" All rights reserved.
@@ -24,175 +26,33 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd December 21, 2010
+.Dd March 29, 2025
.Dt BUILTIN 1
.Os
.Sh NAME
.Nm builtin ,
-.Nm \&! ,
-.Nm % ,
-.Nm \&. ,
-.Nm \&: ,
-.Nm @ ,
-.Nm \&[ ,
-.Nm { ,
-.Nm } ,
-.Nm alias ,
-.Nm alloc ,
-.Nm bg ,
-.Nm bind ,
-.Nm bindkey ,
-.Nm break ,
-.Nm breaksw ,
-.Nm builtins ,
-.Nm case ,
-.Nm cd ,
-.Nm chdir ,
-.Nm command ,
-.Nm complete ,
-.Nm continue ,
-.Nm default ,
-.Nm dirs ,
-.Nm do ,
-.Nm done ,
-.Nm echo ,
-.Nm echotc ,
-.Nm elif ,
-.Nm else ,
-.Nm end ,
-.Nm endif ,
-.Nm endsw ,
-.Nm esac ,
-.Nm eval ,
-.Nm exec ,
-.Nm exit ,
-.Nm export ,
-.Nm false ,
-.Nm fc ,
-.Nm fg ,
-.Nm filetest ,
-.Nm fi ,
-.Nm for ,
-.Nm foreach ,
-.Nm getopts ,
-.Nm glob ,
-.Nm goto ,
-.Nm hash ,
-.Nm hashstat ,
-.Nm history ,
-.Nm hup ,
-.Nm if ,
-.Nm jobid ,
-.Nm jobs ,
-.Nm kill ,
-.Nm limit ,
-.Nm local ,
-.Nm log ,
-.Nm login ,
-.Nm logout ,
-.Nm ls-F ,
-.Nm nice ,
-.Nm nohup ,
-.Nm notify ,
-.Nm onintr ,
-.Nm popd ,
-.Nm printenv ,
-.Nm printf ,
-.Nm pushd ,
-.Nm pwd ,
-.Nm read ,
-.Nm readonly ,
-.Nm rehash ,
-.Nm repeat ,
-.Nm return ,
-.Nm sched ,
-.Nm set ,
-.Nm setenv ,
-.Nm settc ,
-.Nm setty ,
-.Nm setvar ,
-.Nm shift ,
-.Nm source ,
-.Nm stop ,
-.Nm suspend ,
-.Nm switch ,
-.Nm telltc ,
-.Nm test ,
-.Nm then ,
-.Nm time ,
-.Nm times ,
-.Nm trap ,
-.Nm true ,
-.Nm type ,
-.Nm ulimit ,
-.Nm umask ,
-.Nm unalias ,
-.Nm uncomplete ,
-.Nm unhash ,
-.Nm unlimit ,
-.Nm unset ,
-.Nm unsetenv ,
-.Nm until ,
-.Nm wait ,
-.Nm where ,
-.Nm which ,
-.Nm while
-.Nd shell built-in commands
+.Nm keybinds
+.Nd index of FreeBSD shell built-in commands
.Sh SYNOPSIS
-See the built-in command description in the appropriate shell manual page.
+See the manual for your shell for operation details.
.Sh DESCRIPTION
-Shell builtin commands are commands that can be executed within the
-running shell's process.
-Note that, in the case of
-.Xr csh 1
-builtin commands, the command is executed in a subshell if it occurs as
-any component of a pipeline except the last.
-.Pp
-If a command specified to the shell contains a slash
-.Ql / ,
-the shell will not execute a builtin command, even if the last component
-of the specified command matches the name of a builtin command.
-Thus, while specifying
-.Dq Li echo
-causes a builtin command to be executed under shells that support the
-.Nm echo
-builtin command,
-specifying
-.Dq Li /bin/echo
-or
-.Dq Li ./echo
-does not.
-.Pp
-While some builtin commands may exist in more than one shell, their
-operation may be different under each shell which supports them.
-Below is a table which lists shell builtin commands, the standard shells
-that support them and whether they exist as standalone utilities.
-.Pp
-Only builtin commands for the
+This page provides an index of
+.Nm
+commands, keywords, and keyboard bindings provided by
.Xr csh 1
and
-.Xr sh 1
-shells are listed here.
-Consult a shell's manual page for
-details on the operation its builtin commands.
-Beware that the
-.Xr sh 1
-manual page, at least, calls some of these commands
-.Dq built-in commands
-and some of them
-.Dq reserved words .
-Users of other shells may need to consult an
-.Xr info 1
-page or other sources of documentation.
-.Pp
-Commands marked
-.Dq Li No**
-under
-.Em External
-do exist externally,
-but are implemented as scripts using a builtin command of the same name.
-.Bl -column ".Ic uncomplete" ".Em External" ".Xr csh 1" ".Xr sh 1" -offset indent
-.It Em Command Ta Em External Ta Xr csh 1 Ta Xr sh 1
+.Xr sh 1 ,
+the command line interpreters which comprise the
+.Bx
+user environment.
+.Ss Commands
+Below is a table which lists
+.Nm
+commands and keywords,
+whether they exist as standalone utilities,
+and the standard shells that provide them.
+.Bl -column "uncomplete" "Standalone" "csh(1)" "sh(1)" -offset indent
+.It Em Command Ta Em Standalone Ta Xr csh 1 Ta Xr sh 1
.It Ic \&! Ta \&No Ta \&No Ta Yes
.It Ic % Ta \&No Ta Yes Ta \&No
.It Ic \&. Ta \&No Ta \&No Ta Yes
@@ -201,9 +61,9 @@ but are implemented as scripts using a builtin command of the same name.
.It Ic \&[ Ta Yes Ta \&No Ta Yes
.It Ic { Ta \&No Ta \&No Ta Yes
.It Ic } Ta \&No Ta \&No Ta Yes
-.It Ic alias Ta No** Ta Yes Ta Yes
+.It Ic alias Ta No* Ta Yes Ta Yes
.It Ic alloc Ta \&No Ta Yes Ta \&No
-.It Ic bg Ta No** Ta Yes Ta Yes
+.It Ic bg Ta No* Ta Yes Ta Yes
.It Ic bind Ta \&No Ta \&No Ta Yes
.It Ic bindkey Ta \&No Ta Yes Ta \&No
.It Ic break Ta \&No Ta Yes Ta Yes
@@ -211,9 +71,9 @@ but are implemented as scripts using a builtin command of the same name.
.It Ic builtin Ta \&No Ta \&No Ta Yes
.It Ic builtins Ta \&No Ta Yes Ta \&No
.It Ic case Ta \&No Ta Yes Ta Yes
-.It Ic cd Ta No** Ta Yes Ta Yes
+.It Ic cd Ta No* Ta Yes Ta Yes
.It Ic chdir Ta \&No Ta Yes Ta Yes
-.It Ic command Ta No** Ta \&No Ta Yes
+.It Ic command Ta No* Ta \&No Ta Yes
.It Ic complete Ta \&No Ta Yes Ta \&No
.It Ic continue Ta \&No Ta Yes Ta Yes
.It Ic default Ta \&No Ta Yes Ta \&No
@@ -233,22 +93,22 @@ but are implemented as scripts using a builtin command of the same name.
.It Ic exit Ta \&No Ta Yes Ta Yes
.It Ic export Ta \&No Ta \&No Ta Yes
.It Ic false Ta Yes Ta \&No Ta Yes
-.It Ic fc Ta No** Ta \&No Ta Yes
-.It Ic fg Ta No** Ta Yes Ta Yes
+.It Ic fc Ta No* Ta \&No Ta Yes
+.It Ic fg Ta No* Ta Yes Ta Yes
.It Ic filetest Ta \&No Ta Yes Ta \&No
.It Ic fi Ta \&No Ta \&No Ta Yes
.It Ic for Ta \&No Ta \&No Ta Yes
.It Ic foreach Ta \&No Ta Yes Ta \&No
-.It Ic getopts Ta No** Ta \&No Ta Yes
+.It Ic getopts Ta No* Ta \&No Ta Yes
.It Ic glob Ta \&No Ta Yes Ta \&No
.It Ic goto Ta \&No Ta Yes Ta \&No
-.It Ic hash Ta No** Ta \&No Ta Yes
+.It Ic hash Ta No* Ta \&No Ta Yes
.It Ic hashstat Ta \&No Ta Yes Ta \&No
.It Ic history Ta \&No Ta Yes Ta \&No
.It Ic hup Ta \&No Ta Yes Ta \&No
.It Ic if Ta \&No Ta Yes Ta Yes
.It Ic jobid Ta \&No Ta \&No Ta Yes
-.It Ic jobs Ta No** Ta Yes Ta Yes
+.It Ic jobs Ta No* Ta Yes Ta Yes
.It Ic kill Ta Yes Ta Yes Ta Yes
.It Ic limit Ta \&No Ta Yes Ta \&No
.It Ic local Ta \&No Ta \&No Ta Yes
@@ -265,7 +125,7 @@ but are implemented as scripts using a builtin command of the same name.
.It Ic printf Ta Yes Ta \&No Ta Yes
.It Ic pushd Ta \&No Ta Yes Ta \&No
.It Ic pwd Ta Yes Ta \&No Ta Yes
-.It Ic read Ta No** Ta \&No Ta Yes
+.It Ic read Ta No* Ta \&No Ta Yes
.It Ic readonly Ta \&No Ta \&No Ta Yes
.It Ic rehash Ta \&No Ta Yes Ta \&No
.It Ic repeat Ta \&No Ta Yes Ta \&No
@@ -288,26 +148,68 @@ but are implemented as scripts using a builtin command of the same name.
.It Ic times Ta \&No Ta \&No Ta Yes
.It Ic trap Ta \&No Ta \&No Ta Yes
.It Ic true Ta Yes Ta \&No Ta Yes
-.It Ic type Ta No** Ta \&No Ta Yes
-.It Ic ulimit Ta No** Ta \&No Ta Yes
-.It Ic umask Ta No** Ta Yes Ta Yes
-.It Ic unalias Ta No** Ta Yes Ta Yes
+.It Ic type Ta No* Ta \&No Ta Yes
+.It Ic ulimit Ta No* Ta \&No Ta Yes
+.It Ic umask Ta No* Ta Yes Ta Yes
+.It Ic unalias Ta No* Ta Yes Ta Yes
.It Ic uncomplete Ta \&No Ta Yes Ta \&No
.It Ic unhash Ta \&No Ta Yes Ta \&No
.It Ic unlimit Ta \&No Ta Yes Ta \&No
.It Ic unset Ta \&No Ta Yes Ta Yes
.It Ic unsetenv Ta \&No Ta Yes Ta \&No
.It Ic until Ta \&No Ta \&No Ta Yes
-.It Ic wait Ta No** Ta Yes Ta Yes
+.It Ic wait Ta No* Ta Yes Ta Yes
.It Ic where Ta \&No Ta Yes Ta \&No
.It Ic which Ta Yes Ta Yes Ta \&No
.It Ic while Ta \&No Ta Yes Ta Yes
.El
+.Pp
+\&No*: Commands marked
+.Ql No*
+exist externally, but are implemented as scripts using a
+.Nm
+command of the same name.
+.Ss Keybinds
+The command line environment also provides the following
+default keyboard bindings:
+.Bl -column "Process Info (SIGINFO)" "^M | ^J" "^M | ^J" -offset indent
+.It Em Signal Ta Xr csh 1 Ta Xr sh 1
+.It Ic Backspace Ta ^H Ta ^H
+.It Ic Carriage Return Ta ^M | ^J Ta ^M | ^J
+.It Ic Tab Ta ^I Ta ^I
+.It Ic Beginning of Line Ta ^A Ta ^A
+.It Ic End of Line Ta ^E Ta ^E
+.It Ic Cursor Forward Ta ^F Ta ^F
+.It Ic Cursor Backward Ta ^B Ta ^B
+.It Ic Clear Screen Ta ^L Ta ^L
+.It Ic Cut Line Ta ^U Ta ^U
+.It Ic Cut Word Backwards Ta ^W Ta ^W
+.It Ic Cut Rest of Line Ta ^K Ta ^K
+.It Ic Paste Last Cut Ta ^Y Ta ^Y
+.It Ic Typo Ta ^T Ta ^T
+.It End of File Po Ic EOF Pc Ta ^D Ta ^D
+.It Interupt Po Ic SIGINT Pc Ta ^C Ta ^C
+.It Process info Po Ic SIGINFO Pc Ta ^T Ta ^T
+.It Ic Search History Ta \&No Ta ^R
+.It Ic Exit Search History Ta \&No Ta ^G
+.It Ic Previous Command Ta ^P Ta ^P
+.It Ic Next Command Ta ^N Ta ^N
+.It Ic Print Next Character Ta ^V Ta ^V
+.It Ic Pause Job Ta ^S Ta ^S
+.It Ic Resume Job Ta ^Q Ta ^Q
+.It Suspend Job Ic (SIGTSTP) Ta ^Z Ta ^Z
+.It Ic Scrollback Mode Ta ScrLk* Ta ScrLk*
+.El
+.Pp
+\&*: Bindings marked
+.Ql *
+are provided by
+.Xr vt 4 ,
+the console driver.
.Sh SEE ALSO
.Xr csh 1 ,
.Xr echo 1 ,
.Xr false 1 ,
-.Xr info 1 ,
.Xr kill 1 ,
.Xr login 1 ,
.Xr nice 1 ,
@@ -326,5 +228,18 @@ The
manual page first appeared in
.Fx 3.4 .
.Sh AUTHORS
+.An -nosplit
This manual page was written by
+.An Alexander Ziaee Aq Mt ziaee@FreeBSD.org
+from an earlier version by
.An Sheldon Hearn Aq Mt sheldonh@FreeBSD.org .
+.Sh CAVEATS
+While
+.Nm
+commands may exist in more than one shell or standalone,
+each may be implemented differently.
+.Pp
+Standalone utilities and their manuals must be called by their path
+from a shell with a
+.Nm
+command of the same name.
diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile
index 5c8dced71743..3511acb254e1 100644
--- a/share/man/man3/Makefile
+++ b/share/man/man3/Makefile
@@ -1,7 +1,9 @@
-
.include <src.opts.mk>
-MAN= arb.3 \
+PACKAGE= clibs
+
+MAN= alloca.3 \
+ arb.3 \
assert.3 \
ATOMIC_VAR_INIT.3 \
bitstring.3 \
@@ -216,6 +218,7 @@ MLINKS+= queue.3 LIST_CLASS_ENTRY.3 \
queue.3 LIST_PREV.3 \
queue.3 LIST_REMOVE.3 \
queue.3 LIST_REPLACE.3 \
+ queue.3 LIST_SPLIT_AFTER.3 \
queue.3 LIST_SWAP.3 \
queue.3 SLIST_CLASS_ENTRY.3 \
queue.3 SLIST_CLASS_HEAD.3 \
@@ -236,6 +239,7 @@ MLINKS+= queue.3 LIST_CLASS_ENTRY.3 \
queue.3 SLIST_REMOVE_AFTER.3 \
queue.3 SLIST_REMOVE_HEAD.3 \
queue.3 SLIST_REMOVE_PREVPTR.3 \
+ queue.3 SLIST_SPLIT_AFTER.3 \
queue.3 SLIST_SWAP.3 \
queue.3 STAILQ_CLASS_ENTRY.3 \
queue.3 STAILQ_CLASS_HEAD.3 \
@@ -258,6 +262,8 @@ MLINKS+= queue.3 LIST_CLASS_ENTRY.3 \
queue.3 STAILQ_REMOVE.3 \
queue.3 STAILQ_REMOVE_AFTER.3 \
queue.3 STAILQ_REMOVE_HEAD.3 \
+ queue.3 STAILQ_REVERSE.3 \
+ queue.3 STAILQ_SPLIT_AFTER.3 \
queue.3 STAILQ_SWAP.3 \
queue.3 TAILQ_CLASS_ENTRY.3 \
queue.3 TAILQ_CLASS_HEAD.3 \
@@ -285,6 +291,7 @@ MLINKS+= queue.3 LIST_CLASS_ENTRY.3 \
queue.3 TAILQ_PREV.3 \
queue.3 TAILQ_REMOVE.3 \
queue.3 TAILQ_REPLACE.3 \
+ queue.3 TAILQ_SPLIT_AFTER.3 \
queue.3 TAILQ_SWAP.3
MLINKS+= stats.3 stats_tpl_alloc.3 \
stats.3 stats_tpl_fetch_allocid.3 \
@@ -453,11 +460,11 @@ PTHREAD_MAN= pthread.3 \
pthread_setspecific.3 \
pthread_sigmask.3 \
pthread_sigqueue.3 \
+ pthread_signals_block_np.3 \
pthread_spin_init.3 \
pthread_spin_lock.3 \
pthread_suspend_all_np.3 \
pthread_suspend_np.3 \
- pthread_switch_add_np.3 \
pthread_testcancel.3 \
pthread_yield.3
@@ -519,10 +526,11 @@ PTHREAD_MLINKS+=pthread_schedparam.3 pthread_getschedparam.3 \
PTHREAD_MLINKS+=pthread_set_name_np.3 pthread_get_name_np.3 \
pthread_set_name_np.3 pthread_getname_np.3 \
pthread_set_name_np.3 pthread_setname_np.3
+PTHREAD_MLINKS+=pthread_signals_block_np.3 \
+ pthread_signals_unblock_np.3
PTHREAD_MLINKS+=pthread_spin_init.3 pthread_spin_destroy.3 \
pthread_spin_lock.3 pthread_spin_trylock.3 \
pthread_spin_lock.3 pthread_spin_unlock.3
-PTHREAD_MLINKS+=pthread_switch_add_np.3 pthread_switch_delete_np.3
PTHREAD_MLINKS+=pthread_testcancel.3 pthread_setcancelstate.3 \
pthread_testcancel.3 pthread_setcanceltype.3
PTHREAD_MLINKS+=pthread_join.3 pthread_peekjoin_np.3 \
diff --git a/share/man/man3/alloca.3 b/share/man/man3/alloca.3
new file mode 100644
index 000000000000..fd88014dbb33
--- /dev/null
+++ b/share/man/man3/alloca.3
@@ -0,0 +1,83 @@
+.\" Copyright (c) 1980, 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd April 29, 2025
+.Dt ALLOCA 3
+.Os
+.Sh NAME
+.Nm alloca
+.Nd memory allocator
+.Sh SYNOPSIS
+.In stdlib.h
+.Ft void *
+.Fn alloca "size_t size"
+.Sh DESCRIPTION
+The
+.Fn alloca
+function
+allocates
+.Fa size
+bytes of space in the stack frame of the caller.
+This temporary space is automatically freed on
+return.
+.Sh RETURN VALUES
+The
+.Fn alloca
+function returns a pointer to the beginning of the allocated space.
+.Sh SEE ALSO
+.Xr brk 2 ,
+.Xr calloc 3 ,
+.Xr getpagesize 3 ,
+.Xr malloc 3 ,
+.Xr realloc 3
+.Sh HISTORY
+The
+.Fn alloca
+function appeared in
+.At 32v .
+.\" .Bx ?? .
+.\" The function appeared in 32v, pwb and pwb.2 and in 3bsd 4bsd
+.\" The first man page (or link to a man page that I can find at the
+.\" moment is 4.3...
+.Sh BUGS
+The
+.Fn alloca
+function
+is machine and compiler dependent;
+its use is discouraged.
+.Pp
+The
+.Fn alloca
+function is slightly unsafe because it cannot ensure that the pointer
+returned points to a valid and usable block of memory.
+The allocation made may exceed the bounds of the stack, or even go
+further into other objects in memory, and
+.Fn alloca
+cannot determine such an error.
+Avoid
+.Fn alloca
+with large unbounded allocations.
diff --git a/share/man/man3/bitstring.3 b/share/man/man3/bitstring.3
index bfc0eb5ca139..07558bd41ec3 100644
--- a/share/man/man3/bitstring.3
+++ b/share/man/man3/bitstring.3
@@ -369,7 +369,7 @@ bits in the array of
bits referenced by
.Fa name ,
at or after the zero-based bit index
-.Fa start
+.Fa start
in which all bits have the value
.Fa match .
If no sequence of contiguous such bits of the specified
diff --git a/share/man/man3/intro.3 b/share/man/man3/intro.3
index 39897eb565cd..0cecdcab4069 100644
--- a/share/man/man3/intro.3
+++ b/share/man/man3/intro.3
@@ -24,7 +24,7 @@
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
-.Dd November 16, 2023
+.Dd November 27, 2024
.Dt INTRO 3
.Os
.Sh NAME
@@ -268,12 +268,8 @@ See
.Bl -tag -width /usr/lib/libm_p.a -compact
.It Pa /usr/lib/libc.a
the C library
-.It Pa /usr/lib/libc_p.a
-the C library compiled for profiling
.It Pa /usr/lib/libm.a
the math library
-.It Pa /usr/lib/libm_p.a
-the math library compiled for profiling
.El
.Sh LIBRARY TYPES
The system libraries are located in
diff --git a/share/man/man3/makedev.3 b/share/man/man3/makedev.3
index 4cf851f87508..3c0e176a0621 100644
--- a/share/man/man3/makedev.3
+++ b/share/man/man3/makedev.3
@@ -97,4 +97,4 @@ macros return numbers whose value can span the complete range of an
.Sh SEE ALSO
.Xr mknod 2 ,
.Xr devname 3 ,
-.Xr devfs 5
+.Xr devfs 4
diff --git a/share/man/man3/pthread_condattr.3 b/share/man/man3/pthread_condattr.3
index f3b1d3639827..33ad904f9a3d 100644
--- a/share/man/man3/pthread_condattr.3
+++ b/share/man/man3/pthread_condattr.3
@@ -52,7 +52,7 @@
.Ft int
.Fo pthread_condattr_getpshared
.Fa "pthread_condattr_t * restrict attr" "int * restrict pshared"
-.Fc
+.Fc
.Ft int
.Fn pthread_condattr_setpshared "pthread_condattr_t *attr" "int pshared"
.Sh DESCRIPTION
@@ -85,7 +85,8 @@ in
.Xr pthread_cond_timedwait 3
and may be set to
.Dv CLOCK_REALTIME
-(default)
+(default),
+.Dv CLOCK_TAI ,
or
.Dv CLOCK_MONOTONIC .
.Pp
diff --git a/share/man/man3/pthread_mutex_consistent.3 b/share/man/man3/pthread_mutex_consistent.3
index ac44a8d99718..e22be52ba618 100644
--- a/share/man/man3/pthread_mutex_consistent.3
+++ b/share/man/man3/pthread_mutex_consistent.3
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2016 The FreeBSD Foundation
.\"
.\" This documentation was written by
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
diff --git a/share/man/man3/pthread_mutexattr.3 b/share/man/man3/pthread_mutexattr.3
index 8f4d0d9a06a4..b18d93e2e13e 100644
--- a/share/man/man3/pthread_mutexattr.3
+++ b/share/man/man3/pthread_mutexattr.3
@@ -1,5 +1,5 @@
.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>.
-.\" Copyright (c) 2021 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2021 The FreeBSD Foundation
.\" All rights reserved.
.\"
.\" Part of this documentation was written by
diff --git a/share/man/man3/pthread_np.3 b/share/man/man3/pthread_np.3
index caab8cc13209..c6f0efac7415 100644
--- a/share/man/man3/pthread_np.3
+++ b/share/man/man3/pthread_np.3
@@ -116,6 +116,11 @@ Sets the specified thread's name.
.Xc
Sets the specified thread's name.
.It Xo
+.Ft void
+.Fn pthread_signals_block_np void
+.Xc
+Blocks all asynchronous signals, quickly.
+.It Xo
.Ft int
.Fn pthread_single_np void
.Xc
@@ -132,16 +137,6 @@ Suspend the specified thread.
Suspend all active threads.
.It Xo
.Ft int
-.Fn pthread_switch_add_np "pthread_switch_routine_t routine"
-.Xc
-Install a routine that is called every time a thread context switches.
-.It Xo
-.Ft int
-.Fn pthread_switch_delete_np "pthread_switch_routine_t routine"
-.Xc
-Remove a routine that is called every time a thread context switches.
-.It Xo
-.Ft int
.Fo pthread_timedjoin_np
.Fa "pthread_t thread" "void **value_ptr" "const struct timespec *abstime"
.Fc
@@ -223,6 +218,7 @@ instead.
.Xr pthread_resume_all_np 3 ,
.Xr pthread_resume_np 3 ,
.Xr pthread_set_name_np 3 ,
+.Xr pthread_signals_block_np 3 ,
.Xr pthread_suspend_all_np 3 ,
.Xr pthread_suspend_np 3 ,
.Xr pthread_switch_add_np 3
diff --git a/share/man/man3/pthread_rwlockattr_destroy.3 b/share/man/man3/pthread_rwlockattr_destroy.3
index 2f9fe7099ef2..eabfbad7e0f2 100644
--- a/share/man/man3/pthread_rwlockattr_destroy.3
+++ b/share/man/man3/pthread_rwlockattr_destroy.3
@@ -27,7 +27,7 @@
.Os
.Sh NAME
.Nm pthread_rwlockattr_destroy
-.Nd destroy a read/write lock
+.Nd destroy a read/write lock attributes object
.Sh LIBRARY
.Lb libpthread
.Sh SYNOPSIS
@@ -37,7 +37,7 @@
.Sh DESCRIPTION
The
.Fn pthread_rwlockattr_destroy
-function is used to destroy a read/write lock attribute object
+function is used to destroy a read/write lock attributes object
previously created with
.Fn pthread_rwlockattr_init .
.Sh RETURN VALUES
diff --git a/share/man/man3/pthread_rwlockattr_init.3 b/share/man/man3/pthread_rwlockattr_init.3
index 46100608f9b6..031d010ae81a 100644
--- a/share/man/man3/pthread_rwlockattr_init.3
+++ b/share/man/man3/pthread_rwlockattr_init.3
@@ -27,7 +27,7 @@
.Os
.Sh NAME
.Nm pthread_rwlockattr_init
-.Nd initialize a read/write lock
+.Nd initialize a read/write lock attributes object
.Sh LIBRARY
.Lb libpthread
.Sh SYNOPSIS
@@ -50,7 +50,7 @@ The
function will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
-Insufficient memory exists to initialize the attribute object.
+Insufficient memory exists to initialize the attributes object.
.El
.Sh SEE ALSO
.Xr pthread_rwlock_init 3 ,
diff --git a/share/man/man3/pthread_signals_block_np.3 b/share/man/man3/pthread_signals_block_np.3
new file mode 100644
index 000000000000..de33f4e6189e
--- /dev/null
+++ b/share/man/man3/pthread_signals_block_np.3
@@ -0,0 +1,81 @@
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\" All rights reserved.
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" This documentation was written by
+.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
+.\" from the FreeBSD Foundation.
+.\"
+.Dd May 16, 2025
+.Dt PTHREAD_SIGNALS_BLOCK_NP 3
+.Os
+.Sh NAME
+.Nm pthread_signals_block_np ,
+.Nm pthread_signals_unblock_np
+.Nd fast asynchronous signals blocking and unblocking
+.Sh LIBRARY
+.Lb libpthread
+.Sh SYNOPSIS
+.In pthread_np.h
+.Ft void
+.Fn pthread_signals_block_np "void"
+.Ft void
+.Fn pthread_signals_unblock_np "void"
+.Sh DESCRIPTION
+The
+.Fn pthread_signals_block_np
+and
+.Fn pthread_signals_unblock_np
+functions provide user programs an interface to the fast asynchronous
+signals blocking facility
+.Xr sigfastblock 2 .
+.Pp
+Blocking signals with
+.Fn pthread_signals_block_np
+disables delivery of any asynchronous signal, until unblocked.
+Signal blocking establishes a critical section where the execution
+flow of the thread cannot be diverted into a signal handler.
+Blocking signals is fast, it is performed by a single memory write into
+a location established with the kernel.
+.Pp
+Synchronous signal delivery cannot be blocked in general, including with
+these functions.
+.Pp
+The blocked state established by the
+.Fn pthread_signals_block_np
+is not completely POSIX-compliant.
+Specifically, system calls executed while in a blocked section,
+might abort sleep and return
+.Er EINTR
+upon queuing of an asynchronous signal to the thread,
+but the signal handler is not called until the last unblock is done.
+.Pp
+Calls to
+.Nm pthread_signals_block_np
+can be nested, and must be complemented by an equal count of
+calls to
+.Nm pthread_signals_unblock_np
+to return the calling thread to the standard mode of signal receiving.
+.Pp
+An example use of these function might be the construction of the CPU
+state that cannot be done atomically, and which includes stages where
+the state of the thread is not ABI compliant.
+If a signal is delivered while such state is not yet finished, signal
+handlers would misbehave.
+Using standard functions
+.Pq Fn sigprocmask
+to establish critical section might be much slower, because
+.Fn sigprocmask
+is system call, while
+.Fn pthread_signals_block_np
+consists of a single atomic memory write.
+.Sh RETURN VALUES
+The functions do not return a value.
+.Sh ERRORS
+There are no errors reported by the functions.
+.Sh SEE ALSO
+.Xr sigfastblock 2 ,
+.Xr sigprocmask 2 ,
+.Xr pthread_sigmask 3 ,
+.Xr pthread_np 3
diff --git a/share/man/man3/pthread_sigqueue.3 b/share/man/man3/pthread_sigqueue.3
index bf5dd62f04e6..852f6314e9d0 100644
--- a/share/man/man3/pthread_sigqueue.3
+++ b/share/man/man3/pthread_sigqueue.3
@@ -1,6 +1,6 @@
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Copyright 2024 The FreeBSD Foundation, Inc.
+.\" Copyright 2024 The FreeBSD Foundation
.\"
.\" This documentation was written by
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
diff --git a/share/man/man3/pthread_switch_add_np.3 b/share/man/man3/pthread_switch_add_np.3
deleted file mode 100644
index f02ff15eedc3..000000000000
--- a/share/man/man3/pthread_switch_add_np.3
+++ /dev/null
@@ -1,86 +0,0 @@
-.\" Copyright (c) 2003 Alexey Zelkin <phantom@FreeBSD.org>
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd October 12, 2021
-.Dt PTHREAD_SWITCH_ADD_NP 3
-.Os
-.Sh NAME
-.Nm pthread_switch_add_np ,
-.Nm pthread_switch_delete_np
-.Nd thread context switches debugging primitives
-.Sh LIBRARY
-.Lb libpthread
-.Sh SYNOPSIS
-.In pthread_np.h
-.Ft int
-.Fn pthread_switch_add_np "pthread_switch_routine_t routine"
-.Ft int
-.Fn pthread_switch_delete_np "pthread_switch_routine_t routine"
-.Sh DESCRIPTION
-An application is allowed to monitor the thread context switches inside
-the threading library.
-An application can install a routine that gets called every time a thread
-(explicitly created by an application with the
-.Xr pthread_create 3
-function) gets the context switched.
-The routine is passed the thread IDs of the threads that are
-being switched in and out.
-Installation and removal of these hooks may be done using the
-.Fn pthread_switch_add_np
-and
-.Fn pthread_switch_delete_np
-functions respectively.
-.Sh RETURN VALUES
-If successful,
-these functions return 0.
-Otherwise, an error number is returned to indicate the error.
-.Sh ERRORS
-The
-.Fn pthread_switch_add_np
-may fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-.Dv NULL
-pointer was passed in the
-.Fa routine
-argument.
-.El
-.Pp
-The
-.Fn pthread_switch_delete_np
-may fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa routine
-argument is different from the argument previously passed to the
-.Fn pthread_switch_add_np
-function.
-.El
-.Sh SEE ALSO
-.Xr pthread_create 3 ,
-.Xr pthread_np 3
-.Sh AUTHORS
-This manual page was written by
-.An Alexey Zelkin Aq Mt phantom@FreeBSD.org .
diff --git a/share/man/man3/pthread_testcancel.3 b/share/man/man3/pthread_testcancel.3
index 2d2bb06c48e2..c74cdcfe943b 100644
--- a/share/man/man3/pthread_testcancel.3
+++ b/share/man/man3/pthread_testcancel.3
@@ -34,6 +34,7 @@ are
.Dv PTHREAD_CANCEL_ENABLE
and
.Dv PTHREAD_CANCEL_DISABLE .
+The function is async-signal-safe.
.Pp
The
.Fn pthread_setcanceltype
@@ -248,6 +249,11 @@ function conforms to
.St -p1003.1-96 .
The standard allows implementations to make many more functions
cancellation points.
+.Pp
+The
+.Fn pthread_setcancelstate
+function is async-signal-safe as required by
+.St -p1003.1-2024 .
.Sh AUTHORS
This manual page was written by
.An David Leonard Aq Mt d@openbsd.org
diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3
index be890fd2cc88..79c8d92decbe 100644
--- a/share/man/man3/queue.3
+++ b/share/man/man3/queue.3
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 8, 2024
+.Dd April 28, 2025
.Dt QUEUE 3
.Os
.Sh NAME
@@ -33,6 +33,7 @@
.Nm SLIST_CLASS_HEAD ,
.Nm SLIST_CONCAT ,
.Nm SLIST_EMPTY ,
+.Nm SLIST_EMPTY_ATOMIC ,
.Nm SLIST_ENTRY ,
.Nm SLIST_FIRST ,
.Nm SLIST_FOREACH ,
@@ -48,11 +49,13 @@
.Nm SLIST_REMOVE ,
.Nm SLIST_REMOVE_AFTER ,
.Nm SLIST_REMOVE_HEAD ,
+.Nm SLIST_SPLIT_AFTER ,
.Nm SLIST_SWAP ,
.Nm STAILQ_CLASS_ENTRY ,
.Nm STAILQ_CLASS_HEAD ,
.Nm STAILQ_CONCAT ,
.Nm STAILQ_EMPTY ,
+.Nm STAILQ_EMPTY_ATOMIC ,
.Nm STAILQ_ENTRY ,
.Nm STAILQ_FIRST ,
.Nm STAILQ_FOREACH ,
@@ -70,11 +73,14 @@
.Nm STAILQ_REMOVE ,
.Nm STAILQ_REMOVE_AFTER ,
.Nm STAILQ_REMOVE_HEAD ,
+.Nm STAILQ_REVERSE ,
+.Nm STAILQ_SPLIT_AFTER ,
.Nm STAILQ_SWAP ,
.Nm LIST_CLASS_ENTRY ,
.Nm LIST_CLASS_HEAD ,
.Nm LIST_CONCAT ,
.Nm LIST_EMPTY ,
+.Nm LIST_EMPTY_ATOMIC ,
.Nm LIST_ENTRY ,
.Nm LIST_FIRST ,
.Nm LIST_FOREACH ,
@@ -91,11 +97,13 @@
.Nm LIST_PREV ,
.Nm LIST_REMOVE ,
.Nm LIST_REPLACE ,
+.Nm LIST_SPLIT_AFTER ,
.Nm LIST_SWAP ,
.Nm TAILQ_CLASS_ENTRY ,
.Nm TAILQ_CLASS_HEAD ,
.Nm TAILQ_CONCAT ,
.Nm TAILQ_EMPTY ,
+.Nm TAILQ_EMPTY_ATOMIC ,
.Nm TAILQ_ENTRY ,
.Nm TAILQ_FIRST ,
.Nm TAILQ_FOREACH ,
@@ -118,6 +126,7 @@
.Nm TAILQ_PREV ,
.Nm TAILQ_REMOVE ,
.Nm TAILQ_REPLACE ,
+.Nm TAILQ_SPLIT_AFTER ,
.Nm TAILQ_SWAP
.Nd implementations of singly-linked lists, singly-linked tail queues,
lists and tail queues
@@ -128,6 +137,7 @@ lists and tail queues
.Fn SLIST_CLASS_HEAD "HEADNAME" "CLASSTYPE"
.Fn SLIST_CONCAT "SLIST_HEAD *head1" "SLIST_HEAD *head2" "TYPE" "SLIST_ENTRY NAME"
.Fn SLIST_EMPTY "SLIST_HEAD *head"
+.Fn SLIST_EMPTY_ATOMIC "SLIST_HEAD *head"
.Fn SLIST_ENTRY "TYPE"
.Fn SLIST_FIRST "SLIST_HEAD *head"
.Fn SLIST_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
@@ -143,12 +153,14 @@ lists and tail queues
.Fn SLIST_REMOVE "SLIST_HEAD *head" "TYPE *elm" "TYPE" "SLIST_ENTRY NAME"
.Fn SLIST_REMOVE_AFTER "TYPE *elm" "SLIST_ENTRY NAME"
.Fn SLIST_REMOVE_HEAD "SLIST_HEAD *head" "SLIST_ENTRY NAME"
+.Fn SLIST_SPLIT_AFTER "SLIST_HEAD *head" "TYPE *elm" "SLIST_HEAD *rest" "SLIST_ENTRY NAME"
.Fn SLIST_SWAP "SLIST_HEAD *head1" "SLIST_HEAD *head2" "TYPE"
.\"
.Fn STAILQ_CLASS_ENTRY "CLASSTYPE"
.Fn STAILQ_CLASS_HEAD "HEADNAME" "CLASSTYPE"
.Fn STAILQ_CONCAT "STAILQ_HEAD *head1" "STAILQ_HEAD *head2"
.Fn STAILQ_EMPTY "STAILQ_HEAD *head"
+.Fn STAILQ_EMPTY_ATOMIC "STAILQ_HEAD *head"
.Fn STAILQ_ENTRY "TYPE"
.Fn STAILQ_FIRST "STAILQ_HEAD *head"
.Fn STAILQ_FOREACH "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
@@ -166,12 +178,15 @@ lists and tail queues
.Fn STAILQ_REMOVE "STAILQ_HEAD *head" "TYPE *elm" "TYPE" "STAILQ_ENTRY NAME"
.Fn STAILQ_REMOVE_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME"
.Fn STAILQ_REMOVE_HEAD "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
+.Fn STAILQ_REVERSE "STAILQ_HEAD *head" "TYPE" "STAILQ_ENTRY NAME"
+.Fn STAILQ_SPLIT_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_HEAD *rest" "STAILQ_ENTRY NAME"
.Fn STAILQ_SWAP "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" "TYPE"
.\"
.Fn LIST_CLASS_ENTRY "CLASSTYPE"
.Fn LIST_CLASS_HEAD "HEADNAME" "CLASSTYPE"
.Fn LIST_CONCAT "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME"
.Fn LIST_EMPTY "LIST_HEAD *head"
+.Fn LIST_EMPTY_ATOMIC "LIST_HEAD *head"
.Fn LIST_ENTRY "TYPE"
.Fn LIST_FIRST "LIST_HEAD *head"
.Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
@@ -188,12 +203,14 @@ lists and tail queues
.Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME"
.Fn LIST_REMOVE "TYPE *elm" "LIST_ENTRY NAME"
.Fn LIST_REPLACE "TYPE *elm" "TYPE *new" "LIST_ENTRY NAME"
+.Fn LIST_SPLIT_AFTER "LIST_HEAD *head" "TYPE *elm" "LIST_HEAD *rest" "LIST_ENTRY NAME"
.Fn LIST_SWAP "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME"
.\"
.Fn TAILQ_CLASS_ENTRY "CLASSTYPE"
.Fn TAILQ_CLASS_HEAD "HEADNAME" "CLASSTYPE"
.Fn TAILQ_CONCAT "TAILQ_HEAD *head1" "TAILQ_HEAD *head2" "TAILQ_ENTRY NAME"
.Fn TAILQ_EMPTY "TAILQ_HEAD *head"
+.Fn TAILQ_EMPTY_ATOMIC "TAILQ_HEAD *head"
.Fn TAILQ_ENTRY "TYPE"
.Fn TAILQ_FIRST "TAILQ_HEAD *head"
.Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
@@ -216,6 +233,7 @@ lists and tail queues
.Fn TAILQ_PREV "TYPE *elm" "HEADNAME" "TAILQ_ENTRY NAME"
.Fn TAILQ_REMOVE "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME"
.Fn TAILQ_REPLACE "TAILQ_HEAD *head" "TYPE *elm" "TYPE *new" "TAILQ_ENTRY NAME"
+.Fn TAILQ_SPLIT_AFTER "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_HEAD *rest" "TAILQ_ENTRY NAME"
.Fn TAILQ_SWAP "TAILQ_HEAD *head1" "TAILQ_HEAD *head2" "TYPE" "TAILQ_ENTRY NAME"
.\"
.Sh DESCRIPTION
@@ -242,6 +260,8 @@ O(1) removal of an entry from the head of the list.
.It
Forward traversal through the list.
.It
+Splitting a list in two after any element in the list.
+.It
Swapping the contents of two lists.
.El
.Pp
@@ -425,6 +445,10 @@ high-usage code paths or to operate on long lists.
The macro
.Nm SLIST_EMPTY
evaluates to true if there are no elements in the list.
+The
+.Nm SLIST_EMPTY_ATOMIC
+variant has the same behavior, but can be safely used in contexts where it is
+possible that a different thread is concurrently updating the list.
.Pp
The macro
.Nm SLIST_ENTRY
@@ -535,6 +559,17 @@ A doubly-linked list should be used if this macro is needed in
high-usage code paths or to operate on long lists.
.Pp
The macro
+.Nm SLIST_SPLIT_AFTER
+splits the list referenced by
+.Fa head ,
+making
+.Fa rest
+reference the list formed by elements after
+.Fa elm
+in
+.Fa head .
+.Pp
+The macro
.Nm SLIST_SWAP
swaps the contents of
.Fa head1
@@ -633,6 +668,10 @@ removing all entries from the former.
The macro
.Nm STAILQ_EMPTY
evaluates to true if there are no items on the tail queue.
+The
+.Nm STAILQ_EMPTY_ATOMIC
+variant has the same behavior, but can be safely used in contexts where it is
+possible that a different thread is concurrently updating the queue.
.Pp
The macro
.Nm STAILQ_ENTRY
@@ -754,6 +793,21 @@ A doubly-linked tail queue should be used if this macro is needed in
high-usage code paths or to operate on long tail queues.
.Pp
The macro
+.Nm STAILQ_REVERSE
+reverses the queue in place.
+.Pp
+The macro
+.Nm STAILQ_SPLIT_AFTER
+splits the tail queue referenced by
+.Fa head ,
+making
+.Fa rest
+reference the tail queue formed by elements after
+.Fa elm
+in
+.Fa head .
+.Pp
+The macro
.Nm STAILQ_SWAP
swaps the contents of
.Fa head1
@@ -866,6 +920,10 @@ high-usage code paths or to operate on long lists.
The macro
.Nm LIST_EMPTY
evaluates to true if there are no elements in the list.
+The
+.Nm LIST_EMPTY_ATOMIC
+variant has the same behavior, but can be safely used in contexts where it is
+possible that a different thread is concurrently updating the list.
.Pp
The macro
.Nm LIST_ENTRY
@@ -978,6 +1036,17 @@ The element
must not already be on a list.
.Pp
The macro
+.Nm LIST_SPLIT_AFTER
+splits the list referenced by
+.Fa head ,
+making
+.Fa rest
+reference the list formed by elements after
+.Fa elm
+in
+.Fa head .
+.Pp
+The macro
.Nm LIST_SWAP
swaps the contents of
.Fa head1
@@ -1084,6 +1153,10 @@ removing all entries from the former.
The macro
.Nm TAILQ_EMPTY
evaluates to true if there are no items on the tail queue.
+The
+.Nm TAILQ_EMPTY_ATOMIC
+variant has the same behavior, but can be safely used in contexts where it is
+possible that a different thread is concurrently updating the queue.
.Pp
The macro
.Nm TAILQ_ENTRY
@@ -1247,6 +1320,17 @@ The element
must not already be on a list.
.Pp
The macro
+.Nm TAILQ_SPLIT_AFTER
+splits the tail queue referenced by
+.Fa head ,
+making
+.Fa rest
+reference the tail queue formed by elements after
+.Fa elm
+in
+.Fa head .
+.Pp
+The macro
.Nm TAILQ_SWAP
swaps the contents of
.Fa head1
@@ -1312,49 +1396,87 @@ while (n1 != NULL) {
TAILQ_INIT(&head);
.Ed
.Sh DIAGNOSTICS
-When debugging
-.Nm queue(3) ,
-it can be useful to trace queue changes.
-To enable tracing, define the macro
-.Va QUEUE_MACRO_DEBUG_TRACE
-at compile time.
+.Nm queue(3)
+provides several diagnostic and debugging facilities.
.Pp
-It can also be useful to trash pointers that have been unlinked from a queue,
-to detect use after removal.
-To enable pointer trashing, define the macro
-.Va QUEUE_MACRO_DEBUG_TRASH
-at compile time.
-The macro
-.Fn QMD_IS_TRASHED "void *ptr"
-returns true if
-.Fa ptr
-has been trashed by the
-.Va QUEUE_MACRO_DEBUG_TRASH
-option.
+Check code that performs basic integrity and API conformance checks is
+automatically inserted when using queue macros in the kernel if compiling it
+with
+.Va INVARIANTS .
+One can request insertion or elision of check code by respectively defining one
+of the macros
+.Va QUEUE_MACRO_DEBUG_ASSERTIONS
+or
+.Va QUEUE_MACRO_NO_DEBUG_ASSERTIONS
+before first inclusion of
+.In sys/queue.h .
+When check code encounters an anomaly, it panics the kernel or aborts the
+program.
+To this end, in the kernel or in
+.Va _STANDALONE
+builds, it by default calls
+.Fn panic ,
+while in userland builds it prints the diagnostic message on
+.Dv stderr
+and then calls
+.Fn abort .
+These behaviors can be overriden by defining a custom
+.Fn QMD_PANIC
+macro before first inclusion of
+.In sys/queue.h .
+The diagnostic messages automatically include the source file, line and function
+where the failing check occured.
+This behavior can be overriden by defining a custom
+.Fn QMD_ASSERT
+macro before first inclusion of
+.In sys/queue.h .
.Pp
-In the kernel (with
-.Va INVARIANTS
-enabled), the
+The
.Fn SLIST_REMOVE_PREVPTR
macro is available to aid debugging:
.Bl -hang -offset indent
.It Fn SLIST_REMOVE_PREVPTR "TYPE **prev" "TYPE *elm" "SLIST_ENTRY NAME"
.Pp
-Removes
+Removes element
.Fa elm ,
which must directly follow the element whose
.Va &SLIST_NEXT()
is
.Fa prev ,
-from the SLIST.
-This macro validates that
+from the list.
+This macro may insert, under conditions detailed above, check code that
+validates that
.Fa elm
-follows
+indeed follows
.Fa prev
-in
-.Va INVARIANTS
-mode.
+in the list
+.Po
+through the
+.Fn QMD_SLIST_CHECK_PREVPTR
+macro
+.Pc .
.El
+.Pp
+When debugging, it can be useful to trace queue changes.
+To enable tracing, define the macro
+.Va QUEUE_MACRO_DEBUG_TRACE .
+Note that, at the moment, only macros for regular tail queues have been
+instrumented.
+.Pp
+It can also be useful to trash pointers that have been unlinked from a queue,
+to detect use after removal.
+To enable pointer trashing, define the macro
+.Va QUEUE_MACRO_DEBUG_TRASH
+at compile time.
+Note that, at the moment, only a limited number of macros have been
+instrumented.
+The macro
+.Fn QMD_IS_TRASHED "void *ptr"
+returns true if
+.Fa ptr
+has been trashed by the
+.Va QUEUE_MACRO_DEBUG_TRASH
+option.
.Sh SEE ALSO
.Xr arb 3 ,
.Xr tree 3
diff --git a/share/man/man3/stats.3 b/share/man/man3/stats.3
index 4dfb1dac63a2..7fe1fa613def 100644
--- a/share/man/man3/stats.3
+++ b/share/man/man3/stats.3
@@ -102,17 +102,17 @@
.Fc
.Ft struct voistatspec
.Fo "STATS_VSS_CRHIST<32|64>_USR"
-.Fa Sy "HBKTS" Ns Pq Sy "CRBKT" Ns ( Em "lb" ) , "..." Pc ,
+.Fa Sy "HBKTS" Ns Pq Sy "CRBKT" Ns ( Em "lb" ) , "..." ,
.Fa "vsdflags"
.Fc
.Ft struct voistatspec
.Fo "STATS_VSS_DRHIST<32|64>_USR"
-.Fa Sy "HBKTS" Ns Pq Sy "DRBKT" Ns ( Em "lb" , "ub" ) , "..." Pc ,
+.Fa Sy "HBKTS" Ns Pq Sy "DRBKT" Ns ( Em "lb" , "ub" ) , "..." ,
.Fa "vsdflags"
.Fc
.Ft struct voistatspec
.Fo "STATS_VSS_DVHIST<32|64>_USR"
-.Fa Sy "HBKTS" Ns Pq Sy "DVBKT" Ns ( Em "val" ) , "..." Pc ,
+.Fa Sy "HBKTS" Ns Pq Sy "DVBKT" Ns ( Em "val" ) , "..." ,
.Fa "vsdflags"
.Fc
.Ft struct voistatspec
@@ -316,16 +316,16 @@ The maximum VOI value.
The minimum VOI value.
.It Dv VS_STYPE_HIST
A static bucket histogram of VOI values, including a count of
-.Dq out-of-band/bucket Dc
+.Dq out-of-band/bucket
values which did not match any bucket.
Histograms can be specified as
-.Dq Em C Ns ontinuous Em R Ns ange Dc
-.Pq CRHIST Pc ,
-.Dq Em D Ns iscrete Em R Ns ange Dc
-.Pq DRHIST Pc
+.Dq Em C Ns ontinuous Em R Ns ange
+.Pq CRHIST ,
+.Dq Em D Ns iscrete Em R Ns ange
+.Pq DRHIST
or
-.Dq Em D Ns iscrete Em V Ns alue Dc
-.Pq DVHIST Pc ,
+.Dq Em D Ns iscrete Em V Ns alue
+.Pq DVHIST ,
with 32 or 64 bit bucket counters, depending on the VOI semantics.
.It Dv VS_STYPE_TDGST
A dynamic bucket histogram of VOI values based on the t-digest method
@@ -433,15 +433,15 @@ Where templates need to be referenced via textual means, for example via a MIB
variable, the following string based template spec formats can be used:
.Bl -enum
.It
-.Qq <tplname> Qc Ns
+.Qq <tplname> Ns
:<tplhash>
.Ns , for example
-.Qq TCP_DEFAULT Qc Ns
+.Qq TCP_DEFAULT Ns
:1731235399
.It
-.Qq <tplname> Qc
+.Qq <tplname>
.Ns , for example
-.Qq TCP_DEFAULT Qc
+.Qq TCP_DEFAULT
.It
:<tplhash>
.Ns , for example
diff --git a/share/man/man3/stdarg.3 b/share/man/man3/stdarg.3
index b7346c91d7a3..71409508e6a8 100644
--- a/share/man/man3/stdarg.3
+++ b/share/man/man3/stdarg.3
@@ -29,7 +29,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 25, 2020
+.Dd October 18, 2024
.Dt STDARG 3
.Os
.Sh NAME
@@ -202,9 +202,6 @@ void foo(char *fmt, ...)
These macros are
.Em not
compatible with the historic macros they replace.
-A backward compatible version can be found in the include
-file
-.In varargs.h .
.Sh STANDARDS
The
.Fn va_start ,
diff --git a/share/man/man3/sysexits.3 b/share/man/man3/sysexits.3
index ef736192e439..62f79b286a16 100644
--- a/share/man/man3/sysexits.3
+++ b/share/man/man3/sysexits.3
@@ -1,7 +1,7 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Copyright (c) 1996 Joerg Wunsch
-.\"
-.\" All rights reserved.
+.\" Copyright (c) 1996 Joerg Wunsch. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -23,27 +23,20 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" "
-.Dd January 21, 2010
+.Dd May 9, 2024
.Dt SYSEXITS 3
.Os
.Sh NAME
.Nm sysexits
-.Nd preferable exit codes for programs
+.Nd legacy exit status codes for system programs
.Sh SYNOPSIS
.In sysexits.h
.Sh DESCRIPTION
-According to
-.Xr style 9 ,
-it is not a good practice to call
-.Xr exit 3
-with arbitrary values to indicate a failure condition when ending
-a program.
-Instead, the pre-defined exit codes from
-.Nm
-should be used, so the caller of the process can get a rough
-estimation about the failure class without looking up the source code.
-.Pp
+Some commands attempt to describe the nature of a failure condition
+by using these pre-defined exit codes.
+This interface has been deprecated and is retained only for compatibility.
+Its use is discouraged.
+.Sh ERRORS
The successful exit is always indicated by a status of 0, or
.Sy EX_OK .
Error numbers begin at
@@ -112,8 +105,7 @@ The remote system returned something that was
during a protocol exchange.
.It Sy EX_NOPERM Pq 77
You did not have sufficient permission to perform the operation.
-This
-is not intended for file system problems, which should use
+This is not intended for file system problems, which should use
.Sy EX_NOINPUT
or
.Sy EX_CANTCREAT ,
@@ -131,12 +123,13 @@ parenthesis for easy reference.
.Sh HISTORY
The
.Nm
-file appeared somewhere after
-.Bx 4.3 .
+file first appeared in
+.Bx 4 .
.Sh AUTHORS
This manual page was written by
-.An J\(:org Wunsch
-after the comments in
-.In sysexits.h .
+.An J\(:org Wunsch .
.Sh BUGS
-The choice of an appropriate exit value is often ambiguous.
+.Bl -tag -width 0 -compact
+.It This interface is not portable.
+.It The choice of an appropriate exit value is often ambiguous.
+.El
diff --git a/share/man/man3/timeradd.3 b/share/man/man3/timeradd.3
index 6ce601f25150..9720267883ef 100644
--- a/share/man/man3/timeradd.3
+++ b/share/man/man3/timeradd.3
@@ -85,6 +85,7 @@ struct timeval {
long tv_usec; /* and microseconds */
};
.Ed
+.Pp
And the
.Fa timespec
structure is defined in
diff --git a/share/man/man3/tree.3 b/share/man/man3/tree.3
index e6d855c5ade0..83d005a5e481 100644
--- a/share/man/man3/tree.3
+++ b/share/man/man3/tree.3
@@ -28,7 +28,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 27, 2020
+.Dd August 2, 2024
.Dt TREE 3
.Os
.Sh NAME
@@ -675,6 +675,8 @@ To maintain the sum of the values in the tree, each element maintains
the sum of its value and the sums from its left and right subtrees.
Lastly, the internal structure of the tree is printed.
.Bd -literal -offset 3n
+#define RB_AUGMENT(entry) sumaug(entry)
+
#include <sys/tree.h>
#include <err.h>
#include <stdio.h>
@@ -691,7 +693,7 @@ intcmp(struct node *e1, struct node *e2)
return (e1->i < e2->i ? -1 : e1->i > e2->i);
}
-int
+void
sumaug(struct node *e)
{
e->sum = e->i;
@@ -700,7 +702,6 @@ sumaug(struct node *e)
if (RB_RIGHT(e, entry) != NULL)
e->sum += RB_RIGHT(e, entry)->sum;
}
-#define RB_AUGMENT(entry) sumaug(entry)
RB_HEAD(inttree, node) head = RB_INITIALIZER(&head);
RB_GENERATE(inttree, node, entry, intcmp)
@@ -749,8 +750,7 @@ main(void)
printf("%d\en", n->i);
}
print_tree(RB_ROOT(&head));
- printf("Sum of values = %d\n", RB_ROOT(&head)->sum);
- printf("\en");
+ printf("\enSum of values = %d\en", RB_ROOT(&head)->sum);
return (0);
}
.Ed
diff --git a/share/man/man3lua/Makefile b/share/man/man3lua/Makefile
index 35555988b6a2..6f95a27ac303 100644
--- a/share/man/man3lua/Makefile
+++ b/share/man/man3lua/Makefile
@@ -1,4 +1,3 @@
-
.include <src.opts.mk>
MAN= intro.3lua
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index 32ea3a1b6991..1ba1fe46523e 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -1,6 +1,13 @@
-
.include <src.opts.mk>
+MANGROUPS= MAN
+MANPACKAGE= kernel
+
+# If you add a new file here, please consider adding an entry to the
+# hardware notes template (website/archetypes/release/hardware.adoc in
+# the doc repository); otherwise the automatically generated hardware
+# notes will not include your driver.
+
MAN= aac.4 \
aacraid.4 \
acpi.4 \
@@ -34,10 +41,6 @@ MAN= aac.4 \
alc.4 \
ale.4 \
alpm.4 \
- altera_atse.4 \
- altera_avgen.4 \
- altera_jtag_uart.4 \
- altera_sdcard.4 \
altq.4 \
amdpm.4 \
${_amdsbwd.4} \
@@ -58,7 +61,6 @@ MAN= aac.4 \
atkbdc.4 \
${_atopcase.4} \
atp.4 \
- ${_atf_test_case.4} \
${_atrtc.4} \
${_attimer.4} \
audit.4 \
@@ -100,6 +102,7 @@ MAN= aac.4 \
cc_vegas.4 \
${_ccd.4} \
ccr.4 \
+ cd9660.4 \
cd.4 \
cdce.4 \
cdceem.4 \
@@ -127,6 +130,7 @@ MAN= aac.4 \
dcons_crom.4 \
ddb.4 \
devctl.4 \
+ devfs.4 \
disc.4 \
disk.4 \
divert.4 \
@@ -134,6 +138,7 @@ MAN= aac.4 \
ds1307.4 \
ds3231.4 \
${_dtrace_provs} \
+ dummymbuf.4 \
dummynet.4 \
edsc.4 \
ehci.4 \
@@ -147,23 +152,27 @@ MAN= aac.4 \
etherswitch.4 \
eventtimers.4 \
exca.4 \
+ ext2fs.4 \
+ e6000sw.4 \
e6060sw.4 \
fd.4 \
fdc.4 \
+ fdescfs.4 \
fdt.4 \
fdt_pinctrl.4 \
fdtbus.4 \
ffclock.4 \
+ ffs.4 \
filemon.4 \
firewire.4 \
${_ftgpio.4} \
${_ftwd.4} \
full.4 \
+ fusefs.4 \
fwe.4 \
fwip.4 \
fwohci.4 \
fxp.4 \
- gbde.4 \
gdb.4 \
gem.4 \
genet.4 \
@@ -206,9 +215,11 @@ MAN= aac.4 \
${_hv_vmbus.4} \
${_hv_vss.4} \
hwpmc.4 \
+ ${_hwt.4} \
${_hwpstate_intel.4} \
i2ctinyusb.4 \
iavf.4 \
+ ice.4 \
ichsmb.4 \
${_ichwd.4} \
icmp.4 \
@@ -236,6 +247,7 @@ MAN= aac.4 \
${_io.4} \
${_ioat.4} \
ip.4 \
+ ip17x.4 \
ip6.4 \
ipfirewall.4 \
ipheth.4 \
@@ -258,7 +270,8 @@ MAN= aac.4 \
iwnfw.4 \
iwlwifi.4 \
iwlwififw.4 \
- ixgbe.4 \
+ ${_iwx.4} \
+ ix.4 \
ixl.4 \
jedec_dimm.4 \
jme.4 \
@@ -276,7 +289,12 @@ MAN= aac.4 \
le.4 \
led.4 \
lge.4 \
+ lindebugfs.4 \
+ linprocfs.4 \
+ linsysfs.4 \
${_linux.4} \
+ linuxkpi.4 \
+ linuxkpi_wlan.4 \
liquidio.4 \
lm75.4 \
lo.4 \
@@ -288,6 +306,7 @@ MAN= aac.4 \
mac_biba.4 \
mac_bsdextended.4 \
mac_ddb.4 \
+ mac_do.4 \
mac_ifoff.4 \
mac_ipacl.4 \
mac_lomac.4 \
@@ -322,9 +341,12 @@ MAN= aac.4 \
mpr.4 \
mps.4 \
mpt.4 \
+ mqueuefs.4 \
mrsas.4 \
+ msdosfs.4 \
msk.4 \
mtio.4 \
+ mtkswitch.4 \
multicast.4 \
muge.4 \
mvs.4 \
@@ -342,6 +364,7 @@ MAN= aac.4 \
netlink.4 \
netmap.4 \
${_nfe.4} \
+ nfslockd.4 \
${_nfsmb.4} \
ng_async.4 \
ng_bpf.4 \
@@ -404,6 +427,7 @@ MAN= aac.4 \
${_nda.4} \
${_if_ntb.4} \
null.4 \
+ nullfs.4 \
numa.4 \
nvd.4 \
${_nvdimm.4} \
@@ -423,6 +447,7 @@ MAN= aac.4 \
owc.4 \
ovpn.4 \
${_padlock.4} \
+ p9fs.4 \
pass.4 \
pca954x.4 \
pccard.4 \
@@ -446,6 +471,7 @@ MAN= aac.4 \
ppc.4 \
ppi.4 \
procdesc.4 \
+ procfs.4 \
proto.4 \
ps4dshock.4 \
psm.4 \
@@ -456,6 +482,7 @@ MAN= aac.4 \
pty.4 \
puc.4 \
pwmc.4 \
+ ${_pvscsi.4} \
${_qat.4} \
${_qat_c2xxx.4} \
${_qlxge.4} \
@@ -474,6 +501,7 @@ MAN= aac.4 \
rtnetlink.4 \
rtsx.4 \
rtw88.4 \
+ rtw89.4 \
rtwn.4 \
rtwnfw.4 \
rtwn_pci.4 \
@@ -494,6 +522,7 @@ MAN= aac.4 \
send.4 \
ses.4 \
${_sfxge.4} \
+ sg.4 \
sge.4 \
siba.4 \
siftr.4 \
@@ -503,6 +532,7 @@ MAN= aac.4 \
sk.4 \
${_smartpqi.4} \
smb.4 \
+ smbfs.4 \
smbios.4 \
smbus.4 \
smp.4 \
@@ -512,6 +542,7 @@ MAN= aac.4 \
snd_cmi.4 \
snd_cs4281.4 \
snd_csa.4 \
+ snd_dummy.4 \
snd_emu10k1.4 \
snd_emu10kx.4 \
snd_envy24.4 \
@@ -519,6 +550,7 @@ MAN= aac.4 \
snd_es137x.4 \
snd_fm801.4 \
snd_hda.4 \
+ snd_hdsp.4 \
snd_hdspe.4 \
snd_ich.4 \
snd_maestro3.4 \
@@ -546,6 +578,7 @@ MAN= aac.4 \
syscons.4 \
sysmouse.4 \
tap.4 \
+ tarfs.4 \
targ.4 \
tcp.4 \
tcp_bbr.4 \
@@ -555,14 +588,16 @@ MAN= aac.4 \
textdump.4 \
ti.4 \
timecounters.4 \
+ tmpfs.4 \
${_tpm.4} \
tslog.4 \
tty.4 \
tun.4 \
- twe.4 \
tws.4 \
udp.4 \
udplite.4 \
+ ${_ufshci.4} \
+ unionfs.4 \
ure.4 \
vale.4 \
vga.4 \
@@ -596,6 +631,7 @@ MAN= aac.4 \
wlan_acl.4 \
wlan_amrr.4 \
wlan_ccmp.4 \
+ wlan_gcmp.4 \
wlan_tkip.4 \
wlan_wep.4 \
wlan_xauth.4 \
@@ -621,8 +657,6 @@ MLINKS+=age.4 if_age.4
MLINKS+=agp.4 agpgart.4
MLINKS+=alc.4 if_alc.4
MLINKS+=ale.4 if_ale.4
-MLINKS+=altera_atse.4 atse.4
-MLINKS+=altera_sdcard.4 altera_sdcardc.4
MLINKS+=altq.4 ALTQ.4
MLINKS+=ath.4 if_ath.4
MLINKS+=aue.4 if_aue.4
@@ -668,6 +702,7 @@ MLINKS+=em.4 if_em.4 \
MLINKS+=enc.4 if_enc.4
MLINKS+=epair.4 if_epair.4
MLINKS+=et.4 if_et.4
+MLINKS+=ext2fs.4 ext4fs.4
MLINKS+=fd.4 stderr.4 \
fd.4 stdin.4 \
fd.4 stdout.4
@@ -685,21 +720,24 @@ MLINKS+=gpioths.4 dht11.4
MLINKS+=gpioths.4 dht22.4
MLINKS+=gre.4 if_gre.4
MLINKS+=hpet.4 acpi_hpet.4
+MLINKS+=${_hv_netvsc.4} ${_hn.4} \
+ ${_hv_netvsc.4} ${_if_hn.4}
MLINKS+=${_hptrr.4} ${_rr232x.4}
MLINKS+=${_attimer.4} ${_i8254.4}
MLINKS+=ip.4 rawip.4
MLINKS+=ipfirewall.4 ipaccounting.4 \
ipfirewall.4 ipacct.4 \
ipfirewall.4 ipfw.4
+MLINKS+=ice.4 if_ice.4
MLINKS+=ipheth.4 if_ipheth.4
MLINKS+=ipw.4 if_ipw.4
MLINKS+=iwi.4 if_iwi.4
MLINKS+=iwlwifi.4 if_iwlwifi.4
MLINKS+=iwm.4 if_iwm.4
MLINKS+=iwn.4 if_iwn.4
-MLINKS+=ixgbe.4 ix.4
-MLINKS+=ixgbe.4 if_ix.4
-MLINKS+=ixgbe.4 if_ixgbe.4
+MLINKS+=ix.4 if_ix.4
+MLINKS+=ix.4 if_ixgbe.4
+MLINKS+=ix.4 ixgbe.4
MLINKS+=ixl.4 if_ixl.4
MLINKS+=iavf.4 if_iavf.4
MLINKS+=jme.4 if_jme.4
@@ -711,12 +749,12 @@ MLINKS+=lge.4 if_lge.4
MLINKS+=lo.4 loop.4
MLINKS+=lp.4 plip.4
MLINKS+=malo.4 if_malo.4
-MLINKS+=md.4 vn.4
MLINKS+=mem.4 kmem.4
MLINKS+=mfi.4 mfi_linux.4 \
mfi.4 mfip.4
MLINKS+=mlx5en.4 mce.4
MLINKS+=mos.4 if_mos.4
+MLINKS+=msdosfs.4 msdos.4
MLINKS+=msk.4 if_msk.4
MLINKS+=mwl.4 if_mwl.4
MLINKS+=mxge.4 if_mxge.4
@@ -736,7 +774,9 @@ MLINKS+=ptnet.4 if_ptnet.4
MLINKS+=ral.4 if_ral.4
MLINKS+=re.4 if_re.4
MLINKS+=rl.4 if_rl.4
-MLINKS+=rtwn_pci.4 if_rtwn_pci.4
+MLINKS+=rtw88.4 if_rtw88.4
+MLINKS+=rtw89.4 if_rtw89.4
+MLINKS+=rtwn.4 if_rtwn.4
MLINKS+=rue.4 if_rue.4
MLINKS+=scsi.4 cam.4
MLINKS+=scsi.4 scbus.4
@@ -806,6 +846,7 @@ _cpuctl.4= cpuctl.4
_dpms.4= dpms.4
_ftgpio.4= ftgpio.4
_ftwd.4= ftwd.4
+_hn.4= _hn.4
_hpt27xx.4= hpt27xx.4
_hptiop.4= hptiop.4
_hptmv.4= hptmv.4
@@ -821,9 +862,9 @@ _hwpstate_intel.4= hwpstate_intel.4
_i8254.4= i8254.4
_ichwd.4= ichwd.4
_if_bxe.4= if_bxe.4
+_if_hn.4= if_hn.4
_if_nfe.4= if_nfe.4
_if_urtw.4= if_urtw.4
-_if_vmx.4= if_vmx.4
_if_wpi.4= if_wpi.4
_igc.4= igc.4
_imcsmb.4= imcsmb.4
@@ -854,7 +895,6 @@ _urtw.4= urtw.4
_viawd.4= viawd.4
_vmci.4= vmci.4
_vmd.4= vmd.4
-_vmx.4= vmx.4
_wbwd.4= wbwd.4
_wdatwd.4= wdatwd.4
_wpi.4= wpi.4
@@ -865,6 +905,7 @@ _xnb.4= xnb.4
.if ${MACHINE_CPUARCH} == "amd64"
_ioat.4= ioat.4
+_iwx.4= iwx.4
_nvdimm.4= nvdimm.4
_qlxge.4= qlxge.4
_qlxgb.4= qlxgb.4
@@ -874,6 +915,7 @@ _sfxge.4= sfxge.4
_smartpqi.4= smartpqi.4
_sume.4= sume.4
+MLINKS+=iwx.4 if_iwx.4
MLINKS+=qlxge.4 if_qlxge.4
MLINKS+=qlxgb.4 if_qlxgb.4
MLINKS+=qlxgbe.4 if_qlxgbe.4
@@ -887,12 +929,30 @@ _vmm.4= vmm.4
.endif
.endif
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
+_hwt.4= hwt.4
+.if ${MACHINE_CPUARCH} == "amd64"
+MLINKS+=hwt.4 intel_pt.4
+.endif
+.if ${MACHINE_CPUARCH} == "aarch64"
+MLINKS+=hwt.4 coresight.4
+MLINKS+=hwt.4 spe.4
+.endif
+.endif
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
+_ufshci.4= ufshci.4
+.endif
+
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
${MACHINE_CPUARCH} == "aarch64"
_gve.4= gve.4
+_if_vmx.4= if_vmx.4
_ipmi.4= ipmi.4
_linux.4= linux.4
_ossl.4= ossl.4
+_pvscsi.4= pvscsi.4
+_vmx.4= vmx.4
.endif
.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" || \
@@ -912,6 +972,10 @@ SUBDIR+= man4.${__arch}
.endif
.endfor
+.if ${MK_AUTOFS} != "no"
+MAN+= autofs.4
+.endif
+
.if ${MK_BLUETOOTH} != "no"
MAN+= ng_bluetooth.4
.endif
@@ -922,11 +986,14 @@ _ccd.4= ccd.4
.if ${MK_CDDL} != "no"
_dtrace_provs= dtrace_audit.4 \
+ dtrace_dtrace.4 \
+ dtrace_fbt.4 \
dtrace_io.4 \
dtrace_ip.4 \
dtrace_kinst.4 \
dtrace_lockstat.4 \
dtrace_proc.4 \
+ dtrace_profile.4 \
dtrace_sched.4 \
dtrace_sctp.4 \
dtrace_tcp.4 \
@@ -958,9 +1025,11 @@ MAN+= mlx5io.4
.endif
.if ${MK_TESTS} != "no"
+MANGROUPS+= TESTS
ATF= ${SRCTOP}/contrib/atf
.PATH: ${ATF}/doc
-_atf_test_case.4= atf-test-case.4
+TESTS= atf-test-case.4
+TESTSPACKAGE= tests
.endif
.if ${MK_PF} != "no"
@@ -972,6 +1041,7 @@ _pfsync.4= pfsync.4
.if ${MK_USB} != "no"
MAN+= \
+ mtw.4 \
otus.4 \
otusfw.4 \
rsu.4 \
@@ -1006,6 +1076,7 @@ MAN+= \
uled.4 \
ulpt.4 \
umass.4 \
+ umb.4 \
umcs.4 \
umct.4 \
umodem.4 \
@@ -1026,8 +1097,10 @@ MAN+= \
uslcom.4 \
uvisor.4 \
uvscom.4 \
+ veriexec.4 \
zyd.4
+MLINKS+=mtw.4 if_mtw.4
MLINKS+=otus.4 if_otus.4
MLINKS+=rsu.4 if_rsu.4
MLINKS+=rtwn_usb.4 if_rtwn_usb.4
diff --git a/share/man/man4/acpi.4 b/share/man/man4/acpi.4
index 434e97d529f5..cdad3ceeedfc 100644
--- a/share/man/man4/acpi.4
+++ b/share/man/man4/acpi.4
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 12, 2021
+.Dd July 15, 2024
.Dt ACPI 4
.Os
.Sh NAME
@@ -256,6 +256,12 @@ is a valid list of two interfaces
.Qq Li FreeBSD
and
.Qq Li Linux .
+.It Va hw.acpi.hw.acpi.override_isa_irq_polarity (x86)
+Forces active-lo polarity for edge-triggered ISA interrupts.
+Some older systems incorrectly specify active-lo polarity for ISA
+interrupts and this override fixes those systems.
+This override is enabled by default on systems with Intel CPUs,
+but can be enabled or disabled by setting the tunable explicitly.
.It Va hw.acpi.reset_video
Enables calling the VESA reset BIOS vector on the resume path.
This can fix some graphics cards that have problems such as LCD white-out
diff --git a/share/man/man4/acpi_asus_wmi.4 b/share/man/man4/acpi_asus_wmi.4
index 7d6aeaca948b..721b73833484 100644
--- a/share/man/man4/acpi_asus_wmi.4
+++ b/share/man/man4/acpi_asus_wmi.4
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 2, 2012
+.Dd March 25, 2024
.Dt ACPI_ASUS_WMI 4
.Os
.Sh NAME
@@ -72,11 +72,19 @@ Number of other variables under the same sysctl branch are model-specific.
Defaults for these variables can be set in
.Xr sysctl.conf 5 ,
which is parsed at boot-time.
+.Sh FILES
+.Bl -tag -width "/dev/backlight/acpi_asus_wmi0" -compact
+.It Pa /dev/backlight/acpi_asus_wmi0
+Keyboard
+.Xr backlight 8
+device node.
+.El
.Sh SEE ALSO
.Xr acpi 4 ,
.Xr acpi_asus 4 ,
.Xr acpi_video 4 ,
.Xr sysctl.conf 5 ,
+.Xr backlight 8 ,
.Xr devd 8 ,
.Xr sysctl 8
.Sh HISTORY
diff --git a/share/man/man4/acpi_ged.4 b/share/man/man4/acpi_ged.4
index c87c7b3e97c9..98baabdde796 100644
--- a/share/man/man4/acpi_ged.4
+++ b/share/man/man4/acpi_ged.4
@@ -53,7 +53,7 @@ This may generate optionally ACPI notify for another device.
The
.Nm
device driver first appeared in
-.Fx 14.0 .
+.Fx 13.3 .
.Sh AUTHORS
.An -nosplit
The
diff --git a/share/man/man4/acpi_wmi.4 b/share/man/man4/acpi_wmi.4
index 9ad14ed7892a..e5c5517ba4ac 100644
--- a/share/man/man4/acpi_wmi.4
+++ b/share/man/man4/acpi_wmi.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2009 Michael Gmelin
.\" All rights reserved.
.\"
@@ -22,47 +25,45 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 5, 2019
+.Dd June 12, 2025
.Dt ACPI_WMI 4
.Os
.Sh NAME
.Nm acpi_wmi
-.Nd "ACPI to WMI mapping driver"
+.Nd ACPI to WMI mapping driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following line in your
kernel configuration file:
-.Bd -ragged -offset indent
-.Cd "device acpi_wmi"
-.Ed
+.Pp
+.Dl Cd "device acpi_wmi"
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-acpi_wmi_load="YES"
-.Ed
+.Pp
+.Dl acpi_wmi_load="YES"
.Sh DESCRIPTION
The
.Nm
driver provides an interface for vendor specific WMI implementations
-(e.g. HP and Acer laptops).
-It creates /dev/wmistat%d, which can be read to get
-information about GUIDs found in the system.
+.Pq e.g. HP and Acer laptops .
+It creates
+.Pa /dev/wmistat%d ,
+which can be read to get information about GUIDs found in the system.
.Sh FILES
.Bl -tag -width /dev/wmistat%d -compact
.It Pa /dev/wmistat%d
-WMI status device.
+WMI status devices.
.El
.Sh SYSCTLS
The following sysctl node is currently implemented:
-.Bl -tag
+.Bl -tag -width "dev.acpi_wmi.%d.bmof"
.It Va dev.acpi_wmi.%d.bmof
-Managed Object Format (MOF) blob.
-You can obtain human readable output by bmf2mof in bmfdec tool.
-(https://github.com/pali/bmfdec)
+binary Managed Object Format (MOF) buffer
.El
.Sh EXAMPLES
+Read GUIDs from the first WMI interface found in the system:
.Bd -literal
# cat /dev/wmistat0
GUID INST EXPE METH STR EVENT OID
@@ -78,7 +79,14 @@ GUID INST EXPE METH STR EVENT OID
{8232DE3D-663D-4327-A8F4-E293ADB9BF05} 0 NO NO NO NO BG
{8F1F6436-9F42-42C8-BADC-0E9424F20C9A} 0 NO NO NO NO BH
{8F1F6435-9F42-42C8-BADC-0E9424F20C9A} 0 NO NO NO NO BI
-# sysctl -b dev.acpi_wmi.0.bmof |bmf2mof
+.Ed
+.Pp
+Read first WMI interface description with
+.Sy bmf2mof
+from
+.Pa ports/converters/bmfdec :
+.Bd -literal
+# sysctl -b dev.acpi_wmi.0.bmof | bmf2mof
[abstract]
class Lenovo_BIOSElement {
};
@@ -91,10 +99,15 @@ class Lenovo_BiosSetting : Lenovo_BiosElement {
[WmiDataId(1), Description("BIOS setting")] String CurrentSetting;
};
...
-
.Ed
.Sh SEE ALSO
.Xr acpi 4
+.Sh STANDARDS
+.Rs
+.%T Windows Instrumentation: WMI and ACPI
+.%I Microsoft Corporation
+.%U https://github.com/microsoft/Windows-driver-samples/tree/main/wmi/wmiacpi
+.Re
.Sh HISTORY
The
.Nm
@@ -107,13 +120,13 @@ The
driver was written by
.An Michael Gmelin Aq Mt freebsd@grem.de .
.Pp
-Work has been inspired by the Linux acpi-wmi driver written by Carlos Corbacho.
-.Pp
-See http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx for
-the specification of ACPI-WMI.
+Work inspired by the Linux
+.Sy acpi-wmi
+driver written by Carlos Corbacho.
.Pp
-MOF part has been inspired by the Linux wmi-bmof driver
-written by Andy Lutomirski.
+MOF handling inspired by the Linux
+.Sy wmi-bmof
+driver written by Andy Lutomirski.
.Pp
This manual page was written by
.An Michael Gmelin Aq Mt freebsd@grem.de .
diff --git a/share/man/man4/agp.4 b/share/man/man4/agp.4
index de19349caa08..2aeb01850085 100644
--- a/share/man/man4/agp.4
+++ b/share/man/man4/agp.4
@@ -30,6 +30,11 @@
.Nd "generic interface to the Accelerated Graphics Port (AGP)"
.Sh SYNOPSIS
.Cd "device agp"
+.Sh DEPRECATION NOTICE
+The
+.Nm
+driver is slated to be removed in
+.Fx 15.0 .
.Sh DESCRIPTION
The
.Nm
diff --git a/share/man/man4/ahc.4 b/share/man/man4/ahc.4
index 7d5e092089bb..38712c1f08b6 100644
--- a/share/man/man4/ahc.4
+++ b/share/man/man4/ahc.4
@@ -131,7 +131,7 @@ target on multiple SCSI IDs.
.Pp
To allow PCI adapters to use memory mapped I/O if enabled:
.Pp
-.Cd options AHC_ALLOW_MEMIO
+.Cd options AHC_ALLOW_MEMIO=(0 -- disabled, 1 -- enabled)
.Bd -ragged -offset indent
Memory mapped I/O is more efficient than the alternative, programmed I/O.
Most PCI BIOSes will map devices so that either technique for communicating
@@ -141,12 +141,13 @@ the chip for memory mapped I/O. The typical symptom of this problem is a
system hang if memory mapped I/O is attempted.
.Pp
Most modern motherboards perform the initialization correctly and work fine
-with this option enabled.
+with this option enabled and it is the default. This option can also be
+dynamically configued through a device hint documented below.
.Ed
.Pp
To statically configure one or more controllers to assume the target role:
.Pp
-.Cd options AHC_TMODE_ENABLE <bitmask of units>
+.Cd options AHC_TMODE_ENABLE=<bitmask of units>
.Bd -ragged -offset indent
The value assigned to this option should be a bitmap of all units where target
mode is desired. For example, a value of 0x25, would enable target mode on
@@ -154,7 +155,6 @@ units 0, 2, and 5. A value of 0x8a enables it for units 1, 3, and 7.
.Pp
Note that controllers can be dynamically configured through a device hint
documented below.
-.El
.Ed
.Sh BOOT OPTIONS
The following options are switchable by setting values in
@@ -163,9 +163,12 @@ The following options are switchable by setting values in
They are:
.Bl -tag -width indent
.It Va hint.ahc. Ns Ar N Ns Va .tmode_enable
-A hint to define whether the SCSI target mode is enabled (0 -- disabled, 1 -- enabled).
+A hint to define whether the SCSI target mode is enabled, defaults to disabled
+(0 -- disabled, 1 -- enabled).
+.It Va hint.ahc. Ns Ar N Ns Va .allow_memio
+A hint to define whether memory mapped io is enabled or disabled for this
+adapter, defaults to enabled (0 -- disabled, 1 -- enabled).
.El
-.Ed
.Sh HARDWARE
The
.Nm
diff --git a/share/man/man4/ahd.4 b/share/man/man4/ahd.4
index e7f9b73f085a..c173a8cef619 100644
--- a/share/man/man4/ahd.4
+++ b/share/man/man4/ahd.4
@@ -107,8 +107,6 @@ disconnection,
and the host adapter's
.Tn SCSI
ID.
-.El
-.Ed
.Sh CONFIGURATION OPTIONS
To statically configure one or more controllers to assume the target role:
.Pp
@@ -121,6 +119,7 @@ units 0, 2, and 5. A value of 0x8a enables it for units 1, 3, and 7.
Note that controllers can be dynamically configured through a device hint
documented below.
+.Ed
.Sh BOOT OPTIONS
The following options are switchable by setting values in
.Pa /boot/device.hints .
@@ -130,7 +129,6 @@ They are:
.It Va hint.ahd. Ns Ar N Ns Va .tmode_enable
A hint to define whether the SCSI target mode is enabled (0 -- disabled, 1 -- enabled).
.El
-.Ed
.Sh HARDWARE
The
.Nm
diff --git a/share/man/man4/altera_atse.4 b/share/man/man4/altera_atse.4
deleted file mode 100644
index d425b125d961..000000000000
--- a/share/man/man4/altera_atse.4
+++ /dev/null
@@ -1,117 +0,0 @@
-.\"-
-.\" Copyright (c) 2013-2014 SRI International
-.\" All rights reserved.
-.\"
-.\" This software was developed by SRI International and the University of
-.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
-.\" ("CTSRD"), as part of the DARPA CRASH research programme.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd May 21, 2014
-.Dt ALTERA_ATSE 4
-.Os
-.Sh NAME
-.Nm atse
-.Nd driver for the Altera Triple-Speed Ethernet MegaCore
-.Sh SYNOPSIS
-.Cd "device atse"
-.Cd "options ATSE_CFI_HACK"
-.Pp
-In
-.Pa /boot/device.hints :
-.Cd hint.atse.0.at="nexus0"
-.Cd hint.atse.0.maddr=0x7f007000
-.Cd hint.atse.0.msize=0x540
-.Cd hint.atse.0.rc_irq=1
-.Cd hint.atse.0.rx_maddr=0x7f007500
-.Cd hint.atse.0.rx_msize=0x8
-.Cd hint.atse.0.rxc_maddr=0x7f007520
-.Cd hint.atse.0.rxc_msize=0x20
-.Cd hint.atse.0.tx_irq=2
-.Cd hint.atse.0.tx_maddr=0x7f007400
-.Cd hint.atse.0.tx_msize=0x8
-.Cd hint.atse.0.txc_maddr=0x7f007420
-.Cd hint.atse.0.txc_msize=0x20
-.Cd hint.e1000phy.0.at="miibus0"
-.Cd hint.e1000phy.0.phyno=0
-.Sh DESCRIPTION
-The
-.Nm
-device driver provides support for the Altera Triple-Speed Ethernet
-MegaCore.
-.Sh HARDWARE
-The current version of the
-.Nm
-driver supports the Ethernet MegaCore as described in version 11.1 of
-Altera's documentation when the device is configured with internal FIFOs.
-.Sh MAC SELECTION
-The default MAC address for each
-.Nm
-interface is derived from a value stored in
-.Xr cfi 4
-flash.
-The value is managed by the
-.Xr atsectl 8
-utility.
-.Pp
-Only a single MAC address may be stored in flash.
-If the address begins with the Altera prefix 00:07:ed and ends in 00 then
-up to 16 addresses will be derived from it by adding the unit number of
-the interface to the stored address.
-For other prefixes, the address will be assigned to atse0 and random
-addresses will be used for other interfaces.
-If the stored address is invalid, for example all zero's, multicast, or the
-default address shipped on all DE4 boards (00:07:ed:ff:ed:15) then a random
-address is generated when the device is attached.
-.Sh SEE ALSO
-.Xr miibus 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8
-.Rs
-.%T Triple-Speed Ethernet MegaCore Function User Guide
-.%D November 2011
-.%I Altera Corporation
-.Re
-.Sh HISTORY
-The
-.Nm
-device driver first appeared in
-.Fx 10.0 .
-.Sh AUTHORS
-The
-.Nm
-device driver and this manual page were
-developed by SRI International and the University of Cambridge Computer
-Laboratory under DARPA/AFRL contract
-.Pq FA8750-10-C-0237
-.Pq Do CTSRD Dc ,
-as part of the DARPA CRASH research programme.
-This device driver was written by
-.An Bjoern A. Zeeb .
-.Sh BUGS
-The
-.Nm
-driver only supports a single configuration of the MegaCore as installed
-on the Terasic Technologies Altera DE4 Development and Education Board.
-.Pp
-Only gigabit Ethernet speeds are currently supported.
diff --git a/share/man/man4/altera_avgen.4 b/share/man/man4/altera_avgen.4
deleted file mode 100644
index dc7e9a0a308b..000000000000
--- a/share/man/man4/altera_avgen.4
+++ /dev/null
@@ -1,153 +0,0 @@
-.\"-
-.\" Copyright (c) 2012 Robert N. M. Watson
-.\" All rights reserved.
-.\"
-.\" This software was developed by SRI International and the University of
-.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
-.\" ("CTSRD"), as part of the DARPA CRASH research programme.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd August 18, 2012
-.Dt ALTERA_AVGEN 4
-.Os
-.Sh NAME
-.Nm altera_avgen
-.Nd driver for generic Altera Avalon-bus-attached, memory-mapped devices
-.Sh SYNOPSIS
-.Cd "device altera_avgen"
-.Pp
-In
-.Pa /boot/device.hints :
-.Cd hint.altera_avgen.0.at="nexus0"
-.Cd hint.altera_avgen.0.maddr=0x7f00a000
-.Cd hint.altera_avgen.0.msize=20
-.Cd hint.altera_avgen.0.width=4
-.Cd hint.altera_avgen.0.fileio="rw"
-.Cd hint.altera_avgen.0.devname="berirom"
-.Sh DESCRIPTION
-The
-.Nm
-device driver provides generic support for memory-mapped devices on the
-Altera Avalon bus.
-.Pa device.hints
-entries configure the address, size, I/O disposition, and
-.Pa /dev
-device node name that will be used.
-The
-.Xr open 2 ,
-.Xr read 2 ,
-.Xr write 2 ,
-and
-.Xr mmap 2
-system calls (and variations) may be used on
-.Nm
-device nodes, subject to constraints imposed using
-.Pa device.hints
-entries.
-Although reading and writing mapped memory is supported,
-.Nm
-does not currently support directing device interrupts to userspace.
-.Pp
-A number of
-.Pa device.hints
-sub-fields are available to configure
-.Nm
-device instances:
-.Bl -tag -width devunit
-.It maddr
-base physical address of the memory region to export; must be aligned to
-.Li width
-.It msize
-length of the memory region export; must be aligned to
-.Li width
-.It width
-Granularity at which
-.Xr read 2
-and
-.Xr write 2
-operations will be performed.
-Larger requests will be broken down into
-.Li width -sized
-operations; smaller requests will be rejected.
-I/O operations must be aligned to
-.Li width .
-.It fileio
-allowed file descriptor operations;
-.Li r
-authorizes
-.Xr read 2 ;
-.Li w
-authorizes
-.Xr write 2 .
-.It mmapio
-allowed
-.Xr mmap 2
-permissions;
-.Li w
-authorizes
-.Dv PROT_WRITE ;
-.Li r
-authorizes
-.Dv PROT_READ ;
-.Li x
-authorizes
-.Dv PROT_EXEC .
-.It devname
-specifies a device name relative to
-.Pa /dev .
-.It devunit
-specifies a device unit number; no unit number is used if this is unspecified.
-.El
-.Sh SEE ALSO
-.Xr mmap 2 ,
-.Xr open 2 ,
-.Xr read 2 ,
-.Xr write 2
-.Sh HISTORY
-The
-.Nm
-device driver first appeared in
-.Fx 10.0 .
-.Sh AUTHORS
-The
-.Nm
-device driver and this manual page were
-developed by SRI International and the University of Cambridge Computer
-Laboratory under DARPA/AFRL contract
-.Pq FA8750-10-C-0237
-.Pq Do CTSRD Dc ,
-as part of the DARPA CRASH research programme.
-This device driver was written by
-.An Robert N. M. Watson .
-.Sh BUGS
-.Nm
-is intended to support the writing of userspace device drivers; however, it
-does not permit directing interrupts to userspace, only memory-mapped I/O.
-.Pp
-.Nm
-supports only a
-.Li nexus
-bus attachment, which is appropriate for system-on-chip busses such as
-Altera's Avalon bus.
-If the target device is off of another bus type, then additional bus
-attachments will be required.
diff --git a/share/man/man4/altera_jtag_uart.4 b/share/man/man4/altera_jtag_uart.4
deleted file mode 100644
index 339e58d7c2f1..000000000000
--- a/share/man/man4/altera_jtag_uart.4
+++ /dev/null
@@ -1,119 +0,0 @@
-.\"-
-.\" Copyright (c) 2012 Robert N. M. Watson
-.\" All rights reserved.
-.\"
-.\" This software was developed by SRI International and the University of
-.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
-.\" ("CTSRD"), as part of the DARPA CRASH research programme.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd August 18, 2012
-.Dt ALTERA_JTAG_UART 4
-.Os
-.Sh NAME
-.Nm altera_jtag_uart
-.Nd driver for the Altera JTAG UART Core
-.Sh SYNOPSIS
-.Cd "device altera_jtag_uart"
-.Pp
-In
-.Pa /boot/device.hints :
-.Cd hint.altera_jtag_uart.0.at="nexus0"
-.Cd hint.altera_jtag_uart.0.maddr=0x7f000000
-.Cd hint.altera_jtag_uart.0.msize=0x40
-.Cd hint.altera_jtag_uart.0.irq=0
-.Cd hint.altera_jtag_uart.1.at="nexus0"
-.Cd hint.altera_jtag_uart.1.maddr=0x7f001000
-.Cd hint.altera_jtag_uart.1.msize=0x40
-.Sh DESCRIPTION
-The
-.Nm
-device driver provides support for the Altera JTAG UART core, which allows
-multiple UART-like streams to be carried over JTAG.
-.Nm
-allows JTAG UART streams to be attached to both the low-level console
-interface, used for direct kernel input and output, and the
-.Xr tty 4
-layer, to be used with
-.Xr ttys 5
-and
-.Xr login 1 .
-Sequential Altera JTAG UART devices will appear as
-.Li ttyu0 ,
-.Li ttyu1 ,
-etc.
-.Sh HARDWARE
-Altera JTAG UART devices can be connected to using Altera's
-.Pa nios2-terminal
-program, with the instance selected using the
-.Li --instance
-argument on the management host.
-.Nm
-supports JTAG UART cores with or without interrupt lines connected; if the
-.Li irq
-portion of the
-.Pa device.hints
-entry is omitted, the driver will poll rather than configure interrupts.
-.Sh SEE ALSO
-.Xr login 1 ,
-.Xr tty 4 ,
-.Xr ttys 5
-.Rs
-.%T Altera Embedded Peripherals IP User Guide
-.%D June 2011
-.%I Altera Corporation
-.%U http://www.altera.com/literature/ug/ug_embedded_ip.pdf
-.Re
-.Sh HISTORY
-The
-.Nm
-device driver first appeared in
-.Fx 10.0 .
-.Sh AUTHORS
-The
-.Nm
-device driver and this manual page were
-developed by SRI International and the University of Cambridge Computer
-Laboratory under DARPA/AFRL contract
-.Pq FA8750-10-C-0237
-.Pq Do CTSRD Dc ,
-as part of the DARPA CRASH research programme.
-This device driver was written by
-.An Robert N. M. Watson .
-.Sh BUGS
-.Nm
-must dynamically poll to detect when JTAG is present, in order to disable flow
-control in the event that there is no receiving endpoint.
-Otherwise, the boot may hang waiting for the JTAG client to be attached, and
-user processes attached to JTAG UART devices might block indefinitely.
-However, there is no way to flush the output buffer once JTAG is detected to
-have disappeared; this means that a small amount of stale output data will
-remain in the output buffer, being displayed by
-.Li nios2-terminal
-when it is connected.
-Loss of JTAG will not generate a hang-up event, as that is rarely the desired
-behaviour.
-.Pp
-.Li nios2-terminal
-does not place the client-side TTY in raw mode, and so by default will not
-pass all control characters through to the UART.
diff --git a/share/man/man4/altera_sdcard.4 b/share/man/man4/altera_sdcard.4
deleted file mode 100644
index 65d1ba5369ed..000000000000
--- a/share/man/man4/altera_sdcard.4
+++ /dev/null
@@ -1,116 +0,0 @@
-.\"-
-.\" Copyright (c) 2012 Robert N. M. Watson
-.\" All rights reserved.
-.\"
-.\" This software was developed by SRI International and the University of
-.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
-.\" ("CTSRD"), as part of the DARPA CRASH research programme.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd August 18, 2012
-.Dt ALTERA_SDCARD 4
-.Os
-.Sh NAME
-.Nm altera_sdcard
-.Nd driver for the Altera University Program Secure Data Card IP Core
-.Sh SYNOPSIS
-.Cd "device altera_sdcard"
-.Pp
-In
-.Pa /boot/device.hints :
-.Cd hint.altera_sdcardc.0.at="nexus0"
-.Cd hint.altera_sdcardc.0.maddr=0x7f008000
-.Cd hint.altera_sdcardc.0.msize=0x400
-.Sh DESCRIPTION
-The
-.Nm
-device driver provides support for the Altera University Program Secure Data
-Card (SD Card) IP Core device.
-A controller device,
-.Li altera_sdcardcX ,
-will be attached during boot.
-Inserted disks are presented as
-.Xr disk 9
-devices,
-.Li altera_sdcardX ,
-corresponding to the controller number.
-.Sh HARDWARE
-The current version of the
-.Nm
-driver supports the SD Card IP core as described in the August 2011 version of
-Altera's documentation.
-The core supports only cards up to 2G (CSD 0); larger cards, or cards using
-newer CSD versions, will not be detected.
-The IP core has two key limitations: a lack of interrupt support, requiring
-timer-driven polling to detect I/O completion, and support for only single
-512-byte block read and write operations at a time.
-The combined effect of those two limits is that the system clock rate,
-.Dv HZ ,
-must be set to at least 200 in order to accomplish the maximum 100KB/s data
-rate supported by the IP core.
-.Sh SEE ALSO
-.Xr disk 9
-.Rs
-.%T Altera University Program Secure Data Card IP Core
-.%D August 2011
-.%I Altera Corporation - University Program
-.%U ftp://ftp.altera.com/up/pub/Altera_Material/11.0/University_Program_IP_Cores/Memory/SD_Card_Interface_for_SoPC_Builder.pdf
-.Re
-.Sh HISTORY
-The
-.Nm
-device driver first appeared in
-.Fx 10.0 .
-.Sh AUTHORS
-The
-.Nm
-device driver and this manual page were
-developed by SRI International and the University of Cambridge Computer
-Laboratory under DARPA/AFRL contract
-.Pq FA8750-10-C-0237
-.Pq Do CTSRD Dc ,
-as part of the DARPA CRASH research programme.
-This device driver was written by
-.An Robert N. M. Watson .
-.Sh BUGS
-.Nm
-contains a number of work-arounds for IP core bugs.
-Perhaps most critically,
-.Nm
-ignores the CRC error bit returned in the RR1 register, which appears to be
-unexpectedly set by the IP core.
-.Pp
-.Nm
-uses fixed polling intervals are used for card insertion/removal and
-I/O completion detection; an adaptive strategy might improve performance by
-reducing the latency to detecting completed I/O.
-However, in our experiments, using polling rates greater than 200 times a
-second did not improve performance.
-.Pp
-.Nm
-supports only a
-.Li nexus
-bus attachment, which is appropriate for system-on-chip busses such as
-Altera's Avalon bus.
-If the IP core is configured off of another bus type, then additional bus
-attachments will be required.
diff --git a/share/man/man4/altq.4 b/share/man/man4/altq.4
index 2a6acc96ed86..a613802248a4 100644
--- a/share/man/man4/altq.4
+++ b/share/man/man4/altq.4
@@ -142,7 +142,7 @@ They have been applied to the following hardware drivers:
.Xr fxp 4 ,
.Xr gem 4 ,
.Xr igb 4 ,
-.Xr ixgbe 4 ,
+.Xr ix 4 ,
.Xr jme 4 ,
.Xr le 4 ,
.Xr liquidio 4 ,
diff --git a/share/man/man4/arswitch.4 b/share/man/man4/arswitch.4
index 3ec7316ae6e7..5bcd6c6810ee 100644
--- a/share/man/man4/arswitch.4
+++ b/share/man/man4/arswitch.4
@@ -22,12 +22,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 8, 2023
+.Dd May 11, 2025
.Dt ARSWITCH 4
.Os
.Sh NAME
.Nm arswitch
-.Nd driver for Atheros Fast Ethernet switch
+.Nd Atheros AR8000 series Ethernet switch driver
.Sh SYNOPSIS
.Cd "device mdio"
.Cd "device etherswitch"
@@ -35,18 +35,8 @@
.Sh DESCRIPTION
The
.Nm
-device driver provides a management interface to multiple Atheros
-fast ethernet switch chips:
-.Bl -tag -compact -width "AR8216"
-.It AR8216
-Fast Ethernet Switch
-.It AR8226
-.It AR8316
-Six-port Gigabit Ethernet Switch
-.It AR8327
-Seven-port Gigabit Ethernet Switch
-.El
-.Pp
+driver provides a management interface to Atheros AR8000 series Ethernet
+switch controllers.
The driver uses an
.Xr mdio 4
or
@@ -70,6 +60,23 @@ and
are mutually exclusive.
.Pp
Setting the switch MAC address is not supported.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following Ethernet switch controllers:
+.Pp
+.Bl -bullet -compact
+.It
+Atheros AR8327 Seven-port Gigabit Ethernet Switch
+.It
+Atheros AR8316 Six-port Gigabit Ethernet Switch
+.It
+Atheros AR8236 Six-port Fast Ethernet Switch
+.It
+Atheros AR8226 Six-port Fast Ethernet Switch
+.It
+Atheros AR8216 Six-port Fast Ethernet Switch
+.El
.Sh SEE ALSO
.Xr etherswitch 4 ,
.Xr etherswitchcfg 8
diff --git a/share/man/man4/ath10k.4 b/share/man/man4/ath10k.4
index 61c44543815f..4e23382e2450 100644
--- a/share/man/man4/ath10k.4
+++ b/share/man/man4/ath10k.4
@@ -1,5 +1,5 @@
.\"-
-.\" Copyright (c) 2022 Bjoern A. Zeeb
+.\" Copyright (c) 2022-2024 Bjoern A. Zeeb
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 22, 2023
+.Dd September 30, 2024
.Dt ATH10K 4
.Os
.Sh NAME
@@ -47,18 +47,7 @@ It is discouraged to load the driver from
.Sh DESCRIPTION
The
.Nm
-driver is derived from Qualcomm Atheros' Linux ath10k driver and
-provides support for the following PCI chipsets:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It QCA6174
-.It QCA9377
-.It QCA9887
-.It QCA9888
-.It QCA988X
-.It QCA9984
-.It QCA99X0
-.El
+driver is derived from Qualcomm Atheros' Linux ath10k driver
.Pp
This driver requires firmware to be loaded before it will work.
The package
@@ -87,6 +76,20 @@ While
supports all 802.11 a/b/g/n and ac
the compatibility code currently only supports 802.11 a/b/g modes.
Support for 802.11 n/ac is to come.
+.Sh HARDWARE
+The
+.Nm
+driver supports PCIe devices with the following chipsets:
+.Pp
+.Bl -tag -width Ds -offset indent -compact
+.It QCA6174
+.It QCA9377
+.It QCA9887
+.It QCA9888
+.It QCA988X
+.It QCA9984
+.It QCA99X0
+.El
.Sh SEE ALSO
.Xr wlan 4 ,
.Xr ifconfig 8 ,
diff --git a/share/man/man4/atopcase.4 b/share/man/man4/atopcase.4
index 33e47ec64ee8..a0c95a9e218f 100644
--- a/share/man/man4/atopcase.4
+++ b/share/man/man4/atopcase.4
@@ -101,9 +101,9 @@ device node.
.El
.Sh SEE ALSO
.Xr acpi 4 ,
+.Xr loader.conf 5 ,
.Xr backlight 8 ,
-.Xr loader 8 ,
-.Xr loader.conf 5 .
+.Xr loader 8
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/aue.4 b/share/man/man4/aue.4
index e451315672e9..9b82fdc4ba55 100644
--- a/share/man/man4/aue.4
+++ b/share/man/man4/aue.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-4-Clause
+.\"
.\" Copyright (c) 1997, 1998, 1999
.\" Bill Paul <wpaul@ee.columbia.edu>. All rights reserved.
.\"
@@ -28,12 +31,12 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd November 24, 2015
+.Dd May 26, 2025
.Dt AUE 4
.Os
.Sh NAME
.Nm aue
-.Nd ADMtek AN986 Pegasus USB Ethernet driver
+.Nd ADMtek AN986 Pegasus USB Fast Ethernet driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -56,8 +59,8 @@ if_aue_load="YES"
.Sh DESCRIPTION
The
.Nm
-driver provides support for USB Ethernet adapters based on the ADMtek
-AN986 Pegasus chipset.
+driver provides support for USB Fast Ethernet adapters based on the
+ADMtek AN986 Pegasus chipset.
.Pp
The LinkSys USB10T adapters that contain the AN986 Pegasus chipset
will operate at 100Base-TX and full-duplex.
@@ -125,9 +128,10 @@ half duplex mode if this media option is not specified.
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
-Adapters supported by the
+The
.Nm
-driver include:
+driver supports the following USB Fast Ethernet adapters based on the
+ADMtek AN986 Pegasus chipset:
.Pp
.Bl -bullet -compact
.It
diff --git a/share/man/man5/autofs.5 b/share/man/man4/autofs.4
index e82df1929877..a721a6e27a53 100644
--- a/share/man/man5/autofs.5
+++ b/share/man/man4/autofs.4
@@ -25,7 +25,7 @@
.\" SUCH DAMAGE.
.\"
.Dd December 2, 2017
-.Dt AUTOFS 5
+.Dt AUTOFS 4
.Os
.Sh NAME
.Nm autofs
diff --git a/share/man/man4/axge.4 b/share/man/man4/axge.4
index 9ca268d6ff83..7133ee3253eb 100644
--- a/share/man/man4/axge.4
+++ b/share/man/man4/axge.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-4-Clause
+.\"
.\" Copyright (c) 1997, 1998, 1999, 2000-2003
.\" Bill Paul <wpaul@windriver.com>. All rights reserved.
.\"
@@ -28,7 +31,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd October 4, 2023
+.Dd May 25, 2025
.Dt AXGE 4
.Os
.Sh NAME
@@ -121,6 +124,19 @@ Force half duplex operation.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+driver supports the following USB Gigabit Ethernet controllers:
+.Pp
+.Bl -bullet -compact
+.It
+ASIX Electronics AX88179A
+.It
+ASIX Electronics AX88179
+.It
+ASIX Electronics AX88178A
+.El
.Sh SEE ALSO
.Xr altq 4 ,
.Xr arp 4 ,
diff --git a/share/man/man4/blackhole.4 b/share/man/man4/blackhole.4
index 00c8e3d7a2b6..bb955fd4497d 100644
--- a/share/man/man4/blackhole.4
+++ b/share/man/man4/blackhole.4
@@ -10,7 +10,7 @@
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
-.Dd November 3, 2021
+.Dd May 25, 2024
.Dt BLACKHOLE 4
.Os
.Sh NAME
@@ -21,7 +21,7 @@ MIB for manipulating behaviour in respect of refused SCTP, TCP, or UDP connectio
attempts
.Sh SYNOPSIS
.Cd sysctl net.inet.sctp.blackhole Ns Op = Ns Brq "0 | 1 | 2"
-.Cd sysctl net.inet.tcp.blackhole Ns Op = Ns Brq "0 | 1 | 2"
+.Cd sysctl net.inet.tcp.blackhole Ns Op = Ns Brq "0 | 1 | 2 | 3"
.Cd sysctl net.inet.tcp.blackhole_local Ns Op = Ns Brq "0 | 1"
.Cd sysctl net.inet.udp.blackhole Ns Op = Ns Brq "0 | 1"
.Cd sysctl net.inet.udp.blackhole_local Ns Op = Ns Brq "0 | 1"
@@ -30,7 +30,8 @@ The
.Nm
.Xr sysctl 8
MIB is used to control system behaviour when connection requests
-are received on SCTP, TCP, or UDP ports where there is no socket listening.
+are received on SCTP, TCP, or UDP ports where there is no socket listening
+or unexpected packets are received on listening sockets.
.Pp
The blackhole behaviour is useful to slow down an attacker who is port-scanning
a system in an attempt to detect vulnerable services.
@@ -51,7 +52,7 @@ when unexpected packets are received.
.Ss TCP
Normal behaviour, when a TCP SYN segment is received on a port where
there is no socket accepting connections, is for the system to return
-a RST segment, and drop the connection.
+a RST segment, and drop the incoming SYN segment.
The connecting system will
see this as a
.Dq Connection refused .
@@ -61,6 +62,9 @@ is merely dropped, and no RST is sent, making the system appear
as a blackhole.
By setting the MIB value to two, any segment arriving
on a closed port is dropped without returning a RST.
+Setting the MIB value to three, any segment arriving on a closed port
+or an unexpected segment on a listening port is dropped without sending a
+RST in reply.
This provides some degree of protection against stealth port scans.
.Ss UDP
Enabling blackhole behaviour turns off the sending
diff --git a/share/man/man4/bnxt.4 b/share/man/man4/bnxt.4
index f07c66fd4dda..0900a11cecea 100644
--- a/share/man/man4/bnxt.4
+++ b/share/man/man4/bnxt.4
@@ -48,7 +48,7 @@ if_bnxt_load="YES"
The
.Nm
driver provides support for various NICs based on the Broadcom BCM57301/2/4,
-and BCM57402/4/6 Ethernet controller chips.
+BCM57402/4/6, and BCM57502/4/8 Ethernet controller chips.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
@@ -102,6 +102,12 @@ Broadcom BCM57416 NetXtreme-E Partition
Broadcom BCM57417 NetXtreme-E Ethernet Partition
.It
Broadcom BCM57454 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet
+.It
+Broadcom BCM57502 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
+.It
+Broadcom BCM57504 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
+.It
+Broadcom BCM57508 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
.El
.Sh SYSCTL VARIABLES
These variables must be set before loading the driver, either via
diff --git a/share/man/man4/bnxt_re.4 b/share/man/man4/bnxt_re.4
new file mode 100644
index 000000000000..e2bb87c320b1
--- /dev/null
+++ b/share/man/man4/bnxt_re.4
@@ -0,0 +1,91 @@
+.\" Copyright (c) 2024 Broadcom, All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd May 15, 2024
+.Dt BNXT_RE 4
+.Os
+.Sh NAME
+.Nm bnxt_re
+.Nd "Broadcom NetXtreme-E RoCE driver"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place these lines in your kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "options COMPAT_LINUXKPI"
+.Cd "device bnxt"
+.Cd "device bnxt_re"
+.Ed
+.Pp
+To load the driver as a module at run-time,
+run this command as root:
+.Bd -literal -offset indent
+kldload bnxt_re
+.Ed
+.Pp
+To load the driver as a
+module at boot time, place this line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+bnxt_re_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for Remote Direct Memory Access (RDMA) over
+Converged Ethernet (RoCE) for Broadcom NetXtreme-E PCI Express network
+adapters.
+.Sh HARDWARE
+The
+.Nm
+driver provides support for NetXtreme-E BCM575xx 10/20/25/40/50/100/200Gb
+network adapters, including:
+.Pp
+.Bl -bullet -compact
+.It
+Broadcom BCM57502 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
+.It
+Broadcom BCM57504 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
+.It
+Broadcom BCM57508 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
+.El
+.Sh SUPPORT
+For general information and support,
+go to the Broadcom support website at:
+.Pa http://www.broadcom.com/ .
+.Pp
+Report driver issues with supported adapters to
+.Aq Mt freebsd.pdl@broadcom.com .
+.Sh SEE ALSO
+.Xr bnxt_re 4 ,
+.Xr ifconfig 8
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Broadcom <freebsd.pdl@broadcom.com> .
diff --git a/share/man/man4/bpf.4 b/share/man/man4/bpf.4
index 4a40f4947dfd..8082f6eac39a 100644
--- a/share/man/man4/bpf.4
+++ b/share/man/man4/bpf.4
@@ -665,7 +665,7 @@ Set the VLAN PCP bits to the supplied value.
now supports several standard
.Xr ioctl 2 Ns 's
which allow the user to do async and/or non-blocking I/O to an open
-.I bpf
+.Em bpf
file descriptor.
.Bl -tag -width SIOCGIFADDR
.It Dv FIONREAD
diff --git a/share/man/man4/bridge.4 b/share/man/man4/bridge.4
index 31a0ce43a263..2dff393ebc29 100644
--- a/share/man/man4/bridge.4
+++ b/share/man/man4/bridge.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-4-Clause
+.\"
.\" $NetBSD: bridge.4,v 1.5 2004/01/31 20:14:11 jdc Exp $
.\"
.\" Copyright 2001 Wasabi Systems, Inc.
@@ -33,7 +36,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 10, 2023
+.Dd July 5, 2025
.Dt IF_BRIDGE 4
.Os
.Sh NAME
@@ -76,10 +79,12 @@ command or using the
variable in
.Xr rc.conf 5 .
.Pp
-The
+When it is created, the
.Nm
-interface randomly chooses a link (MAC) address in the range reserved for
-locally administered addresses when it is created.
+interface gets assigned a link (MAC) address in the range of universally
+administered addresses reserved for the FreeBSD Foundation by hashing
+the host UUID, jail name, and the interface name.
+If this fails, a random, locally administered address is generated instead.
This address is guaranteed to be unique
.Em only
across all
@@ -125,7 +130,8 @@ variable
to
.Li 0 .
.Pp
-All the bridged member interfaces need to be up in order to pass network traffic.
+All the bridged member interfaces need to be up
+in order to pass network traffic.
These can be enabled using
.Xr ifconfig 8
or
@@ -154,6 +160,25 @@ This can be used to multiplex the input of two or more interfaces into a single
stream.
This is useful for reconstructing the traffic for network taps
that transmit the RX/TX signals out through two separate interfaces.
+.Pp
+To allow the host to communicate with bridge members, IP addresses
+should be assigned to the
+.Nm
+interface itself, not to the bridge's member interfaces.
+Attempting to assign an IP address to a bridge member interface, or add
+a member interface with an assigned IP address to a bridge, will return
+an
+.Dv EINVAL
+.Dq ( "Invalid argument" )
+error.
+For compatibility with older releases where this was permitted, setting
+the
+.Xr sysctl 8
+variable
+.Va net.link.bridge.member_ifaddrs
+to 1 will permit this configuration.
+This sysctl variable will be removed in
+.Fx 16.0.
.Sh IPV6 SUPPORT
.Nm
supports the
@@ -165,11 +190,6 @@ variable configures an IPv6 link-local address on
.Li bridge0
interface:
.Bd -literal -offset indent
-ifconfig_bridge0_ipv6="up"
-.Ed
-.Pp
-or in a more explicit manner:
-.Bd -literal -offset indent
ifconfig_bridge0_ipv6="inet6 auto_linklocal"
.Ed
.Pp
@@ -251,6 +271,54 @@ by setting the
.Va net.link.bridge.log_stp
node using
.Xr sysctl 8 .
+.Sh VLAN SUPPORT
+The
+.Nm
+driver has full support for virtual LANs (VLANs).
+The bridge implements independent VLAN learning, i.e. MAC addresses are
+learned on a per-VLAN basis, and the same MAC address may be learned on
+multiple interfaces on different VLANs.
+Incoming frames with an 802.1Q tag will be assigned to the appropriate
+VLAN.
+.Pp
+Traffic sent to or from the host is not assigned to a VLAN by default.
+To allow the host to communicate on a VLAN, configure a
+.Xr vlan 4
+interface on the bridge and (if necessary) assign IP addresses there.
+.Pp
+By default no access control is enabled, so any interface may
+participate in any VLAN.
+.Pp
+VLAN filtering may be enabled on an interface using the
+.Xr ifconfig 8
+.Cm vlanfilter
+option.
+When VLAN filtering is enabled, an interface may only send and receive
+frames based on its configured VLAN access list.
+.Pp
+The interface's untagged VLAN ID may be configured using the
+.Xr ifconfig 8
+.Cm untagged
+option.
+If an untagged VLAN ID is configured, incoming frames will be assigned
+to that VLAN, and the interface may receive outgoing untagged frames
+in that VLAN.
+.Pp
+The tagged VLAN access list may be configured using the
+.Cm tagged ,
+.Cm +tagged
+and
+.Cm -tagged
+options to
+.Xr ifconfig 8 .
+An interface may send and receive tagged frames for any VLAN in its
+access list.
+.Pp
+The bridge will automatically insert or remove 802.1q tags as needed,
+based on the interface configuration, when forwarding frames between
+interfaces.
+This tag processing is only done for interfaces with VLAN filtering
+enabled.
.Sh PACKET FILTERING
Packet filtering can be used with any firewall package that hooks in via the
.Xr pfil 9
@@ -261,7 +329,7 @@ the appropriate interfaces.
Either stage can be disabled.
The filtering behavior can be controlled using
.Xr sysctl 8 :
-.Bl -tag -width ".Va net.link.bridge.pfil_onlyip"
+.Bl -tag -width indent
.It Va net.link.bridge.pfil_onlyip
Controls the handling of non-IP packets which are not passed to
.Xr pfil 9 .
@@ -470,8 +538,8 @@ ifconfig_fxp0="up"
.Ed
.Pp
Consider a system with two 4-port Ethernet boards.
-The following will cause a bridge consisting of all 8 ports with Rapid Spanning
-Tree enabled to be created:
+The following will cause a bridge consisting of all 8 ports with
+Rapid Spanning Tree enabled to be created:
.Bd -literal -offset indent
ifconfig bridge0 create
ifconfig bridge0 \e
@@ -518,6 +586,7 @@ ifconfig bridge0 addm fxp0 addm gif0 up
.Xr ipfw 4 ,
.Xr netmap 4 ,
.Xr pf 4 ,
+.Xr vlan 4 ,
.Xr ifconfig 8
.Sh HISTORY
The
diff --git a/share/man/man4/capsicum.4 b/share/man/man4/capsicum.4
index 3c3eab5d798b..1de8e4531f4f 100644
--- a/share/man/man4/capsicum.4
+++ b/share/man/man4/capsicum.4
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 3, 2024
+.Dd June 17, 2025
.Dt CAPSICUM 4
.Os
.Sh NAME
@@ -37,6 +37,12 @@
.Nm
is a lightweight OS capability and sandbox framework implementing a hybrid
capability system model.
+.Nm
+is designed to blend capabilities with UNIX.
+This approach achieves many of the benefits of least-privilege operation, while
+preserving existing UNIX APIs and performance, and presents application authors
+with an adoption path for capability-oriented design.
+.Pp
Capabilities are unforgeable tokens of authority that can be delegated and must
be presented to perform an action.
.Nm
@@ -59,6 +65,34 @@ namespaces) is restricted; only explicitly delegated rights, referenced by
memory mappings or file descriptors, may be used.
Once set, the flag is inherited by future children processes, and may not be
cleared.
+.Pp
+Access to system calls in capability mode is restricted: some system calls
+requiring global namespace access are unavailable, while others are
+constrained.
+For instance,
+.Xr sysctl 2
+can be used to query process-local information such as address space layout,
+but also to monitor a system’s network connections.
+.Xr sysctl 2
+is constrained by explicitly marking \(~~60 of over 15000 parameters as permitted
+in capability mode; all others are denied.
+.Pp
+The system calls which require constraints are
+.Xr sysctl 2 ,
+.Xr shm_open 2
+.Pq which is permitted to create anonymous memory objects but not named ones
+and the
+.Xr openat 2
+family of system calls.
+The
+.Xr openat 2
+calls already accept a file descriptor argument as the directory to perform the
+.Xr open 2 ,
+.Xr rename 2 ,
+etc. relative to; in capability mode the
+.Xr openat 2
+family of system calls are constrained so that they can only operate on
+objects “under” the provided file descriptor.
.It capabilities
Limit operations that can be called on file descriptors.
For example, a file descriptor returned by
@@ -101,6 +135,20 @@ restrict access to global namespaces:
Processes can only act upon their own process ID with syscalls such as
.Xr cpuset_setaffinity 2 .
.El
+.Pp
+.Fx
+provides some additional functionality to support application sandboxing that
+is not part of
+.Nm
+itself:
+.Bl -tag -width indent
+.It Xr capsicum_helpers 3
+A set of a inline functions which simplify modifying programs to use
+.Nm .
+.It Xr libcasper 3
+A library that provides services for sandboxed applications, such as operating
+on files specified on a command line or establishing network connections.
+.El
.Sh SEE ALSO
.Xr cap_enter 2 ,
.Xr cap_fcntls_limit 2 ,
@@ -138,3 +186,14 @@ and
.An Kris Kennaway Aq Mt kris@FreeBSD.org
at Google, Inc., and
.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net .
+Portions of this manual page are drawn from
+.Rs
+.%A Robert N. M. Watson
+.%A Jonathan Anderson
+.%A Ben Laurie
+.%A Kris Kennaway
+.%T Capsicum: practical capabilities for UNIX
+.%J USENIX Security Symposium
+.%D August 2010
+.%O DOI: 10.5555/1929820.1929824
+.Re
diff --git a/share/man/man4/carp.4 b/share/man/man4/carp.4
index 19079a2cc97e..c972e0288791 100644
--- a/share/man/man4/carp.4
+++ b/share/man/man4/carp.4
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd March 6, 2023
+.Dd April 12, 2024
.Dt CARP 4
.Os
.Sh NAME
@@ -93,6 +93,17 @@ or through the
.Dv SIOCSPEER
.Xr ioctl 2 .
.Pp
+.Xr carp 4
+can be configured to use either the non-standard CARP protocol, or VRRPv3 (RFC 5798).
+Use the
+.Cm carpver
+parameter to select either 2 (CARP) or 3 (VRRPv3).
+VRRPv3 specific parameters can be configured using the
+.Cm vrrpprio
+and
+.Cm vrrpinterval
+parameters.
+.Pp
CARP virtual hosts can be configured on multicast-capable interfaces: Ethernet,
layer 2 VLAN, FDDI and Token Ring.
An arbitrary number of virtual host IDs can be configured on an interface.
diff --git a/share/man/man4/ccd.4 b/share/man/man4/ccd.4
index c44013dab11f..0c2bc99682a0 100644
--- a/share/man/man4/ccd.4
+++ b/share/man/man4/ccd.4
@@ -32,7 +32,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 9, 1995
+.Dd January 23, 2025
.Dt CCD 4
.Os
.Sh NAME
@@ -228,7 +228,7 @@ without mounting does not write anything to the
.Tn Linux
RAID.
Then you do a
-.Nm fsck.ext2fs Pq Pa ports/sysutils/e2fsprogs
+.Nm fsck.ext2fs Pq Pa ports/filesystems/e2fsprogs
on the
.Nm
device using the
@@ -277,7 +277,6 @@ device special files
.Xr config 8 ,
.Xr disklabel 8 ,
.Xr fsck 8 ,
-.Xr gvinum 8 ,
.Xr mount 8 ,
.Xr newfs 8
.Sh HISTORY
diff --git a/share/man/man4/ccr.4 b/share/man/man4/ccr.4
index 11b3a37f384d..de3f3609a285 100644
--- a/share/man/man4/ccr.4
+++ b/share/man/man4/ccr.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd June 3, 2019
+.Dd November 25, 2024
.Dt CCR 4
.Os
.Sh NAME
@@ -52,7 +52,10 @@ The driver accelerates AES-CBC, AES-CCM, AES-CTR, AES-GCM, AES-XTS,
SHA1, SHA2-224, SHA2-256, SHA2-384, SHA2-512,
SHA1-HMAC, SHA2-224-HMAC, SHA2-256-HMAC, SHA2-384-HMAC, and SHA2-512-HMAC
operations for
-.Xr crypto 4
+.Xr crypto 9
+consumers such as
+.Xr ktls 4 ,
+.Xr geli 4 ,
and
.Xr ipsec 4 .
The driver also supports chaining one of AES-CBC, AES-CTR, or AES-XTS with
@@ -97,7 +100,11 @@ email all the specific information related to the issue to
.Sh SEE ALSO
.Xr crypto 4 ,
.Xr cxgbe 4 ,
-.Xr ipsec 4
+.Xr geli 4 ,
+.Xr ipsec 4 ,
+.Xr ktls 4 ,
+.Xr crypto 7 ,
+.Xr crypto 9
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/cd.4 b/share/man/man4/cd.4
index 7c3fa6ed9850..02bf96dbfc97 100644
--- a/share/man/man4/cd.4
+++ b/share/man/man4/cd.4
@@ -336,8 +336,8 @@ devices
None.
.Sh SEE ALSO
.Xr cam 4 ,
+.Xr cd9660 4 ,
.Xr da 4 ,
-.Xr cd9660 5 ,
.Xr disklabel 8 ,
.Xr cd 9
.Sh HISTORY
diff --git a/share/man/man5/cd9660.5 b/share/man/man4/cd9660.4
index 224816e16c57..a684df37bab9 100644
--- a/share/man/man5/cd9660.5
+++ b/share/man/man4/cd9660.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 2017 Enji Cooper
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -23,8 +25,8 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 25, 2023
-.Dt CD9660 5
+.Dd January 18, 2025
+.Dt CD9660 4
.Os
.Sh NAME
.Nm cd9660
@@ -57,6 +59,7 @@ volume located on
.Pp
.Dl "mount -t cd9660 /dev/cd0 /mnt"
.Sh SEE ALSO
+.Xr etdump 1 ,
.Xr nmount 2 ,
.Xr unmount 2 ,
.Xr cd 4 ,
diff --git a/share/man/man4/cdce.4 b/share/man/man4/cdce.4
index 6768c7bbf517..8c5dbb36d197 100644
--- a/share/man/man4/cdce.4
+++ b/share/man/man4/cdce.4
@@ -27,7 +27,7 @@
.\"
.\" $NetBSD: cdce.4,v 1.4 2004/12/08 18:35:56 peter Exp $
.\"
-.Dd February 10, 2023
+.Dd May 26, 2025
.Dt CDCE 4
.Os
.Sh NAME
@@ -95,22 +95,24 @@ where
.Dq internet
is your providers apn name.
.Sh HARDWARE
-The following devices are supported by the
+The
.Nm
-driver:
+driver supports USB Ethernet interfaces implementing the
+USB Communication Device Class Ethernet Control Model (CDC ECM) or
+Network Control Model (CDC NCM) protocol, such as:
.Pp
.Bl -bullet -compact
.It
+Android USB tethering
+.It
+iPhone USB tethering
+.It
Prolific PL-2501 Host-to-Host Bridge Controller
.It
Sharp Zaurus PDA
.It
Terayon TJ-715 DOCSIS Cable Modem
.It
-Realtek RTL8156 USB GBE/2.5G Ethernet Family Controller
-.It
-Planex USB-LAN2500R
-.It
Huawei 3G/4G LTE (eg. E3372, E5573) and other mobile network devices
.El
.Sh DIAGNOSTICS
@@ -144,10 +146,10 @@ is running low on mbufs.
.Xr intro 4 ,
.Xr ipheth 4 ,
.Xr netintro 4 ,
+.Xr u3g 4 ,
+.Xr ucom 4 ,
.Xr urndis 4 ,
.Xr usb 4 ,
-.Xr ucom 4 ,
-.Xr u3g 4 ,
.Xr ifconfig 8
.Rs
.%T "Universal Serial Bus Class Definitions for Communication Devices"
diff --git a/share/man/man4/ddb.4 b/share/man/man4/ddb.4
index f3443cbac127..3c4894c03d62 100644
--- a/share/man/man4/ddb.4
+++ b/share/man/man4/ddb.4
@@ -24,7 +24,7 @@
.\" any improvements or extensions that they make and grant Carnegie Mellon
.\" the rights to redistribute these changes.
.\"
-.Dd November 10, 2022
+.Dd June 10, 2025
.Dt DDB 4
.Os
.Sh NAME
@@ -299,7 +299,6 @@ If the
modifier has been specified, contents of structs nested up to
.Ar depth
levels deep will also be included in the output.
-.Ed
.Pp
.It Ic pprint struct Ns Oo Li / Ns Cm d depth Ic Oc Oo Ar name Oc Ns Op Ns Ar addr
Print memory at
@@ -313,7 +312,6 @@ If the
modifier has been specified, contents of structs nested up to
.Ar depth
levels deep will also be included in the output.
-.Ed
.Pp
.It Xo
.Ic write Ns Op Li / Ns Cm bhl
@@ -592,7 +590,7 @@ Prints the address of the thread whose kernel-mode stack contains
if any.
.Pp
.It Ic show Cm active trace
-.It acttrace
+.It Ic acttrace
Show a stack trace for every thread running on a CPU.
.Pp
.It Ic show Cm all procs Ns Op Li / Ns Cm a
@@ -606,6 +604,17 @@ The
modifier will print command line arguments for each process.
.\"
.Pp
+.It Ic show Cm all tcpcbs Ns Op Li / Ns Cm b Ns Cm l
+Show the same output as "show tcpcb" does, but for all
+TCP control blocks within the system.
+The
+.Cm b
+modifier will request BBLog entries to be printed.
+Using the
+.Cm l
+modifier will limit the output to TCP control blocks, which are locked.
+.\"
+.Pp
.It Ic show Cm all trace
.It Ic alltrace
Show a stack trace for every thread in the system.
@@ -1097,7 +1106,7 @@ on i386.)
Not present on some platforms.
.\"
.Pp
-.It Ic show Cm tcpcb Ar addr
+.It Ic show Cm tcpcb Ns Oo Li / Ns Cm b Oc Ar addr
Print TCP control block
.Vt struct tcpcb
lying at address
@@ -1105,6 +1114,9 @@ lying at address
For exact interpretation of output, visit
.Pa netinet/tcp.h
header file.
+The
+.Cm b
+modifier will request BBLog entries to be printed.
.\"
.Pp
.It Ic show Cm thread Op Ar addr | tid
diff --git a/share/man/man5/devfs.5 b/share/man/man4/devfs.4
index 0f914f671bf8..3022a23dfe9a 100644
--- a/share/man/man5/devfs.5
+++ b/share/man/man4/devfs.4
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.Dd June 30, 2022
-.Dt DEVFS 5
+.Dt DEVFS 4
.Os
.Sh NAME
.Nm devfs
@@ -65,13 +65,13 @@ tool can be used to recover deleted device entries under
.Nm .
.Pp
The
-.Xr fdescfs 5
+.Xr fdescfs 4
filesystem is an alternate means for populating
.Pa /dev/fd .
The character devices that both
.Nm
and
-.Xr fdescfs 5
+.Xr fdescfs 4
present in
.Pa /dev/fd
correspond to the open file descriptors of the process
@@ -82,7 +82,7 @@ only creates files for the standard file descriptors
.Pa 1
and
.Pa 2 .
-.Xr fdescfs 5
+.Xr fdescfs 4
creates files for all open descriptors.
.Pp
The options are as follows:
@@ -123,7 +123,7 @@ volume located on
.Pp
.Dl "mount -t devfs devfs /mychroot/dev"
.Sh SEE ALSO
-.Xr fdescfs 5 ,
+.Xr fdescfs 4 ,
.Xr devfs 8 ,
.Xr mount 8 ,
.Xr make_dev 9
diff --git a/share/man/man4/disk.4 b/share/man/man4/disk.4
index 6451ff0e7370..97eeb9b718d4 100644
--- a/share/man/man4/disk.4
+++ b/share/man/man4/disk.4
@@ -57,7 +57,7 @@ Operations to block devices such as
.Xr lseek 2 ,
.Xr read 2 ,
and
-.Xr write
+.Xr write 2
may only be performed at file offsets that are integral multiple of
this size.
.It Dv DIOCGMEDIASIZE
@@ -111,8 +111,6 @@ the case for multipathing for example,
GEOM classes that consume a single provider and provide single
provider, like
.Xr geli 8 ,
-and
-.Xr gbde 8 ,
the identifier should be formed by attaching that provider's class
name to the ident of the underlying provider,
.It
diff --git a/share/man/man4/ds1307.4 b/share/man/man4/ds1307.4
index ae8884934f09..46d22663e50c 100644
--- a/share/man/man4/ds1307.4
+++ b/share/man/man4/ds1307.4
@@ -22,12 +22,12 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd March 7, 2015
+.Dd December 10, 2024
.Dt DS1307 4
.Os
.Sh NAME
.Nm ds1307
-.Nd 64 x 8, serial, i2c real-time clock
+.Nd 64 x 8, serial, i2c real-time clock (RTC)
.Sh SYNOPSIS
.Cd "device iic"
.Cd "device iicbus"
diff --git a/share/man/man4/ds3231.4 b/share/man/man4/ds3231.4
index 8734e82b4e69..52322eec6eb9 100644
--- a/share/man/man4/ds3231.4
+++ b/share/man/man4/ds3231.4
@@ -22,12 +22,12 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 12, 2016
+.Dd December 10, 2024
.Dt DS3231 4
.Os
.Sh NAME
.Nm ds3231
-.Nd Extremely Accurate i2c-integrated RTC/TCXO/Crystal
+.Nd Extremely Accurate i2c-integrated real-time clock (RTC)/TCXO/Crystal
.Sh SYNOPSIS
.Cd "device iic"
.Cd "device iicbus"
diff --git a/share/man/man4/dtrace_dtrace.4 b/share/man/man4/dtrace_dtrace.4
new file mode 100644
index 000000000000..b8c31005b47e
--- /dev/null
+++ b/share/man/man4/dtrace_dtrace.4
@@ -0,0 +1,191 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd July 14, 2025
+.Dt DTRACE_DTRACE 4
+.Os
+.Sh NAME
+.Nm dtrace_dtrace
+.Nd a DTrace provider for BEGIN, END, and ERROR probes
+.Sh SYNOPSIS
+.Nm dtrace Ns Cm :::BEGIN
+.Nm dtrace Ns Cm :::END
+.Nm dtrace Ns Cm :::ERROR
+.Sh DESCRIPTION
+The
+.Nm dtrace
+provider implements three special probes related to the life cycle of the
+DTrace program itself.
+.Ss dtrace:::BEGIN
+The
+.Nm dtrace Ns Cm :::BEGIN
+probe fires at the beginning of a
+.Xr dtrace 1 ,
+program before tracing has begun.
+It provides a convenient place for initializing variables
+and printing column headers.
+.Pp
+Variables such as
+.Va stack
+or
+.Va execname
+cannot be relied upon in the execution context of the
+.Nm dtrace Ns Cm :::BEGIN
+probe.
+.Ss dtrace:::END
+The
+.Nm dtrace Ns Cm :::END
+probe fires at the end of a
+.Xr dtrace 1
+program, when all tracing has stopped.
+.Ss dtrace:::ERROR
+The
+.Nm dtrace Ns Cm :::ERROR
+probe fires when an unexpected runtime error occurs in another probe.
+.Pp
+The following table describes the arguments to
+.Nm dtrace Ns Cm :::ERROR .
+.Bl -column -offset indent "Argument" "Definition"
+.It Sy Argument Ta Sy Definition
+.It Fa arg1 Ta Enabled probe identifier (EPID)
+of the probe where the runtime error occurred
+.It Fa arg2 Ta Index of the action statement that caused the error
+.It Fa arg3 Ta DIF offset into the action if available (otherwise -1)
+.It Fa arg4 Ta Fault type
+.It Fa arg5 Ta Accessed address (or 0 if not applicable) when
+.Va arg4
+is of fault type
+.Dv DTRACEFLT_BADADDR , DTRACEFLT_BADALIGN , DTRACEFLT_KPRIV ,
+or
+.Dv DTRACEFLT_UPRIV
+.El
+.Pp
+The fault types are:
+.Bl -tag -offset indent -width "DTRACEFLT_NOSCRATCH" -compact
+.It Dv DTRACEFLT_UNKNOWN
+Unknown fault
+.It Dv DTRACEFLT_BADADDR
+Bad address
+.It Dv DTRACEFLT_BADALIGN
+Bad alignment
+.It Dv DTRACEFLT_ILLOP
+Illegal operation
+.It Dv DTRACEFLT_DIVZERO
+Divide-by-zero
+.It Dv DTRACEFLT_NOSCRATCH
+Out of scratch space
+.It Dv DTRACEFLT_KPRIV
+Illegal kernel access
+.It Dv DTRACEFLT_UPRIV
+Illegal user access
+.It Dv DTRACEFLT_TUPOFLOW
+Tuple stack overflow
+.It Dv DTRACEFLT_BADSTACK
+Bad stack
+.El
+.Sh FILES
+.Bl -tag -width '<sys/dtrace.h>'
+.It In sys/dtrace.h
+The header file containing the definitions of DTrace fault types.
+.El
+.Sh EXAMPLES
+.Ss Example 1 : Custom Column Headers
+The following script uses the
+.Nm dtrace Ns Cm :::BEGIN
+probe to print column headers.
+Note the pragma line setting the
+.Ql quiet
+option to disable the default column headers.
+.Bd -literal -offset 2n
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+ printf(" %12s %-20s %-20s %s\en",
+ "DELTA(us)", "OLD", "NEW", "TIMESTAMP");
+}
+.Ed
+.Ss Example 2 : Handling Runtime Errors with dtrace:::ERROR
+The following script causes a runtime error by dereferencing a pointer
+on address
+.Ad 19930908
+in the
+.Cm BEGIN
+probe.
+As a result, the
+.Cm ERROR
+probe fires and prints out
+.Dq Oops
+along with the probe arguments.
+At that point, the program ends and fires the
+.Cm END
+probe.
+.\" It might look weird to define ERROR first, but that is on purpose.
+.\" This way the probe IDs and EPIDs are a bit more mixed up
+.\" and are easier to understand.
+.Bd -literal -offset 2n
+ERROR
+{
+ printf("Oops\en");
+ printf("EPID (arg1): %d\en", arg1);
+ printf("Action index (arg2): %d\en", arg2);
+ printf("DIF offset (arg3): %d\en", arg3);
+ printf("Fault type (arg4): %d\en", arg4);
+ printf("Accessed address (arg5): %X\en", arg5);
+ exit(1);
+}
+BEGIN
+{
+ *(int *)0x19931101;
+}
+END {
+ printf("Bye");
+}
+.Ed
+.Pp
+This script will result in the following output:
+.Bd -literal -offset 2n
+CPU ID FUNCTION:NAME
+ 2 3 :ERROR Oops
+EPID (arg1): 2
+Action index (arg2): 1
+DIF offset (arg3): 16
+Fault type: 1
+arg5: 19931101
+
+dtrace: error on enabled probe ID 2 (ID 1: dtrace:::BEGIN): invalid address (0x19931101) in action #1 at DIF offset 16
+ 2 2 :END Bye
+.Ed
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr tracing 7
+.Rs
+.%B The illumos Dynamic Tracing Guide
+.%O Chapter dtrace Provider
+.%D 2008
+.%U https://illumos.org/books/dtrace/chp-dtrace.html
+.Re
+.Sh AUTHORS
+This manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
+.Sh CAVEATS
+The
+.Nm dtrace Ns Cm :::ERROR
+probe arguments cannot be accessed through the typed
+.Va args[]
+array.
+.Pp
+.Xr dtrace 1
+will not fire the
+.Nm dtrace Ns Cm :::ERROR
+probe recursively.
+If an error occurs in one of the action statements of the
+.Nm dtrace Ns Cm :::ERROR ,
+then
+.Xr dtrace 1
+will abort further processing of
+the
+.Nm dtrace Ns Cm :::ERROR
+probe's actions.
diff --git a/share/man/man4/dtrace_fbt.4 b/share/man/man4/dtrace_fbt.4
new file mode 100644
index 000000000000..3e35bb8c5bbc
--- /dev/null
+++ b/share/man/man4/dtrace_fbt.4
@@ -0,0 +1,332 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd July 16, 2025
+.Dt DTRACE_FBT 4
+.Os
+.Sh NAME
+.Nm dtrace_fbt
+.Nd a DTrace provider for dynamic kernel tracing based on function boundaries
+.Sh SYNOPSIS
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return
+.Sh DESCRIPTION
+The Function Boundary Tracing
+.Pq Nm fbt
+provider instruments the entry and return of almost every kernel function
+corresponding to an
+.Xr elf 5
+symbol in the kernel and loaded kernel modules.
+.Pp
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry
+fires whenever the
+.Ar function
+is called.
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return
+fires when the
+.Ar function
+returns.
+.Pp
+The
+.Ar module
+in the probe description is either the name of the loaded kernel module
+or
+.Ql kernel
+for functions compiled into the kernel.
+.Ss Function Boundary Instrumentation
+The
+.Nm fbt
+will always instrument a function's entry, but
+its return will be intsrumented so long as it can find a
+.Ql ret
+instruction.
+.Pp
+In some cases,
+.Nm fbt
+cannot instrument a function's entry and/or return.
+Refer to subsection
+.Sx Frame Pointer
+for more details.
+.Ss Probe Arguments
+The arguments of the entry probe
+.Pq Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry
+are the arguments of the traced function call.
+.Bl -column -offset indent "Entry Probe Argument" "Definition"
+.It Sy Entry Probe Argument Ta Sy Definition
+.It Fa args[0] Ta Function's first argument, typed
+.Pq e.g., Xr malloc 9 Ap s Ft size_t Fa size
+.It Fa args[1] Ta Function's second argument, typed
+.Pq e.g., Xr malloc 9 Ap s Ft struct malloc_type Fa *type
+.It Fa args[2] Ta Function's third argument, typed
+.Pq e.g., Xr malloc 9 Ap s Ft int Fa flags
+.It Fa ... Ta ...
+.El
+.Pp
+The arguments of the return probe
+.Pq Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return
+are
+.Fa args[0]
+.Po
+the offset of the firing return instruction within the function;
+useful to tell apart two different return statements in a single function
+.Pc
+and
+.Fa args[1]
+.Pq the return value, if any .
+.Bl -column -offset indent "Return Probe Argument" "Definition"
+.It Sy Return Probe Argument Ta Sy Definition
+.It Fa args[0] Ta Offset of the traced return instruction
+.It Fa args[1] Ta Function's return value
+.Po e.g., a kernel virtual address if returning from a successful
+.Xr malloc 9
+.Pc
+.El
+.Pp
+Subsection
+.Sx Example 2 : Getting Details About Probe's Arguments
+shows how to get probe's argument count and types directly with
+.Xr dtrace 1
+without having to resort to the reading function's source code
+or documentation.
+.Sh EXAMPLES
+.Ss Example 1 : Listing Available FBT Probes
+The following example shows how to list all the available
+.Nm fbt
+probes.
+.Bd -literal -offset 2n
+# dtrace -l -P fbt
+ ID PROVIDER MODULE FUNCTION NAME
+[...]
+31868 fbt kernel hammer_time entry
+31869 fbt kernel hammer_time return
+[...]
+.Ed
+.Pp
+Since
+.Fn hammer_time
+is a part of the kernel and not a separate loaded module, the
+.Ar module
+column displays
+.Ql kernel .
+.Ss Example 2 : Getting Details About Probe's Arguments
+The following example shows how to generate a program stability report of
+.Xr malloc 9 Ap s
+entry and return probes.
+Those reports are useful to view
+the probe's number of arguments and their types.
+.Bd -literal -offset 2n
+# dtrace -l -v -n fbt::malloc:entry
+[...]
+ Argument Types
+ args[0]: size_t
+ args[1]: struct malloc_type *
+ args[2]: int
+.Ed
+.Pp
+The count and types of
+.Nm fbt Ns Cm \&::malloc:entry
+arguments
+match the function signature of
+.Xr malloc 9 :
+.Va args[0]
+is
+.Ft size_t ,
+.Va args[1]
+is
+.Ft "struct malloc_type *" ,
+and
+.Va "args[2]"
+is
+.Ft int .
+.Bd -literal -offset 2n
+# dtrace -l -v -n fbt::malloc:return
+[...]
+ Argument Types
+ args[0]: int
+ args[1]: void *
+.Ed
+.Pp
+The
+.Cm return
+probe reports two arguments and their types:
+the return instruction offset
+.Pq the usual Ft int
+and the function's return value, which in this case is
+.Ft void * ,
+as
+.Xr malloc 9
+returns a kernel virtual address.
+.Ss Example 3 : Counting Kernel Slab Memory Allocation by Function
+.Bd -literal -offset 2n
+# dtrace -n 'fbt::kmem*:entry { @[probefunc] = count(); }'
+dtrace: description 'fbt::kmem*:entry ' matched 47 probes
+^C
+ kmem_alloc_contig 1
+ kmem_alloc_contig_domainset 1
+ kmem_cache_reap_active 1
+ kmem_alloc_contig_pages 2
+ kmem_free 2
+ kmem_std_destructor 19
+ kmem_std_constructor 26
+ kmem_cache_free 151
+ kmem_cache_alloc 181
+.Ed
+.Ss Example 4 : Counting Kernel Slab Memory Allocation by Calling Function
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::kmem*:entry { @[caller] = count(); } END { printa("%40a %@16d\en", @); }'
+^C
+ kernel`contigmalloc+0x33 1
+ kernel`free+0xd3 1
+ kernel`kmem_alloc_contig+0x29 1
+kernel`kmem_alloc_contig_domainset+0x19a 1
+ zfs.ko`arc_reap_cb_check+0x16 1
+.Ed
+.Ss Example 5 : Counting Kernel malloc()'s by Calling Function
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::malloc:entry { @[caller] = count(); } END { printa("%45a %@16d\en", @); }'
+^C
+ kernel`devclass_get_devices+0xa8 1
+ kernel`sys_ioctl+0xb7 1
+ dtrace.ko`dtrace_ioctl+0x15c1 1
+ dtrace.ko`dtrace_ioctl+0x972 2
+ dtrace.ko`dtrace_dof_create+0x35 2
+ kernel`kern_poll_kfds+0x2f0 4
+ kernel`kern_poll_kfds+0x28a 19
+.Ed
+.Ss Example 6 : Counting Kernel malloc()'s by Kernel Stack Trace
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::malloc:entry { @[stack()] = count(); }'
+^C
+ dtrace.ko`dtrace_dof_create+0x35
+ dtrace.ko`dtrace_ioctl+0x827
+ kernel`devfs_ioctl+0xd1
+ kernel`VOP_IOCTL_APV+0x2a
+ kernel`vn_ioctl+0xb6
+ kernel`devfs_ioctl_f+0x1e
+ kernel`kern_ioctl+0x286
+ kernel`sys_ioctl+0x12f
+ kernel`amd64_syscall+0x169
+ kernel`0xffffffff81092b0b
+ 2
+.Ed
+.Ss Example 7 : Summarizing vmem_alloc()'s by Arena Name and Size Distribution
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::vmem_alloc:entry { @[args[0]->vm_name] = quantize(arg1); }'
+^C
+
+ kernel arena dom
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8192 |@@@@@@@@@@@@@ 2
+ 16384 | 0
+.Ed
+.Ss Example 8 : Measuring Total Time Spent Executing a Function
+This DTrace script measures the total time spent in
+.Fn vm_page*
+kernel functions.
+The
+.Fn quantize
+aggregation organizes the measurements into power-of-two buckets,
+providing a time distribution in nanoseconds for each function.
+.Bd -literal -offset 2n
+fbt::vm_page*:entry {
+ self->start = timestamp;
+}
+
+fbt::vm_page*:return /self->start/ {
+ @[probefunc] = quantize(timestamp - self->start);
+ self->start = 0;
+}
+.Ed
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr dtrace_kinst 4 ,
+.Xr tracing 7
+.Rs
+.%A Brendan Gregg
+.%A Jim Mauro
+.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD
+.%I Prentice Hall
+.%P pp. 898\(en903
+.%D 2011
+.%U https://www.brendangregg.com/dtracebook/
+.Re
+.Rs
+.%B The illumos Dynamic Tracing Guide
+.%O Chapter fbt Provider
+.%D 2008
+.%U https://illumos.org/books/dtrace/chp-fbt.html#chp-fbt
+.Re
+.Sh AUTHORS
+This manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
+.Sh CAVEATS
+.Ss Stability and Portability
+.Nm fbt
+probes are by definition tightly coupled to kernel code; if the code underlying
+a script changes, the script may fail to run or may produce incorrect results.
+Scripts written for one version of
+.Fx
+might not work on others,
+and almost certainly will not work on other operating systems.
+.Pp
+Individual
+.Nm fbt
+probes often do not correspond nicely to logical system events.
+For example, consider a DTrace script which prints the destination
+address of every IP packet as the kernel hands them over
+to the network card driver (NIC).
+An
+.Nm fbt Ns -based
+implementation of such a script is a discouragingly difficult task:
+it involves instrumenting at least four different functions in different parts
+of the IPv4 and IPv6 code.
+At the same time, with the
+.Xr dtrace_ip 4
+provider the script is a simple one-liner:
+.Dl dtrace -n 'ip:::send {printf("%s", args[2]->ip_daddr);}'
+.Pp
+Make sure to review available
+.Xr dtrace 1
+providers first
+before implementing a custom script with the
+.Nm fbt
+provider.
+If none of the DTrace providers offer the desired probes,
+consider adding new statically-defined tracing probes
+.Pq Xr SDT 9 .
+.Ss Frame Pointer
+Inline functions are not instrumentable by
+.Nm fbt
+as they lack a frame pointer.
+A developer might explicitly disable inlining by adding the
+.Ql __noinline
+attribute to a function definition,
+but of course this requires a recompilation of the kernel.
+Building the kernel with
+.Fl fno-omit-frame-pointer
+is another way of preserving frame pointers.
+Note, that sometimes compilers will omit the frame pointer in leaf functions,
+even when configured with
+.Fl fno-omit-frame-pointer .
+.Pp
+Function returns via a tail call are also not instrumentable by
+.Nm fbt .
+As a result,
+a function might have an entry probe
+and a mix of instrumented and uninstrumentable returns.
+.Pp
+Use
+.Xr dtrace_kinst 4
+to trace arbitrary instructions inside kernel functions
+and work around some of the
+limitations
+of
+.Nm fbt .
+.Ss Tracing DTrace
+The
+.Nm fbt
+provider cannot attach to functions inside DTrace provider kernel modules.
diff --git a/share/man/man4/dtrace_kinst.4 b/share/man/man4/dtrace_kinst.4
index 9debbc1bd106..c2187689749b 100644
--- a/share/man/man4/dtrace_kinst.4
+++ b/share/man/man4/dtrace_kinst.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 27, 2023
+.Dd July 16, 2025
.Dt DTRACE_KINST 4
.Os
.Sh NAME
@@ -43,10 +43,13 @@ creates probes on-demand, meaning it searches for and parses the function's
instructions each time
.Xr dtrace 1
is run, and not at module load time.
-This is in contrast to FBT's load-time parsing, since
+This is in contrast to
+.Xr dtrace_fbt 4 Ap s
+load-time parsing, since
.Nm kinst
can potentially create thousands of probes for just a single function, instead
-of up to two (entry and return) in the case of FBT.
+of up to two (entry and return) in the case of
+.Xr dtrace_fbt 4 .
A result of this is that
.Cm dtrace -l -P kinst
will not match any probes.
@@ -79,7 +82,8 @@ Trace all instructions in
# dtrace -n 'kinst::amd64_syscall:'
.Ed
.Sh SEE ALSO
-.Xr dtrace 1
+.Xr dtrace 1 ,
+.Xr dtrace_fbt 4
.Sh HISTORY
The
.Nm kinst
diff --git a/share/man/man4/dtrace_profile.4 b/share/man/man4/dtrace_profile.4
new file mode 100644
index 000000000000..07f86663d60a
--- /dev/null
+++ b/share/man/man4/dtrace_profile.4
@@ -0,0 +1,129 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd July 14, 2025
+.Dt DTRACE_PROFILE 4
+.Os
+.Sh NAME
+.Nm dtrace_profile
+.Nd a DTrace provider for firing probes at a given time interval
+.Sh SYNOPSIS
+.Nm profile Ns Cm :::profile- Ns Ar rate Ns Op Ar unit
+.Nm profile Ns Cm :::tick- Ns Ar rate Ns Op Ar unit
+.Sh DESCRIPTION
+The
+.Nm profile
+provider implements three special probes related to the life cycle of the
+DTrace program itself.
+.Ss Probes
+The
+.Nm profile Ns Cm :::profile
+probes fire on all CPUs and are suitable for measuring the whole system
+periodically.
+.Pp
+The
+.Nm profile Ns Cm :::tick
+probes fire on a single CPU, potentially a different one every time.
+They are useful, e.g., for printing partial results periodically.
+.Ss Rate and Time Units
+The
+.Nm profile
+provider probes will fire at the specified
+.Ar rate .
+.Pp
+The default unit is
+.Cm hz .
+The
+.Nm profile
+provider supports the following time units:
+.Bl -column -offset indent "ns, nsec" "Definition"
+.It Sy Time Unit Ta Sy Definition
+.It Cm ns , nsec Ta nanoseconds
+.It Cm us , usec Ta microseconds
+.It Cm ms , msec Ta milliseconds
+.It Cm s , sec Ta seconds
+.It Cm m , min Ta minutes
+.It Cm h , hour Ta hours
+.It Cm d , day Ta days
+.It Cm hz Ta Hertz (frequency per second)
+.El
+.Ss Probe Arguments
+The arguments of the
+.Nm profile
+provider probes
+are:
+.Bl -tag -width arg0
+.It Va arg0
+The PC (program counter) in the kernel when the probe triggered,
+or 0 if the process was not in the kernel at that time.
+.It Va arg1
+The PC in the user process when the probe triggered,
+or 0 if the process was in the kernel when the probe triggered.
+.El
+.Pp
+Use arguments
+.Va arg0
+and
+.Va arg1
+to tell if the
+.Nm profile
+provider probe fired in the kernel or in the userspace context.
+.Sh IMPLEMENTATION NOTES
+The
+.Xr sysctl 8
+variable
+.Va kern.dtrace.profile.aframes
+controls the number of skipped artificial frames for
+the
+.Nm profile
+provider.
+.Sh EXAMPLES
+.Ss Example 1 : Profiling On-CPU Kernel Stack Traces
+The following DTrace one-liner uses the
+.Nm profile
+provider to collect stack traces over 60 seconds.
+.\" XXX: Keep on one line for easier copy-pasting.
+.Bd -literal -offset indent
+dtrace -x stackframes=100 -n 'profile-197 /arg0/ {@[stack()] = count();} tick-60s {exit(0);}
+.Ed
+.Pp
+The system is profiled at the 197 Hz to avoid sampling in lockstep
+with other periodic activities.
+This unnatural frequency minimizes the chance of overlapping with other events.
+.Pp
+Option
+.Fl x Cm stackframes=100
+increases the maximum number of kernel stack frames to unwind during
+.Fn stack .
+.Pp
+Checking if
+.Ar arg0
+is not zero makes sure that profiling happens
+when the program is in the kernel context.
+.Pp
+Refer to
+.Lk https://www.brendangregg.com/flamegraphs.html
+to learn about generating flame graphs from the obtained stack traces.
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr tracing 7
+.Rs
+.%B The illumos Dynamic Tracing Guide
+.%O Chapter profile Provider
+.%D 2008
+.%U https://www.illumos.org/books/dtrace/chp-profile.html
+.Re
+.Rs
+.%A Brendan Gregg
+.%A Jim Mauro
+.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD
+.%I Prentice Hall
+.%P pp. 24\(en25
+.%D 2011
+.%U https://www.brendangregg.com/dtracebook/
+.Re
+.Sh AUTHORS
+This manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
diff --git a/share/man/man4/dummymbuf.4 b/share/man/man4/dummymbuf.4
new file mode 100644
index 000000000000..08926d2824c6
--- /dev/null
+++ b/share/man/man4/dummymbuf.4
@@ -0,0 +1,211 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2024 Igor Ostapenko <pm@igoro.pro>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" Note: The date here should be updated whenever a non-trivial
+.\" change is made to the manual page.
+.Dd January 6, 2025
+.Dt DUMMYMBUF 4
+.Os
+.Sh NAME
+.Nm dummymbuf
+.Nd "mbuf alteration pfil hooks"
+.Sh SYNOPSIS
+To compile the driver into the kernel,
+place the following line in the
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device dummymbuf"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+dummymbuf_load="YES"
+.Ed
+.Sh DESCRIPTION
+This module is intended to test networking code in the face of unusual mbuf
+layouts.
+The special
+.Xr pfil 9
+hooks are provided for mbuf alteration and can be listed with
+.Xr pfilctl 8
+as follows:
+.Bd -literal -offset indent
+ Hook Type
+ dummymbuf:ethernet Ethernet
+ dummymbuf:inet6 IPv6
+ dummymbuf:inet IPv4
+.Ed
+.Pp
+To activate a hook it must be linked to the respective
+.Xr pfil 9
+head.
+.Xr pfilctl 8
+can be used for the linking.
+.Pp
+Each time a hook is invoked it reads a single shared set of
+.Sx RULES
+from
+.Va net.dummymbuf.rules
+sysctl.
+The rules are evaluated sequentially and each matching rule performs the
+specified operation over the mbuf.
+.Pp
+After every successfully applied operation the
+.Va net.dummymbuf.hits
+sysctl counter is increased.
+.Pp
+A hook returns an altered mbuf for further processing, but it drops a packet
+if rules parsing or an operation fails.
+Also, the first mbuf of the original chain may be changed.
+.Pp
+The module is
+.Xr VNET 9
+based, hence every
+.Xr jail 2
+provides its own set of hooks and sysctl variables.
+.Sh RULES
+The set of rules is a semicolon separated list.
+An empty string is treated as a parsing failure.
+A rule conceptually has two parts, filter and operation, with the following
+syntax:
+.Bd -literal -offset indent
+{inet | inet6 | ethernet} {in | out} <ifname> <opname>[ <opargs>];
+.Ed
+.Ss Filter
+The first word of a rule matches
+.Xr pfil 9
+type.
+The second matches packet's direction, and the third matches the network
+interface a packet is coming from.
+.Ss Operation
+An operation may have arguments separated from its name by space.
+The available operations are:
+.Bl -tag -width indent
+.It pull-head <number-of-bytes>
+Unconditionally creates a brand new cluster-based mbuf and links it to be the
+first mbuf of the original mbuf chain, with respective packet header moving.
+After, the given number of bytes are pulled from the original mbuf chain.
+.Pp
+If it is asked to pull 0 bytes then the first mbuf of the resulting chain will
+be left empty.
+Asking to pull more than
+.Dv MCLBYTES
+is treated as an operation failure.
+If a mbuf chain has less data than asked then the entire packet is pulled with
+tail mbuf(s) left empty.
+.Pp
+As a result, only the layout of a mbuf chain is altered, its content logically
+is left intact.
+.It enlarge <number-of-bytes>
+Unconditionally replace the mbuf with an mbuf of the specified size.
+.El
+.Sh SYSCTL VARIABLES
+The following variables are available:
+.Bl -tag -width indent
+.It Va net.dummymbuf.rules
+A string representing a single set of
+.Sx RULES
+shared among all
+.Nm
+hooks.
+.It Va net.dummymbuf.hits
+Number of times a rule has been applied.
+It is reset to zero upon writing.
+.El
+.Sh EXAMPLES
+As it was intended,
+.Nm
+can be found useful for firewall testing.
+A mbuf chain could be altered before it hits a firewall to test that the latter
+can handle a case respectively.
+Thus, it is important to have correct sequence of hooks.
+A test case should prepare and enable a firewall first to get its hooks linked.
+After, the
+.Xr pfilctl 8
+should be used to link
+.Nm
+hook(s) to put them in front of a firewall.
+.Pp
+The following links
+.Va dummymbuf:inet6
+hook for inbound and puts it in front of other hooks:
+.Bd -literal -offset indent
+pfilctl link -i dummymbuf:inet6 inet6
+.Ed
+.Pp
+And this does the same for outbound:
+.Bd -literal -offset indent
+pfilctl link -o -a dummymbuf:inet6 inet6
+.Ed
+.Pp
+For instance, we want to test a scenario in which the very first mbuf in a
+chain has zero m_len, to verify that a firewall can correctly read the
+packet data despite that.
+The following set of rules does it for inbound and outbound:
+.Bd -literal -offset indent
+sysctl net.dummymbuf.rules="inet6 in em0 pull-head 0; inet6 out em0 pull-head 0;"
+.Ed
+.Pp
+It is encouraged to verify
+.Va net.dummymbuf.hits
+sysctl counter along with other test assertions to make sure that
+.Nm
+really does its work and there is no false positive due to misconfiguration.
+It is a good idea to reset it before the action:
+.Bd -literal -offset indent
+sysctl net.dummymbuf.hits=0
+.Ed
+.Pp
+It is equally important to cleanup the things after the test case:
+.Bd -literal -offset indent
+pfilctl unlink -i dummymbuf:inet6 inet6
+pfilctl unlink -o dummymbuf:inet6 inet6
+sysctl net.dummymbuf.rules=""
+.Ed
+.Pp
+If a test case operates within a temporary vnet then explicit cleanup can be
+omitted, the
+.Nm
+facilities will vanish along with its vnet instance.
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "dummymbuf: <filter match>: rule parsing failed: <the rule in question>"
+If everything looks fine then extra spaces removal may help due to the parser
+is kept very simple.
+.It "dummymbuf: <filter match>: mbuf operation failed: <the rule in question>"
+Incorrect operation argument has been found, mbuf allocation has failed, etc.
+.El
+.Sh SEE ALSO
+.Xr jail 2 ,
+.Xr pfilctl 8 ,
+.Xr mbuf 9 ,
+.Xr pfil 9 ,
+.Xr VNET 9
+.Sh AUTHORS
+The module and this manual page were written by
+.An Igor Ostapenko Aq Mt pm@igoro.pro .
diff --git a/share/man/man4/dummynet.4 b/share/man/man4/dummynet.4
index 81b1b33efb6e..ad82cb80011d 100644
--- a/share/man/man4/dummynet.4
+++ b/share/man/man4/dummynet.4
@@ -59,9 +59,9 @@ pipes.
.Xr setsockopt 2 ,
.Xr if_bridge 4 ,
.Xr ip 4 ,
-.Xr ipfw 8 ,
-.Xr dnctl 8 ,
.Xr pf.conf 5 ,
+.Xr dnctl 8 ,
+.Xr ipfw 8 ,
.Xr sysctl 8
.Sh HISTORY
The
diff --git a/share/man/man4/e6000sw.4 b/share/man/man4/e6000sw.4
new file mode 100644
index 000000000000..92a3b5c8ed0b
--- /dev/null
+++ b/share/man/man4/e6000sw.4
@@ -0,0 +1,46 @@
+.\"
+.\" Copyright (c) 2025 Alexander Ziaee
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd May 10, 2025
+.Dt E6000SW 4
+.Sh NAME
+.Nm e6000sw
+.Nd Marvell 88E6000 series Gigabit Ethernet switch driver
+.Sh SYNOPSIS
+.Cd device mdio
+.Cd etherswitch
+.Cd e6000sw
+.Sh DESCRIPTION
+The
+.Nm
+driver supports Marvell Gigabit Ethernet switch controllers.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following Gigabit Ethernet switch controllers:
+.Pp
+.Bl -bullet -compact
+.It
+Marvell 88E6190X
+.It
+Marvell 88E6190
+.It
+Marvell 88E6176
+.It
+Marvell 88E6172
+.It
+Marvell 88E6341
+.It
+Marvell 88E6141
+.El
+.Sh SEE ALSO
+.Xr e6060sw 4 ,
+.Xr etherswitch 4 ,
+.Xr etherswitchcfg 8
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Fx 11.0 .
diff --git a/share/man/man4/e6060sw.4 b/share/man/man4/e6060sw.4
index 407138abe378..74736f65fe80 100644
--- a/share/man/man4/e6060sw.4
+++ b/share/man/man4/e6060sw.4
@@ -23,12 +23,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 5, 2017
+.Dd May 10, 2025
.Dt E6060SW 4
.Os
.Sh NAME
.Nm e6060sw
-.Nd driver for Marvell 88E6060 and 88E6065 fast ethernet switch chip
+.Nd Marvell 88E6060/88E6063/88E6065 Fast Ethernet switch driver
.Sh SYNOPSIS
.Cd "device mdio"
.Cd "device etherswitch"
@@ -44,6 +44,19 @@ This driver use smi interface by ethernet interface.
88E6060 support is only port vlan.
88E6065 support is port and dot1q vlan.
dot1q support group base tag/untag.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following Fast Ethernet switch controllers:
+.Pp
+.Bl -bullet -compact
+.It
+Marvell 88E6060
+.It
+Marvell 88E6063
+.It
+Marvell 88E6065
+.El
.Sh EXAMPLES
Configure dot1q vlan on 88E6065 by etherswitchcfg command.
.Pp
diff --git a/share/man/man4/efidev.4 b/share/man/man4/efidev.4
index 684a93340d7f..defae1f31bea 100644
--- a/share/man/man4/efidev.4
+++ b/share/man/man4/efidev.4
@@ -34,7 +34,7 @@
.Sh SYNOPSIS
To compile this driver into the kernel, place the following lines in your
kernel configuration file:
-.Bd -ragged -offset -indent
+.Bd -ragged -offset indent
.Cd "options EFIRT"
.Ed
.Pp
diff --git a/share/man/man4/ena.4 b/share/man/man4/ena.4
index 50a180871627..cb5b9367da43 100644
--- a/share/man/man4/ena.4
+++ b/share/man/man4/ena.4
@@ -1,6 +1,6 @@
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Copyright (c) 2015-2023 Amazon.com, Inc. or its affiliates.
+.\" Copyright (c) 2015-2024 Amazon.com, Inc. or its affiliates.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -27,12 +27,12 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd June 4, 2021
+.Dd November 14, 2024
.Dt ENA 4
.Os
.Sh NAME
.Nm ena
-.Nd "FreeBSD kernel driver for Elastic Network Adapter (ENA) family"
+.Nd AWS EC2 Elastic Network Adapter (ENA) driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following line in the
@@ -93,7 +93,9 @@ framework is provided by the
driver.
Kernel must be built with the DEV_NETMAP option to be able to use this feature.
.Sh HARDWARE
-Supported PCI vendor ID/device IDs:
+The
+.Nm
+driver supports the following PCI vendor ID/device IDs:
.Pp
.Bl -bullet -compact
.It
@@ -133,17 +135,17 @@ This can further lead to OS instability, together with ENA driver reset and NVMe
timeouts.
If network performance is critical and memory capacity is sufficient, the 9k
mbufs can be used.
-.It Va hw.ena.force_large_llq_headers
-Force the driver to use large LLQ headers (224 bytes).
-The default is 0.
+.It Va hw.ena.force_large_llq_header
+Force the driver to use large (224 bytes) or regular (96 bytes) LLQ header size.
+The default value is 2 and the recommended LLQ header size will be used.
If the node value is set to 0, the regular size LLQ header will be used, which
is 96B.
In some cases, the packet header can be bigger than this (for example -
IPv6 with multiple extensions).
-In such a situation, the large LLQ headers should be used by setting this node
-value to 1.
-This will take effect only if the device supports both LLQ and large LLQ
-headers.
+In such a situation, the large LLQ header size which is 224B should be used,
+and can be forced by setting this node value to 1.
+Using large LLQ header size will take effect only if the device supports
+both LLQ and large LLQ headers.
Otherwise, it will fallback to the no LLQ mode or regular header size.
.Pp
Increasing LLQ header size reduces the size of the Tx queue by half, so it may
diff --git a/share/man/man4/enc.4 b/share/man/man4/enc.4
index 87ff46878266..86f14d2bf290 100644
--- a/share/man/man4/enc.4
+++ b/share/man/man4/enc.4
@@ -126,7 +126,7 @@ The special value 0x4 can be configured in the
.Ar ipsec_bpf_mask
and packets will be also captured after firewall processing.
.Sh EXAMPLES
-To see the packets the processed via
+To see the packets processed via
.Xr ipsec 4 ,
adjust the
.Xr sysctl 8
diff --git a/share/man/man4/enic.4 b/share/man/man4/enic.4
index 257a95fa9d32..1783b05dfa12 100644
--- a/share/man/man4/enic.4
+++ b/share/man/man4/enic.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd Sept 7, 2022
+.Dd September 7, 2022
.Dt ENIC 4
.Os
.Sh NAME
diff --git a/share/man/man4/etherswitch.4 b/share/man/man4/etherswitch.4
index aeb5e484e7cf..ba8e32c00750 100644
--- a/share/man/man4/etherswitch.4
+++ b/share/man/man4/etherswitch.4
@@ -48,14 +48,13 @@ driver provides a framework for Ethernet switch devices.
device nodes
.El
.Sh SEE ALSO
+.Xr adm6996fc 4 ,
+.Xr ar40xx 4 ,
.Xr arswitch 4 ,
-.Xr iicbus 4 ,
-.Xr ip17x 4 ,
-.Xr rtl8366rb 4 ,
+.Xr e6000sw 4 ,
.Xr e6060sw 4 ,
-.Xr adm6996fc 4 ,
+.Xr iicbus 4 ,
.Xr ksz8995ma 4 ,
-.Xr ukswitch 4 ,
.Xr etherswitchcfg 8
.Sh HISTORY
The
diff --git a/share/man/man5/ext2fs.5 b/share/man/man4/ext2fs.4
index 7504a144496f..816ea942d29f 100644
--- a/share/man/man5/ext2fs.5
+++ b/share/man/man4/ext2fs.4
@@ -25,7 +25,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd December 30, 2018
-.Dt EXT2FS 5
+.Dt EXT2FS 4
.Os
.Sh NAME
.Nm ext2fs
diff --git a/share/man/man4/fd.4 b/share/man/man4/fd.4
index f91c0e0501fb..06cc12d25696 100644
--- a/share/man/man4/fd.4
+++ b/share/man/man4/fd.4
@@ -78,11 +78,11 @@ are ignored.
By default,
.Pa /dev/fd
is provided by
-.Xr devfs 5 ,
+.Xr devfs 4 ,
which provides nodes for the first three file descriptors.
Some sites may require nodes for additional file descriptors; these can be
made available by mounting
-.Xr fdescfs 5
+.Xr fdescfs 4
on
.Pa /dev/fd .
.Sh FILES
@@ -93,6 +93,6 @@ on
.It Pa /dev/stderr
.El
.Sh SEE ALSO
-.Xr tty 4 ,
-.Xr devfs 5 ,
-.Xr fdescfs 5
+.Xr devfs 4 ,
+.Xr fdescfs 4 ,
+.Xr tty 4
diff --git a/share/man/man5/fdescfs.5 b/share/man/man4/fdescfs.4
index fa260cbc12f3..f8bf413fc274 100644
--- a/share/man/man5/fdescfs.5
+++ b/share/man/man4/fdescfs.4
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2021 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2021 The FreeBSD Foundation
.\"
.\" Copyright (c) 1996
.\" Mike Pritchard <mpp@FreeBSD.org>. All rights reserved.
@@ -39,7 +39,7 @@
.\" SUCH DAMAGE.
.\"
.Dd Jul 11, 2023
-.Dt FDESCFS 5
+.Dt FDESCFS 4
.Os
.Sh NAME
.Nm fdescfs
@@ -196,7 +196,7 @@ flag use:
.Pp
.Dl "mount -t fdescfs -o nodup none /dev/fdpath"
.Sh SEE ALSO
-.Xr devfs 5 ,
+.Xr devfs 4 ,
.Xr mount 8
.Sh HISTORY
The
diff --git a/share/man/man7/ffs.7 b/share/man/man4/ffs.4
index 7d003443f32a..5f8787d6fefc 100644
--- a/share/man/man7/ffs.7
+++ b/share/man/man4/ffs.4
@@ -28,8 +28,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 3, 2020
-.Dt FFS 7
+.Dd January 19, 2025
+.Dt FFS 4
.Os
.Sh NAME
.Nm ffs
@@ -285,6 +285,10 @@ upon reallocating file system blocks to be contiguous.
Enable support for the rearrangement of blocks
to be contiguous.
.Pq Default: 1 .
+.It Va vfs.ffs.prttimechgs
+Print a console message when timestamps for UFS1 filesystems are found
+to be in the future and are changed to be the present time.
+.Pq Default: 0 .
.El
.Sh HISTORY
The
diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4
index 2561e1e89bf5..34cb322dec90 100644
--- a/share/man/man4/filemon.4
+++ b/share/man/man4/filemon.4
@@ -29,13 +29,15 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 1, 2023
+.Dd April 19, 2025
.Dt FILEMON 4
.Os
.Sh NAME
.Nm filemon
.Nd the filemon device
.Sh SYNOPSIS
+.Cd device filemon
+.Pp
.In dev/filemon/filemon.h
.Sh DESCRIPTION
The
@@ -70,7 +72,7 @@ The next log entry may be lacking an absolute path or be inaccurate.
.It Ql D
.Xr unlink 2
.It Ql E
-.Xr exec 2
+.Xr execve 2
.It Ql F
.Xr fork 2 ,
.Xr vfork 2
diff --git a/share/man/man4/firewire.4 b/share/man/man4/firewire.4
index 8c4b65eb25bb..99aadb308fc3 100644
--- a/share/man/man4/firewire.4
+++ b/share/man/man4/firewire.4
@@ -29,7 +29,7 @@
.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd June 6, 2022
+.Dd January 23, 2025
.Dt FIREWIRE 4
.Os
.Sh NAME
@@ -49,6 +49,11 @@ module at boot time, place the following line in
.Bd -literal -offset indent
firewire_load="YES"
.Ed
+.Sh DEPRECATION NOTICE
+The
+.Nm
+driver is slated to be removed prior to
+.Fx 16.0 .
.Sh DESCRIPTION
.Fx
provides machine-independent bus support and raw drivers for
diff --git a/share/man/man4/ftgpio.4 b/share/man/man4/ftgpio.4
index e31457673fa5..7a5562841732 100644
--- a/share/man/man4/ftgpio.4
+++ b/share/man/man4/ftgpio.4
@@ -40,8 +40,8 @@ is a driver for the GPIO controller found on Fintek Super I/O chips.
.Xr gpio 3 ,
.Xr gpio 4 ,
.Xr gpioled 4 ,
-.Xr gpioctl 8
.Xr superio 4 ,
+.Xr gpioctl 8
.Sh HISTORY
The
.Nm
diff --git a/share/man/man5/fusefs.5 b/share/man/man4/fusefs.4
index 987e7f898eca..33c31f355e09 100644
--- a/share/man/man5/fusefs.5
+++ b/share/man/man4/fusefs.4
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.Dd July 31, 2019
-.Dt FUSEFS 5
+.Dt FUSEFS 4
.Os
.Sh NAME
.Nm fusefs
diff --git a/share/man/man4/gbde.4 b/share/man/man4/gbde.4
deleted file mode 100644
index 79acfbe81444..000000000000
--- a/share/man/man4/gbde.4
+++ /dev/null
@@ -1,302 +0,0 @@
-.\"
-.\" Copyright (c) 2002 Poul-Henning Kamp
-.\" Copyright (c) 2002 Networks Associates Technology, Inc.
-.\" All rights reserved.
-.\"
-.\" This software was developed for the FreeBSD Project by Poul-Henning Kamp
-.\" and NAI Labs, the Security Research Division of Network Associates, Inc.
-.\" under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
-.\" DARPA CHATS research program.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd October 19, 2002
-.Dt GBDE 4
-.Os
-.Sh NAME
-.Nm gbde
-.Nd Geom Based Disk Encryption
-.Sh SYNOPSIS
-.Cd "options GEOM_BDE"
-.Sh DESCRIPTION
-.Bf -symbolic
-NOTICE:
-Please be aware that this code has not yet received much review
-and analysis by qualified cryptographers and therefore should be considered
-a slightly suspect experimental facility.
-.Pp
-We cannot at this point guarantee that the on-disk format will not change
-in response to reviews or bug-fixes, so potential users are advised to
-be prepared that
-.Xr dump 8 Ns / Ns Xr restore 8
-based migrations may be called for in the future.
-.Ef
-.Pp
-The objective of this facility is to provide a high degree of
-denial of access to the contents of a
-.Dq cold
-storage device.
-.Pp
-Be aware that if the computer is compromised while up and running
-.Em and
-the storage device is actively attached and opened with a valid
-pass-phrase, this facility offers no protection or denial of access
-to the contents of the storage device.
-.Pp
-If, on the other hand, the device is
-.Dq cold ,
-it should present a formidable
-challenge for an attacker to gain access to the contents in the absence of
-a valid pass-phrase.
-.Pp
-Four cryptographic barriers must be passed to gain access to the data,
-and only a valid pass-phrase will yield this access.
-.Pp
-When the pass-phrase is entered, it is hashed with SHA2 into a 512 bit
-.Dq key-material .
-This is a way of producing cryptographic usable keys from a typically
-.No all- Ns Tn ASCII
-pass-phrase of an unpredictable user-selected length.
-.Ss First barrier: the location of the \&"lock-sector".
-During initialization, up to four independent but mutually aware
-.Dq lock
-sectors are written to the device in randomly chosen
-locations.
-These lock-sectors contain the 2048 random bit master-key and a number
-of parameters of the layout geometry (more on this later).
-Since the entire device will contain isotropic data, there is no
-short-cut to rapidly determine which sequence of bytes contain a lock-sector.
-.Pp
-To locate a lock-sector, a small piece of data called the
-.Dq metadata
-and the key-material must be available.
-The key-material decrypts the
-metadata, which contains the byte offset on the device where the
-corresponding lock-sector is located.
-If the metadata is lost or unavailable but the key-material is at
-hand, it would be feasible to do a brute force scan where each byte offset
-of the device is checked to see if it contains the lock-sector data.
-.Ss Second barrier: decryption of the master-key using key-material.
-The lock-sector contains an encrypted copy of an architecture neutral
-byte-sequence which encodes the fields of the lock-structure.
-The order in which these fields are encoded is determined from the key-material.
-The encoded byte stream is encrypted with 256bit AES in CBC mode.
-.Ss Third barrier: decryption of the sector key.
-For each sector, an MD5 hash over a
-.Dq salt
-from the lock-sector and the sector number is used to
-.Dq cherry-pick
-a subset of the master key,
-which hashed together with the sector offset through MD5 produces the
-.Dq kkey ,
-the key which encrypts the sector key.
-.Ss Fourth barrier: decryption of the sector data.
-The actual payload of the sector is encrypted with 128 bit AES in CBC mode
-using a single-use random bits key.
-.Ss Examining the reverse path
-Assuming an attacker knows an amount of plaintext and has managed to
-locate the corresponding encrypted sectors on the device, gaining access
-to the plaintext context of other sectors is a daunting task:
-.Pp
-First he will have to derive from the encrypted sector and the known plain
-text the sector key(s) used.
-At the time of writing, it has been speculated that it could maybe be
-possible to break open AES in only 2^80 operations; even so, that is still
-a very impossible task.
-.Pp
-Armed with one or more sector keys, our patient attacker will then go
-through essentially the same exercise, using the sector key and the
-encrypted sector key to find the key used to encrypt the sector key.
-.Pp
-Armed with one or more of these
-.Dq kkeys ,
-our attacker has to
-run them backwards through MD5.
-Even though he knows that the input to MD5 was 24 bytes and has the value
-of 8 of these bytes from the sector number, he is still faced with 2^128
-equally likely possibilities.
-.Pp
-Having successfully done that, our attacker has successfully discovered
-up to 16 bytes of the master-key, but is still unaware which 16 bytes,
-and in which other sectors any of these known bytes contribute to the kkey.
-.Pp
-To unravel the last bit, the attacker has to guess the 16 byte random-bits
-salt stored in the lock-sector to recover the indexes into the masterkey.
-.Pp
-Any attacker with access to the necessary machine power to even attempt
-this attack will be better off attempting to brute-force the pass-phrase.
-.Ss Positive denial facilities
-Considering the infeasibility of the above attack,
-gaining access to the pass-phrase will be of paramount importance for an
-attacker,
-and a number of scenarios can be imagined where undue pressure will be
-applied to an individual to divulge the pass-phrase.
-.Pp
-A
-.Dq Blackening
-feature provides a way for the user, given a moment of
-opportunity, to destroy the master-key in such a way that the pass-phrase
-will be acknowledged as good but access to the data will still be
-denied.
-.Ss A practical analogy
-For persons who think cryptography is only slightly more interesting than
-watching silicon sublimate the author humbly offers this analogy to the
-keying scheme for a protected device:
-.Pp
-Imagine an installation with a vault with walls of several hundred meters
-thick solid steel.
-This vault can only be feasibly accessed using the
-single key, which has a complexity comparable to a number with 600 digits.
-.Pp
-This key exists in four copies, each of which is stored in one of
-four small safes, each of which can be opened
-with unique key which has a complexity comparable to an 80 digit
-number.
-.Pp
-In addition to the masterkey, each of the four safes also contains
-the exact locations of all four key-safes which are located in
-randomly chosen places on the outside surface of the vault where they
-are practically impossible to detect when they are closed.
-.Pp
-Finally, each safe contains four switches which are wired to a bar
-of dynamite inside each of the four safes.
-.Pp
-In addition to this, a keyholder after opening his key-safe is
-also able to install a copy of the master-key and re-key any of
-key-safes (including his own).
-.Pp
-In normal use, the user will open the safe for which he has the key,
-take out the master-key and access the vault.
-When done, he will lock up the master-key in the safe again.
-.Pp
-If a keyholder-X for some reason distrusts keyholder-Y, she
-has the option of opening her own safe, flipping one of the switches
-and detonating the bar of dynamite in safe-Y.
-This will obliterate the master-key in that safe and thereby deny
-keyholder-Y access to the vault.
-.Pp
-Should the facility come under attack, any of the keyholders can detonate
-all four bars of dynamite and thereby make sure that access to the
-vault is denied to everybody, keyholders and attackers alike.
-Should the facility fall to the enemy, and a keyholder be forced to apply
-his personal key, he can do so in confidence that the contents of his safe
-will not yield access to the vault, and the enemy will hopefully realize
-that applying further pressure on the personnel will not give access to
-the vault.
-.Pp
-The final point to make here is that it is perfectly possible to
-make a detached copy of any one of these keys, including the master
-key, and deposit or hide it as one sees fit.
-.Ss Steganography support
-When the device is initialized, it is possible to restrict the encrypted
-data to a single contiguous area of the device.
-If configured with care, this area could masquerade as some sort of
-valid data or as random trash left behind by the systems operation.
-.Pp
-This can be used to offer a plausible deniability of existence, where
-it will be impossible to prove that this specific area of the device
-is in fact used to store encrypted data and not just random junk.
-.Pp
-The main obstacle in this is that the output from any encryption algorithm
-worth its salt is so totally random looking that it stands out like a sore
-thumb amongst practically any other sort of data which contains at least
-some kind of structure or identifying byte sequences.
-.Pp
-Certain file formats like ELF contain multiple distinct sections, and it
-would be possible to locate things just right in such a way that a device
-contains a partition with a file system with a large executable,
-.Pq Dq "a backup copy of my kernel"
-where a non-loaded ELF section is laid out
-consecutively on the device and thereby could be used to contain a
-.Nm
-encrypted device.
-.Pp
-Apart from the ability to instruct
-.Nm
-which those sectors are, no support is provided for creating such a setup.
-.Ss Deployment suggestions
-For personal use, it may be wise to make a backup copy of the masterkey
-or use one of the four keys as a backup.
-Fitting protection of this key is up to yourself, your local circumstances and
-your imagination.
-.Pp
-For company or institutional use, it is strongly advised to make a copy
-of the master-key and put it under whatever protection you have at your
-means.
-If you fail to do this, a disgruntled employee can deny you access to
-the data
-.Dq "by accident" .
-(The employee can still intentionally deny access by applying another
-encryption scheme to the data, but that problem has no technical solution.)
-.Ss Cryptographic strength
-This section lists the specific components which contribute to the cryptographic
-strength of
-.Nm .
-.Pp
-The payload is encrypted with AES in CBC mode using a 128 bit random
-single-use key
-.Pq Dq "the skey" .
-AES is well documented.
-.Pp
-No IV is used in the encryption of the sectors, the assumption being
-that since the key is random bits and single-use, an IV adds nothing to the
-security of AES.
-.Pp
-The random key is produced with
-.Xr arc4rand 9
-which is believed to do a respectable job at producing unpredictable bytes.
-.Pp
-The skey is stored on the device in a location which can be derived from
-the location of the encrypted payload data.
-The stored copy is encrypted with AES in CBC mode using a 128 bit key
-.Pq Dq "the kkey"
-derived
-from a subset of the master key chosen by the output of an MD5 hash
-over a 16 byte random bit static salt and the sector offset.
-Up to 6.25% of the masterkey (16 bytes out of 2048 bits) will be selected
-and hashed through MD5 with the sector offset to generate the kkey.
-.Pp
-Up to four copies of the master-key and associated geometry information
-is stored on the device in static randomly chosen sectors.
-The exact location inside the sector is randomly chosen.
-The order in which the fields are encoded depends on the key-material.
-The encoded byte-stream is encrypted with AES in CBC mode using 256 bit
-key-material.
-.Pp
-The key-material is derived from the user-entered pass-phrase using
-512 bit SHA2.
-.Pp
-No chain is stronger than its weakest link, which usually is poor pass-phrases.
-.Sh SEE ALSO
-.Xr gbde 8
-.Sh HISTORY
-This software was developed for the
-.Fx
-Project by
-.An Poul-Henning Kamp
-and NAI Labs, the Security Research Division of Network Associates, Inc.\&
-under DARPA/SPAWAR contract N66001-01-C-8035
-.Pq Dq CBOSS ,
-as part of the
-DARPA CHATS research program.
-.Sh AUTHORS
-.An Poul-Henning Kamp Aq Mt phk@FreeBSD.org
diff --git a/share/man/man4/geom.4 b/share/man/man4/geom.4
index c0f3bb23499d..18ecf7e5f852 100644
--- a/share/man/man4/geom.4
+++ b/share/man/man4/geom.4
@@ -32,14 +32,13 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 6, 2023
+.Dd July 8, 2024
.Dt GEOM 4
.Os
.Sh NAME
.Nm GEOM
.Nd "modular disk I/O request transformation framework"
.Sh SYNOPSIS
-.Cd options GEOM_BDE
.Cd options GEOM_CACHE
.Cd options GEOM_CONCAT
.Cd options GEOM_ELI
diff --git a/share/man/man4/gif.4 b/share/man/man4/gif.4
index 959510451011..ad33d5d21e81 100644
--- a/share/man/man4/gif.4
+++ b/share/man/man4/gif.4
@@ -1,6 +1,7 @@
.\" $KAME: gif.4,v 1.28 2001/05/18 13:15:56 itojun Exp $
.\"
.\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+.\" Copyright (C) 2024 Hiroki Sato <hrs@FreeBSD.org>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -27,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 21, 2018
+.Dd July 14, 2025
.Dt GIF 4
.Os
.Sh NAME
@@ -67,8 +68,8 @@ variable in
.Pp
To use
.Nm ,
-the administrator needs to configure the protocol and addresses used for the outer
-header.
+the administrator needs to configure the protocol and addresses used for
+the outer header.
This can be done by using
.Xr ifconfig 8
.Cm tunnel ,
@@ -79,8 +80,7 @@ The administrator also needs to configure the protocol and addresses for the
inner header, with
.Xr ifconfig 8 .
Note that IPv6 link-local addresses
-(those that start with
-.Li fe80:: )
+.Pq those that start with Li fe80\&:\&:
will be automatically configured whenever possible.
You may need to remove IPv6 link-local addresses manually using
.Xr ifconfig 8 ,
@@ -89,12 +89,139 @@ if you want to disable the use of IPv6 as the inner header
Finally, you must modify the routing table to route the packets through the
.Nm
interface.
+.Ss MTU Configuration and Path MTU Discovery
+The
+.Nm
+interface uses the fixed length,
+.Li 1280 ,
+to determine whether the outgoing IPv6 packets are split.
+This means the MTU value configured on the interface will be ignored
+when the outer protocol is IPv6.
+When the
+.Dv NOCLAMP
+interface flag is set,
+.Nm
+uses the same configured value as IPv4 communications.
+This behavior prevents potential issues when the path MTU is
+smaller than the interface MTU.
+This section describes the reason why the default behavior is different.
+The
+.Dv NOCLAMP
+interface flag can be set using the following command:
+.Pp
+.Dl ifconfig Ar gif0 Cm noclamp
+.Pp
+and clear the flag using the following:
+.Pp
+.Dl ifconfig Ar gif0 Cm -noclamp
+.Pp
+where
+.Ar gif0
+is the actual interface name.
+.Pp
+A tunnel interface always has an implicit smaller MTU for the inner protocol
+than the outer protocol because of the additional header.
+Note that the interface MTU on a
+.Nm
+interface,
+the default value is
+.Li 1280 ,
+is used as MTU for the outer protocol.
+This means that the MTU for the inner protocol varies depending on the
+outer protocol header length.
+If an outgoing packet bigger than the inner protocol MTU arrives at a
+.Nm
+interface for encapsulation,
+it will be split into fragments.
+Specifically,
+if IPv4 is used as the outer protocol,
+the inner is 20 octets smaller than the interface MTU.
+In the case of the default interface MTU,
+.Li 1280 ,
+inner packets bigger than
+.Li 1260
+will be fragmented.
+In the case of IPv6,
+the inner is 40 octets smaller than the outer.
+.Pp
+This fragmentation is not harmful though it can degrade the
+performance.
+Note that while an increased MTU on
+.Nm
+interface helps to mitigate this reduced performance issue,
+it can also cause packet losses on the intermediate narrowest path
+between the two communication endpoints in IPv6.
+IPv6 allows fragmentation only on the sender,
+not on the routers in the communication path.
+A big outgoing packet will be dropped on a router with a smaller MTU.
.Pp
+In normal IPv6 communication,
+an ICMPv6 Packet Too Big error will be sent back to the sender,
+who can adjust the packet length and re-send it.
+This process is performed in the upper protocols than L3,
+such as TCP,
+and makes the packet length shorter so that packets go through
+the path without fragmentation.
+This behavior is known as path MTU discovery.
+.Pp
+When using a
+.Nm
+interface,
+the Packet Too Big message is generated for the outer protocol.
+Since the
+.Nm
+interface does not translate this error to the inner protocol,
+the inner protocol sees it just as a packet loss with no useful
+information to adjust the length of the next packets.
+In this situation,
+path MTU discovery does not work,
+and communications of the inner protocol
+become stalled.
+.Pp
+In order to avoid this,
+a
+.Nm
+interface silently splits a packet of over 1240 octets into fragments to make
+the outer protocol packets equal or shorter than 1280 octets,
+even when the interface MTU is configured as larger than 1280.
+Note that this occurs only when the outer protocol is IPv6.
+.Li 1280
+is the smallest MTU in IPv6 and guarantees no packet loss occurs
+on intermediate routers.
+.Pp
+As mentioned earlier,
+the performance is sub-optimal if the actual path MTU is larger than
+.Li 1280 .
+A typical confusing scenario is as follows.
The
.Nm
-device can be configured to be ECN friendly.
-This can be configured by
-.Dv IFF_LINK1 .
+interface can have Ethernet,
+whose MTU is usually 1500,
+as the inner protocol.
+It is called an EtherIP tunnel,
+and can be configured by adding the
+.Nm
+interface as a member of
+.Xr if_bridge 4
+interface.
+The
+.Xr if_bridge 4
+interface forcibly changes the MTU of the
+.Nm
+interface with those for the other member interfaces,
+which are likely 1500.
+In this case,
+a situation in which the MTU of the
+.Nm
+interface is 1500 but fragmentation in 1280 octets always occurs.
+.Pp
+The default behavior is most conservative to prevent confusing packet loss.
+Depending on the network configuration,
+enabling the
+.Dv NOCLAMP
+interface flag might be helpful for better performance.
+It is crucial to ensure that the path MTU is equal to or larger than
+the interface MTU when enabling this flag.
.Ss ECN friendly behavior
The
.Nm
@@ -169,6 +296,7 @@ variable
to the desired level of nesting.
.Sh SEE ALSO
.Xr gre 4 ,
+.Xr if_bridge 4 ,
.Xr inet 4 ,
.Xr inet6 4 ,
.Xr ifconfig 8
@@ -199,7 +327,8 @@ There are many tunnelling protocol specifications, all
defined differently from each other.
The
.Nm
-device may not interoperate with peers which are based on different specifications,
+device may not interoperate with peers which are based on different
+specifications,
and are picky about outer header fields.
For example, you cannot usually use
.Nm
@@ -219,11 +348,14 @@ to 1240 or smaller, when the outer header is IPv6 and the inner header is IPv4.
.Pp
The
.Nm
-device does not translate ICMP messages for the outer header into the inner header.
+device does not translate ICMP messages for the outer header into the inner
+header.
.Pp
In the past,
.Nm
had a multi-destination behavior, configurable via
-.Dv IFF_LINK0
+.Dv NOCLAMP
flag.
The behavior is obsolete and is no longer supported.
+This flag is now used to determine whether performing fragmentation when
+the outer protocol is IPv6.
diff --git a/share/man/man4/gve.4 b/share/man/man4/gve.4
index 54e59b86108b..c5627e929044 100644
--- a/share/man/man4/gve.4
+++ b/share/man/man4/gve.4
@@ -1,6 +1,6 @@
.\" SPDX-License-Identifier: BSD-3-Clause
.\"
-.\" Copyright (c) 2023 Google LLC
+.\" Copyright (c) 2023-2024 Google LLC
.\"
.\" Redistribution and use in source and binary forms, with or without modification,
.\" are permitted provided that the following conditions are met:
@@ -26,7 +26,7 @@
.\" ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
.\" SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.Dd April 26, 2023
+.Dd May 20, 2025
.Dt GVE 4
.Os
.Sh NAME
@@ -79,6 +79,19 @@ binds to a single PCI device ID presented by gVNIC:
.It
0x1AE0:0x0042
.El
+.Sh EXAMPLES
+.Pp
+Change the TX queue count to 4 for the gve0 interface:
+.D1 sysctl dev.gve.0.num_tx_queues=4
+.Pp
+Change the RX queue count to 4 for the gve0 interface:
+.D1 sysctl dev.gve.0.num_rx_queues=4
+.Pp
+Change the TX ring size to 512 for the gve0 interface:
+.D1 sysctl dev.gve.0.tx_ring_size=512
+.Pp
+Change the RX ring size to 512 for the gve0 interface:
+.D1 sysctl dev.gve.0.rx_ring_size=512
.Sh DIAGNOSTICS
The following messages are recorded during driver initialization:
.Bl -diag
@@ -127,7 +140,6 @@ Tx queue-specific allocation failures:
.It "Failed to alloc desc ring for tx ring %d"
.It "Failed to vmap fifo, qpl_id = %d"
.El
-.El
.Pp
The following messages are recorded when the interface detach fails:
.Bl -diag
@@ -168,6 +180,12 @@ These messages are seen if any admin queue command fails:
.It "Unknown AQ command opcode %d"
.El
.Pp
+These messages appear if a TX timeout is detected:
+.Bl -diag
+.It "Found %d timed out packet(s) on txq%d, kicking it for completions"
+.It "Found %d timed out packet(s) on txq%d with its last kick %ld sec ago which is less than the cooldown period %d. Resetting device"
+.El
+.Pp
These messages are recorded when the device is being reset due to an error:
.Bl -diag
.It "Scheduling reset task!"
@@ -193,22 +211,99 @@ These two messages correspond to the NIC alerting the driver to link state chang
.Pp
Apart from these messages, the driver exposes per-queue packet and error counters as sysctl nodes.
Global (across queues) counters can be read using
-.Xr netstat 8 .
+.Xr netstat 1 .
+.Sh SYSCTL VARIABLES
+.Nm
+exposes the following
+.Xr sysctl 8
+variables:
+.Bl -tag -width indent
+.It Va hw.gve.driver_version
+The driver version.
+This is read-only.
+.It Va hw.gve.queue_format
+The queue format in use.
+This is read-only.
+.It Va hw.gve.disable_hw_lro
+Setting this boot-time tunable to 1 disables Large Receive Offload (LRO) in the NIC.
+The default value is 0, which means hardware LRO is enabled by default.
+The software LRO stack in the kernel is always used.
+This sysctl variable needs to be set before loading the driver, using
+.Xr loader.conf 5 .
+.It Va hw.gve.allow_4k_rx_buffers
+Setting this boot-time tunable to 1 enables support for 4K RX Buffers.
+The default value is 0, which means 2K RX Buffers will be used.
+4K RX Buffers are only supported on DQO_RDA and DQO_QPL queue formats.
+When enabled, 4K RX Buffers will be used either when HW LRO is enabled
+or mtu is greated than 2048.
+This sysctl variable needs to be set before loading the driver, using
+.Xr loader.conf 5 .
+.It Va dev.gve.X.num_rx_queues and dev.gve.X.num_tx_queues
+Run-time tunables that represent the number of currently used RX/TX queues.
+The default value is the max number of RX/TX queues the device can support.
+.Pp
+This call turns down the interface while setting up the new queues,
+which may potentially cause any new packets to be dropped.
+This call can fail if the system is not able to provide the driver with enough resources.
+In that situation, the driver will revert to the previous number of RX/TX queues.
+If this also fails, a device reset will be triggered.
+.Pp
+Note: sysctl nodes for queue stats remain available even if a queue is removed.
+.Pp
+.It Va dev.gve.X.rx_ring_size and dev.gve.X.tx_ring_size
+Run-time tunables that represent the current ring size for RX/TX queues.
+The default value is set to device defaults for ring size.
+.Pp
+This call turns down the interface while setting up the queues with the new ring size,
+which may potentially cause any new packets to be dropped.
+This call can fail if the system is not able to provide the driver with enough resources.
+In that situation, the driver will try to revert to the previous ring size for RX/TX queues.
+If this also fails, the device will be in an unhealthy state and will need to be reloaded.
+This value must be a power of 2 and within the defined range.
+.Pp
+.El
.Sh LIMITATIONS
.Nm
does not support the transmission of VLAN-tagged packets.
All VLAN-tagged traffic is dropped.
+.Sh QUEUE FORMATS
+.Nm
+features different datapath modes called queue formats:
+.Pp
+.Bl -bullet -compact
+.It
+GQI_QPL: "QPL" stands for "Queue Page List" and refers to the fact that
+hardware expects a fixed bounce buffer and cannot access arbitrary memory.
+GQI is the older descriptor format.
+The G in "GQI" refers to an older generation of hardware, and the "QI"
+stands for "Queue In-order" referring to the fact that the NIC sends
+Tx and Rx completions in the same order as the one in which the corresponding
+descriptors were posted by the driver.
+.It
+DQO_RDA: DQO is the descriptor format required to take full advantage of
+next generation VM shapes.
+"RDA" stands for "Raw DMA Addressing" and refers to the fact that hardware
+can work with DMA-ed packets and does not expect them to be copied into or
+out of a fixed bounce buffer.
+The D in "DQO" refers to a newer generation of hardware, and the "QO"
+stands for "Queue Out-of-order" referring to the fact that the NIC might
+send Tx and Rx completions in an order different from the one in which
+the corresponding descriptors were posted by the driver.
+.It
+DQO_QPL: The next generation descriptor format in the "QPL" mode.
+.El
.Sh SUPPORT
Please email gvnic-drivers@google.com with the specifics of the issue encountered.
-.El
.Sh SEE ALSO
+.Xr netstat 1 ,
+.Xr loader.conf 5 ,
.Xr ifconfig 8 ,
-.Xr netstat 8
+.Xr sysctl 8
.Sh HISTORY
The
.Nm
device driver first appeared in
-.Fx 14.0 .
+.Fx 13.3 .
.Sh AUTHORS
The
.Nm
diff --git a/share/man/man4/hidraw.4 b/share/man/man4/hidraw.4
index 4631e253c1ef..0353e49a7425 100644
--- a/share/man/man4/hidraw.4
+++ b/share/man/man4/hidraw.4
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd August 6, 2023
+.Dd April 27, 2025
.Dt HIDRAW 4
.Os
.Sh NAME
@@ -198,7 +198,7 @@ specified by
.Va buf .
.It Dv HIDIOCGRAWPHYS(len) Pq Vt "char[] buf"
Get the newbus path to the device.
-.\For Bluetooth devices, it returns the hardware (MAC) address of the device.
+.\"For Bluetooth devices, it returns the hardware (MAC) address of the device.
Copies a maximum of
.Va len
bytes of the newbus device path
@@ -206,10 +206,12 @@ into the memory
specified by
.Va buf .
.It Dv HIDIOCGFEATURE(len) Pq Vt "void[] buf"
-Get a feature report from the device.
+.It Dv HIDIOCGINPUT(len) Pq Vt "void[] buf"
+.It Dv HIDIOCGOUTPUT(len) Pq Vt "void[] buf"
+Get respectively a feature, input or output report from the device.
Copies a maximum of
.Va len
-bytes of the feature report data into the memory specified by
+bytes of the report data into the memory specified by
.Va buf .
The first byte of the supplied buffer should be set to the report
number of the requested report.
@@ -218,7 +220,9 @@ The report will be returned starting at the first byte of the buffer
(ie: the report number is not returned).
This call may fail if the device does not support this feature.
.It Dv HIDIOCSFEATURE(len) Pq Vt "void[] buf"
-Set a feature Report in the device.
+.It Dv HIDIOCSINPUT(len) Pq Vt "void[] buf"
+.It Dv HIDIOCSOUTPUT(len) Pq Vt "void[] buf"
+Set respectively a feature, input or output Report in the device.
The value of the report is specified by the
.Va buf
and the
diff --git a/share/man/man4/hv_netvsc.4 b/share/man/man4/hv_netvsc.4
index 226fa016f695..e5c7004713c5 100644
--- a/share/man/man4/hv_netvsc.4
+++ b/share/man/man4/hv_netvsc.4
@@ -1,3 +1,5 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2012 Microsoft Corp.
.\" All rights reserved.
diff --git a/share/man/man4/hwt.4 b/share/man/man4/hwt.4
new file mode 100644
index 000000000000..299332c72542
--- /dev/null
+++ b/share/man/man4/hwt.4
@@ -0,0 +1,144 @@
+.\"
+.\" Copyright (c) 2025 Ruslan Bukin <br@bsdpad.com>
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd July 12, 2025
+.Dt HWT 4
+.Os
+.Sh NAME
+.Nm hwt
+.Nd Hardware Trace Framework
+.Sh SYNOPSIS
+.Cd "options HWT_HOOKS"
+.Cd "device hwt"
+.Pp
+At least one of:
+.Cd "device intel_pt"
+.Pq amd64
+.Cd "device coresight"
+.Pq arm64
+.Cd "device spe"
+.Pq arm64
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd kld_list="hwt"
+.Sh DESCRIPTION
+The
+.Nm
+framework provides infrastructure for hardware-assisted tracing.
+It collects detailed information about software execution and stores it as
+events in highly compressed format into DRAM.
+The events cover information about control flow changes of a program, whether
+branches taken or not, exceptions taken, timing information, cycles elapsed and
+more.
+The information collected allows to reconstruct entire program flow of a given
+application without noticeable performance impact.
+.Sh HARDWARE
+The framework supports several tracing technologies found on
+.Cd arm64
+and
+.Cd amd64
+systems:
+.Pp
+.Bl -bullet -compact
+.It
+ARM Coresight
+.It
+ARM Statistical Profiling Extension (SPE)
+.It
+Intel Processor Trace (PT)
+.El
+.Pp
+The
+.Nm
+framework supports two modes of operation:
+.Bl -tag -width "Thread mode"
+.It Em CPU mode
+Capture CPU activity in kernel mode.
+.It Em Thread mode
+Capture activity of each of a process's threads in user mode.
+.El
+.Sh MANAGEMENT
+When loaded into kernel, the
+.Nm
+framework provides
+.Pa /dev/hwt
+character device.
+The only
+.Xr ioctl 2
+request it accepts is
+.Dv HWT_IOC_ALLOC .
+This request allocates kernel tracing context (CTX) based on requested mode of
+operation, set of CPUs and/or pid.
+.Pp
+Upon successful CTX allocation, the ioctl returns a CTX identification
+number (ident).
+.Pp
+Each CTX is then managed using its own dedicated character device found at
+.Pa "/dev/hwt_${ident}_${d}",
+where ident is a unique identification number of tracing context, d is either
+cpu_id (in HWT CPU mode) or process pid (in HWT Thread mode).
+.Sh HOOKS
+During tracing of a target process, HWT records runtime events such as threads
+creation, exec and mmap system calls.
+These events are logged as "records" within a particular CTX associated with
+traced process.
+.Pp
+Additionally, HWT can suspend the target thread upon exec or mmap system calls
+if requested by the user.
+This pause allows user-space tools to retrieve the records and adjust tracing
+settings before execution continues.
+This feature is especially useful when address range filtering is enabled,
+allowing tracing of specific functions within the target executable or a
+dynamic library.
+.Sh KERNEL OPTIONS
+The following options in the kernel configuration file are mandatory and
+related to
+.Nm
+operation:
+.Pp
+.Bl -tag -width ".Dv HWT_HOOKS" -compact
+.It Dv HWT_HOOKS
+Enable kernel hooks.
+.El
+.Sh IOCTL INTERFACE
+Once a CTX is allocated, its management character device accepts several
+.Xr ioctl 2
+requests:
+.Bl -tag -width "HWT_IOC_RECORD_GET"
+.It Dv HWT_IOC_START
+Start tracing.
+In HWT CPU mode the tracing does actually start with this
+.Xr ioctl 2
+request.
+In the Thread mode, the tracing "running" flag set, but tracing begins after
+scheduler switches the target thread onto CPU and return to user mode.
+.It Dv HWT_IOC_STOP
+Stop tracing of the particular CTX.
+.It Dv HWT_IOC_RECORD_GET
+Copy all or part of records collected during hook invocation and associated
+with this CTX to userspace.
+.It Dv HWT_IOC_BUFPTR_GET
+Get current pointer in buffer that is filled by tracing units in real-time.
+.It Dv HWT_IOC_SET_CONFIG
+Set architecture-specific config (optional).
+.It Dv HWT_IOC_WAKEUP
+Wake up a thread that has been put to sleep by HWT framework hooks.
+.It Dv HWT_IOC_SVC_BUF
+For SPE-only, the kernel is waiting for userspace to notify that it has copied
+out a buffer to avoid data loss/overwriting buffers.
+.El
+.Sh SEE ALSO
+.Xr tracing 7 ,
+.Xr hwt 8
+.Sh HISTORY
+The
+.Nm
+framework first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An Ruslan Bukin Aq Mt br@FreeBSD.org
+.An Bojan Novković Aq Mt bnovkov@freebsd.org
+.An Zachary Leaf Aq Mt zachary.leaf@arm.com
diff --git a/share/man/man4/iavf.4 b/share/man/man4/iavf.4
index 2e265a5a2fbb..d55e084e82cc 100644
--- a/share/man/man4/iavf.4
+++ b/share/man/man4/iavf.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 2013-2018, Intel Corporation
.\" All rights reserved.
.\"
@@ -29,12 +32,12 @@
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
-.Dd January 30, 2019
+.Dd May 21, 2024
.Dt IAVF 4
.Os
.Sh NAME
.Nm iavf
-.Nd "Intel Adaptive Virtual Function driver"
+.Nd "Intel Ethernet Adaptive Virtual Function Driver"
.Sh SYNOPSIS
To compile this driver into the kernel, place the following lines in your
kernel configuration file:
@@ -51,87 +54,300 @@ if_iavf_load="YES"
.Sh DESCRIPTION
The
.Nm
-driver provides support for the PCI Virtual Functions from the 700 Series of
-ethernet devices and newer product families.
-The driver supports Jumbo Frames, TX/RX checksum offload,
-TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
-tag insertion/extraction, VLAN checksum offload, VLAN TSO, and
-Receive Side Steering (RSS), all for both IPv4 and IPv6.
-For further hardware information and questions related to hardware
-requirements, see
-.Pa http://support.intel.com/ .
-.Pp
-Support for Jumbo Frames is provided via the interface MTU setting.
-Selecting an MTU larger than 1500 bytes with the
+driver provides support for any PCI Virtual Function created from certain
+Intel Ethernet devices.
+This driver is compatible with virtual functions bound to devices based on the
+following:
+.Pp
+.Bl -bullet -compact
+.It
+Intel\(rg Ethernet Controller E810\-C
+.It
+Intel\(rg Ethernet Controller E810\-XXV
+.It
+Intel\(rg Ethernet Connection E822\-C
+.It
+Intel\(rg Ethernet Connection E822\-L
+.It
+Intel\(rg Ethernet Connection E823\-C
+.It
+Intel\(rg Ethernet Connection E823\-L
+.It
+Intel\(rg Ethernet Controller I710
+.It
+Intel\(rg Ethernet Controller X710
+.It
+Intel\(rg Ethernet Controller XL710
+.It
+Intel\(rg Ethernet Network Connection X722
+.It
+Intel\(rg Ethernet Controller XXV710
+.It
+Intel\(rg Ethernet Controller V710
+.El
+.Pp
+The associated Physical Function (PF) drivers for this VF driver are:
+.Pp
+.Bl -bullet -compact
+.It
+.Xr ice 4
+.It
+.Xr ixl 4
+.El
+.Pp
+For questions related to hardware requirements, refer to the documentation
+supplied with your Intel Ethernet Adapter.
+All hardware requirements listed apply to use with
+.Fx .
+.Ss The VF Driver
+The VF driver is normally used in a virtualized environment where a host driver
+manages SR\-IOV, and provides a VF device to the guest.
+.Pp
+In the
+.Fx
+guest, the iavf driver would be loaded and will function using
+the VF device assigned to it.
+.Pp
+The VF driver provides most of the same functionality as the core driver, but
+is actually a subordinate to the host.
+Access to many controls is accomplished by a request to the host via what is
+called the "Admin queue."
+These are startup and initialization events, however; once in operation, the
+device is self\-contained and should achieve near native performance.
+.Pp
+Some notable limitations of the VF environment:
+.Bl -bullet
+.It
+The PF can configure the VF to allow promiscuous mode, using a configuration
+parameter in
+.Xr iovctl.conf 5 ;
+otherwise, promiscuous mode will not work
+.It
+Media info is not available from the PF, so the active media will always be
+displayed as auto in
.Xr ifconfig 8
-utility configures the adapter to receive and transmit Jumbo Frames.
-The maximum MTU size for Jumbo Frames is 9706.
+.El
+.Ss Adaptive Virtual Function
+Adaptive Virtual Function (AVF) allows the virtual function driver, or VF, to
+adapt to changing feature sets of the physical function driver (PF) with which
+it is associated.
+This allows system administrators to update a PF without having to update all
+the VFs associated with it.
+All AVFs have a single common device ID and branding string.
.Pp
-Offloads are also controlled via the interface, for instance,
-checksumming for both IPv4 and IPv6 can be set and unset, TSO4
-and/or TSO6, and finally LRO can be set and unset.
+AVFs have a minimum set of features known as "base mode," but may provide
+additional features depending on what features are available in the PF with
+which the AVF is associated.
+The following are base mode features:
+.Bl -bullet -compact
+.It
+4 Queue Pairs (QP) and associated Configuration Status Registers (CSRs)
+for Tx/Rx
+.It
+iavf descriptors and ring format
+.It
+Descriptor write\-back completion
+.It
+1 control queue, with iavf descriptors, CSRs and ring format
+.It
+5 MSI\-X interrupt vectors and corresponding iavf CSRs
+.It
+1 Interrupt Throttle Rate (ITR) index
+.It
+1 Virtual Station Interface (VSI) per VF
+.It
+1 Traffic Class (TC), TC0
+.It
+Receive Side Scaling (RSS) with 64 entry indirection table and key,
+configured through the PF
+.It
+1 unicast MAC address reserved per VF
+.It
+8 MAC address filters for each VF on an Intel\(rg Ethernet 800 Series device
+.It
+16 MAC address filters for each VF on an Intel\(rg Ethernet 700 Series device
+.It
+Stateless offloads \- non\-tunneled checksums
+.It
+AVF device ID
+.It
+HW mailbox is used for VF to PF communications
+.El
+.Sh CONFIGURATION AND TUNING
+.Ss Important System Configuration Changes
+It is important to note that 100G operation can generate high
+numbers of interrupts, often incorrectly being interpreted as
+a storm condition in the kernel.
+It is suggested that this be resolved by setting
+.Va hw.intr_storm_threshold
+to 0.
.Pp
-For more information on configuring this device, see
-.Xr ifconfig 8 .
+The default is 1000.
.Pp
-.Em NOTE :
-This
+Best throughput results are seen with a large MTU; use 9706 if possible.
+The default number of descriptors per ring is 1024.
+Increasing this may improve performance, depending on your use case.
+.Ss Configuring for no iflib
+.Xr iflib 4
+is a common framework for network interface drivers for
+.Fx
+that uses a shared set of sysctl names.
+.Pp
+The default
.Nm
-driver is only for Virtual Functions.
-For 700 series Physical Functions, use the
-.Xr ixl 4
-driver.
-.Sh LOADER TUNABLES
-Tunables can be set at the
-.Xr loader 8
-prompt before booting the kernel or stored in
-.Xr loader.conf 5 .
-.Bl -tag -width indent
-.It Va hw.iavf.rx_itr
-The RX interrupt rate value, set to 62 (124 usec) by default.
-.It Va hw.iavf.tx_itr
-The TX interrupt rate value, set to 122 (244 usec) by default.
-.It Va hw.iavf.enable_head_writeback
-When the driver is finding the last TX descriptor processed by the hardware,
-use a value written to memory by the hardware instead of scanning the
-descriptor ring for completed descriptors.
-Disabled by default; this mimics the "legacy" TX behavior found in
-.Xr ixgbe 4 .
-to ensure compatibility with future, non-700 series VF devices.
+driver depends on it, but it can be compiled without it.
+.Ss Jumbo Frames
+Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
+to a value larger than the default value of 1500.
+.Pp
+Use the
+.Xr ifconfig 8
+command to increase the MTU size.
+.Pp
+To confirm the MTU used between two specific devices, use
+.Xr route 8 :
+.Bd -literal -offset indent
+route get <destination_IP_address>
+.Ed
+.Pp
+NOTE:
+.Bl -bullet
+.It
+The maximum MTU setting for jumbo frames is 9706.
+This corresponds to the maximum jumbo frame size of 9728 bytes.
+.It
+This driver will attempt to use multiple page-sized buffers to receive
+each jumbo packet.
+This should help to avoid buffer starvation issues when allocating receive
+packets.
+.It
+Packet loss may have a greater impact on throughput when you use jumbo
+frames.
+If you observe a drop in performance after enabling jumbo frames, enabling
+flow control may mitigate the issue.
.El
-.Sh SUPPORT
-For general information and support,
-go to the Intel support website at:
-.Pa http://support.intel.com/ .
+.Ss Checksum Offload
+Checksum offloading supports both TCP and UDP packets and is supported for both
+transmit and receive.
+.Pp
+TSO (TCP Segmentation Offload) supports both IPv4 and IPv6.
+Both of these features are enabled and disabled via
+.Xr ifconfig 8 .
.Pp
-If an issue is identified with this driver with a supported adapter,
-email all the specific information related to the issue to
-.Mt freebsd@intel.com .
+NOTE:
+.Bl -bullet -compact
+.It
+TSO requires Tx checksum; if Tx checksum is disabled then TSO will also
+be disabled.
+.El
+.Ss LRO
+LRO (Large Receive Offload) may provide Rx performance improvement.
+However, it is incompatible with packet\-forwarding workloads.
+You should carefully evaluate the environment and enable LRO when possible.
+.Ss Rx and Tx Descriptor Rings
+Allows you to set the Rx and Tx descriptor rings independently.
+Set them via these
+.Xr iflib 4
+sysctls:
+.Bl -tag -width indent
+.It dev.iavf.#.iflib.override_nrxds
+.It dev.iavf.#.iflib.override_ntxds
+.El
+.Ss Link\-Level Flow Control (LFC)
+The VF driver does not have access to flow control settings.
+It must be managed from the host side.
.Sh SEE ALSO
.Xr arp 4 ,
+.Xr ice 4 ,
+.Xr iflib 4 ,
.Xr ixl 4 ,
.Xr netintro 4 ,
.Xr vlan 4 ,
-.Xr ifconfig 8 ,
-.Xr iflib 9
+.Xr ifconfig 8
+.Pp
+See the
+.Dq Intel\(rg Ethernet Adapters and Devices User Guide
+for additional information on features.
+It is available on the Intel website at either of the following:
+.Bl -bullet
+.It
+.Lk https://cdrdv2.intel.com/v1/dl/getContent/705831
+.It
+.Lk https://www.intel.com/content/www/us/en/download/19373/adapter\-user\-guide\-for\-intel\-ethernet\-adapters.html
+.El
+.Pp
+For information on how to identify your adapter, and for the latest Intel
+network drivers, refer to the Intel Support website:
+.Aq Lk http://www.intel.com/support
+.Sh CAVEATS
+.Ss Driver Buffer Overflow Fix
+The fix to resolve CVE\-2016\-8105, referenced in Intel SA\-00069
+.Aq Lk https://www.intel.com/content/www/us/en/security\-center/advisory/intel\-sa\-00069.html ,
+is included in this and future versions of the driver.
+.Ss Network Memory Buffer Allocation
+.Fx
+may have a low number of network memory buffers (mbufs) by default.
+If your mbuf value is too low, it may cause the driver to fail to initialize
+and/or cause the system to become unresponsive.
+You can check to see if the system is mbuf\-starved by running
+.Li "netstat -m" .
+Increase the number of mbufs by editing the lines below in
+.Xr sysctl.conf 5 :
+.Bd -literal -offset indent
+kern.ipc.nmbclusters
+kern.ipc.nmbjumbop
+kern.ipc.nmbjumbo9
+kern.ipc.nmbjumbo16
+kern.ipc.nmbufs
+.Ed
+.Pp
+The amount of memory that you allocate is system specific, and may require
+some trial and error.
+Also, increasing the following in
+.Xr sysctl.conf 5
+could help increase
+network performance:
+.Bd -literal -offset indent
+kern.ipc.maxsockbuf
+net.inet.tcp.sendspace
+net.inet.tcp.recvspace
+net.inet.udp.maxdgram
+net.inet.udp.recvspace
+.Ed
+.Ss UDP Stress Test Dropped Packet Issue
+Under small packet UDP stress with the
+.Nm
+driver, the system may drop UDP packets due to socket buffers being full.
+Setting the PF driver's Flow Control variables to the minimum may resolve the
+issue.
+.Ss Disable LRO when routing/bridging
+LRO must be turned off when forwarding traffic.
+.Sh SUPPORT
+For general information, go to the Intel support website at
+.Aq Lk http://www.intel.com/support/ .
+.Pp
+If an issue is identified with the released source code on a supported kernel
+with a supported adapter, email the specific information related to the issue
+to
+.Aq Mt freebsd@intel.com .
+.Sh LEGAL
+Intel\(rg is a trademark or registered trademark of Intel Corporation
+or its subsidiaries in the United States and / or other countries.
+.Pp
+Other names and brands may be claimed as the property of others.
.Sh HISTORY
The
.Nm
device driver first appeared in
-.Fx 10.1 .
-under the name "ixlv"
+.Fx 10.1
+under the name
+.Nm ixlv .
It was converted to use
-.Xr iflib 9
-and changed to its current name in
-.Fx 12 .
+.Xr iflib 4
+and renamed in
+.Fx 12.4 .
.Sh AUTHORS
-.An -nosplit
The
.Nm
-driver was written by
-.An Jack Vogel Aq Mt jfv@freebsd.org
-and
-.An Eric Joyner Aq Mt erj@freebsd.org .
-.Sh CAVEATS
-This driver is supposed to function on VFs spawned from future network devices by Intel,
-but at the time of this writing, has only been tested on the 700 series VFs.
+driver was written by the
+.An Intel Corporation Aq Mt freebsd@intel.com
diff --git a/share/man/man4/ice.4 b/share/man/man4/ice.4
new file mode 100644
index 000000000000..3f7a9017756d
--- /dev/null
+++ b/share/man/man4/ice.4
@@ -0,0 +1,1087 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
+.\" Copyright (c) 2019-2020, Intel Corporation
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms of the Software, with or
+.\" without modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright notice,
+.\" this list of conditions and the following disclaimer.
+.\"
+.\" 2. Redistributions in binary form must reproduce the above copyright notice,
+.\" this list of conditions and the following disclaimer in the documentation
+.\" and/or other materials provided with the distribution.
+.\"
+.\" 3. Neither the name of the Intel Corporation nor the names of its
+.\" contributors may be used to endorse or promote products derived from
+.\" this Software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" * Other names and brands may be claimed as the property of others.
+.\"
+.Dd March 28, 2025
+.Dt ICE 4
+.Os
+.Sh NAME
+.Nm ice
+.Nd "Intel\(rg Ethernet 800 Series Driver"
+.Sh SYNOPSIS
+To compile this driver into the kernel, place the following lines in your
+kernel configuration file:
+.Bd -literal -offset indent
+.Cd device iflib
+.Cd device ice
+.Ed
+.Pp
+To load the driver as a module at boot time, place the following lines in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_ice_load="YES"
+.Ed
+.Sh DESCRIPTION
+.Ss Features
+The
+.Nm
+driver provides support for any PCI Express adapter or LOM
+(LAN On Motherboard)
+in the Intel\(rg Ethernet 800 Series.
+As of this writing, the series includes devices with these model numbers:
+.Pp
+.Bl -bullet -compact
+.It
+Intel\(rg Ethernet Controller E810\-C
+.It
+Intel\(rg Ethernet Controller E810\-XXV
+.It
+Intel\(rg Ethernet Connection E822\-C
+.It
+Intel\(rg Ethernet Connection E822\-L
+.It
+Intel\(rg Ethernet Connection E823\-C
+.It
+Intel\(rg Ethernet Connection E823\-L
+.It
+Intel\(rg Ethernet Connection E825\-C
+.It
+Intel\(rg Ethernet Connection E830\-C
+.It
+Intel\(rg Ethernet Connection E830\-CC
+.It
+Intel\(rg Ethernet Connection E830\-L
+.It
+Intel\(rg Ethernet Connection E830\-XXV
+.El
+.Pp
+For questions related to hardware requirements, refer to the documentation
+supplied with your adapter.
+.Pp
+Support for Jumbo Frames is provided via the interface MTU setting.
+Selecting an MTU larger than 1500 bytes with the
+.Xr ifconfig 8
+utility configures the adapter to receive and transmit Jumbo Frames.
+The maximum MTU size for Jumbo Frames is 9706.
+For more information, see the
+.Sx Jumbo Frames
+section.
+.Pp
+This driver version supports VLANs.
+For information on enabling VLANs, see
+.Xr vlan 4 .
+For additional information on configuring VLANs, see
+.Xr ifconfig 8 Ap s
+.Dq VLAN Parameters
+section.
+.Pp
+Offloads are also controlled via the interface, for instance, checksumming for
+both IPv4 and IPv6 can be set and unset, TSO4 and/or TSO6, and finally LRO can
+be set and unset.
+.Pp
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.Pp
+The associated Virtual Function (VF) driver for this driver is
+.Xr iavf 4 .
+.Pp
+The associated RDMA driver for this driver is
+.Xr irdma 4 .
+.Ss Dynamic Device Personalization
+The DDP package loads during device initialization.
+The driver looks for the
+.Sy ice_ddp
+module and checks that it contains a valid DDP package file.
+.Pp
+If the driver is unable to load the DDP package, the device will enter Safe
+Mode.
+Safe Mode disables advanced and performance features and supports only
+basic traffic and minimal functionality, such as updating the NVM or
+downloading a new driver or DDP package.
+Safe Mode only applies to the affected physical function and does not impact
+any other PFs.
+See the
+.Dq Intel\(rg Ethernet Adapters and Devices User Guide
+for more details on DDP and Safe Mode.
+.Pp
+If you encounter issues with the DDP package file, you may need to download
+an updated driver or
+.Sy ice_ddp
+module.
+See the log messages for more information.
+.Pp
+You cannot update the DDP package if any PF drivers are already loaded.
+To overwrite a package, unload all PFs and then reload the driver with the
+new package.
+.Pp
+You can only use one DDP package per driver, even if you have more than one
+device installed that uses the driver.
+.Pp
+Only the first loaded PF per device can download a package for that device.
+.Ss Jumbo Frames
+Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
+to a value larger than the default value of 1500.
+.Pp
+Use
+.Xr ifconfig 8
+to increase the MTU size.
+.Pp
+The maximum MTU setting for jumbo frames is 9706.
+This corresponds to the maximum jumbo frame size of 9728 bytes.
+.Pp
+This driver will attempt to use multiple page sized buffers to receive
+each jumbo packet.
+This should help to avoid buffer starvation issues when allocating receive
+packets.
+.Pp
+Packet loss may have a greater impact on throughput when you use jumbo
+frames.
+If you observe a drop in performance after enabling jumbo frames, enabling
+flow control may mitigate the issue.
+.Ss Remote Direct Memory Access
+Remote Direct Memory Access, or RDMA, allows a network device to transfer data
+directly to and from application memory on another system, increasing
+throughput and lowering latency in certain networking environments.
+.Pp
+The ice driver supports both the iWARP (Internet Wide Area RDMA Protocol) and
+RoCEv2 (RDMA over Converged Ethernet) protocols.
+The major difference is that iWARP performs RDMA over TCP, while RoCEv2 uses
+UDP.
+.Pp
+Devices based on the Intel\(rg Ethernet 800 Series do not support RDMA when
+operating in multiport mode with more than 4 ports.
+.Pp
+For detailed installation and configuration information for RDMA, see
+.Xr irdma 4 .
+.Ss RDMA Monitoring
+For debugging/testing purposes, you can use sysctl to set up a mirroring
+interface on a port.
+The interface can receive mirrored RDMA traffic for packet
+analysis tools like
+.Xr tcpdump 1 .
+This mirroring may impact performance.
+.Pp
+To use RDMA monitoring, you may need to reserve more MSI\-X interrupts.
+Before the
+.Nm
+driver loads, configure the following tunable provided by
+.Xr iflib 4 :
+.Bd -literal -offset indent
+dev.ice.<interface #>.iflib.use_extra_msix_vectors=4
+.Ed
+.Pp
+You may need to adjust the number of extra MSI\-X interrupt vectors.
+.Pp
+To create/delete the interface:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.create_interface=1
+sysctl dev.ice.<interface #>.delete_interface=1
+.Ed
+.Pp
+The mirrored interface receives both LAN and RDMA traffic.
+Additional filters can be configured in tcpdump.
+.Pp
+To differentiate the mirrored interface from the primary interface, the network
+interface naming convention is:
+.Bd -literal -offset indent
+<driver name><port number><modifier><modifier unit number>
+.Ed
+.Pp
+For example,
+.Dq Li ice0m0
+is the first mirroring interface on
+.Dq Li ice0 .
+.Ss Data Center Bridging
+Data Center Bridging (DCB) is a configuration Quality of Service
+implementation in hardware.
+It uses the VLAN priority tag (802.1p) to filter traffic.
+That means that there are 8 different priorities that traffic can be filtered
+into.
+It also enables priority flow control (802.1Qbb) which can limit or eliminate
+the number of dropped packets during network stress.
+Bandwidth can be allocated to each of these priorities, which is enforced at
+the hardware level (802.1Qaz).
+.Pp
+DCB is normally configured on the network using the DCBX protocol (802.1Qaz), a
+specialization of LLDP (802.1AB). The
+.Nm
+driver supports the following mutually exclusive variants of DCBX support:
+.Bl -bullet -compact
+.It
+Firmware\-based LLDP Agent
+.It
+Software\-based LLDP Agent
+.El
+.Pp
+In firmware\-based mode, firmware intercepts all LLDP traffic and handles DCBX
+negotiation transparently for the user.
+In this mode, the adapter operates in
+.Dq willing
+DCBX mode, receiving DCB settings from the link partner (typically a
+switch).
+The local user can only query the negotiated DCB configuration.
+For information on configuring DCBX parameters on a switch, please consult the
+switch manufacturer'ss documentation.
+.Pp
+In software\-based mode, LLDP traffic is forwarded to the network stack and user
+space, where a software agent can handle it.
+In this mode, the adapter can operate in
+.Dq nonwilling
+DCBX mode and DCB configuration can be both queried and set locally.
+This mode requires the FW\-based LLDP Agent to be disabled.
+.Pp
+Firmware\-based mode and software\-based mode are controlled by the
+.Dq fw_lldp_agent
+sysctl.
+Refer to the Firmware Link Layer Discovery Protocol Agent section for more
+information.
+.Pp
+Link\-level flow control and priority flow control are mutually exclusive.
+The ice driver will disable link flow control when priority flow control
+is enabled on any traffic class (TC).
+It will disable priority flow control when link flow control is enabled.
+.Pp
+To enable/disable priority flow control in software\-based DCBX mode:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.pfc=1 (or 0 to disable)
+.Ed
+.Pp
+Enhanced Transmission Selection (ETS) allows you to assign bandwidth to certain
+TCs, to help ensure traffic reliability.
+To view the assigned ETS configuration, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.ets_min_rate
+.Ed
+.Pp
+To set the minimum ETS bandwidth per TC, separate the values by commas.
+All values must add up to 100.
+For example, to set all TCs to a minimum bandwidth of 10% and TC 7 to 30%,
+use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.ets_min_rate=10,10,10,10,10,10,10,30
+.Ed
+.Pp
+To set the User Priority (UP) to a TC mapping for a port, separate the values
+by commas.
+For example, to map UP 0 and 1 to TC 0, UP 2 and 3 to TC 1, UP 4 and
+5 to TC 2, and UP 6 and 7 to TC 3, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.up2tc_map=0,0,1,1,2,2,3,3
+.Ed
+.Ss L3 QoS mode
+The
+.Nm
+driver supports setting DSCP\-based Layer 3 Quality of Service (L3 QoS)
+in the PF driver.
+The driver initializes in L2 QoS mode by default; L3 QoS is disabled by
+default.
+Use the following sysctl to enable or disable L3 QoS:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.pfc_mode=1 (or 0 to disable)
+.Ed
+.Pp
+If you disable L3 QoS mode, it returns to L2 QoS mode.
+.Pp
+To map a DSCP value to a traffic class, separate the values by commas.
+For example, to map DSCPs 0\-3 and DSCP 8 to DCB TCs 0\-3 and 4, respectively:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.dscp2tc_map.0\-7=0,1,2,3,0,0,0,0
+sysctl dev.ice.<interface #>.dscp2tc_map.8\-15=4,0,0,0,0,0,0,0
+.Ed
+.Pp
+To change the DSCP mapping back to the default traffic class, set all the
+values back to 0.
+.Pp
+To view the currently configured mappings, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.dscp2tc_map
+.Ed
+.Pp
+L3 QoS mode is not available when FW\-LLDP is enabled.
+.Pp
+You also cannot enable FW\-LLDP if L3 QoS mode is active.
+.Pp
+Disable FW\-LLDP before switching to L3 QoS mode.
+.Pp
+Refer to the
+.Sx Firmware Link Layer Discovery Protocol Agent
+section in this README for more information on disabling FW\-LLDP.
+.Ss Firmware Link Layer Discovery Protocol Agent
+Use sysctl to change FW\-LLDP settings.
+The FW\-LLDP setting is per port and persists across boots.
+.Pp
+To enable the FW\-LLDP Agent:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fw_lldp_agent=1
+.Ed
+.Pp
+To disable the FW\-LLDP Agebt:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fw_lldp_agent=0
+.Ed
+.Pp
+To check the current LLDP setting:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fw_lldp_agent
+.Ed
+.Pp
+You must enable the UEFI HII LLDP Agent attribute for this setting
+to take effect.
+If the
+.Dq LLDP AGENT
+attribute is set to disabled, you cannot enable the FW\-LLDP Agent from the
+driver.
+.Ss Link\-Level Flow Control (LFC)
+Ethernet Flow Control (IEEE 802.3x) can be configured with sysctl to enable
+receiving and transmitting pause frames for
+.Nm .
+When transmit is enabled, pause frames are generated when the receive packet
+buffer crosses a predefined threshold.
+When receive is enabled, the transmit unit will halt for the time delay
+specified in the firmware when a pause frame is received.
+.Pp
+Flow Control is disabled by default.
+.Pp
+Use sysctl to change the flow control settings for a single interface without
+reloading the driver:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fc
+.Ed
+.Pp
+The available values for flow control are:
+.Bd -literal -offset indent
+0 = Disable flow control
+1 = Enable Rx pause
+2 = Enable Tx pause
+3 = Enable Rx and Tx pause
+.Ed
+.Pp
+Verify that link flow control was negotiated on the link by checking the
+interface entry in
+.Xr ifconfig 8
+and looking for the flags
+.Dq txpause
+and/or
+.Dq rxpause
+in the
+.Dq media
+status.
+.Pp
+The
+.Nm
+driver requires flow control on both the port and link partner.
+If flow control is disabled on one of the sides, the port may appear to
+hang on heavy traffic.
+.Pp
+For more information on priority flow control, refer to the
+.Sx Data Center Bridging
+section.
+.Pp
+The VF driver does not have access to flow control.
+It must be managed from the host side.
+.Ss Forward Error Correction
+Forward Error Correction (FEC) improves link stability but increases latency.
+Many high quality optics, direct attach cables, and backplane channels can
+provide a stable link without FEC.
+.Pp
+For devices to benefit from this feature, link partners must have FEC enabled.
+.Pp
+If you enable the sysctl
+.Em allow_no_fec_modules_in_auto
+Auto FEC negotiation will include
+.Dq No FEC
+in case your link partner does not have FEC enabled or is not FEC capable:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.allow_no_fec_modules_in_auto=1
+.Ed
+.Pp
+NOTE: This flag is currently not supported on the Intel\(rg Ethernet 830
+Series.
+.Pp
+To show the current FEC settings that are negotiated on the link:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.negotiated_fec
+.Ed
+.Pp
+To view or set the FEC setting that was requested on the link:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.requested_fec
+.Ed
+.Pp
+To see the valid FEC modes for the link:
+.Bd -literal -offset indent
+sysctl \-d dev.ice.<interface #>.requested_fec
+.Ed
+.Ss Speed and Duplex Configuration
+You cannot set duplex or autonegotiation settings.
+.Pp
+To have your device change the speeds it will use in auto-negotiation or
+force link with:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.advertise_speed=<mask>
+.Ed
+.Pp
+Supported speeds will vary by device.
+Depending on the speeds your device supports, valid bits used in a speed mask
+could include:
+.Bd -literal -offset indent
+0x0 \- Auto
+0x2 \- 100 Mbps
+0x4 \- 1 Gbps
+0x8 \- 2.5 Gbps
+0x10 \- 5 Gbps
+0x20 \- 10 Gbps
+0x80 \- 25 Gbps
+0x100 \- 40 Gbps
+0x200 \- 50 Gbps
+0x400 \- 100 Gbps
+0x800 \- 200 Gbps
+.Ed
+.Ss Disabling physical link when the interface is brought down
+When the
+.Va link_active_on_if_down
+sysctl is set to
+.Dq 0 ,
+the port's link will go down when the interface is brought down.
+By default, link will stay up.
+.Pp
+To disable link when the interface is down:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.link_active_on_if_down=0
+.Ed
+.Ss Firmware Logging
+The
+.Nm
+driver allows for the generation of firmware logs for supported categories of
+events, to help debug issues with Customer Support.
+Refer to the
+.Dq Intel\(rg Ethernet Adapters and Devices User Guide
+for an overview of this feature and additional tips.
+.Pp
+At a high level, to capture a firmware log:
+.Bl -enum -compact
+.It
+Set the configuration for the firmware log.
+.It
+Perform the necessary steps to generate the issue you are trying to debug.
+.It
+Capture the firmware log.
+.It
+Stop capturing the firmware log.
+.It
+Reset your firmware log settings as needed.
+.It
+Work with Customer Support to debug the issue.
+.El
+.Pp
+NOTE: Firmware logs are generated in a binary format and must be decoded by
+Customer Support.
+Information collected is related only to firmware and hardware for debug
+purposes.
+.Pp
+Once the driver is loaded, it will create the
+.Va fw_log
+sysctl node under the debug section of the driver's sysctl list.
+The driver groups these events into categories, called
+.Dq modules .
+Supported modules include:
+.Pp
+.Bl -tag -offset indent -compact -width "task_dispatch"
+.It Va general
+General (Bit 0)
+.It Va ctrl
+Control (Bit 1)
+.It Va link
+Link Management (Bit 2)
+.It Va link_topo
+Link Topology Detection (Bit 3)
+.It Va dnl
+Link Control Technology (Bit 4)
+.It Va i2c
+I2C (Bit 5)
+.It Va sdp
+SDP (Bit 6)
+.It Va mdio
+MDIO (Bit 7)
+.It Va adminq
+Admin Queue (Bit 8)
+.It Va hdma
+Host DMA (Bit 9)
+.It Va lldp
+LLDP (Bit 10)
+.It Va dcbx
+DCBx (Bit 11)
+.It Va dcb
+DCB (Bit 12)
+.It Va xlr
+XLR (function\-level resets; Bit 13)
+.It Va nvm
+NVM (Bit 14)
+.It Va auth
+Authentication (Bit 15)
+.It Va vpd
+Vital Product Data (Bit 16)
+.It Va iosf
+Intel On\-Chip System Fabric (Bit 17)
+.It Va parser
+Parser (Bit 18)
+.It Va sw
+Switch (Bit 19)
+.It Va scheduler
+Scheduler (Bit 20)
+.It Va txq
+TX Queue Management (Bit 21)
+.It Va acl
+ACL (Access Control List; Bit 22)
+.It Va post
+Post (Bit 23)
+.It Va watchdog
+Watchdog (Bit 24)
+.It Va task_dispatch
+Task Dispatcher (Bit 25)
+.It Va mng
+Manageability (Bit 26)
+.It Va synce
+SyncE (Bit 27)
+.It Va health
+Health (Bit 28)
+.It Va tsdrv
+Time Sync (Bit 29)
+.It Va pfreg
+PF Registration (Bit 30)
+.It Va mdlver
+Module Version (Bit 31)
+.El
+.Pp
+You can change the verbosity level of the firmware logs.
+You can set only one log level per module, and each level includes the
+verbosity levels lower than it.
+For instance, setting the level to
+.Dq normal
+will also log warning and error messages.
+Available verbosity levels are:
+.Pp
+.Bl -item -offset indent -compact
+.It
+0 = none
+.It
+1 = error
+.It
+2 = warning
+.It
+3 = normal
+.It
+4 = verbose
+.El
+.Pp
+To set the desired verbosity level for a module, use the following sysctl
+command and then register it:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.debug.fw_log.severity.<module>=<level>
+.Ed
+.Pp
+For example:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.fw_log.severity.link=1
+sysctl dev.ice.0.debug.fw_log.severity.link_topo=2
+sysctl dev.ice.0.debug.fw_log.register=1
+.Ed
+.Pp
+To log firmware messages after booting, but before the driver initializes, use
+.Xr kenv 1
+to set the tunable.
+The
+.Va on_load
+setting tells the device to register the variable as soon as possible during
+driver load.
+For example:
+.Bd -literal -offset indent
+kenv dev.ice.0.debug.fw_log.severity.link=1
+kenv dev.ice.0.debug.fw_log.severity.link_topo=2
+kenv dev.ice.0.debug.fw_log.on_load=1
+.Ed
+.Pp
+To view the firmware logs and redirect them to a file, use the following
+command:
+.Bd -literal -offset indent
+dmesg > log_output
+.Ed
+.Pp
+NOTE: Logging a large number of modules or too high of a verbosity level will
+add extraneous messages to dmesg and could hinder debug efforts.
+.Ss Debug Dump
+Intel\(rg Ethernet 800 Series devices support debug dump, which allows you to
+obtain runtime register values from the firmware for
+.Dq clusters
+of events and then write the results to a single dump file, for debugging
+complicated issues in the field.
+.Pp
+This debug dump contains a snapshot of the device and its existing hardware
+configuration, such as switch tables, transmit scheduler tables, and other
+information.
+Debug dump captures the current state of the specified cluster(s) and is a
+stateless snapshot of the whole device.
+.Pp
+NOTE: Like with firmware logs, the contents of the debug dump are not
+human\-readable.
+You must work with Customer Support to decode the file.
+.Pp
+Debug dump is per device, not per PF.
+.Pp
+Debug dump writes all information to a single file.
+.Pp
+To generate a debug dump file in
+.Fx
+do the following:
+.Pp
+Specify the cluster(s) to include in the dump file, using a bitmask and the
+following command:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.debug.dump.clusters=<bitmask>
+.Ed
+.Pp
+To print the complete cluster bitmask and parameter list to the screen,
+pass the
+.Fl d
+argument.
+For example:
+.Bd -literal -offset indent
+sysctl \-d dev.ice.0.debug.dump.clusters
+.Ed
+.Pp
+Possible bitmask values for
+.Va clusters
+are:
+.Bl -bullet -compact
+.It
+0 \- Dump all clusters (only supported on Intel\(rg Ethernet E810 Series and
+Intel\(rg Ethernet E830 Series)
+.It
+0x1 \- Switch
+.It
+0x2 \- ACL
+.It
+0x4 \- Tx Scheduler
+.It
+0x8 \- Profile Configuration
+.It
+0x20 \- Link
+.It
+0x80 \- DCB
+.It
+0x100 \- L2P
+.It
+0x400000 \- Manageability Transactions (only supported on Intel\(rg Ethernet
+E810 Series)
+.El
+.Pp
+For example, to dump the Switch, DCB, and L2P clusters, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.dump.clusters=0x181
+.Ed
+.Pp
+To dump all clusters, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.dump.clusters=0
+.Ed
+.Pp
+NOTE: Using 0 will skip Manageability Transactions data.
+.Pp
+If you don't specify a cluster, the driver will dump all clusters to a
+single file.
+Issue the debug dump command, using the following:
+.Bd -literal -offset indent
+sysctl \-b dev.ice.<interface #>.debug.dump.dump=1 > dump.bin
+.Ed
+.Pp
+NOTE: The driver will not receive the command if you do not write
+.Dq 1
+to the sysctl.
+.Pp
+Replace
+.Dq dump.bin
+above with the file name you want to use.
+.Pp
+To clear the
+.Va clusters
+mask before a subsequent debug dump and then do the dump:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.dump.clusters=0
+sysctl dev.ice.0.debug.dump.dump=1
+.Ed
+.Ss Debugging PHY Statistics
+The ice driver supports the ability to obtain the values of the PHY registers
+from Intel(R) Ethernet 810 Series devices in order to debug link and
+connection issues during runtime.
+.Pp
+The driver allows you to obtain information about:
+.Bl -bullet
+.It
+Rx and Tx Equalization parameters
+.It
+RS FEC correctable and uncorrectable block counts
+.El
+.Pp
+Use the following sysctl to read the PHY registers:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.debug.phy_statistics
+.Ed
+.Pp
+NOTE: The contents of the registers are not human\-readable.
+Like with firmware logs and debug dump, you must work with Customer Support
+to decode the file.
+.Ss Transmit Balancing
+Some Intel(R) Ethernet 800 Series devices allow you to enable a transmit
+balancing feature to improve transmit performance under certain conditions.
+When the feature is enabled, you should experience more consistent transmit
+performance across queues and/or PFs and VFs.
+.Pp
+By default, transmit balancing is disabled in the NVM.
+To enable this feature, use one of the following to persistently change the
+setting for the device:
+.Bl -bullet
+.It
+Use the Ethernet Port Configuration Tool (EPCT) to enable the
+.Va tx_balancing
+option.
+Refer to the EPCT readme for more information.
+.It
+Enable the Transmit Balancing device setting in UEFI HII.
+.El
+.Pp
+When the driver loads, it reads the transmit balancing setting from the NVM and
+configures the device accordingly.
+.Pp
+NOTE: The user selection for transmit balancing in EPCT or HII is persistent
+across reboots.
+You must reboot the system for the selected setting to take effect.
+.Pp
+This setting is device wide.
+.Pp
+The driver, NVM, and DDP package must all support this functionality to
+enable the feature.
+.Ss Thermal Monitoring
+Intel(R) Ethernet 810 Series and Intel(R) Ethernet 830 Series devices can
+display temperature data (in degrees Celsius) via:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.temp
+.Ed
+.Ss Network Memory Buffer Allocation
+.Fx
+may have a low number of network memory buffers (mbufs) by default.
+If the number of mbufs available is too low, it may cause the driver to fail
+to initialize and/or cause the system to become unresponsive.
+You can check to see if the system is mbuf\-starved by running
+.Ic netstat Fl m .
+Increase the number of mbufs by editing the lines below in
+.Pa /etc/sysctl.conf :
+.Bd -literal -offset indent
+kern.ipc.nmbclusters
+kern.ipc.nmbjumbop
+kern.ipc.nmbjumbo9
+kern.ipc.nmbjumbo16
+kern.ipc.nmbufs
+.Ed
+.Pp
+The amount of memory that you allocate is system specific, and may require some
+trial and error.
+Also, increasing the following in
+.Pa /etc/sysctl.conf
+could help increase network performance:
+.Bd -literal -offset indent
+kern.ipc.maxsockbuf
+net.inet.tcp.sendspace
+net.inet.tcp.recvspace
+net.inet.udp.maxdgram
+net.inet.udp.recvspace
+.Ed
+.Ss Additional Utilities
+There are additional tools available from Intel to help configure and update
+the adapters covered by this driver.
+These tools can be downloaded directly from Intel at
+.Lk https://downloadcenter.intel.com ,
+by searching for their names:
+.Bl -bullet
+.It
+To change the behavior of the QSFP28 ports on E810-C adapters, use the Intel
+.Sy Ethernet Port Configuration Tool - FreeBSD .
+.It
+To update the firmware on an adapter, use the Intel
+.Sy Non-Volatile Memory (NVM) Update Utility for Intel Ethernet Network Adapters E810 series - FreeBSD
+.El
+.Sh HARDWARE
+The
+.Nm
+driver supports the Intel Ethernet 800 series.
+Some adapters in this series with SFP28/QSFP28 cages
+have firmware that requires that Intel qualified modules are used; these
+qualified modules are listed below.
+This qualification check cannot be disabled by the driver.
+.Pp
+The
+.Nm
+driver supports 100Gb Ethernet adapters with these QSFP28 modules:
+.Pp
+.Bl -bullet -compact
+.It
+Intel\(rg 100G QSFP28 100GBASE-SR4 E100GQSFPSR28SRX
+.It
+Intel\(rg 100G QSFP28 100GBASE-SR4 SPTMBP1PMCDF
+.It
+Intel\(rg 100G QSFP28 100GBASE-CWDM4 SPTSBP3CLCCO
+.It
+Intel\(rg 100G QSFP28 100GBASE-DR SPTSLP2SLCDF
+.El
+.Pp
+The
+.Nm
+driver supports 25Gb and 10Gb Ethernet adapters with these SFP28 modules:
+.Pp
+.Bl -bullet -compact
+.It
+Intel\(rg 10G/25G SFP28 25GBASE-SR E25GSFP28SR
+.It
+Intel\(rg 25G SFP28 25GBASE-SR E25GSFP28SRX (Extended Temp)
+.It
+Intel\(rg 25G SFP28 25GBASE-LR E25GSFP28LRX (Extended Temp)
+.El
+.Pp
+The
+.Nm
+driver supports 10Gb and 1Gb Ethernet adapters with these SFP+ modules:
+.Pp
+.Bl -bullet -compact
+.It
+Intel\(rg 1G/10G SFP+ 10GBASE-SR E10GSFPSR
+.It
+Intel\(rg 1G/10G SFP+ 10GBASE-SR E10GSFPSRG1P5
+.It
+Intel\(rg 1G/10G SFP+ 10GBASE-SR E10GSFPSRG2P5
+.It
+Intel\(rg 10G SFP+ 10GBASE-SR E10GSFPSRX (Extended Temp)
+.It
+Intel\(rg 1G/10G SFP+ 10GBASE-LR E10GSFPLR
+.El
+.Pp
+Note that adapters also support all passive and active
+limiting direct attach cables that comply with SFF-8431 v4.1 and
+SFF-8472 v10.4 specifications.
+.Pp
+This is not an exhaustive list; please consult product documentation for an
+up-to-date list of supported media.
+.Ss Fiber optics and auto\-negotiation
+Modules based on 100GBASE\-SR4, active optical cable (AOC), and active copper
+cable (ACC) do not support auto\-negotiation per the IEEE specification.
+To obtain link with these modules, auto\-negotiation must be turned off on the
+link partner's switch ports.
+.Ss PCI-Express Slot Bandwidth
+Some PCIe x8 slots are actually configured as x4 slots.
+These slots have insufficient bandwidth for full line rate with dual port and
+quad port devices.
+In addition, if you put a PCIe v4.0 or v3.0\-capable adapter into a PCIe v2.x
+slot, you cannot get full bandwidth.
+.Pp
+The driver detects this situation and writes the following message in the
+system log:
+.Bd -literal -offset indent
+PCI\-Express bandwidth available for this device may be insufficient for
+optimal performance.
+Please move the device to a different PCI\-e link with more lanes and/or
+higher transfer rate.
+.Ed
+.Pp
+If this error occurs, moving your adapter to a true PCIe x8 or x16 slot will
+resolve the issue.
+For best performance, install devices in the following PCI slots:
+.Bl -bullet
+.It
+Any 100Gbps\-capable Intel(R) Ethernet 800 Series device: Install in a
+PCIe v4.0 x8 or v3.0 x16 slot
+.It
+A 200Gbps\-capable Intel(R) Ethernet 830 Series device: Install in a
+PCIe v5.0 x8 or v4.0 x16 slot
+.El
+.Sh LOADER TUNABLES
+Tunables can be set at the
+.Xr loader 8
+prompt before booting the kernel or stored in
+.Xr loader.conf 5 .
+See the
+.Xr iflib 4
+man page for more information on using iflib sysctl variables as tunables.
+.Bl -tag -width indent
+.It Va hw.ice.enable_health_events
+Set to 1 to enable firmware health event reporting across all devices.
+Enabled by default.
+.Pp
+If enabled, when the driver receives a firmware health event message, it will
+print out a description of the event to the kernel message buffer and if
+applicable, possible actions to take to remedy it.
+.It Va hw.ice.irdma
+Set to 1 to enable the RDMA client interface, required by the
+.Xr irdma 4
+driver.
+Enabled by default.
+.It Va hw.ice.rdma_max_msix
+Set the maximum number of per-device MSI-X vectors that are allocated for use
+by the
+.Xr irdma 4
+driver.
+Set to 64 by default.
+.It Va hw.ice.debug.enable_tx_fc_filter
+Set to 1 to enable the TX Flow Control filter across all devices.
+Enabled by default.
+.Pp
+If enabled, the hardware will drop any transmitted Ethertype 0x8808 control
+frames that do not originate from the hardware.
+.It Va hw.ice.debug.enable_tx_lldp_filter
+Set to 1 to enable the TX LLDP filter across all devices.
+Enabled by default.
+.Pp
+If enabled, the hardware will drop any transmitted Ethertype 0x88cc LLDP frames
+that do not originate from the hardware.
+This must be disabled in order to use LLDP daemon software such as
+.Xr lldpd 8 .
+.It Va hw.ice.debug.ice_tx_balance_en
+Set to 1 to allow the driver to use the 5-layer Tx Scheduler tree topology if
+configured by the DDP package.
+.Pp
+Enabled by default.
+.El
+.Sh SYSCTL VARIABLES
+.Bl -tag -width indent
+.It Va dev.ice.#.current_speed
+This is a display of the current link speed of the interface.
+This is expected to match the speed of the media type in-use displayed by
+.Xr ifconfig 8 .
+.It Va dev.ice.#.fw_version
+Displays the current firmware and NVM versions of the adapter.
+This information should be submitted along with any support requests.
+.It Va dev.ice.#.ddp_version
+Displays the current DDP package version downloaded to the adapter.
+This information should be submitted along with any support requests.
+.It Va dev.ice.#.pba_number
+Displays the Product Board Assembly Number.
+May be used to help identify the type of adapter in use.
+This sysctl may not exist depending on the adapter type.
+.It Va dev.ice.#.hw.mac.*
+This sysctl tree contains statistics collected by the hardware for the port.
+.El
+.Sh INTERRUPT STORMS
+It is important to note that 100G operation can generate high
+numbers of interrupts, often incorrectly being interpreted as
+a storm condition in the kernel.
+It is suggested that this be resolved by setting
+.Va hw.intr_storm_threshold
+to 0.
+.Sh IOVCTL OPTIONS
+The driver supports additional optional parameters for created VFs
+(Virtual Functions) when using
+.Xr iovctl 8 :
+.Bl -tag -width indent
+.It mac-addr Pq unicast-mac
+Set the Ethernet MAC address that the VF will use.
+If unspecified, the VF will use a randomly generated MAC address and
+.Dq allow-set-mac
+will be set to true.
+.It mac-anti-spoof Pq bool
+Prevent the VF from sending Ethernet frames with a source address
+that does not match its own.
+Enabled by default.
+.It allow-set-mac Pq bool
+Allow the VF to set its own Ethernet MAC address.
+Disallowed by default.
+.It allow-promisc Pq bool
+Allow the VF to inspect all of the traffic sent to the port that it is created
+on.
+Disabled by default.
+.It num-queues Pq uint16_t
+Specify the number of queues the VF will have.
+By default, this is set to the number of MSI\-X vectors supported by the VF
+minus one.
+.It mirror-src-vsi Pq uint16_t
+Specify which VSI the VF will mirror traffic from by setting this to a value
+other than \-1.
+All traffic from that VSI will be mirrored to this VF.
+Can be used as an alternative method to mirror RDMA traffic to another
+interface than the method described in the
+.Sx RDMA Monitoring
+section.
+Not affected by the
+.Dq allow-promisc
+parameter.
+.It max-vlan-allowed Pq uint16_t
+Specify maximum number of VLAN filters that the VF can use.
+Receiving traffic on a VLAN requires a hardware filter which are a finite
+resource; this is used to prevent a VF from starving other VFs or the PF of
+filter resources.
+By default, this is set to 16.
+.It max-mac-filters Pq uint16_t
+Specify maximum number of MAC address filters that the VF can use.
+Each allowed MAC address requires a hardware filter which are a finite
+resource; this is used to prevent a VF from starving other VFs or the PF of
+filter resources.
+The VF's default mac address does not count towards this limit.
+By default, this is set to 64.
+.El
+.Pp
+An up to date list of parameters and their defaults can be found by using
+.Xr iovctl 8
+with the
+.Fl S
+option.
+.Pp
+For more information on standard and mandatory parameters, see
+.Xr iovctl.conf 5 .
+.Sh SUPPORT
+For general information and support, go to the Intel support website at:
+.Lk http://www.intel.com/support/ .
+.Pp
+If an issue is identified with this driver with a supported adapter,
+email all the specific information related to the issue to
+.Aq Mt freebsd@intel.com .
+.Sh SEE ALSO
+.Xr iflib 4 ,
+.Xr vlan 4 ,
+.Xr ifconfig 8 ,
+.Xr sysctl 8
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 12.2 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Intel Corporation Aq Mt freebsd@intel.com .
diff --git a/share/man/man4/icmp.4 b/share/man/man4/icmp.4
index 7bc844edd3c0..c8c92a794e24 100644
--- a/share/man/man4/icmp.4
+++ b/share/man/man4/icmp.4
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 1, 2022
+.Dd December 11, 2024
.Dt ICMP 4
.Os
.Sh NAME
@@ -169,10 +169,31 @@ Defaults to false.
Enable/disable dropping of ICMP Redirect packets.
Defaults to false.
.It Va icmplim
-.Pq Vt integer
-Bandwidth limit for ICMP replies in packets/second.
+.Pq Vt unsigned integer
+Mean rate limit for replies in packets/second.
+The actual limit is
+.Va icmplim
+plus a random jitter limited by
+.Va icmplim_jitter .
If set to zero, no limiting will occur.
Defaults to 200.
+.It Va icmplim_jitter
+.Pq Vt unsigned integer
+A random jitter between the negative of
+.Va icmplim_jitter
+and
+.Va icmplim_jitter
+is applied to
+.Va icmplim
+for limiting the sending rate of replies.
+.Va icmplim_jitter
+must be smaller than
+.Va icmplim ,
+if
+.Va icmplim
+is not zero.
+If set to zero, no jitter will be applied.
+Defaults to 16.
.It Va icmplim_output
.Pq Vt boolean
Enable/disable logging of ICMP replies bandwidth limiting.
diff --git a/share/man/man4/igc.4 b/share/man/man4/igc.4
index cf36e584a679..a67ed1c15ee8 100644
--- a/share/man/man4/igc.4
+++ b/share/man/man4/igc.4
@@ -81,13 +81,29 @@ driver supports the following models:
.Pp
.Bl -bullet -compact
.It
+I220-V
+.It
+I221-V
+.It
I225-LM
.It
+I225-LMvP(2)
+.It
I225-V
.It
-I225-IT
+I225-IT, I225-IT(2)
+.It
+I225-K, I225-K(2)
+.It
+I226-LM
+.It
+I226-LMvP
+.It
+I226-V
+.It
+I226-IT
.It
-I225-K
+I226-K
.El
.Sh LOADER TUNABLES
Tunables can be set at the
@@ -100,21 +116,6 @@ Disable or enable hardware stripping of CRC field.
This is mostly useful on BMC/IPMI shared interfaces where stripping the
CRC causes remote access over IPMI to fail.
Default 0 (enabled).
-.It Va hw.igc.rx_int_delay
-This value delays the generation of receive interrupts in units
-of 1.024 microseconds.
-The default value is 0, since adapters may hang with this feature being
-enabled.
-.It Va hw.igc.rx_abs_int_delay
-If hw.igc.rx_int_delay is non-zero, this tunable limits the
-maximum delay in which a receive interrupt is generated.
-.It Va hw.igc.tx_int_delay
-This value delays the generation of transmit interrupts in units
-of 1.024 microseconds.
-The default value is 64.
-.It Va hw.igc.tx_abs_int_delay
-If hw.igc.tx_int_delay is non-zero, this tunable limits the
-maximum delay in which a transmit interrupt is generated.
.It Va hw.igc.sbp
Show bad packets when in promiscuous mode.
Default is false.
diff --git a/share/man/man4/iicsmb.4 b/share/man/man4/iicsmb.4
index b6f5e39ce5cc..ffa38000659f 100644
--- a/share/man/man4/iicsmb.4
+++ b/share/man/man4/iicsmb.4
@@ -1,5 +1,7 @@
-.\" Copyright (c) 1998, Nicolas Souchu
-.\" All rights reserved.
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 1998, Nicolas Souchu. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -27,7 +29,7 @@
.Os
.Sh NAME
.Nm iicsmb
-.Nd I2C to SMB bridge
+.Nd I2C to SMBus bridge
.Sh SYNOPSIS
.Cd "device iicsmb"
.Pp
diff --git a/share/man/man4/inet.4 b/share/man/man4/inet.4
index a12dec49caea..08ca67a7edad 100644
--- a/share/man/man4/inet.4
+++ b/share/man/man4/inet.4
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 8, 2022
+.Dd December 31, 2024
.Dt INET 4
.Os
.Sh NAME
@@ -169,11 +169,11 @@ The following general variables are defined:
.It Va accept_sourceroute
Boolean: enable/disable accepting of source-routed IP packets (default false).
.It Va allow_net0
-Boolean: allow experimental use of addresses in 0.0.0.0/8 as endpoints,
-and allow forwarding of packets with these addresses.
+Boolean: allow forwarding of, and ICMP responses to, packets with addresses in
+0.0.0.0/8.
.It Va allow_net240
-Boolean: allow experimental use of addresses in 240.0.0.0/4 as endpoints,
-and allow forwarding of packets with these addresses.
+Boolean: allow forwarding of, and ICMP responses to, packets with addresses in
+240.0.0.0/4.
.It Va curfrags
Integer: Current number of IPv4 fragments across all reassembly queues
in all VNETs (read-only).
diff --git a/share/man/man4/intro.4 b/share/man/man4/intro.4
index 9b22e89ff6c3..e4caf6690efb 100644
--- a/share/man/man4/intro.4
+++ b/share/man/man4/intro.4
@@ -77,7 +77,7 @@ are accessed through
sometimes also called
.Em special files .
They are located within instances of the
-.Xr devfs 5
+.Xr devfs 4
filesystem, which is conventionally mounted on the directory
.Pa /dev
in the file system hierarchy
@@ -85,7 +85,7 @@ in the file system hierarchy
.Xr hier 7 ) .
.Pp
The
-.Xr devfs 5
+.Xr devfs 4
filesystem creates or removes device nodes automatically according to
the physical hardware recognized as present at any given time.
For pseudo-devices, device nodes may be created and removed dynamically
@@ -104,7 +104,7 @@ or set using the
command.
In the latter case, different rules may be used to make different sets
of devices visible within different instances of the
-.Xr devfs 5
+.Xr devfs 4
filesystem, which may be used, for example, to prevent jailed
subsystems from accessing unsafe devices.
Manual changes to device
@@ -200,7 +200,7 @@ device.
.Xr select 2 ,
.Xr socket 2 ,
.Xr write 2 ,
-.Xr devfs 5 ,
+.Xr devfs 4 ,
.Xr hier 7 ,
.Xr config 8
.Sh HISTORY
diff --git a/share/man/man4/ip17x.4 b/share/man/man4/ip17x.4
new file mode 100644
index 000000000000..ac5c989020a5
--- /dev/null
+++ b/share/man/man4/ip17x.4
@@ -0,0 +1,42 @@
+.\"
+.\" Copyright (c) 2025 Alexander Ziaee
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd May 18, 2025
+.Dt IP17X 4
+.Sh NAME
+.Nm ip17x
+.Nd IC Plus IP17x series Fast Ethernet switch driver
+.Sh SYNOPSIS
+.Cd device mdio
+.Cd device etherswitch
+.Cd device ip17x
+.Sh DESCRIPTION
+The
+.Nm
+driver supports the
+IC Plus IP17X series Fast Ethernet switch controllers.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following Fast Ethernet switch controllers:
+.Pp
+.Bl -bullet -compact
+.It
+IC Plus IP178C
+.It
+IC Plus IP175D
+.It
+IC Plus IP175C
+.It
+IC Plus IP175A
+.El
+.Sh SEE ALSO
+.Xr etherswitch 4 ,
+.Xr etherswitchcfg 8
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Fx 10.0 .
diff --git a/share/man/man4/ipfirewall.4 b/share/man/man4/ipfirewall.4
index bfc571bcb595..691ed3d331c0 100644
--- a/share/man/man4/ipfirewall.4
+++ b/share/man/man4/ipfirewall.4
@@ -149,11 +149,11 @@ man page for a complete description of the
capabilities and how to use it.
.Sh SEE ALSO
.Xr setsockopt 2 ,
+.Xr libalias 3 ,
.Xr divert 4 ,
.Xr ip 4 ,
.Xr ip6 4 ,
.Xr ipfw 8 ,
-.Xr libalias 3 ,
.Xr natd 8 ,
.Xr sysctl 8 ,
.Xr syslogd 8 ,
diff --git a/share/man/man4/ipsec.4 b/share/man/man4/ipsec.4
index c5c9ed863385..9fd6207c2f14 100644
--- a/share/man/man4/ipsec.4
+++ b/share/man/man4/ipsec.4
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 6, 2017
+.Dd March 4, 2025
.Dt IPSEC 4
.Os
.Sh NAME
@@ -182,7 +182,7 @@ is synonymous with
which requires that a security association must exist for the packets
to move, and not be dropped.
These terms are defined in
-.Xr ipsec_set_policy 8 .
+.Xr ipsec_set_policy 3 .
.Bl -column net.inet6.ipsec6.esp_trans_deflev integerxxx
.It Sy "Name Type Changeable"
.It "net.inet.ipsec.esp_trans_deflev integer yes"
@@ -239,6 +239,7 @@ for tweaking the kernel's IPsec behavior:
.It "net.inet.ipsec.debug integer yes"
.It "net.inet.ipsec.natt_cksum_policy integer yes"
.It "net.inet.ipsec.check_policy_history integer yes"
+.It "net.inet.ipsec.random_id integer yes"
.It "net.inet6.ipsec6.ecn integer yes"
.It "net.inet6.ipsec6.debug integer yes"
.El
@@ -298,6 +299,9 @@ have been decrypted and authenticated.
If this variable is set to a non-zero value, each packet handled by IPsec
is checked against the history of IPsec security associations.
The IPsec security protocol, mode, and SA addresses must match.
+.It Li ipsec.random_id
+Enables randomization of encapsulated IPv4 packets ID.
+By default, ID randomization is not enabled.
.El
.Pp
Variables under the
@@ -333,8 +337,8 @@ routines from looking into the IP payload.
.Xr ipsec_set_policy 3 ,
.Xr crypto 4 ,
.Xr enc 4 ,
-.Xr if_ipsec 4 ,
.Xr icmp6 4 ,
+.Xr if_ipsec 4 ,
.Xr intro 4 ,
.Xr ip6 4 ,
.Xr setkey 8 ,
diff --git a/share/man/man4/ipw.4 b/share/man/man4/ipw.4
index c1010b798290..0ebee0f1e6eb 100644
--- a/share/man/man4/ipw.4
+++ b/share/man/man4/ipw.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2004-2006
.\" Damien Bergamini <damien.bergamini@free.fr>. All rights reserved.
.\"
@@ -23,12 +26,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 15, 2015
+.Dd November 10, 2024
.Dt IPW 4
.Os
.Sh NAME
.Nm ipw
-.Nd "Intel PRO/Wireless 2100 IEEE 802.11 driver"
+.Nd Intel PRO/Wireless 2100 IEEE 802.11a/b driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -57,19 +60,14 @@ legal.intel_ipw.license_ack=1
.Sh DESCRIPTION
The
.Nm
-driver provides support for the
-.Tn Intel
-PRO/Wireless 2100 MiniPCI network adapter.
-.Nm
-supports
+driver provides support for Intel PRO/Wireless 2100 802.11a/b
+wireless network devices in
.Cm station ,
.Cm adhoc ,
and
.Cm monitor
mode operation.
Only one virtual interface may be configured at any time.
-For more information on configuring this device, see
-.Xr ifconfig 8 .
.Pp
This driver requires the firmware built with the
.Nm ipwfw
@@ -80,28 +78,34 @@ must be agreed by adding the following line to
.Xr loader.conf 5 :
.Pp
.Dl "legal.intel_ipw.license_ack=1"
+.Pp
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+driver provides support for the
+Intel PRO/Wireless 2100a/b MiniPCI network adapter.
.Sh FILES
-.Bl -tag -width ".Pa /usr/share/doc/legal/intel_ipw.LICENSE" -compact
+.Bl -tag -width "/usr/share/doc/legal/intel_ipw.LICENSE" -compact
.It Pa /usr/share/doc/legal/intel_ipw.LICENSE
.Nm
firmware license
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev ipw0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev ipw0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev ipw0 ssid my_net up"
+.Dl ifconfig wlan create wlandev ipw0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev ipw0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Join a specific BSS network with 128-bit WEP encryption:
@@ -144,6 +148,7 @@ This should not happen.
.Xr wlan_ccmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
+.Xr networking 7 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh AUTHORS
diff --git a/share/man/man4/isp.4 b/share/man/man4/isp.4
index 350a0ea59a64..6fea63fdd5d5 100644
--- a/share/man/man4/isp.4
+++ b/share/man/man4/isp.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 2009-2020 Alexander Motin <mav@FreeBSD.org>
.\" Copyright (c) 2006 Marcus Alves Grando
.\" Copyright (c) 1998-2001 Matthew Jacob, for NASA/Ames Research Center
@@ -24,7 +27,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd October 27, 2023
+.Dd April 8, 2025
.Dt ISP 4
.Os
.Sh NAME
@@ -79,6 +82,23 @@ the tape drive.
FC-Tape is automatically enabled when connecting controller that supports
it to a target that supports it.
It may be disabled using configuration and hint options described below.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following optical Fibre Chanel adapters:
+.Bl -column "Qlogic 2690/2692/2694 (2684/2692)" "Speed" "PCI-X"
+.It Model: Ta Speed: Ta Bus:
+.It Qlogic QLE2874 (2814) Ta 64Gb Ta PCIe
+.It Qlogic QLE2870/QLE2872 (2812) Ta 64Gb Ta PCIe
+.It Qlogic QLE2774 (2814) Ta 32Gb Ta PCIe
+.It Qlogic QLE2770/QLE2772 (2812) Ta 32Gb Ta PCIe
+.It Qlogic 2740/2742/2764 (2722/2714) Ta 32Gb Ta PCIe
+.It Qlogic 2690/2692/2694 (2684/2692) Ta 16Gb Ta PCIe
+.It Qlogic 267x/836x (2031/8031) FCoE Ta 16Gb Ta PCIe
+.It Qlogic 256x (2532) Ta 8Gb Ta PCIe
+.It Qlogic 246x (2432) Ta 4Gb Ta PCIe
+.It Qlogic 2422 Ta 4Gb Ta PCI-X
+.El
.Sh FIRMWARE
Firmware loading is supported and handled by
.Xr firmware 9 .
@@ -89,32 +109,6 @@ module.
It is strongly recommended that you use the firmware available from
.Xr ispfw 4
as it is the one that most likely has been tested with this driver.
-.Sh HARDWARE
-Cards supported by the
-.Nm
-driver include:
-.Bl -tag -width xxxxxx -offset indent
-.It Qlogic 2422
-Optical 4Gb Fibre Channel PCI-X cards.
-.It Qlogic 246x (aka 2432)
-Optical 4Gb Fibre Channel PCIe cards.
-.It Qlogic 256x (aka 2532)
-Optical 8Gb Fibre Channel PCIe cards.
-.It Qlogic 267x/836x (aka 2031/8031)
-Optical 16Gb FC/FCoE PCIe cards.
-.It Qlogic 2690/2692/2694 (aka 2684/2692)
-Optical 16Gb Fibre Channel PCIe cards.
-.It Qlogic 2740/2742/2764 (aka 2722/2714)
-Optical 32Gb Fibre Channel PCIe cards.
-.It Qlogic QLE2770/QLE2772 (aka 2812)
-Optical 32Gb Fibre Channel PCIe cards.
-.It Qlogic QLE2774 (aka 2814)
-Optical 32Gb Fibre Channel PCIe cards.
-.It Qlogic QLE2870/QLE2872 (aka 2812)
-Optical 64Gb Fibre Channel PCIe cards.
-.It Qlogic QLE2874 (aka 2814)
-Optical 64Gb Fibre Channel PCIe cards.
-.El
.Sh CONFIGURATION OPTIONS
Target mode support for Fibre Channel adapters may be enabled with the
.Pp
@@ -141,6 +135,21 @@ Limit on number of Extended Message Signaled Interrupts (MSI-X) to be used.
.It Va hint.isp. Ns Ar N Ns Va .fwload_disable
A hint value to disable loading of firmware provided by
.Xr ispfw 4 .
+.It Va hint.isp. Ns Ar N Ns Va .fwload_force
+A hint value to prefer firmware provided by
+.Xr ispfw 4 ,
+even if it is older than the firmware in flash on the board.
+If fwload_disable is also specified, fwload_force will be ignored.
+.Pp
+By default, with 27XX and newer controllers, the
+.Xr isp 4
+driver will use the newer
+firmware.
+For older controllers, the
+.Xr isp 4
+driver will use the firmware provided by
+.Xr ispfw 4
+if it is available, and otherwise use the firmware in flash on the board.
.It Va hint.isp. Ns Ar N Ns Va .ignore_nvram
A hint value to ignore board NVRAM settings for.
Otherwise use NVRAM settings.
@@ -152,11 +161,11 @@ Supported values are:
.Pp
.Bl -tag -width ".Li lport-only" -compact
.It Li lport
-Prefer loopback and fallback to point to point.
+Prefer arbitrated loop and fallback to point to point.
.It Li nport
-Prefer point to point and fallback to loopback.
+Prefer point to point and fallback to arbitrated loop.
.It Li lport-only
-Loopback only.
+Arbitrated loop only.
.It Li nport-only
Point to point only.
.El
diff --git a/share/man/man4/iwi.4 b/share/man/man4/iwi.4
index 9de9b3e6c490..31ef4ec83d32 100644
--- a/share/man/man4/iwi.4
+++ b/share/man/man4/iwi.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2004-2006
.\" Damien Bergamini <damien.bergamini@free.fr>. All rights reserved.
.\"
@@ -23,12 +26,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 15, 2015
+.Dd November 10, 2024
.Dt IWI 4
.Os
.Sh NAME
.Nm iwi
-.Nd "Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 driver"
+.Nd Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
include the following lines in your
@@ -57,19 +60,14 @@ legal.intel_iwi.license_ack=1
.Sh DESCRIPTION
The
.Nm
-driver provides support for
-.Tn Intel
-PRO/Wireless 2200BG/2915ABG MiniPCI and 2225BG PCI network adapters.
-.Nm
-supports
+driver provides support for Intel PRO/Wireless 2200BG/2225BG/2915ABG
+IEEE 802.11a/b/g wireless network devices in
.Cm station ,
.Cm adhoc ,
and
.Cm monitor
mode operation.
Only one virtual interface may be configured at any time.
-For more information on configuring this device, see
-.Xr ifconfig 8 .
.Pp
This driver requires the firmware built with the
.Nm iwifw
@@ -80,28 +78,42 @@ must be agreed by adding the following line to
.Xr loader.conf 5 :
.Pp
.Dl "legal.intel_iwi.license_ack=1"
+.Pp
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+driver supports the following wireless network devices:
+.Pp
+.Bl -bullet -compact
+.It
+Intel PRO/Wireless 2200BG MiniPCI Network Connection
+.It
+Intel PRO/Wireless 2225BG PCI Network Connection
+.It
+Intel PRO/Wireless 2915ABG MiniPCI Network Connection
+.El
.Sh FILES
-.Bl -tag -width ".Pa /usr/share/doc/legal/intel_iwi.LICENSE" -compact
+.Bl -tag -width "/usr/share/doc/legal/intel_iwi.LICENSE" -compact
.It Pa /usr/share/doc/legal/intel_iwi.LICENSE
.Nm
firmware license
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev iwi0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev iwi0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev iwi0 ssid my_net up"
+.Dl ifconfig wlan create wlandev iwi0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev iwi0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Join a specific BSS network with 128-bit WEP encryption:
@@ -149,6 +161,7 @@ This should not happen.
.Xr wlan_ccmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
+.Xr networking 7 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh AUTHORS
diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4
index 1cf61c0008b5..4a251f239a55 100644
--- a/share/man/man4/iwlwifi.4
+++ b/share/man/man4/iwlwifi.4
@@ -1,5 +1,7 @@
-.\"-
-.\" Copyright (c) 2021-2023 The FreeBSD Foundation
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2021-2025 The FreeBSD Foundation
.\"
.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
.\" the FreeBSD Foundation.
@@ -25,12 +27,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 21, 2023
+.Dd June 13, 2025
.Dt IWLWIFI 4
.Os
.Sh NAME
.Nm iwlwifi
-.Nd Intel IEEE 802.11a/b/g/n/ac/ax wireless network driver
+.Nd Intel IEEE 802.11a/b/g/n/ac/ax/be wireless network driver
.Sh SYNOPSIS
The driver will auto-load without any user interaction using
.Xr devmatch 8
@@ -48,22 +50,94 @@ kld_list="${kld_list} if_iwlwifi"
The driver should automatically load any
.Xr iwlwififw 4
firmware needed for the particular chipset.
+See section
+.Sx "FILES"
+below for how to install the firmware.
.Pp
-It is discouraged to load the driver from
+It is not possible to load the driver from
.Xr loader 8 .
.Sh DESCRIPTION
The
.Nm
-driver is derived from Intel's Linux iwlwifi driver and provides support for
-all chipsets supported by the
-.Em mvm
-part of that driver.
+driver provides support for Intel Wireless network devices.
+.Pp
+.Nm
+is derived from Intel's Linux iwlwifi driver.
+The
+.Xr iwm 4
+and
+.Xr iwx 4
+drivers together are approximately equivalent to Intel's Linux iwlwifi/mvm
+driver.
+.Pp
+In addition
+.Nm
+already supports Intel's Linux iwlwifi/mld chipsets.
.Pp
+.Nm
+still complements the
+.Xr iwn 4
+driver which supports older chipsets and would be equivalent to
+Intel's Linux iwlwifi/dvm, which
+.Nm
+does not support.
+.Pp
+The driver uses the
+.\" No LinuxKPI man pages so no .Xr here.
+.Sy linuxkpi_wlan
+and
+.Sy linuxkpi
+compat framework to bridge between the Linux and
+native
+.Fx
+driver code as well as to the native
+.Xr net80211 4
+wireless stack.
+.Sh HARDWARE
+The
+.Nm
+driver supports PCIe devices from the
+.Sy mvm
+sub-driver with the following chipset generations:
+.Pp
+.\" awk -F\\t '{ print $5 }' ~/tmp/iwlwifi_pci_ids_name.txt | \
+.\" grep -v undefined | sort -V | uniq | grep -v ^$ | \
+.\" awk '{ printf ".It\n%s\n", $0 }'
.Bl -bullet -compact
-.\" ---------------------------------------------------------------------
+.It
+7000
+.It
+8000
+.It
+9000
+.It
+22000
+.It
+AX210
+.El
+.Pp
+The
+.Nm
+driver supports PCIe devices from the
+.Sy mld
+sub-driver with the following chipset generations:
+.Pp
+.Bl -bullet -compact
+.It
+BZ
+.It
+SC
+.El
+.Pp
+These chipset generations match the following common device names:
+.Pp
+.Bl -bullet -compact
+.\" --------------------------------------------------------------------
.\" This list is manually generated from a sysctl and post-processing.
.\" Edits will be overwritten on next update.
-.\" ---------------------------------------------------------------------
+.\" awk -F\\t '{ if ($2 == "") { next; } if (seen[$2]) { next; } \
+.\" seen[$2]=1; printf ".It\n%s\n", $2; }' iwlwifi_pci_ids_name.txt
+.\" --------------------------------------------------------------------
.It
Intel(R) Dual Band Wireless AC 7260
.It
@@ -171,50 +245,82 @@ Intel(R) Wi-Fi 6 AX101
.It
Intel(R) Wi-Fi 6 AX203
.It
-Intel(R) Wi-Fi 6E AX221 160MHz
-.It
Intel(R) Wi-Fi 6E AX231 160MHz
.It
-Intel(R) TBD Bz device
+Intel(R) Wi-Fi 7 BE201 320MHz
+.It
+Intel(R) Wi-Fi 7 BE200 320MHz
.It
-Intel(R) Wi-Fi 6 AX204 160MHz
+Intel(R) Wi-Fi 7 BE202 160MHz
.It
Intel(R) TBD Sc device
-.\" ---------------------------------------------------------------------
+.It
+Intel(R) TBD Sc2 device
+.It
+Intel(R) TBD Sc2f device
+.\" --------------------------------------------------------------------
.El
-.Pp
+.Sh LOADER TUNABLES
+The
.Nm
-will be a successor to
-.Xr iwm 4
-and may supersede that driver in the future.
-It still complements the
-.Xr iwn 4
-driver which supports older chipsets.
+driver supports the following
+.Xr loader 8
+tunable and read-only
+.Xr sysctl 8
+variables:
+.Bl -tag -width "compat.linuxkpi.iwlwifi_disable_11ac"
+.It Va compat.linuxkpi.iwlwifi_11n_disable
+Turn off 802.11n support in the driver.
+Default
+.Ql 1 .
+.It Va compat.linuxkpi.iwlwifi_disable_11ac
+Turn off 802.11ac support in the driver.
+Default
+.Ql 1 .
+.El
.Pp
-The driver uses the
-.\" No LinuxKPI man pages so no .Xr here.
-.Em linuxkpi_wlan
-and
-.Em linuxkpi
-compat framework to bridge between the Linux and
-native
+The names of the tunables are derived from the Linux iwlwifi driver
+module parameters and are mapped automatically by
+.Sy linuxkpi .
+They were not adjusted so that they stay consistent with upstream
+Linux, e.g., for documentation available and problem investigations.
+This left their names inconsistent between themselves and incosistent to
.Fx
-driver code as well as to the native
-.Xr net80211 4
-wireless stack.
+style.
.Pp
-While
+The tunables are automatically adjusted by the firmware package for
+chipsets which can enable 11n and 11ac.
+In case of problems a user may want to override the provided values
+in
+.Pa /boot/loader.conf.local
+with the above defaults.
+.Sh FILES
+The
.Nm
-supports all 802.11 a/b/g/n/ac/ax
-the compatibility code currently only supports 802.11 a/b/g modes.
-Support for 802.11 n/ac is to come. 802.11ax and 6Ghz support are planned.
-.Sh BUGS
-Certainly.
+driver requires firmware from
+.Pa ports/net/wifi-firmware-iwlwifi-kmod .
+This firmware package will be installed automatically with
+.Xr fwget 8
+if the appropriate hardware is detected at installation or runtime.
+.Pp
+As a last resort for bootstrapping, individual firmware files can be
+manually downloaded, e.g., on a different computer and transferred using a
+.Xr umass 4
+device.
+The firmware files can be found at
+.Lk git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
+with names as requested by the driver.
+Copies should be placed into the
+.Pa /boot/firmware
+directory.
.Sh SEE ALSO
.Xr iwlwififw 4 ,
.Xr iwm 4 ,
.Xr iwn 4 ,
+.Xr iwx 4 ,
.Xr wlan 4 ,
+.Xr networking 7 ,
+.Xr fwget 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh HISTORY
@@ -222,3 +328,14 @@ The
.Nm
driver first appeared in
.Fx 13.1 .
+802.11n and 802.11ac support for the 22000 and later chipsets first appeared in
+.Fx 14.3 .
+.Sh BUGS
+Certainly.
+.Pp
+While
+.Nm
+supports 802.11a/b/g/n/ac/ax/be modes,
+the compatibility code currently only supports 802.11a/b/g/n/ac modes.
+802.11n/ac is only available on the 22000 and later chipset generations.
+802.11ax/be and 6Ghz support are planned.
diff --git a/share/man/man4/iwlwififw.4 b/share/man/man4/iwlwififw.4
index a377f6b51f78..45ee0e757c07 100644
--- a/share/man/man4/iwlwififw.4
+++ b/share/man/man4/iwlwififw.4
@@ -1,5 +1,7 @@
-.\"-
-.\" Copyright (c) 2021-2023 The FreeBSD Foundation
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2021-2025 The FreeBSD Foundation
.\"
.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
.\" the FreeBSD Foundation.
@@ -25,12 +27,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 21, 2023
-.Dt iwlwififw 4
+.Dd May 12, 2025
+.Dt IWLWIFIFW 4
.Os
.Sh NAME
.Nm iwlwififw
-.Nd Firmware modules for Intel iwlwifi wireless network driver
+.Nd Firmware for Intel iwlwifi wireless network driver
.Sh SYNOPSIS
The
.Xr iwlwifi 4
@@ -38,1325 +40,1544 @@ driver should auto-load any firmware needed.
It is discouraged to load the driver or firmware manually from
.Xr loader 8 .
.Sh DESCRIPTION
-Multiple modules provide access to firmware for the various chipset
-models supported by the
+Firmware files are available from
+.Xr ports 7
+for the various chipset models supported
+by the
.Xr iwlwifi 4
driver.
+Modern chipsets often require a
+.Pa .ucode
+and an accompanying
+.Pa .pnvm
+file.
+.Pp
+One can use
+.Xr fwget 8
+to install the correct firmware package.
.Pp
-.Bl -column -compact "Vendor" "Device" "Subv. " "Subd. " "Firmware-Prefix"
+The list is provided as a reference as to with file prefix is needed for
+a specific card as far as it can be determined and the port flavor.
+.Pp
+.Bl -column -compact "Vendor" "Device" "Subv. " "Subd. " "Flavor" "Firmware-Prefix"
.It Ar Name
-.It Ar Vendor Ta Ar Device Ta Ar Subv. Ta Ar Subd. Ta Ar Firmware-Prefix
-.% ---------------------------------------------------------------------
-.% This list is manually generated from a sysctl and post-processing.
-.% Edits will be overwritten on next update.
-.% ---------------------------------------------------------------------
+.It Ar Vendor Ta Ar Device Ta Ar Subv. Ta Ar Subd. Ta Ar Flavor Ta Ar Firmware-Prefix
+.\" ---------------------------------------------------------------------
+.\" This list is manually generated from a sysctl and post-processing
+.\" by sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh generating the list.
+.\" Edits will be overwritten on next update.
+.\" ---------------------------------------------------------------------
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4070 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4072 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4170 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c60 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c70 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4060 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x406a Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4160 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4062 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4162 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x4270 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x4272 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x4260 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x426a Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x4262 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4470 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4472 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4460 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x446a Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4462 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4870 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x486e Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a70 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6e Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6c Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4570 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4560 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x4370 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x4360 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x5070 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x5072 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x5170 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x5770 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4020 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x402a Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0x4220 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0x4420 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc070 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc072 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc170 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc060 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc06a Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc160 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc062 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc162 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc770 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc760 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0xc270 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc70 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc60 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0xc272 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0xc260 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0xc26a Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0xc262 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc470 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc472 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc460 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc462 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc570 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc560 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0xc370 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc360 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc020 Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc02a Ta 7000 Ta iwlwifi-7260
+.It ""
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b2 Ta any Ta 0xc220 Ta 7000 Ta iwlwifi-7260
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4070 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b1 Ta any Ta 0xc420 Ta 7000 Ta iwlwifi-7260
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4072 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0070 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4170 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0072 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c60 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0170 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c70 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0172 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4060 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless N 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0060 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x406a Ta iwlwifi-7260
+.It Intel(R) Wireless N 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0062 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4160 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b4 Ta any Ta 0x0270 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4062 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b4 Ta any Ta 0x0272 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4162 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0470 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x4270 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x0472 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x4272 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b4 Ta any Ta 0x0370 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x4260 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8070 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x426a Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8072 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x4262 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8170 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4470 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8172 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4472 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless N 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8060 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4460 Ta iwlwifi-7260
+.It Intel(R) Wireless N 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8062 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x446a Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b4 Ta any Ta 0x8270 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4462 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b4 Ta any Ta 0x8370 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4870 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b4 Ta any Ta 0x8272 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x486e Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8470 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a70 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x8570 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6e Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x1070 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6c Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x08b3 Ta any Ta 0x1170 Ta 7000 Ta iwlwifi-3160
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4570 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3165 Ta any Ta 0x4010 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4560 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3165 Ta any Ta 0x4012 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x4370 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3166 Ta any Ta 0x4212 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x4360 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3165 Ta any Ta 0x4410 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x5070 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3165 Ta any Ta 0x4510 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x5072 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3165 Ta any Ta 0x4110 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x5170 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3166 Ta any Ta 0x4310 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x5770 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3166 Ta any Ta 0x4210 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4020 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3165 Ta any Ta 0x8010 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x402a Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3165 Ta any Ta 0x8110 Ta 7000 Ta iwlwifi-7265D
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0x4220 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fb Ta any Ta 0x2010 Ta 7000 Ta iwlwifi-3168
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0x4420 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fb Ta any Ta 0x2110 Ta 7000 Ta iwlwifi-3168
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc070 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fb Ta any Ta 0x2050 Ta 7000 Ta iwlwifi-3168
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc072 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fb Ta any Ta 0x2150 Ta 7000 Ta iwlwifi-3168
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc170 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fb Ta any Ta 000000 Ta 7000 Ta iwlwifi-3168
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc060 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5010 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc06a Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5110 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc160 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5100 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc062 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x5310 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc162 Ta iwlwifi-7260
+.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x5302 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc770 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x5210 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc760 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5c10 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0xc270 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5012 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc70 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5412 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc60 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5410 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0xc272 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5510 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0xc260 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5400 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0xc26a Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x1010 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0xc262 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5000 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc470 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x500a Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc472 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x5200 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc460 Ta iwlwifi-7260
+.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5002 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc462 Ta iwlwifi-7260
+.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5102 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc570 Ta iwlwifi-7260
+.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x5202 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc560 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9010 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0xc370 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9012 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc360 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x900a Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc020 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9110 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc02a Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9112 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b2 Ta any Ta 0xc220 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x9210 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 7260
-.It 0x8086 Ta 0x08b1 Ta any Ta 0xc420 Ta iwlwifi-7260
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x9200 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0070 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9510 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0072 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x9310 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0170 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9410 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0172 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5020 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0060 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x502a Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Wireless N 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0062 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5420 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b4 Ta any Ta 0x0270 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5090 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b4 Ta any Ta 0x0272 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5190 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0470 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5590 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x0472 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x5290 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b4 Ta any Ta 0x0370 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5490 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8070 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x5f10 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8072 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x5212 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8170 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095b Ta any Ta 0x520a Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8172 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9000 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless N 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8060 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9400 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Wireless N 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8062 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x095a Ta any Ta 0x9e10 Ta 7000 Ta iwlwifi-7265
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b4 Ta any Ta 0x8270 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b4 Ta any Ta 0x8370 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x1010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b4 Ta any Ta 0x8272 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x10b0 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8470 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0130 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x8570 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x1130 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x1070 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0132 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3160
-.It 0x8086 Ta 0x08b3 Ta any Ta 0x1170 Ta iwlwifi-3160
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x1132 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3165 Ta any Ta 0x4010 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0110 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3165 Ta any Ta 0x4012 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x01f0 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3166 Ta any Ta 0x4212 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0012 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3165 Ta any Ta 0x4410 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x1012 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3165 Ta any Ta 0x4510 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x1110 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3165 Ta any Ta 0x4110 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0050 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3166 Ta any Ta 0x4310 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0250 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3166 Ta any Ta 0x4210 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x1050 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3165 Ta any Ta 0x8010 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0150 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3165
-.It 0x8086 Ta 0x3165 Ta any Ta 0x8110 Ta iwlwifi-7265D
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x1150 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3168
-.It 0x8086 Ta 0x24fb Ta any Ta 0x2010 Ta iwlwifi-3168
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f4 Ta any Ta 0x0030 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3168
-.It 0x8086 Ta 0x24fb Ta any Ta 0x2110 Ta iwlwifi-3168
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f4 Ta any Ta 0x1030 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3168
-.It 0x8086 Ta 0x24fb Ta any Ta 0x2050 Ta iwlwifi-3168
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0xc010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3168
-.It 0x8086 Ta 0x24fb Ta any Ta 0x2150 Ta iwlwifi-3168
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0xc110 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 3168
-.It 0x8086 Ta 0x24fb Ta any Ta 000000 Ta iwlwifi-3168
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0xd010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5010 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0xc050 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5110 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0xd050 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5100 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0xd0b0 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x5310 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0xb0b0 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Wireless N 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x5302 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x8010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x5210 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x8110 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5c10 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x9010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5012 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x9110 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5412 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f4 Ta any Ta 0x8030 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5410 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f4 Ta any Ta 0x9030 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5510 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f4 Ta any Ta 0xc030 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5400 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f4 Ta any Ta 0xd030 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x1010 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x8130 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless N 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5000 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x9130 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless N 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x500a Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x8132 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless N 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x5200 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x9132 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Wireless N 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5002 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x8050 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Wireless N 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5102 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x8150 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Wireless N 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x5202 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x9050 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9010 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x9150 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9012 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless N 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0004 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x900a Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless N 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0044 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9110 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 4165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f5 Ta any Ta 0x0010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9112 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 4165 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f6 Ta any Ta 0x0030 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x9210 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0810 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x9200 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0910 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9510 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0850 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x9310 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0950 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9410 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x0930 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless N 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5020 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 000000 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless N 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x502a Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24f3 Ta any Ta 0x4010 Ta 8000 Ta iwlwifi-8000C
.It ""
-.It Intel(R) Dual Band Wireless N 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5420 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0010 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5090 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0110 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5190 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x1110 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5590 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x1130 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x5290 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0130 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5490 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x1010 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x5f10 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x10d0 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x5212 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0050 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095b Ta any Ta 0x520a Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0150 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9000 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x9010 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9400 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x8110 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 7265
-.It 0x8086 Ta 0x095a Ta any Ta 0x9e10 Ta iwlwifi-7265
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x8050 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0010 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x8010 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x1010 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0810 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x10b0 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x9110 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0130 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x8130 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x1130 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0910 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0132 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0930 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x1132 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0950 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0110 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0850 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x01f0 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x1014 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0012 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8275 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x3e02 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x1012 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8275 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x3e01 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x1110 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8275 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x1012 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0050 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8275 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0012 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0250 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x0014 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x1050 Ta iwlwifi-8000C
+.It Intel(R) Dual Band Wireless AC 8265 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x24fd Ta any Ta 0x9074 Ta 8000 Ta iwlwifi-8265
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0150 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta any Ta 9000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x1150 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x271b Ta any Ta any Ta 9000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f4 Ta any Ta 0x0030 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x271c Ta any Ta any Ta 9000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f4 Ta any Ta 0x1030 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x30dc Ta any Ta any Ta 9000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0xc010 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x31dc Ta any Ta any Ta 9000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0xc110 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x9df0 Ta any Ta any Ta 9000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0xd010 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa370 Ta any Ta any Ta 9000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0xc050 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0xd050 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0xd0b0 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0xb0b0 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x8010 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x8110 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x9010 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x9110 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2723 Ta any Ta any Ta 22000 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f4 Ta any Ta 0x8030 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f4 Ta any Ta 0x9030 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f4 Ta any Ta 0xc030 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f4 Ta any Ta 0xd030 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f0 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x8130 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f1 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x9130 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x54f0 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x8132 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7f70 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x9132 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2729 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x8050 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7e40 Ta any Ta any Ta AX210 Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x8150 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2727 Ta any Ta any Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x9050 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x272d Ta any Ta any Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x9150 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x272b Ta any Ta any Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless N 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0004 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 000000 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless N 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0044 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0090 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 4165
-.It 0x8086 Ta 0x24f5 Ta any Ta 0x0010 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0094 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 4165
-.It 0x8086 Ta 0x24f6 Ta any Ta 0x0030 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0098 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0810 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x009c Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0910 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00c0 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0850 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00c4 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0950 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00e0 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x0930 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00e4 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24f3 Ta any Ta 000000 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00e8 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8260
-.It 0x8086 Ta 0x24f3 Ta any Ta 0x4010 Ta iwlwifi-8000C
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00ec Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0010 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0100 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0110 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0110 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x1110 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0114 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x1130 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0118 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0130 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x011c Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x1010 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0310 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x10d0 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0314 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0050 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0510 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0150 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0a10 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x9010 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1671 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x8110 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1672 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x8050 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1771 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x8010 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1772 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0810 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1791 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x9110 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1792 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x8130 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x4090 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0910 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x40c4 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0930 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x40e0 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0950 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x4110 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0850 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa840 Ta any Ta 0x4314 Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x1014 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7740 Ta any Ta any Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8275
-.It 0x8086 Ta 0x24fd Ta any Ta 0x3e02 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4d40 Ta any Ta any Ta BZ Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8275
-.It 0x8086 Ta 0x24fd Ta any Ta 0x3e01 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xe440 Ta any Ta any Ta SC Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8275
-.It 0x8086 Ta 0x24fd Ta any Ta 0x1012 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xe340 Ta any Ta any Ta SC Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8275
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0012 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xd340 Ta any Ta any Ta SC Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x0014 Ta iwlwifi-8265
+.It (unknown) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x6e70 Ta any Ta any Ta SC Ta (unknown)
.It ""
-.It Intel(R) Dual Band Wireless AC 8265
-.It 0x8086 Ta 0x24fd Ta any Ta 0x9074 Ta iwlwifi-8265
+.It Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta 0x1550 Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz
-.It 0x8086 Ta 0x2526 Ta any Ta 0x1550 Ta iwlwifi-9260-th-b0-jf-b0
+.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0x2526 Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0x2526 Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x30dc Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0x30dc Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x30dc Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0x30dc Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x31dc Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0x31dc Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x31dc Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0x31dc Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa370 Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0xa370 Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa370 Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0xa370 Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x54f0 Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz
-.It 0x8086 Ta 0x54f0 Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x54f0 Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta 0x54f0 Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f0 Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz
-.It 0x8086 Ta 0x51f0 Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f0 Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz
-.It 0x8086 Ta 0x51f0 Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f0 Ta any Ta 0x1691 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)
-.It 0x8086 Ta 0x51f0 Ta any Ta 0x1691 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f0 Ta any Ta 0x1692 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
-.It 0x8086 Ta 0x51f0 Ta any Ta 0x1692 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f1 Ta any Ta 0x1692 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
-.It 0x8086 Ta 0x51f1 Ta any Ta 0x1692 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x54f0 Ta any Ta 0x1691 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)
-.It 0x8086 Ta 0x54f0 Ta any Ta 0x1691 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x54f0 Ta any Ta 0x1692 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
-.It 0x8086 Ta 0x54f0 Ta any Ta 0x1692 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x1691 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x1691 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x1692 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x1692 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x1691 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x1691 Ta iwlwifi-so-a0-gf4-a0
+.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x1692 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x1692 Ta iwlwifi-so-a0-gf4-a0
+.It Intel(R) Wireless-AC 9260-1 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x271c Ta any Ta 0x0214 Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9260-1
-.It 0x8086 Ta 0x271c Ta any Ta 0x0214 Ta iwlwifi-9260-th-b0-jf-b0
+.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7e40 Ta any Ta 0x1691 Ta AX210 Ta (null)
.It ""
-.It Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)
-.It 0x8086 Ta 0x7e40 Ta any Ta 0x1691 Ta (null)
+.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7e40 Ta any Ta 0x1692 Ta AX210 Ta (null)
.It ""
-.It Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
-.It 0x8086 Ta 0x7e40 Ta any Ta 0x1692 Ta (null)
+.It Intel(R) Wi-Fi 6 AX200 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2723 Ta any Ta any Ta 22000 Ta iwlwifi-cc-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX200 160MHz
-.It 0x8086 Ta 0x2723 Ta any Ta any Ta iwlwifi-cc-a0
+.It Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2723 Ta any Ta 0x1653 Ta 22000 Ta iwlwifi-cc-a0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)
-.It 0x8086 Ta 0x2723 Ta any Ta 0x1653 Ta iwlwifi-cc-a0
+.It Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2723 Ta any Ta 0x1654 Ta 22000 Ta iwlwifi-cc-a0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW)
-.It 0x8086 Ta 0x2723 Ta any Ta 0x1654 Ta iwlwifi-cc-a0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x0070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x0070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x0074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x0074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x0078 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x0078 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x007c Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x007c Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x1651 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x1651 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x1652 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x1652 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x2074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x2074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x43f0 Ta any Ta 0x4070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x43f0 Ta any Ta 0x4070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0078 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0078 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x007c Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x007c Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0a10 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x0a10 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x1651 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x1651 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x1652 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x1652 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x2074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x2074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x4070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x4070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0xa0f0 Ta any Ta 0x6074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0xa0f0 Ta any Ta 0x6074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x0070 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x0070 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x0074 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x0074 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x6074 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x6074 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x0078 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x0078 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x007c Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x007c Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x0310 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x0310 Ta iwlwifi-QuZ-a0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x1651 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x1651 Ta iwlwifi-QuZ-a0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x1652 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x1652 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x2074 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x2074 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x02f0 Ta any Ta 0x4070 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x02f0 Ta any Ta 0x4070 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x0070 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x0070 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x0074 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x0074 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x0078 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x0078 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x007c Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x007c Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x0310 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x0310 Ta iwlwifi-QuZ-a0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x1651 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x1651 Ta iwlwifi-QuZ-a0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x1652 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x1652 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x2074 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x2074 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x06f0 Ta any Ta 0x4070 Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x06f0 Ta any Ta 0x4070 Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x0070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x0070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x0074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x0074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x0078 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x0078 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x007c Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x007c Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x0310 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x0310 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x1651 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x1651 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x1652 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x1652 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x2074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x2074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x34f0 Ta any Ta 0x4070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x34f0 Ta any Ta 0x4070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x0070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x0070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x0074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x0074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x0078 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x0078 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x007c Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x007c Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x0310 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x0310 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x1651 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x1651 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x1652 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x1652 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x2074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x2074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x3df0 Ta any Ta 0x4070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x3df0 Ta any Ta 0x4070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x0070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x0070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x0074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x0074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x0078 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x0078 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x007c Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x007c Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x0310 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x0310 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x1651 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x1651 Ta iwlwifi-Qu-b0-hr-b0
+.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x1652 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x1652 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x2074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x2074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x4070 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x4070 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x4df0 Ta any Ta 0x6074 Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta 0x4df0 Ta any Ta 0x6074 Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x0090 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x0090 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x0020 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x0020 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x2020 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x2020 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x0024 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x0024 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x0310 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x0310 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x0510 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x0510 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x0a10 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x0a10 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0xe020 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0xe020 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0xe024 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0xe024 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x4020 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x4020 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x6020 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x6020 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6 AX210 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x6024 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX210 160MHz
-.It 0x8086 Ta 0x2725 Ta any Ta 0x6024 Ta iwlwifi-ty-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x1673 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W)
-.It 0x8086 Ta 0x2725 Ta any Ta 0x1673 Ta iwlwifi-ty-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2725 Ta any Ta 0x1674 Ta AX210 Ta iwlwifi-ty-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW)
-.It 0x8086 Ta 0x2725 Ta any Ta 0x1674 Ta iwlwifi-ty-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x0090 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x0090 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x0098 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x0098 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX411 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x00b0 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX411 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x00b0 Ta iwlwifi-so-a0-gf4-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x0310 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x0310 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x0510 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x0510 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x0a10 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x0a10 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x0090 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x0090 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x0098 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x0098 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX411 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x00b0 Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX411 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x00b0 Ta iwlwifi-so-a0-gf4-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x0310 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x0310 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x0510 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x0510 Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x0a10 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x0a10 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x1551 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x1551 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x1552 Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x1552 Ta iwlwifi-9000-pu-b0-jf-b0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2726 Ta any Ta 0x1671 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x2726 Ta any Ta 0x1671 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2726 Ta any Ta 0x1672 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x2726 Ta any Ta 0x1672 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f0 Ta any Ta 0x1671 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x51f0 Ta any Ta 0x1671 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f0 Ta any Ta 0x1672 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x51f0 Ta any Ta 0x1672 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f1 Ta any Ta 0x1671 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x51f1 Ta any Ta 0x1671 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x51f1 Ta any Ta 0x1672 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x51f1 Ta any Ta 0x1672 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x54f0 Ta any Ta 0x1671 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x54f0 Ta any Ta 0x1671 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x54f0 Ta any Ta 0x1672 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x54f0 Ta any Ta 0x1672 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x1671 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x1671 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7a70 Ta any Ta 0x1672 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7a70 Ta any Ta 0x1672 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x1671 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x1671 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7af0 Ta any Ta 0x1672 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7af0 Ta any Ta 0x1672 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7f70 Ta any Ta 0x1671 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7f70 Ta any Ta 0x1671 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7f70 Ta any Ta 0x1672 Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7f70 Ta any Ta 0x1672 Ta iwlwifi-so-a0-gf-a0
+.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7e40 Ta any Ta 0x1671 Ta AX210 Ta (null)
.It ""
-.It Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7e40 Ta any Ta 0x1671 Ta (null)
+.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x7e40 Ta any Ta 0x1672 Ta AX210 Ta (null)
.It ""
-.It Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
-.It 0x8086 Ta 0x7e40 Ta any Ta 0x1672 Ta (null)
+.It Intel(R) Wireless-AC 9461 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-9000-pu-b0-jf-b0
+.It Intel(R) Wireless-AC 9461 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-9000-pu-b0-jf-b0
+.It Intel(R) Wireless-AC 9462 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-9000-pu-b0-jf-b0
+.It Intel(R) Wireless-AC 9462 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-9000-pu-b0-jf-b0
+.It Intel(R) Wireless-AC 9560 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-9000-pu-b0-jf-b0
+.It Intel(R) Wireless-AC 9560 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta iwlwifi Ta iwlwifi-9000-pu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-9000-pu-b0-jf-b0
+.It Intel(R) Wireless-AC 9270 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9270 160MHz
-.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi-9260-th-b0-jf-b0
+.It Intel(R) Wireless-AC 9270 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9270
-.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi-9260-th-b0-jf-b0
+.It Intel(R) Wireless-AC 9162 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x271b Ta any Ta any Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9162 160MHz
-.It 0x8086 Ta 0x271b Ta any Ta any Ta iwlwifi-9260-th-b0-jf-b0
+.It Intel(R) Wireless-AC 9162 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x271b Ta any Ta any Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9162
-.It 0x8086 Ta 0x271b Ta any Ta any Ta iwlwifi-9260-th-b0-jf-b0
+.It Intel(R) Wireless-AC 9260 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9260 160MHz
-.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi-9260-th-b0-jf-b0
+.It Intel(R) Wireless-AC 9260 Ta Ta Ta Ta Ta
+.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi Ta iwlwifi-9260-th-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9260
-.It 0x8086 Ta 0x2526 Ta any Ta any Ta iwlwifi-9260-th-b0-jf-b0
+.It Intel(R) Wireless-AC 9461 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-jf-b0
+.It Intel(R) Wireless-AC 9461 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-jf-b0
+.It Intel(R) Wireless-AC 9462 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-jf-b0
+.It Intel(R) Wireless-AC 9462 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-jf-b0
+.It Intel(R) Wireless-AC 9560 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-jf-b0
+.It Intel(R) Wireless-AC 9560 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta 0x1551 Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta any Ta any Ta 0x1551 Ta iwlwifi-Qu-b0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta 0x1552 Ta 22000 Ta iwlwifi-Qu-b0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta any Ta any Ta 0x1552 Ta iwlwifi-Qu-b0-jf-b0
+.It Intel(R) Wireless-AC 9461 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-jf-b0
+.It Intel(R) Wireless-AC 9461 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-jf-b0
+.It Intel(R) Wireless-AC 9462 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-jf-b0
+.It Intel(R) Wireless-AC 9462 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-jf-b0
+.It Intel(R) Wireless-AC 9560 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-jf-b0
+.It Intel(R) Wireless-AC 9560 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-jf-b0
+.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta 0x1551 Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta any Ta any Ta 0x1551 Ta iwlwifi-Qu-c0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta 0x1552 Ta 22000 Ta iwlwifi-Qu-c0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta any Ta any Ta 0x1552 Ta iwlwifi-Qu-c0-jf-b0
+.It Intel(R) Wireless-AC 9461 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-jf-b0
+.It Intel(R) Wireless-AC 9461 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-jf-b0
+.It Intel(R) Wireless-AC 9462 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-jf-b0
+.It Intel(R) Wireless-AC 9462 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-jf-b0
+.It Intel(R) Wireless-AC 9560 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-jf-b0
+.It Intel(R) Wireless-AC 9560 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-jf-b0
+.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta 0x1551 Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta any Ta any Ta 0x1551 Ta iwlwifi-QuZ-a0-jf-b0
+.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta 0x1552 Ta 22000 Ta iwlwifi-QuZ-a0-jf-b0
.It ""
-.It Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
-.It 0x8086 Ta any Ta any Ta 0x1552 Ta iwlwifi-QuZ-a0-jf-b0
+.It Intel(R) Wi-Fi 6 AX101 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX101
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX203 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-b0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX203
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-b0-hr-b0
+.It Intel(R) Wi-Fi 6 AX101 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX101
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-hr-b0
+.It Intel(R) Wi-Fi 6 AX203 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX203
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-Qu-c0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-Qu-c0-hr-b0
+.It Intel(R) Wi-Fi 6 AX101 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX101
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX203 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX203
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta 22000 Ta iwlwifi-QuZ-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-QuZ-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta (null)
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta (null)
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It Intel(R) Wi-Fi 6E AX231 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta (null)
.It ""
-.It Intel(R) Wi-Fi 6E AX221 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It Intel(R) Wi-Fi 6 AX203 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6E AX231 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It Intel(R) Wi-Fi 6 AX101 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX203
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-hr-b0
+.It Intel(R) Wi-Fi 6 AX201 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-hr-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX101
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-hr-b0
+.It Intel(R) Wi-Fi 6E AX211 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-gf-a0
.It ""
-.It Intel(R) Wi-Fi 6 AX201 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-hr-b0
+.It Intel(R) Wi-Fi 6E AX411 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Intel(R) Wi-Fi 6E AX211 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-gf-a0
+.It Intel(R) Wireless-AC 9560 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-jf-b0
.It ""
-.It Intel(R) Wi-Fi 6E AX411 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-gf4-a0
+.It Intel(R) Wireless-AC 9560 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-jf-b0
.It ""
-.It Intel(R) TBD Bz device
-.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It Intel(R) Wireless-AC 9461 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
+.It Intel(R) Wireless-AC 9462 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9560
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
+.It Intel(R) Wireless-AC 9461 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9461 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
+.It Intel(R) Wireless-AC 9462 Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta AX210 Ta iwlwifi-so-a0-jf-b0
.It ""
-.It Intel(R) Wireless-AC 9462 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
+.It Intel(R) Wi-Fi 7 BE201 320MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta BZ Ta (null)
.It ""
-.It Intel(R) Wireless-AC 9461
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
+.It Intel(R) Wi-Fi 7 BE200 320MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta BZ Ta (null)
.It ""
-.It Intel(R) Wireless-AC 9462
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
+.It Intel(R) Wi-Fi 7 BE202 160MHz Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta BZ Ta (null)
.It ""
-.It Intel(R) Wi-Fi 6 AX204 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-mr-a0
+.It Intel(R) TBD Sc device Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta SC Ta (null)
.It ""
-.It Intel(R) Wi-Fi 6 AX204 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It Intel(R) TBD Sc2 device Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta SC Ta (null)
.It ""
-.It Intel(R) TBD Sc device
-.It 0x8086 Ta any Ta any Ta any Ta (null)
-.% ---------------------------------------------------------------------
+.It Intel(R) TBD Sc2f device Ta Ta Ta Ta Ta
+.It 0x8086 Ta any Ta any Ta any Ta SC Ta (null)
+.\" ---------------------------------------------------------------------
.El
.Pp
-.Em Note:
+.Em Note :
some devices can only be determined correctly at run-time
based on hardware registers (or by other special magic not replicated
in the above listing).
.Sh FILES
A copy of the
.Xr iwlwifi 4
-firmware license is installed at
-.Em /usr/share/doc/legal/intel_iwlwifi_firmware.LICENCE .
+firmware license is installed along with the
+.Pa wifi-firmware-iwlwifi-kmod
+package or the
+.Pa ports/net/wifi-firmware-iwlwifi-kmod
+port (or each of its flavors).
.Sh SEE ALSO
.Xr iwlwifi 4 ,
+.Xr fwget 8 ,
.Xr firmware 9
.Sh HISTORY
The
.Nm
firmware modules first appeared in
-.Fx 13.1 .
+.Fx 13.1
+and were removed before
+.Fx 14.3
+and replaced by
+.Xr ports 7
+based firmware packages.
diff --git a/share/man/man4/iwm.4 b/share/man/man4/iwm.4
index b810f7016e54..5249959cd3f6 100644
--- a/share/man/man4/iwm.4
+++ b/share/man/man4/iwm.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2004-2006
.\" Damien Bergamini <damien.bergamini@free.fr>. All rights reserved.
.\"
@@ -23,7 +26,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 20, 2024
+.Dd November 10, 2024
.Dt IWM 4
.Os
.Sh NAME
@@ -31,8 +34,7 @@
.Nd Intel IEEE 802.11ac wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
-include the following lines in your
-kernel configuration file:
+include the following lines in your kernel configuration file:
.Bd -ragged -offset indent
.Cd "device iwm"
.Cd "device pci"
@@ -79,55 +81,59 @@ iwm9260fw_load="YES"
.Sh DESCRIPTION
The
.Nm
-driver provides support for:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It Intel Dual Band Wireless AC 3160
-.It Intel Dual Band Wireless AC 3165
-.It Intel Dual Band Wireless AC 3168
-.It Intel Dual Band Wireless AC 7260
-.It Intel Dual Band Wireless AC 7265
-.It Intel Dual Band Wireless AC 8260
-.It Intel Dual Band Wireless AC 8265
-.It Intel Dual Band Wireless AC 9260
-.It Intel Dual Band Wireless AC 9270
-.It Intel Dual Band Wireless AC 946X
-.It Intel Dual Band Wireless AC 9560
-.El
-.Pp
-.Nm
-supports
+driver supports running most Intel Wireless AC series network devices in
.Cm station
mode operation.
Only one virtual interface may be configured at any time.
-For more information on configuring this device, see
-.Xr ifconfig 8 .
-.Pp
This driver requires the firmware built with the
-.Nm iwmfw
+.Xr iwmfw 4
module to work.
.Pp
-Currently,
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.Sh HARDWARE
+The
.Nm
-only supports 802.11b and 802.11g modes.
-It will not associate to access points that are configured to operate only
-in 802.11n or 802.11ac modes.
+driver supports the following PCIe Wi-Fi devices:
+.Pp
+.Bl -bullet -compact
+.It
+Intel Dual Band Wireless AC 3160
+.It
+Intel Dual Band Wireless AC 3165
+.It
+Intel Dual Band Wireless AC 3168
+.It
+Intel Dual Band Wireless AC 7260
+.It
+Intel Dual Band Wireless AC 7265
+.It
+Intel Dual Band Wireless AC 8260
+.It
+Intel Dual Band Wireless AC 8265
+.It
+Intel Dual Band Wireless AC 9260
+.It
+Intel Dual Band Wireless AC 9270
+.It
+Intel Dual Band Wireless AC 946X
+.It
+Intel Dual Band Wireless AC 9560
+.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev iwm0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev iwm0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev iwm0 ssid my_net up"
+.Dl ifconfig wlan create wlandev iwm0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev iwm0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Join a specific BSS network with 128-bit WEP encryption:
@@ -155,15 +161,16 @@ Verify the
.Xr iwmfw 4
firmware module is present.
.It "iwm%d: could not load boot firmware"
-An attempt to upload the boot firmware image to the onboard microcontroller
-failed.
+An attempt to upload the boot firmware image
+to the onboard microcontroller failed.
This should not happen.
.It "iwm%d: could not load microcode"
-An attempt to upload the microcode image to the onboard microcontroller failed.
+An attempt to upload the microcode image
+to the onboard microcontroller failed.
This should not happen.
.It "iwm%d: could not load main firmware"
-An attempt to upload the main firmware image to the onboard microcontroller
-failed.
+An attempt to upload the main firmware image
+to the onboard microcontroller failed.
This should not happen.
.El
.Sh SEE ALSO
@@ -174,5 +181,12 @@ This should not happen.
.Xr wlan_ccmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
+.Xr networking 7 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
+.Sh BUGS
+Currently,
+.Nm
+only supports 802.11a/b/g modes.
+It will not associate to access points that are configured to operate
+only in 802.11n/ac modes.
diff --git a/share/man/man4/iwn.4 b/share/man/man4/iwn.4
index 1d9f50c38fee..55692a5386a5 100644
--- a/share/man/man4/iwn.4
+++ b/share/man/man4/iwn.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2004-2006
.\" Damien Bergamini <damien.bergamini@free.fr>. All rights reserved.
.\"
@@ -23,7 +26,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 30, 2021
+.Dd October 17, 2024
.Dt IWN 4
.Os
.Sh NAME
@@ -87,38 +90,7 @@ iwn6050fw_load="YES"
.Sh DESCRIPTION
The
.Nm
-driver provides support for:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It Intel Centrino Advanced-N 6200
-.It Intel Centrino Advanced-N 6205
-.It Intel Centrino Advanced-N 6230
-.It Intel Centrino Advanced-N 6235
-.It Intel Centrino Advanced-N + WiMAX 6250
-.It Intel Centrino Ultimate-N 6300
-.It Intel Centrino Wireless-N 100
-.It Intel Centrino Wireless-N 105
-.It Intel Centrino Wireless-N 130
-.It Intel Centrino Wireless-N 135
-.It Intel Centrino Wireless-N 1000
-.It Intel Centrino Wireless-N 1030
-.It Intel Centrino Wireless-N 2200
-.It Intel Centrino Wireless-N 2230
-.It Intel Centrino Wireless-N 4965
-.It Intel Centrino Wireless-N 5100
-.It Intel Centrino Wireless-N 6150
-.It Intel Centrino Wireless-N 6200
-.It Intel Centrino Wireless-N 6250
-.It Intel Centrino Wireless-N + WiMAX 6150
-.It Intel Ultimate N WiFi Link 5300
-.It Intel Wireless WiFi Link 4965
-.It Intel WiFi Link 5100
-.It Intel WiMAX/WiFi Link 5150
-.It Intel WiMAX/WiFi Link 5350
-.El
-.Pp
-.Nm
-supports
+driver supports
.Cm station
and
.Cm monitor
@@ -130,27 +102,84 @@ For more information on configuring this device, see
This driver requires the firmware built with the
.Nm iwnfw
module to work.
+.Sh HARDWARE
+The
+.Nm
+driver provides support for:
+.Pp
+.Bl -bullet -compact
+.It
+Intel Centrino Advanced-N 6200
+.It
+Intel Centrino Advanced-N 6205
+.It
+Intel Centrino Advanced-N 6230
+.It
+Intel Centrino Advanced-N 6235
+.It
+Intel Centrino Advanced-N + WiMAX 6250
+.It
+Intel Centrino Ultimate-N 6300
+.It
+Intel Centrino Wireless-N 100
+.It
+Intel Centrino Wireless-N 105
+.It
+Intel Centrino Wireless-N 130
+.It
+Intel Centrino Wireless-N 135
+.It
+Intel Centrino Wireless-N 1000
+.It
+Intel Centrino Wireless-N 1030
+.It
+Intel Centrino Wireless-N 2200
+.It
+Intel Centrino Wireless-N 2230
+.It
+Intel Centrino Wireless-N 4965
+.It
+Intel Centrino Wireless-N 5100
+.It
+Intel Centrino Wireless-N 6150
+.It
+Intel Centrino Wireless-N 6200
+.It
+Intel Centrino Wireless-N 6250
+.It
+Intel Centrino Wireless-N + WiMAX 6150
+.It
+Intel Ultimate N WiFi Link 5300
+.It
+Intel Wireless WiFi Link 4965
+.It
+Intel WiFi Link 5100
+.It
+Intel WiMAX/WiFi Link 5150
+.It
+Intel WiMAX/WiFi Link 5350
+.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
.Bd -literal -offset indent
-ifconfig wlan create wlandev iwn0 inet 192.168.0.20 \e
+# ifconfig wlan create wlandev iwn0 inet 192.168.0.20 \e
netmask 0xffffff00
.Ed
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ql my_net :
.Pp
-.Dl "ifconfig wlan create wlandev iwn0 ssid my_net up"
+.Dl # ifconfig wlan create wlandev iwn0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
-ifconfig wlan create wlandev iwn0 ssid my_net \e
+# ifconfig wlan create wlandev iwn0 ssid my_net \e
wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Join a specific BSS network with 128-bit WEP encryption:
.Bd -literal -offset indent
-ifconfig wlan create wlandev iwn0 wlanmode adhoc ssid my_net \e
+# ifconfig wlan create wlandev iwn0 wlanmode adhoc ssid my_net \e
wepmode on wepkey 0x01020304050607080910111213 weptxkey 1
.Ed
.Sh DIAGNOSTICS
@@ -191,6 +220,7 @@ This should not happen.
.Xr wlan_ccmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
+.Xr networking 7 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh AUTHORS
diff --git a/share/man/man4/iwx.4 b/share/man/man4/iwx.4
new file mode 100644
index 000000000000..7cd54d61b920
--- /dev/null
+++ b/share/man/man4/iwx.4
@@ -0,0 +1,157 @@
+.\"
+.\" SPDX-License-Identifier: ISC
+.\"
+.\" $OpenBSD: iwx.4,v 1.21 2025/03/27 15:12:14 jmc Exp $
+.\"
+.\" Copyright (c) 2020 Stefan Sperling <stsp@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd May 2, 2025
+.Dt IWX 4
+.Os
+.Sh NAME
+.Nm iwx
+.Nd Intel WiFi 6 IEEE 802.11ax wireless network driver
+.Sh SYNOPSIS
+.Cd device iwx
+.Cd device wlan
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd devmatch_blocklist="if_iwlwifi"
+.Cd kld_list="if_iwx"
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd dev.iwx.?.debug=0xffffffff
+.Sh DESCRIPTION
+The
+.Nm
+driver supports the Intel Wi-Fi 6 series of M.2
+wireless network adapters.
+If the appropriate hardware is detected, and
+.Xr iwlwifi 4
+is blacklisted in
+.Xr rc.conf 5 ,
+the driver will be automatically loaded with
+.Xr devmatch 8 .
+The
+.Nm
+driver can be configured at runtime with
+.Xr ifconfig 8
+or at boot with
+.Xr rc.conf 5 .
+.Pp
+These are the modes the
+.Nm
+driver can operate in:
+.Bl -tag -width "monitor mode"
+.It station mode
+This is used when associating with an access point,
+through which all traffic passes.
+Background scanning is supported in this mode, see
+.Xr ifconfig 8 .
+Station mode is the default.
+.It monitor mode
+In this mode the driver is able to receive packets without
+associating with an access point.
+This disables the internal receive filter and enables the card to
+capture packets from networks which it wouldn't normally have access to,
+or to scan for access points.
+.El
+.Sh HARDWARE
+The
+.Nm
+driver supports the following M.2 wireless network adapters:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+Intel Wi-Fi 6 AX200
+.It
+Intel Wi-Fi 6 AX201 CNVi
+.It
+Intel Wi-Fi 6 AX210
+.It
+Intel Wi-Fi 6 AX211 CNVi
+.El
+.Sh SYSCTL VARIABLES
+The
+.Nm
+driver supports the following
+.Xr sysctl 8
+variables:
+.Bl -tag -width "hw.usb.mtw.debug"
+.It Va dev.iwx.?.debug
+Specify debug level as a bitmask.
+Default
+.Ql 0 .
+.El
+.Sh FILES
+The
+.Nm
+driver requires firmware from
+.Pa ports/net/wifi-firmware-iwlwifi-kmod .
+This firmware package will be installed automatically with
+.Xr fwget 8
+if the appropriate hardware is detected at installation or runtime.
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "iwx0: device timeout"
+A frame dispatched to the hardware for transmission did not complete
+in time.
+The driver will reset the hardware.
+This should not happen.
+.It "iwx0: fatal firmware error"
+For some reason, the firmware crashed.
+The driver will reset the hardware.
+This should not happen.
+.It "iwx0: radio is disabled by hardware switch"
+The radio transmitter is off and thus no packet can go out.
+The driver will reset the hardware.
+Make sure the laptop radio switch is on.
+.It "iwx0: could not read firmware ... (error N)"
+For some reason, the driver was unable to read the firmware image from
+the filesystem.
+The file might be missing or corrupted.
+.It "iwx0: firmware too short: N bytes"
+The firmware image is corrupted and can't be loaded into the adapter.
+.It "iwx0: could not load firmware"
+An attempt to load the firmware into the adapter failed.
+The driver will reset the hardware.
+.El
+.Sh SEE ALSO
+.Xr intro 4 ,
+.Xr iwlwifi 4 ,
+.Xr iwlwififw 4 ,
+.Xr wlan 4 ,
+.Xr networking 7 ,
+.Xr fwget 8 ,
+.Xr ifconfig 8 ,
+.Xr wpa_supplicant 8
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Fx 15.0 .
+.Sh CAVEATS
+The
+.Nm
+driver does not support hardware encryption offload.
+.Pp
+The
+.Nm
+driver does not support 802.11ax.
+Additional work is required in
+.Xr ieee80211 9
+before those features can be supported.
diff --git a/share/man/man4/ixgbe.4 b/share/man/man4/ix.4
index b151d3466392..418b6e1188ab 100644
--- a/share/man/man4/ixgbe.4
+++ b/share/man/man4/ix.4
@@ -29,32 +29,31 @@
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
-.Dd May 17, 2023
-.Dt IXGBE 4
+.Dd October 26, 2024
+.Dt IX 4
.Os
.Sh NAME
-.Nm ixgbe
-.Nd "Intel(R) 10Gb Ethernet driver for the FreeBSD operating system"
+.Nm ix
+.Nd Intel 10Gb Ethernet driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device iflib"
-.Cd "device ixgbe"
+.Cd "device ix"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
-if_ixgbe_load="YES"
+if_ix_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
-driver provides support for PCI 10Gb Ethernet adapters based on
-the Intel 82598EB Intel(R) Network Connections.
+driver provides support for Intel(R) 10Gb Ethernet PCIe adapters.
The driver supports Jumbo Frames, MSIX, TSO, and RSS.
.Pp
For questions related to hardware requirements,
@@ -74,25 +73,70 @@ For information on enabling VLANs, see
.Sh HARDWARE
The
.Nm
-driver supports the following cards:
+driver supports Intel 10Gb Ethernet PCIe adapters,
+including:
.Pp
.Bl -bullet -compact
.It
-Intel(R) 10 Gigabit XF SR/AF Dual Port Server Adapter
+Intel(R) Ethernet X553
.It
-Intel(R) 10 Gigabit XF SR/LR Server Adapter
+Intel(R) Ethernet X552
.It
-Intel(R) 82598EB 10 Gigabit AF Network Connection
+Intel(R) Ethernet X550
.It
-Intel(R) 82598EB 10 Gigabit AT CX4 Network Connection
+Intel(R) Ethernet X540 Bypass
+.It
+Intel(R) Ethernet X540
+.It
+Intel(R) Ethernet X520 Bypass (82599)
+.It
+Intel(R) Ethernet X520 (82599)
+.It
+Intel(R) 10 Gigabit Server Adapter (82598EB)
+.El
+.Sh LOADER TUNABLES
+The
+.Nm
+driver supports the following loader tunables:
+.Bl -tag -width "hw.ix.allow_unsupported_sfp"
+.It Va hw.ix.max_interrupt_rate
+Maximum interrupts per second.
+.It Va hw.ix.flow_control
+Default flow control used for all adapters.
+.It Va hw.ix.advertise_speed
+Default advertised speed for all adapters.
+.It Va hw.ix.enable_msix
+Enable Message Signalled Interrupts (MSI-X).
+.It Va hw.ix.allow_unsupported_sfp
+Allow unsupported small form-factor pluggable
+.Pq SFP
+modules.
+Use at your own risk.
+.It Va hw.ix.enable_fdir
+Enable Flow Director.
+Flow Director directs Ethernet packets to the core where the
+packet consuming process, application, container,
+or microservice is running.
+.It Va hw.ix.enable_rss
+Enable Receive-Side Scaling (RSS).
+When RSS is enabled, all of the receive data processing for
+a particular TCP connection is shared across multiple processors
+or processor cores.
+Without RSS, all of the processing is performed by a single
+processor, resulting in inefficient system cache utilization.
+This has no effect if your system has only one processing unit.
+.It Va hw.ix.enable_aim
+Enable Adaptive Interrupt Moderation (AIM).
+Vary the interrupt rate over time based on the traffic for
+that interrupt vector.
.El
.Sh DIAGNOSTICS
.Bl -diag
-.It "ixgbe%d: Unable to allocate bus resource: memory"
+.It "ix%d: Unable to allocate bus resource: memory"
A fatal initialization error has occurred.
-.It "ixgbe%d: Unable to allocate bus resource: interrupt"
+.It "ix%d: Unable to allocate bus resource: interrupt"
A fatal initialization error has occurred.
-.It "ixgbe%d: watchdog timeout -- resetting"
+.It "ix%d: watchdog timeout -- resetting"
The device has stopped responding to the network, or there is a problem with
the network connection (cable).
.El
@@ -113,7 +157,8 @@ issue to
.Xr ng_ether 4 ,
.Xr polling 4 ,
.Xr vlan 4 ,
-.Xr ifconfig 8
+.Xr ifconfig 8 ,
+.Xr sysctl 8
.Sh HISTORY
The
.Nm
@@ -124,3 +169,11 @@ The
.Nm
driver was written by
.An Intel Corporation Aq Mt freebsd@intel.com .
+.Sh CAVEATS
+Intel (R) Flow director support is not fully implemented in
+.Fx
+at this time and additional work is required
+before those features can be supported.
+.Pp
+Enabling flow director may route traffic to the wrong RX queue of the NIC,
+resulting in sub-optimal performance on the receive side.
diff --git a/share/man/man4/ixl.4 b/share/man/man4/ixl.4
index 8397bd99a5e7..fb9d519b22a8 100644
--- a/share/man/man4/ixl.4
+++ b/share/man/man4/ixl.4
@@ -116,7 +116,10 @@ kernel; install the
package for the latest driver.
.El
.Sh HARDWARE
-Most adapters in the Intel Ethernet 700 Series with SFP+/SFP28/QSFP+ cages
+The
+.Nm
+driver supports the Intel Ethernet 700 series.
+Most adapters in this series with SFP+/SFP28/QSFP+ cages
have firmware that requires that Intel qualified modules are used; these
qualified modules are listed below.
This qualification check cannot be disabled by the driver.
@@ -209,7 +212,7 @@ When the driver is finding the last TX descriptor processed by the hardware,
use a value written to memory by the hardware instead of scanning the
descriptor ring for completed descriptors.
Enabled by default; disable to mimic the TX behavior found in
-.Xr ixgbe 4 .
+.Xr ix 4 .
.El
.Sh SYSCTL PROCEDURES
.Bl -tag -width indent
diff --git a/share/man/man4/kld.4 b/share/man/man4/kld.4
index bba32f02e677..e0186dec9ccc 100644
--- a/share/man/man4/kld.4
+++ b/share/man/man4/kld.4
@@ -96,7 +96,7 @@ drivers may be loaded into the system with
.Nm .
Device nodes for the loaded drivers are automatically created when a
module is loaded and destroyed when it is unloaded by
-.Xr devfs 5 .
+.Xr devfs 4 .
You can specify userland programs that will run when new devices
become available as a result of loading modules, or existing devices
go away when modules are unloaded, by configuring
@@ -121,7 +121,7 @@ example source code implementing a sample kld module
.Xr kldnext 2 ,
.Xr kldstat 2 ,
.Xr kldunload 2 ,
-.Xr devfs 5 ,
+.Xr devfs 4 ,
.Xr devd 8 ,
.Xr kldload 8 ,
.Xr kldstat 8 ,
diff --git a/share/man/man4/ktls.4 b/share/man/man4/ktls.4
index 46a37d5dd636..56b03d45faf7 100644
--- a/share/man/man4/ktls.4
+++ b/share/man/man4/ktls.4
@@ -29,7 +29,7 @@
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
-.Dd December 14, 2021
+.Dd October 31, 2024
.Dt KTLS 4
.Os
.Sh NAME
@@ -220,8 +220,10 @@ mode.
OpenSSL 3.0 and later include support for
.Nm .
The
-.Fa security/openssl-devel
-port may also be built with support for
+.Fa security/openssl*
+and
+.Fa security/gnutls
+ports may also be built with support for
.Nm
by enabling the
.Dv KTLS
diff --git a/share/man/man5/lindebugfs.5 b/share/man/man4/lindebugfs.4
index 8e385be7d743..34a196007086 100644
--- a/share/man/man5/lindebugfs.5
+++ b/share/man/man4/lindebugfs.4
@@ -24,7 +24,7 @@
.\" SUCH DAMAGE.
.Dd August 10, 2022
-.Dt LINDEBUGFS 5
+.Dt LINDEBUGFS 4
.Os
.Sh NAME
.Nm lindebugfs
@@ -77,11 +77,11 @@ file system on
.Pp
.Dl "mount -t lindebugfs lindebugfs /sys/kernel/debug"
.Sh SEE ALSO
-.Xr linprocfs 5 ,
-.Xr linsysfs 5 ,
-.Xr pseudofs 9 ,
+.Xr mount 1 ,
+.Xr linprocfs 4 ,
+.Xr linsysfs 4 ,
.Xr linux 4 ,
-.Xr mount 1
+.Xr pseudofs 9
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/linprocfs.4 b/share/man/man4/linprocfs.4
new file mode 100644
index 000000000000..53940d7c02b0
--- /dev/null
+++ b/share/man/man4/linprocfs.4
@@ -0,0 +1,167 @@
+.\" Written by Garrett Wollman
+.\" This file is in the public domain.
+.\"
+.Dd May 29, 2025
+.Dt LINPROCFS 4
+.Os
+.Sh NAME
+.Nm linprocfs
+.Nd Linux process file system
+.Sh SYNOPSIS
+.Bd -literal
+linproc /compat/linux/proc linprocfs rw 0 0
+.Ed
+.Sh DESCRIPTION
+The Linux process file system, or
+.Nm ,
+emulates a subset of Linux' process file system and is required for
+the complete operation of some Linux binaries.
+.Pp
+The
+.Nm
+provides a two-level view of process space.
+At the highest level, processes themselves are named, according to
+their process ids in decimal, with no leading zeros.
+There is also a special node called
+.Pa self
+which always refers to the process making the lookup request.
+.Pp
+Each process node is a directory containing several files:
+.Bl -tag -width oom_score_adj
+.It Pa auxv
+The auxiliary vector passed to the program.
+.It Pa cmdline
+The command line used to execute the process.
+.It Pa cwd
+A symbolic link pointing to the current work directory of the process.
+.It Pa environ
+The list of environment variables and values of the process.
+Every variable and pair value is separated from the next by a NULL byte.
+.It Pa exe
+A reference to the vnode from which the process text was read.
+This can be used to gain access to the process' symbol table,
+or to start another copy of the process.
+.It Pa limits
+The soft and hard limits for the process along with the units used.
+.It Pa maps
+Memory map of the process.
+.It Pa mem
+The complete virtual memory image of the process.
+Only those addresses which exist in the process can be accessed.
+Reads and writes to this file modify the process.
+Writes to the text segment remain private to the process.
+.It Pa mountinfo
+Information about mount points.
+.It Pa mounts
+Similar to the above.
+.It Pa oom_score_adj
+Score adjustment for the Out Of Memory killer.
+.It Pa root
+Symbolic link to the root directory for this process.
+.It Pa stat
+Process statistics.
+It includes user, nice, system, idle, iowait, irq, softirq,
+steal, guest and guest_nice.
+.It Pa statm
+Process size statistics.
+It includes total program size, resident set size, number of resident shared
+pages (unused), text size, library size (unused), data + stack and dirty pages
+(unused).
+.It Pa status
+Process statistics in human readable form.
+It includes process name, state, PID,
+etc.
+.It Pa task
+Dummy directory to avoid problems in specific software such as Chromium.
+.El
+.Pp
+Each node is owned by the process's user, and belongs to that user's
+primary group, except for the
+.Pa mem
+node, which belongs to the
+.Li kmem
+group.
+.Sh FILES
+.Bl -tag -width /compat/linux/proc/filesystems -compact
+.It Pa /compat/linux/proc
+The normal mount point for
+.Nm .
+.It Pa /compat/linux/proc/cmdline
+Contains the path of the kernel image used to boot the system.
+.It Pa /compat/linux/proc/cpuinfo
+CPU vendor and model information in human-readable form.
+.It Pa /compat/linux/proc/devices
+List of character and block devices.
+The later is usually empty on
+.Fx .
+.It Pa /compat/linux/proc/filesystems
+List of supported filesystems.
+For pseudo filesystems, the first column contains
+.Em nodev .
+.It Pa /compat/linux/proc/meminfo
+System memory information in human-readable form.
+.It Pa /compat/linux/proc/modules
+Loaded kernel modules.
+Empty for now.
+.It Pa /compat/linux/proc/mounts
+Devices corresponding mount points.
+.It Pa /compat/linux/proc/mtab
+Same as above.
+.It Pa /compat/linux/proc/partitions
+Partition information including major and minor numbers, number of blocks and
+name.
+The rest of the fields are set to zero.
+.It Pa /compat/linux/proc/stat
+System statistics.
+For each cpu it includes at most user time, nice time, system
+time and idle time, iowait (time waiting for I/O to complete), times serving
+irqs and softirq, steal, guest and guest_nice times that represent times spent
+in different modes in a virtualized environment.
+The last columns are set to zero.
+This file also contains brief statistics for disks, context switches and
+more.
+.It Pa /compat/linux/proc/swap
+Information about the swap device if any.
+.It Pa /compat/linux/proc/uptime
+Time since the last boot and time spent in idle state.
+.It Pa /compat/linux/proc/version
+Version of the emulated linux system.
+.It Pa /compat/linux/proc/pid
+A directory containing process information for process
+.Pa pid .
+.It Pa /compat/linux/proc/self
+A directory containing process information for the current process.
+.El
+.Sh EXAMPLES
+To mount a
+.Nm
+file system on
+.Pa /compat/linux/proc :
+.Pp
+.Dl "mount -t linprocfs linproc /compat/linux/proc"
+.Sh SEE ALSO
+.Xr mount 2 ,
+.Xr unmount 2 ,
+.Xr auxv 3 ,
+.Xr linux 4 ,
+.Xr procfs 5 ,
+.Xr pseudofs 9
+.Sh HISTORY
+The
+.Nm
+first appeared in
+.Fx 4.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+was derived from
+.Nm procfs
+by
+.An Pierre Beyssac .
+This manual page was written by
+.An Dag-Erling Sm\(/orgrav ,
+based on the
+.Xr procfs 5
+manual page by
+.An Garrett Wollman .
diff --git a/share/man/man5/linsysfs.5 b/share/man/man4/linsysfs.4
index f87f791c5f94..12729a814085 100644
--- a/share/man/man5/linsysfs.5
+++ b/share/man/man4/linsysfs.4
@@ -2,7 +2,7 @@
.\" This file is in the public domain.
.\"
.Dd November 13, 2019
-.Dt LINSYSFS 5
+.Dt LINSYSFS 4
.Os
.Sh NAME
.Nm linsysfs
@@ -74,8 +74,8 @@ is a mount point.
.Sh SEE ALSO
.Xr nmount 2 ,
.Xr unmount 2 ,
+.Xr linprocfs 4 ,
.Xr linux 4 ,
-.Xr linprocfs 5 ,
.Xr pseudofs 9
.Sh HISTORY
The
@@ -93,6 +93,6 @@ by
This manual page was edited by
.An Doug Ambrisko ,
based on the
-.Xr linprocfs 5
+.Xr linprocfs 4
manual page by
.An Garrett Wollman .
diff --git a/share/man/man4/linux.4 b/share/man/man4/linux.4
index 0efc469985f9..711ac11e8fce 100644
--- a/share/man/man4/linux.4
+++ b/share/man/man4/linux.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 9, 2022
+.Dd May 19, 2024
.Dt LINUX 4
.Os
.Sh NAME
@@ -61,11 +61,13 @@ under
.Pa /compat/linux )
before
.Pa / .
-For example, when Linux process attempts to open
+For example, when a Linux process attempts to open
.Pa /etc/passwd ,
-it will really access
+it will first access
.Pa /compat/linux/etc/passwd ,
-unless the latter does not exist.
+falling back to
+.Pa /etc/passwd
+if the compat path does not exist.
This is used to make sure Linux processes load Linux shared libraries
instead of their similarly-named FreeBSD counterparts, and also
to provide alternative versions of certain other files and virtual
@@ -156,30 +158,34 @@ Defaults to 0.
Linux run-time environment
.It Pa /compat/linux/dev
device file system, see
-.Xr devfs 5
+.Xr devfs 4
.It Pa /compat/linux/dev/fd
file descriptor file system mounted with the
.Cm linrdlnk
option, see
-.Xr fdescfs 5
+.Xr fdescfs 4
+.It Pa /compat/linux/dev/mqueue
+symbolic link to a mqueuefs mount, see
+.Xr mqueuefs 4
.It Pa /compat/linux/dev/shm
in-memory file system, see
-.Xr tmpfs 5
+.Xr tmpfs 4
.It Pa /compat/linux/proc
Linux process file system, see
-.Xr linprocfs 5
+.Xr linprocfs 4
.It Pa /compat/linux/sys
Linux kernel objects file system, see
-.Xr linsysfs 5
+.Xr linsysfs 4
.El
.Sh SEE ALSO
.Xr brandelf 1 ,
+.Xr fdescfs 4 ,
+.Xr linprocfs 4 ,
+.Xr linsysfs 4 ,
+.Xr mqueuefs 4 ,
.Xr pty 4 ,
-.Xr elf 5 ,
-.Xr fdescfs 5 ,
-.Xr linprocfs 5 ,
-.Xr linsysfs 5 ,
-.Xr tmpfs 5
+.Xr tmpfs 4 ,
+.Xr elf 5
.Sh HISTORY
Linux ABI support first appeared for i386 in
.Fx 2.1 .
diff --git a/share/man/man4/linuxkpi.4 b/share/man/man4/linuxkpi.4
new file mode 100644
index 000000000000..cd4135c28d6d
--- /dev/null
+++ b/share/man/man4/linuxkpi.4
@@ -0,0 +1,42 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\"
+.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
+.\" the FreeBSD Foundation.
+.\"
+.Dd June 13, 2025
+.Dt LINUXKPI 4
+.Os
+.Sh NAME
+.Nm linuxkpi
+.Nd Linux Kernel Programming Interface support
+.Sh DESCRIPTION
+The
+.Nm
+kernel module provides a limited KPI (kernel programming interface) to allow
+Linux kernel drivers and other Linux kernel code to be compiled on
+.Fx
+and used along the
+.Fx
+kernel with little or no modification.
+.Pp
+While historically
+.Em OpenFabrics Enterprise Distribution (Infiniband) ,
+and certain vendor drivers have used
+.Nm .
+.Em drm-kmod
+for graphics driver support
+and
+.Xr linuxkpi_wlan 4
+for wireless drivers are prominent consumers.
+.Pp
+.Nm
+is not to be confused with
+.Xr linux 4
+which provides limited Linux ABI (application binary interface) compatibility
+to allow running Linux application binaries unmodified on
+.Fx .
+.Sh SEE ALSO
+.Xr linuxkpi_wlan 4
diff --git a/share/man/man4/linuxkpi_wlan.4 b/share/man/man4/linuxkpi_wlan.4
new file mode 100644
index 000000000000..136e04c32bb7
--- /dev/null
+++ b/share/man/man4/linuxkpi_wlan.4
@@ -0,0 +1,134 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\"
+.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
+.\" the FreeBSD Foundation.
+.\"
+.Dd June 13, 2025
+.Dt LINUXKPI_WLAN 4
+.Os
+.Sh NAME
+.Nm linuxkpi_wlan
+.Nd LinuxKPI 802.11 support
+.Sh DESCRIPTION
+The
+.Nm
+kernel module provides an 802.11 compat layer to translate between Linux
+802.11 drivers and the native net8011 wireless stack.
+It currently supports
+.Em mac80211
+based drivers.
+Parts of the
+.Em cfg80211
+exist but there is no code for net80211 to drive it.
+.Pp
+.Nm
+currently supports the following
+.Em wlanmode
+operating modes:
+.Bl -tag -width monitor -compact
+.It Cm sta
+client station in an infrastructure bss (IBSS).
+.El
+.Pp
+Compat code for 802.11n (HT) and 802.11ac (VHT) is implemented but
+support may vary for different drivers due to different KPI usage.
+.Pp
+Crypto support for hardware acceleration needs to be enabled using the
+.Va compat.linuxkpi.80211.hw_crypto
+tunable.
+The following cipher suites are supported:
+.Bl -tag -width CCMP -compact
+.It Cm tkip
+Support for
+.Xr wlan_tkip 4
+has to be manually enabled using the
+.Va compat.linuxkpi.80211.tkip
+tunable.
+.It Cm ccmp
+Support for
+.Xr wlan_ccmp 4
+is available.
+.It Cm gcmp
+Support for
+.Xr wlan_gcmp 4
+is available.
+.El
+Further cipher suites will be implemented as soon as
+.Xr net80211 4
+grows support.
+While it would be possible to implement
+.Xr wlan_wep 4
+support, it was decided not to do so given
+.Em Wired Equivalent Privacy (WEP)
+has been deprecated since 2004.
+.Pp
+The list of supported drivers includes
+.Xr iwlwifi 4 ,
+.Xr rtw88 4 ,
+and
+.Xr rtw89 4 .
+.Sh SYSCTL VARIABLES AND LOADER TUNABLES
+The
+.Nm
+module supports the following
+.Xr loader 8
+tunable and read-only
+.Xr sysctl 8
+variables:
+.Bl -tag -width "compat.linuxkpi.80211.hw_crypto"
+.It Va compat.linuxkpi.80211.hw_crypto
+Turn on hardware crypto offload support.
+Default
+.Ql 0 .
+.It Va compat.linuxkpi.80211.tkip
+Turn on support for
+.Xr wlan_tkip 4
+offloading.
+Default
+.Ql 0 .
+.El
+.Pp
+The
+.Nm
+module supports the following
+.Xr sysctl 8
+variables:
+.Bl -tag -width "compat.linuxkpi.80211.IF.dump_stas"
+.It Va compat.linuxkpi.80211.debug
+If the kernel is compiled with
+.Dv IEEE80211_DEBUG
+or
+.Dv LINUXKPI_DEBUG_80211
+is manually enabled, the sysctl is a bitmask to turn on individual
+debug messages.
+See
+.Pa sys/compat/linuxkpi/common/src/linux_80211.h
+for details.
+.It Va compat.linuxkpi.80211.IF.dump_stas
+Print statistics for a given, associated
+.Xr wlan 4
+interface; typically IF would be
+.Em wlan0 .
+.El
+.Sh SEE ALSO
+.Xr iwlwifi 4 ,
+.Xr linuxkpi 4 ,
+.Xr rtw88 4 ,
+.Xr rtw89 4 ,
+.Xr wlan 4
+.Sh HISTORY
+The
+.Nm
+module first appeared in
+.Fx 13.1 .
+Support for IEEE 802.11n and 802.11ac in
+.Nm
+first appeared in
+.Fx 14.3 .
+.Sh AUTHORS
+LinuxKPI 802.11 support was developed by
+.An Bjoern A. Zeeb
+under sponsorship from the FreeBSD Foundation.
diff --git a/share/man/man4/liquidio.4 b/share/man/man4/liquidio.4
index 4713863c398f..27372e606212 100644
--- a/share/man/man4/liquidio.4
+++ b/share/man/man4/liquidio.4
@@ -34,7 +34,7 @@
.Os
.Sh NAME
.Nm liquidio
-.Nd "Cavium 10Gb/25Gb Ethernet driver for the FreeBSD operating system"
+.Nd Cavium 10Gb/25Gb Ethernet driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following line in your
diff --git a/share/man/man4/lo.4 b/share/man/man4/lo.4
index 2f0242b267c2..7bad739eec41 100644
--- a/share/man/man4/lo.4
+++ b/share/man/man4/lo.4
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 25, 2012
+.Dd June 23, 2024
.Dt LO 4
.Os
.Sh NAME
@@ -55,11 +55,11 @@ be configured first unless no hardware
interfaces exist.
.Pp
If the transmit checksum offload capability flag is enabled on a loopback
-interface, checksums will not be generated by IP, UDP, or TCP for packets
+interface, checksums will not be generated by IP, UDP, TCP, or SCTP for packets
sent on the interface.
.Pp
If the receive checksum offload capability flag is enabled on a loopback
-interface, checksums will not be validated by IP, UDP, or TCP for packets
+interface, checksums will not be validated by IP, UDP, TCP, or SCTP for packets
received on the interface.
.Pp
By default, both receive and transmit checksum flags will be enabled, in
diff --git a/share/man/man4/mac.4 b/share/man/man4/mac.4
index 006922a17f2b..134086139f53 100644
--- a/share/man/man4/mac.4
+++ b/share/man/man4/mac.4
@@ -28,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 25, 2023
+.Dd December 30, 2024
.Dt MAC 4
.Os
.Sh NAME
@@ -54,6 +54,7 @@ Currently, the following MAC policy modules are shipped with
.It Xr mac_biba 4 Ta "Biba integrity policy" Ta yes Ta boot only
.It Xr mac_bsdextended 4 Ta "File system firewall" Ta no Ta any time
.It Xr mac_ddb 4 Ta "ddb(4) interface restrictions" Ta no Ta any time
+.It Xr mac_do 4 Ta "Change command's uid/gid" Ta no Ta any time
.It Xr mac_ifoff 4 Ta "Interface silencing" Ta no Ta any time
.It Xr mac_ipacl 4 Ta "IP Address access control" Ta no Ta any time
.It Xr mac_lomac 4 Ta "Low-Watermark MAC policy" Ta yes Ta boot only
@@ -203,6 +204,7 @@ man page.
.Xr mac_biba 4 ,
.Xr mac_bsdextended 4 ,
.Xr mac_ddb 4 ,
+.Xr mac_do 4 ,
.Xr mac_ifoff 4 ,
.Xr mac_ipacl 4 ,
.Xr mac_lomac 4 ,
diff --git a/share/man/man4/mac_bsdextended.4 b/share/man/man4/mac_bsdextended.4
index c96370a8175b..2131ca85282c 100644
--- a/share/man/man4/mac_bsdextended.4
+++ b/share/man/man4/mac_bsdextended.4
@@ -28,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 21, 2005
+.Dd October 11, 2024
.Dt MAC_BSDEXTENDED 4
.Os
.Sh NAME
@@ -87,7 +87,7 @@ This means that not all rules are applied,
only the first matched rule; thus if
Rule A allows access and Rule B blocks
access, Rule B will never be applied.
-.Ss Sysctls
+.Sh SYSCTL VARIABLES
The following sysctls may be used to tweak the behavior of
.Nm :
.Bl -tag -width indent
diff --git a/share/man/man4/mac_do.4 b/share/man/man4/mac_do.4
new file mode 100644
index 000000000000..4dcb54c89673
--- /dev/null
+++ b/share/man/man4/mac_do.4
@@ -0,0 +1,452 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2024 Baptiste Daroussin <bapt@FreeBSD.org>
+.\" Copyright (c) 2024 The FreeBSD Foundation
+.\"
+.\" Portions of this documentation were written by Olivier Certner
+.\" <olce@FreeBSD.org> at Kumacom SARL under sponsorship from the FreeBSD
+.\" Foundation.
+.\"
+.Dd June 11, 2025
+.Dt MAC_DO 4
+.Os
+.Sh NAME
+.Nm mac_do
+.Nd "policy allowing unprivileged users to change process credentials"
+.Sh SYNOPSIS
+To compile the
+.Sy mac_do
+policy into your kernel, place the following lines in your kernel configuration
+file:
+.Bd -ragged -offset indent
+.Cd "options MAC"
+.Cd "options MAC_DO"
+.Ed
+.Pp
+Alternately, to load this policy module at boot time, place the following line
+in your kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "options MAC"
+.Ed
+.Pp
+and in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+mac_do_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+policy module allows unprivileged users to change process credentials according
+to rules configured by the administrator.
+It supports per-jail configuration.
+.Pp
+Currently, the
+.Nm
+policy module only produces effects to processes spawned from the
+.Pa /usr/bin/mdo
+executable, please see
+.Xr mdo 1
+for more details on this program.
+.Sh CREDENTIALS RULES
+Rules specify which transitions of process credentials
+.Nm
+will allow, based on current process credentials and the desired final ones.
+They are passed by an administrator in the form of a string having the specific
+syntax described below in a top-bottom manner.
+They have been designed to be able to finely describe the desired target
+credentials in a safe and compact way.
+.Ss Top-Level List of Rules
+At the top, rules are a possibly empty list of individual rules separated by
+a semi-colon
+.Pq Ql ";" :
+.Dl Ao rules Ac \ ⟶\ Oo Ao rule Ac Oo So ";" Sc Ao rule Ac Oc Ns * Oc
+They form a disjunction, i.e.,
+.Nm
+authorizes a credentials transition as soon as at least one rule in the list
+matches.
+.Pp
+One rule is composed of a
+.Li Aq from
+part
+.Pq also called Dq match
+and a
+.Li Aq to
+part
+.Pq also called Dq target ,
+in this order, separated by a greater-than sign
+.Pq Ql > :
+.Dl Ao rule Ac \ ⟶\ Ao from Ac So > Sc Ao to Ac
+.Ss Rule's Ao from Ac Part
+The first part of a rule,
+.Li Aq from ,
+is matched against the credentials of the process requesting some credentials
+transition.
+It has the form:
+.Dl Ao from Ac \ ⟶\ Ao type Ac So = Sc Ao id Ac
+.Pp
+.Li Aq type
+must be:
+.Dl Ao type Ac \ ⟶\ Op So uid Sc | So gid Sc
+i.e., one of the literal strings
+.Ql uid
+or
+.Ql gid .
+.Li Aq id
+must be the numerical ID of a user or group, and is matched with the current
+process real ID of the corresponding type.
+.Ss Rule's Ao to Ac Part
+The second part of a rule,
+.Li Aq to ,
+is a comma-separated
+.Pq Ql ","
+non-empty list of target clauses:
+.Dl Ao to Ac \ ⟶\ Ao target_clause Ac Oo So "," Sc Ao target_clause Ac Oc Ns *
+Target clauses of a given rule also form a disjunction, i.e., the IDs they
+specify are alternatives for the target credentials, except in some cases
+described below.
+.Pp
+The next subsections describe the syntax of target clauses, the defaults that
+apply and the principle of non-redundancy and non-contradiction in each rule's
+.Li Aq to
+part.
+.Ss Target Clauses
+A target clause in a rule's
+.Li Aq to
+part must be of one of the following forms:
+.Dl Ao target_clause Ac \ ⟶\ So any Sc
+.Dl Ao target_clause Ac \ ⟶\ Ao flags Ac Ao type Ac So = Sc Ao id Ac
+The first form is a compact way to specify that any target credentials are
+allowed.
+The second form is similar to that of
+.Li Aq from
+clauses, with the following extensions:
+.Bl -bullet -compact
+.It
+.Li Aq id
+may also be a literal
+.Ql *
+or
+.Ql any
+or
+.Ql "." .
+.Ql *
+and
+.Ql any
+both designate any ID for the specified
+.Li Aq type ,
+and are treated identically.
+.Ql "."
+designates the process' current IDs for the specified
+.Li Aq type ,
+as explained below.
+.It
+.Li Aq flags
+may contain at most one of the
+.Ql + ,
+.Ql -
+and
+.Ql "!"
+characters, and may be non-empty only when
+.Li Aq type
+is
+.Ql gid .
+Additionally, if
+.Li Aq id
+is
+.Ql *
+or
+.Ql any ,
+only the
+.Ql +
+flag may appear.
+.El
+.Pp
+For target clauses of
+.Ql gid
+type, an absence of flag indicates that the specified group ID is allowed as the
+real, effective and/or saved group IDs
+.Pq the Do primary Dc groups .
+Conversely, the presence of any allowed flag indicates that the specification
+concerns supplementary groups.
+Each flag has a specific meaning:
+.Bl -bullet -compact
+.It
+.Ql +
+indicates that the group ID is allowed as a supplementary group.
+.It
+.Ql "!"
+indicates that the group ID is mandatory, i.e., it must be listed in the
+supplementary groups.
+.It
+.Ql -
+indicates that the group ID must not be listed in the supplementary groups.
+.El
+A specification with
+.Ql -
+is only useful in conjunction with a
+.Ql + Ns
+-tagged specification where only one of them has
+.Ql "."
+as its
+.Li Aq id .
+Target clauses having the
+.Ql "!"
+or
+.Ql -
+flag are
+.Dq forcing
+clauses, and as such do not take part in the disjunction of the other
+target clauses but rather unconditionally apply in their rule.
+.Pp
+.Ql "."
+is a placeholder for IDs that the calling process already has on privilege
+check.
+For type
+.Ql uid ,
+it designates any of the process' real, effective or
+saved user IDs.
+For type
+.Ql gid ,
+its effect depends on whether flags are present.
+If none is present, it designates any of the process' real, effective or saved
+group IDs.
+If one is present, it designates any of the process' supplementary groups.
+.Ss Defaults for the Ao to Ac Part
+If the
+.Li Aq to
+part does not list a target clause with type
+.Ql uid ,
+any of the current user IDs of the calling process is accepted.
+In other words, in this case,
+.Nm
+behaves as if a target clause of:
+.Dl uid=.
+had been listed.
+.Pp
+Similarly, if the
+.Li Aq to
+part does not list a target clause with type
+.Ql gid ,
+all the groups of the calling process are assumed to be required.
+More precisely, each of the desired real, effective and saved group IDs must be
+one of the current real, effective or saved group ID, and all supplementary
+groups must be the same as those that are current.
+It is as if the
+.Li Aq to
+part had contained the following two clauses:
+.Dl gid=.,!gid=.
+.Ss Non-Redundancy and Non-Contradiction in a Ao to Ac Part
+No two target clauses of a single rule may express the exact same logical intent
+nor contradictory ones.
+.Pp
+In practice, no two clauses may display the same ID except for group IDs but
+only if, each time the same ID appears, it does so with a different flag, or no
+flags only once.
+Additionally, the specified flags in multiple occurences must not be
+contradictory.
+For example, the same group ID appearing with both
+.Ql +
+and
+.Ql -
+will cause rejection of the rule.
+.Ss Parsing Specifics
+Any amount of whitespace is allowed around tokens of the above grammar, except
+that there may be no spaces between
+.Li Aq flags
+and
+.Li Aq id
+in target clauses.
+.Pp
+For convenience, numerical IDs may be specified as negative integers, which are
+then converted to unsigned ones as specified in the C standard for the
+.Vt uid_t
+and
+.Vt gid_t
+types, which are both 64-bit unsigned integers.
+.Sh RUNTIME CONFIGURATION
+The following
+.Xr sysctl 8
+knobs are available:
+.Bl -tag -width indent
+.It Va security.mac.do.enabled
+Enable the
+.Nm
+policy.
+(Default: 1).
+.It Va security.mac.do.rules
+The list of credential rules, whose syntax is described in the
+.Sx CREDENTIALS RULES
+section above.
+This list is specific to each jail.
+Please see the
+.Sx JAIL SUPPORT
+section below for more details on the interaction of
+.Nm
+with jails.
+.It Va security.mac.do.print_parse_error
+Logs a message on trying to set incorrect rules via the
+.Va security.mac.do.rules
+.Xr sysctl 8
+knob.
+.El
+.Sh JAIL SUPPORT
+.Nm
+supports per-jail configuration of rules.
+.Pp
+By default, at creation, a new jail has no credentials rules, effectively
+disabling
+.Nm
+for its processes.
+.Pp
+The following jail parameters are defined:
+.Bl -tag -width indent
+.It Va mac.do
+Possible values are:
+.Bl -tag -width "'disable'" -compact
+.It Ql enable
+.Nm
+will enforce specific credential rules in the jail.
+The
+.Va mac.do.rules
+jail parameter must also be set in this case.
+.It Ql disable
+Disables
+.Nm
+in the jail.
+Strictly equivalent to jail creation's default behavior and to setting the rules
+to an empty string.
+.It Ql inherit
+The jail's credentials rules are inherited from the jail's parent
+.Pq which may themselves have been inherited .
+Modified rules propagate to all children jails configured for inheritance.
+.El
+.It Va mac.do.rules
+The credentials rules for the jail.
+It is always equal to the value that can be retrieved by the
+.Xr sysctl 8
+knob
+.Va security.mac.do.rules
+described in section
+.Sx RUNTIME CONFIGURATION .
+If set, and the jail parameter
+.Va mac.do
+is not so explicitly, the value of the latter will default to
+.Ql disable
+if empty, else to
+.Ql enable .
+.El
+.Pp
+Each jail must have
+.Xr mdo 1
+installed at path
+.Pa /usr/bin/mdo ,
+as this path is currently not configurable.
+.Sh EXAMPLES
+Here are several examples of single rules matching processes having a real user
+ID of 10001:
+.Bl -tag -width indent
+.It Li uid=10001>uid=10002
+Allows the process to switch all of its real, effective or saved user ID to
+10002, but keeping the groups it is already in, and with the same
+primary/supplementary groups split.
+.It Li uid=10001>uid=10002,uid=10003
+Same as the first example, but also allows to switch to UID 10003 instead of
+10002, or possibly having both in different user IDs.
+.It Li uid=10001>uid=10002,gid=10002
+Same as the first example, but the new primary groups must be set to 10002 and
+no supplementary groups should be set.
+.It Li uid=10001>uid=10002,gid=10002,+gid=.\&
+Same as the previous example, but in addition allowing to retain any current
+supplementary groups.
+.It Li uid=10001>uid=10002,gid=10002,!gid=.\&
+Same as the previous example, but with the additional constraint that all
+current supplementary groups must be kept.
+.It Li uid=10001>uid=10002,gid=10002,+gid=.,-gid=10001
+Same as
+.Ql uid=10001>uid=10002,gid=10002,+gid=.\&
+above, but 10001 cannot be retained as a supplementary group.
+.It Li uid=10001>uid=10002,gid=10002,+gid=.,!gid=10003
+Same as
+.Ql uid=10001>uid=10002,gid=10002,+gid=.\&
+above, with the additional constraint that 10003 must appear in the
+supplementary groups.
+.It Li uid=10001>uid=10002,gid=*,+gid=*
+Same as the first example, but lifting any constraints on groups, allowing the
+process to become part of any groups it sees fit.
+.El
+.Pp
+Here are several examples of single rules matching processes having a real group
+ID of 10001:
+.Bl -tag -width indent
+.It Li gid=10001>uid=0
+Makes 10001 a more powerful
+.Ql wheel
+group, allowing its members to switch to root without password.
+.It Li gid=10001>gid=10002
+Allows the process to enter GID 10002 as a primary group, but only if
+giving up all its supplementary groups.
+.It Li gid=10001>gid=10002,+gid=.\&
+Same as the previous example, but allows to retain any current supplementary
+groups.
+.It Li gid=10001>gid=10002,!gid=.\&
+Same as the previous example, but with the additional constraint that all
+current supplementary groups must be kept.
+.El
+.Sh SEE ALSO
+.Xr mdo 1 ,
+.Xr setcred 2 ,
+.Xr mac 4 ,
+.Xr jail 8 ,
+.Xr sysctl 8
+.Sh AUTHORS
+.An Olivier Certner Aq Mt olce@FreeBSD.org
+.An Baptiste Daroussin Aq Mt bapt@FreeBSD.org
+.Sh BUGS
+Currently,
+.Nm
+considers only credentials transitions requested through the
+.Xr setcred 2
+system call.
+This system call was in large part created so that
+.Nm
+can see whole credentials transitions to decide whether to authorize them, which
+the traditional UNIX's piecewise approach of successively changing different
+parts of them cannot allow.
+.Pp
+However, calls to traditional or standard credentials-changing functions can be
+considered as full transitions on their own, however limited, and as such should
+be equally monitored by
+.Nm .
+Future work will lift this restriction.
+.Sh SECURITY CONSIDERATIONS
+The threat model for
+.Nm
+is to consider userland programs as generally untrustable to decide upon which
+credentials changes are acceptable.
+It is in contrast with the traditional UNIX way to change credentials, in which
+specialized programs are installed with the setuid bit, giving them full
+administrator privileges so that they are effectively able to establish new
+ones.
+Vulnerabilities in such credentials-changing programs can have catastrophic
+consequences on the integrity of the system.
+.Pp
+Consequently,
+.Nm
+does not rely on companion userland programs to decide whether some credentials
+transition is acceptable.
+Instead, it maintains its own configuration independently from the userland
+password and group databases.
+Establishing this configuration currently itself relies on userland programs
+issuing calls to
+.Xr sysctl 3
+or
+.Xr jail 2 .
+It should thus be established near system boot or jail start, before any
+possible attacks could happen on the system, and further measures should be
+taken to ensure that potential corruptions does not affect the configuration in
+subsequent restarts, such as re-establishing pristine state or ensuring that the
+boot procedure up to the configuration of
+.Nm
+can be trusted.
diff --git a/share/man/man4/man4.aarch64/Makefile b/share/man/man4/man4.aarch64/Makefile
index a0161f8f4900..0e85aab8b770 100644
--- a/share/man/man4/man4.aarch64/Makefile
+++ b/share/man/man4/man4.aarch64/Makefile
@@ -1,4 +1,3 @@
-
.PATH: ${.CURDIR}/../man4.arm # Some manpages are common to arm and aarch64
MAN= \
@@ -7,6 +6,7 @@ MAN= \
felix.4 \
rk_gpio.4 \
rk_grf.4 \
+ rk_grf_gpio.4 \
rk_i2c.4 \
rk_pinctrl.4 \
diff --git a/share/man/man4/man4.aarch64/rk_gpio.4 b/share/man/man4/man4.aarch64/rk_gpio.4
index 69bcb1671f85..b5648662cf5e 100644
--- a/share/man/man4/man4.aarch64/rk_gpio.4
+++ b/share/man/man4/man4.aarch64/rk_gpio.4
@@ -47,7 +47,7 @@ rockchip,gpio-bank
.El
.Sh SEE ALSO
.Xr gpiobus 4 ,
-.Xr gpioctl 8 ,
+.Xr gpioctl 8
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/man4.aarch64/rk_grf_gpio.4 b/share/man/man4/man4.aarch64/rk_grf_gpio.4
new file mode 100644
index 000000000000..6a5ebbe19e3b
--- /dev/null
+++ b/share/man/man4/man4.aarch64/rk_grf_gpio.4
@@ -0,0 +1,42 @@
+.\"
+.\" Copyright (c) 2025 Stephen Hurd <shurd@freebsd.org>
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd March 18, 2025
+.Dt RK_GRF_GPIO 4
+.Os
+.Sh NAME
+.Nm rk_grf_gpio
+.Nd RockChip GPIO_MUTE pin driver
+.Sh SYNOPSIS
+.Cd "options SOC_ROCKCHIP_rk3328"
+.Sh DESCRIPTION
+The
+.Nm
+driver provides a single-pin, output-only
+.Xr gpio 3
+unit whose single pin is named GPIO_MUTE.
+This controls the output of the GPIO_MUTE pin on the SoC.
+.Pp
+This gpio is usually used to control another device on the board,
+so is not usually available for user software.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following GRF GPIO controller:
+.Pp
+.Bl -bullet -compact
+.It
+rockchip,rk3328-grf-gpio
+.El
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+The
+.Nm
+driver and manual were written by
+.An Stephen Hurd Aq Mt shurd@freebsd.org .
diff --git a/share/man/man4/man4.aarch64/rk_i2c.4 b/share/man/man4/man4.aarch64/rk_i2c.4
index f30b510e7655..be1a0fab943e 100644
--- a/share/man/man4/man4.aarch64/rk_i2c.4
+++ b/share/man/man4/man4.aarch64/rk_i2c.4
@@ -49,7 +49,7 @@ rockchip,rk3328-i2c
.El
.Sh SEE ALSO
.Xr iic 4 ,
-.Xr iicbus 4 ,
+.Xr iicbus 4
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/man4.aarch64/rk_pinctrl.4 b/share/man/man4/man4.aarch64/rk_pinctrl.4
index c196c00d52b7..519b3e793cd1 100644
--- a/share/man/man4/man4.aarch64/rk_pinctrl.4
+++ b/share/man/man4/man4.aarch64/rk_pinctrl.4
@@ -46,7 +46,7 @@ compatible strings :
rockchip,rk3328-pinctrl
.El
.Sh SEE ALSO
-.Xr fdt_pinctrl 4 ,
+.Xr fdt_pinctrl 4
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/man4.arm/Makefile b/share/man/man4/man4.arm/Makefile
index e2a41559410b..6b046a1002a2 100644
--- a/share/man/man4/man4.arm/Makefile
+++ b/share/man/man4/man4.arm/Makefile
@@ -1,5 +1,5 @@
-
MAN= \
+ ar40xx.4 \
aw_gpio.4 \
aw_mmc.4 \
aw_rtc.4 \
diff --git a/share/man/man4/man4.arm/ar40xx.4 b/share/man/man4/man4.arm/ar40xx.4
new file mode 100644
index 000000000000..e314d30dd4c6
--- /dev/null
+++ b/share/man/man4/man4.arm/ar40xx.4
@@ -0,0 +1,35 @@
+.\"
+.\" Copyright (c) 2025 Alexander Ziaee
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd May 10, 2025
+.Dt AR40XX 4 arm
+.Sh NAME
+.Nm ar40xx_switch
+.Nd Qualcomm IPQ4018/IPQ4019 Gigabit Ethernet switch driver
+.Sh SYNOPSIS
+.Cd device mdio
+.Cd etherswitch
+.Cd ar40xx_switch
+.Sh DESCRIPTION
+The
+.Nm
+driver supports the Gigabit Ethernet switch inside the
+Qualcomm IPQ4018/IPQ4019 SoC.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following Gigabit Ethernet switch controllers:
+.Pp
+.Bl -bullet -compact
+.It
+Qualcomm IPQ 4019 Five-port Gigabit Ethernet Switch
+.It
+Qualcomm IPQ 4018 Five-port Gigabit Ethernet Switch
+.El
+.Sh SEE ALSO
+.Xr etherswitch 4 ,
+.Xr etherswitchcfg 8
+.Sh CAVEATS
+This driver currently only supports L2 port/VLAN mapping modes.
diff --git a/share/man/man4/man4.arm/aw_gpio.4 b/share/man/man4/man4.arm/aw_gpio.4
index 3d72e82b3efc..5cbc7562d9bd 100644
--- a/share/man/man4/man4.arm/aw_gpio.4
+++ b/share/man/man4/man4.arm/aw_gpio.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd Dec 25, 2017
+.Dd October 8, 2024
.Dt AW_GPIO 4
.Os
.Sh NAME
@@ -41,6 +41,7 @@
.Cd "options SOC_ALLWINNER_H3"
.Cd "options SOC_ALLWINNER_A64"
.Cd "options SOC_ALLWINNER_H5"
+.Cd "options SOC_ALLWINNER_D1"
.Sh DESCRIPTION
The
.Nm
@@ -81,6 +82,8 @@ allwinner,sun8i-h3-r-pinctrl
allwinner,sun50i-a64-pinctrl
.It
allwinner,sun50i-a64-r-pinctrl
+.It
+allwinner,sun20i-d1-pinctrl
.El
.Sh SEE ALSO
.Xr fdt 4 ,
diff --git a/share/man/man4/man4.arm/aw_rtc.4 b/share/man/man4/man4.arm/aw_rtc.4
index 5b656ec679e4..1296cd41da68 100644
--- a/share/man/man4/man4.arm/aw_rtc.4
+++ b/share/man/man4/man4.arm/aw_rtc.4
@@ -22,12 +22,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd Dec 25, 2017
+.Dd December 10, 2024
.Dt AW_RTC 4
.Os
.Sh NAME
.Nm aw_rtc
-.Nd driver for the RTC controller in Allwinner SoC
+.Nd driver for the real-time clock (RTC) controller in Allwinner SoC
.Sh DESCRIPTION
The
.Nm
@@ -35,8 +35,8 @@ device driver provides support for the Allwinner RTC controller.
.Sh HARDWARE
The current version of the
.Nm
-driver supports the RTC controller with one of the following compatible
-strings :
+driver supports the RTC controller with any of the following compatible
+strings:
.Pp
.Bl -bullet -compact
.It
@@ -45,6 +45,14 @@ allwinner,sun4i-a10-rtc
allwinner,sun7i-a20-rtc
.It
allwinner,sun6i-a31-rtc
+.It
+allwinner,sun8i-h3-rtc
+.It
+allwinner,sun20i-d1-rtc
+.It
+allwinner,sun50i-h5-rtc
+.It
+allwinner,sun50i-h6-rtc
.El
.Sh HISTORY
The
diff --git a/share/man/man4/man4.arm/aw_sid.4 b/share/man/man4/man4.arm/aw_sid.4
index be441033d242..5cd2f3d5e072 100644
--- a/share/man/man4/man4.arm/aw_sid.4
+++ b/share/man/man4/man4.arm/aw_sid.4
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 6, 2018
+.Dd October 8, 2024
.Dt AW_SID 4
.Os
.Sh NAME
@@ -53,6 +53,10 @@ allwinner,sun50i-a64-sid
allwinner,sun8i-a83t-sid
.It
allwinner,sun8i-h3-sid
+.It
+allwinner,sun50i-h5-sid
+.It
+allwinner,sun20i-d1-sid
.El
.Sh SYSCTL VARIABLES
The following read-only variables are available via
diff --git a/share/man/man4/man4.arm/aw_syscon.4 b/share/man/man4/man4.arm/aw_syscon.4
index 034bca716bcf..e32f329e489a 100644
--- a/share/man/man4/man4.arm/aw_syscon.4
+++ b/share/man/man4/man4.arm/aw_syscon.4
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 7, 2018
+.Dd November 11, 2024
.Dt AW_SYSCON 4
.Os
.Sh NAME
@@ -48,9 +48,17 @@ strings:
.It
allwinner,sun50i-a64-system-controller
.It
+allwinner,sun50i-a64-system-control
+.It
allwinner,sun8i-a83t-system-controller
.It
allwinner,sun8i-h3-system-controller
+.It
+allwinner,sun8i-h3-system-control
+.It
+allwinner,sun50i-h5-system-control
+.It
+allwinner,sun20i-d1-system-control
.El
.Sh AUTHORS
The
diff --git a/share/man/man4/man4.arm/imx6_ahci.4 b/share/man/man4/man4.arm/imx6_ahci.4
index cfe8a87deb6f..9979cef50d79 100644
--- a/share/man/man4/man4.arm/imx6_ahci.4
+++ b/share/man/man4/man4.arm/imx6_ahci.4
@@ -55,7 +55,7 @@ data and marshall resources for the standard
driver.
.Sh SEE ALSO
.Xr ahci 4 ,
-.Xr fdt 4 ,
+.Xr fdt 4
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/man4.i386/Makefile b/share/man/man4/man4.i386/Makefile
index f84f0797a62c..ad9b3a01828c 100644
--- a/share/man/man4/man4.i386/Makefile
+++ b/share/man/man4/man4.i386/Makefile
@@ -1,4 +1,3 @@
-
MAN= apm.4 \
CPU_ELAN.4 \
glxiic.4 \
diff --git a/share/man/man4/man4.powerpc/Makefile b/share/man/man4/man4.powerpc/Makefile
index dbc133cc985b..1762bf17b50d 100644
--- a/share/man/man4/man4.powerpc/Makefile
+++ b/share/man/man4/man4.powerpc/Makefile
@@ -1,4 +1,3 @@
-
MAN= adb.4 \
akbd.4 \
abtn.4 \
diff --git a/share/man/man4/md.4 b/share/man/man4/md.4
index acd52aecb675..1da26ddda037 100644
--- a/share/man/man4/md.4
+++ b/share/man/man4/md.4
@@ -5,7 +5,7 @@
.\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
.\" ----------------------------------------------------------------------------
.\"
-.Dd January 8, 2020
+.Dd July 16, 2025
.Dt MD 4
.Os
.Sh NAME
@@ -98,7 +98,7 @@ disk found in the
man page.
Other tools will also create these images, such as NanoBSD.
.Sh ARM KERNEL OPTIONS
-On armv6 and armv7 architectures, an MD_ROOT image larger than
+On the armv7 architecture, an MD_ROOT image larger than
approximately 55 MiB may require building a custom kernel using
several tuning options related to kernel memory usage.
.Bl -tag -width indent
@@ -158,7 +158,7 @@ installation process.
The
.Nm
driver did a hostile takeover of the
-.Xr vn 4
+.Sy vn
driver in
.Fx 5.0 .
.Sh AUTHORS
diff --git a/share/man/man4/mem.4 b/share/man/man4/mem.4
index 68969d281532..595cb8a60e5f 100644
--- a/share/man/man4/mem.4
+++ b/share/man/man4/mem.4
@@ -198,7 +198,6 @@ should be set to
to update an existing or establish a new range, or to
.Dv MEMRANGE_SET_REMOVE
to remove a range.
-.El
.Ss Live Kernel Dumps
.Pp
The
diff --git a/share/man/man4/mlx.4 b/share/man/man4/mlx.4
index f7a0d64e9e73..4b9ab7070d72 100644
--- a/share/man/man4/mlx.4
+++ b/share/man/man4/mlx.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2003 David O'Brien
.\" Copyright (c) 2000 Jeroen Ruigrok van der Werven
.\" Copyright (c) 2000 Michael Smith
@@ -23,12 +25,12 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 15, 2017
+.Dd May 27, 2025
.Dt MLX 4
.Os
.Sh NAME
.Nm mlx
-.Nd Mylex DAC-family RAID driver
+.Nd Mylex DAC-family Parallel SCSI RAID driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -50,42 +52,35 @@ The
driver provides support for Mylex DAC-family PCI to SCSI RAID controllers,
including versions relabeled by Digital/Compaq.
.Sh HARDWARE
-Controllers supported by the
+The
.Nm
-driver include:
+driver supports the following Parallel SCSI RAID controllers:
.Pp
.Bl -bullet -compact
.It
-Mylex DAC960P
+Mylex DAC960P (Wide Fast SCSI-2)
.It
-Mylex DAC960PD / DEC KZPSC (Fast Wide)
+Mylex DAC960PD / DEC KZPSC (Wide Fast SCSI-2)
.It
-Mylex DAC960PDU
+Mylex DAC960PDU (Ultra SCSI-3)
.It
-Mylex DAC960PL
+Mylex DAC960PL (Wide Fast SCSI-2)
.It
-Mylex DAC960PJ
+Mylex DAC960PJ (Wide Ultra SCSI-3)
.It
-Mylex DAC960PG
+Mylex DAC960PG (Wide Ultra SCSI-3)
.It
-Mylex DAC960PU / DEC PZPAC (Ultra Wide)
+Mylex DAC960PU / DEC PZPAC (Wide Ultra SCSI-3)
.It
-Mylex AcceleRAID 150 (DAC960PRL)
+Mylex AcceleRAID 150 (DAC960PRL) (Wide Ultra2 SCSI)
.It
-Mylex AcceleRAID 250 (DAC960PTL1)
+Mylex AcceleRAID 250 (DAC960PTL1) (Wide Ultra2 SCSI)
.It
-Mylex eXtremeRAID 1100 (DAC1164P)
+Mylex eXtremeRAID 1100 (DAC1164P) (Wide Ultra2 SCSI)
.It
RAIDarray 230 controllers, aka the Ultra-SCSI DEC KZPAC-AA (1-ch, 4MB
cache), KZPAC-CA (3-ch, 4MB), KZPAC-CB (3-ch, 8MB cache)
.El
-.Pp
-All major firmware revisions (2.x, 3.x, 4.x and 5.x) are supported, however
-it is always advisable to upgrade to the most recent firmware
-available for the controller.
-.Pp
-Compatible Mylex controllers not listed should work, but have not been
-verified.
.Sh DIAGNOSTICS
.Ss Controller initialisation phase
.Bl -diag
@@ -146,7 +141,6 @@ controller.
The current status of all system drives could not be fetched; attachment
of system drives will be aborted.
.It mlx%d: device_add_child failed
-.It mlx%d: bus_generic_attach returned %d
.Pp
Creation of the system drive instances failed; attachment of one or more
system drives may have been aborted.
diff --git a/share/man/man4/mlx5io.4 b/share/man/man4/mlx5io.4
index 66a767d97d31..ebfbb41a0823 100644
--- a/share/man/man4/mlx5io.4
+++ b/share/man/man4/mlx5io.4
@@ -172,7 +172,7 @@ field reports the third page validity.
.Sh FILES
The
.Pa /dev/mlx5ctl
-.Xr devfs 5
+.Xr devfs 4
node is used to pass commands to the driver.
.Sh RETURN VALUES
If successful, the IOCTL returns zero.
diff --git a/share/man/man4/mpi3mr.4 b/share/man/man4/mpi3mr.4
index 981979e37187..f07ce13d2f23 100644
--- a/share/man/man4/mpi3mr.4
+++ b/share/man/man4/mpi3mr.4
@@ -64,7 +64,7 @@ Broadcom Ltd. 9600-8i8e 24G PCIe 4.0 Tri-Mode RAID Adapters
.Xr mpr 4 ,
.Xr pci 4 ,
.Xr sa 4 ,
-.Xr scsi 4 .
+.Xr scsi 4
.Sh HISTORY
The
.Nm
diff --git a/share/man/man5/mqueuefs.5 b/share/man/man4/mqueuefs.4
index 7be49a816968..384a3e3e6546 100644
--- a/share/man/man5/mqueuefs.5
+++ b/share/man/man4/mqueuefs.4
@@ -26,7 +26,7 @@
.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd November 30, 2005
-.Dt MQUEUEFS 5
+.Dt MQUEUEFS 4
.Os
.Sh NAME
.Nm mqueuefs
diff --git a/share/man/man5/msdosfs.5 b/share/man/man4/msdosfs.4
index 2856b4b5cc82..d823934dcfd1 100644
--- a/share/man/man5/msdosfs.5
+++ b/share/man/man4/msdosfs.4
@@ -2,11 +2,11 @@
.\" This file is in the public domain.
.\"
.Dd September 27, 2018
-.Dt MSDOSFS 5
+.Dt MSDOSFS 4
.Os
.Sh NAME
.Nm msdosfs
-.Nd MS-DOS file system
+.Nd MS-DOS (FAT) file system
.Sh SYNOPSIS
.Cd "options MSDOSFS"
.Sh DESCRIPTION
@@ -65,8 +65,10 @@ may also be used to extract this information.
.Sh SEE ALSO
.Xr mount 2 ,
.Xr unmount 2 ,
+.Xr fsck_msdosfs 8 ,
.Xr mount 8 ,
.Xr mount_msdosfs 8 ,
+.Xr newfs_msdos 8 ,
.Xr umount 8
.Sh AUTHORS
This manual page was written by
diff --git a/share/man/man4/mt7915.4 b/share/man/man4/mt7915.4
index fa5fd626d870..ba67a77af735 100644
--- a/share/man/man4/mt7915.4
+++ b/share/man/man4/mt7915.4
@@ -1,5 +1,7 @@
.\"-
-.\" Copyright (c) 2023 Bjoern A. Zeeb
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2023-2024 Bjoern A. Zeeb
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -22,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 18, 2023
+.Dd November 10, 2024
.Dt MT7915 4
.Os
.Sh NAME
@@ -50,12 +52,9 @@ It is discouraged to load the driver from
.Sh DESCRIPTION
The
.Nm
-driver is derived from MediaTek's Linux mt76 driver and provides support for
-the following chipsets:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It MediaTek MT7915E (PCIe)
-.El
+driver provides support for MediaTek MT7915E wireless network devices.
+.Nm
+is derived from MediaTek's Linux mt76 driver.
.Pp
This driver requires firmware to be loaded before it will work.
The package
@@ -67,28 +66,34 @@ Otherwise no
.Xr wlan 4
interface can be created using
.Xr ifconfig 8 .
+One can use
+.Xr fwget 8
+to install the correct firmware package.
.Pp
The driver uses the
.\" No LinuxKPI man pages so no .Xr here.
-.Em linuxkpi_wlan
+.Sy linuxkpi_wlan
and
-.Em linuxkpi
+.Sy linuxkpi
compat framework to bridge between the Linux and
native
.Fx
driver code as well as to the native
.Xr net80211 4
wireless stack.
-.Pp
-While
+.Sh HARDWARE
+The
.Nm
-supports all 802.11 a/b/g/n/ac and ax
-the compatibility code currently only supports 802.11 a/b/g modes.
-Support for 802.11 n/ac is to come.
-.Sh BUGS
-Certainly.
+driver supports PCIe devices with the following chipsets:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+MediaTek MT7915E
+.El
.Sh SEE ALSO
.Xr wlan 4 ,
+.Xr networking 7 ,
+.Xr fwget 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh HISTORY
@@ -96,3 +101,11 @@ The
.Nm
driver first appeared in
.Fx 14.0 .
+.Sh BUGS
+Certainly.
+.Pp
+While
+.Nm
+supports 802.11a/b/g/n/ac/ax modes,
+the compatibility code currently only supports 802.11a/b/g modes.
+Support for 802.11n/ac/ax is yet to come.
diff --git a/share/man/man4/mt7921.4 b/share/man/man4/mt7921.4
index 460c90ece808..fe9efa77e35d 100644
--- a/share/man/man4/mt7921.4
+++ b/share/man/man4/mt7921.4
@@ -1,5 +1,7 @@
.\"-
-.\" Copyright (c) 2023 Bjoern A. Zeeb
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2023-2024 Bjoern A. Zeeb
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -22,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 18, 2023
+.Dd November 10, 2024
.Dt MT7921 4
.Os
.Sh NAME
@@ -50,12 +52,9 @@ It is discouraged to load the driver from
.Sh DESCRIPTION
The
.Nm
-driver is derived from MediaTek's Linux mt76 driver and provides support for
-the following chipsets:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It MediaTek MT7921E (PCIe)
-.El
+driver provides support for MediaTek MT7921E wireless network devices.
+.Nm
+is derived from MediaTek's Linux mt76 driver.
.Pp
This driver requires firmware to be loaded before it will work.
The package
@@ -67,28 +66,34 @@ Otherwise no
.Xr wlan 4
interface can be created using
.Xr ifconfig 8 .
+One can use
+.Xr fwget 8
+to install the correct firmware package.
.Pp
The driver uses the
.\" No LinuxKPI man pages so no .Xr here.
-.Em linuxkpi_wlan
+.Sy linuxkpi_wlan
and
-.Em linuxkpi
+.Sy linuxkpi
compat framework to bridge between the Linux and
native
.Fx
driver code as well as to the native
.Xr net80211 4
wireless stack.
-.Pp
-While
+.Sh HARDWARE
+The
.Nm
-supports all 802.11 a/b/g/n/ac and ax
-the compatibility code currently only supports 802.11 a/b/g modes.
-Support for 802.11 n/ac is to come.
-.Sh BUGS
-Certainly.
+driver supports PCIe devices with the following chipsets:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+MediaTek MT7921E
+.El
.Sh SEE ALSO
.Xr wlan 4 ,
+.Xr networking 7 ,
+.Xr fwget 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh HISTORY
@@ -96,3 +101,11 @@ The
.Nm
driver first appeared in
.Fx 14.0 .
+.Sh BUGS
+Certainly.
+.Pp
+While
+.Nm
+supports 802.11a/b/g/n/ac/ax modes,
+the compatibility code currently only supports 802.11a/b/g modes.
+Support for 802.11n/ac/ax is to come.
diff --git a/share/man/man4/mtkswitch.4 b/share/man/man4/mtkswitch.4
new file mode 100644
index 000000000000..c879df161791
--- /dev/null
+++ b/share/man/man4/mtkswitch.4
@@ -0,0 +1,45 @@
+.\"
+.\" Copyright (c) 2025 Alexander Ziaee
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd May 19, 2025
+.Dt MTKSWITCH 4
+.Sh NAME
+.Nm mtkswitch
+.Nd MediaTek/Ralink Ethernet switch driver
+.Sh SYNOPSIS
+.Cd device mdio
+.Cd device etherswitch
+.Cd device mtkswitch
+.Sh DESCRIPTION
+The
+.Nm
+driver supports MediaTek/Ralink Ethernet switch controllers.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following Ethernet switch controllers:
+.Pp
+.Bl -bullet -compact
+.It
+MediaTek MT7628 (5 port Fast Ethernet)
+.It
+MediaTek MT7621 (5 port Gigabit Ethernet)
+.It
+MediaTek MT7620 (5 port Fast Ethernet)
+.It
+Ralink RT5350 (5 port Fast Ethernet)
+.It
+Ralink RT3352 (5 port Fast Ethernet)
+.It
+Ralink RT3050 (5 port Fast Ethernet)
+.El
+.Sh SEE ALSO
+.Xr etherswitch 4 ,
+.Xr etherswitchcfg 8
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Fx 11.0 .
diff --git a/share/man/man4/mtw.4 b/share/man/man4/mtw.4
new file mode 100644
index 000000000000..6aa59d848d36
--- /dev/null
+++ b/share/man/man4/mtw.4
@@ -0,0 +1,118 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2024 Jesper Schmitz Mouridsen <jsm@freebsd.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd May 3, 2025
+.Dt MTW 4
+.Os
+.Sh NAME
+.Nm mtw
+.Nd MediaTek MT7601U USB IEEE 802.11n wireless network driver
+.Sh SYNOPSIS
+.Cd device usb
+.Cd device mtw
+.Cd device wlan
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd kld_list="if_mtw"
+.Sh DESCRIPTION
+This module provides support for
+MediaTek MT7601U USB wireless network adapters.
+If the appropriate hardware is detected,
+the driver will be automatically loaded with
+.Xr devmatch 8 .
+If driver autoloading is explicitly disabled, enable the module in
+.Xr rc.conf 5 .
+The
+.Nm
+driver can be configured at runtime with
+.Xr ifconfig 8
+or at boot with
+.Xr rc.conf 5 .
+.Sh HARDWARE
+The
+.Nm
+driver supports MediaTek MT7601U based USB wireless network adapters
+including (but not all of them tested):
+.Pp
+.Bl -bullet -compact
+.It
+ASUS USB-N10 v2
+.It
+D-Link DWA-127 rev B1
+.It
+Edimax EW-7711UAn v2
+.It
+Foxconn WFU03
+.It
+Tenda U2
+.It
+Tenda W311MI v2
+.It
+TP-LINK TL-WN727N v4 (tested working)
+.It
+Yealink WF40
+.El
+.Sh FILES
+The
+.Nm
+driver requires firmware from
+.Pa ports/net/wifi-firmware-mt7601u-kmod .
+This firmware package will be installed automatically with
+.Xr fwget 8
+if the appropriate hardware is detected at installation or runtime.
+.Sh SEE ALSO
+.Xr usb 4 ,
+.Xr wlan 4 ,
+.Xr networking 7 ,
+.Xr fwget 8 ,
+.Xr wpa_supplicant 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Ox 7.1
+and
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An James Hastings Aq Mt hastings@openbsd.org
+and ported to
+.Fx
+by
+.An Jesper Schmitz Mouridsen Aq Mt jsm@FreeBSD.org .
+.Sh BUGS
+.Nm
+only works in
+.Cm station
+mode and
+.Cm monitor
+mode.
+The firmware does not always reinitialize when reloading the module,
+or when rebooting, without first unplugging the device.
diff --git a/share/man/man4/mx25l.4 b/share/man/man4/mx25l.4
index ff2e78a8c5aa..5dffdebcf43e 100644
--- a/share/man/man4/mx25l.4
+++ b/share/man/man4/mx25l.4
@@ -22,7 +22,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 26, 2019
+.Dd June 11, 2024
.Dt MX25L 4
.Os
.Sh NAME
@@ -60,7 +60,7 @@ such as block size, sector size, and device capacity.
When a supported device is found, the
.Nm
driver creates a disk device and makes it accessible at
-.Pa /dev/flash/mx25l? .
+.Pa /dev/flash/spi? .
The new disk device is then tasted by the available
.Xr geom 4
modules as with any disk device.
@@ -189,13 +189,9 @@ Set the high bit (1 << 31) to invert the logic level of the chip select line.
The SPI mode (0-3) to use when communicating with this device.
.El
.Sh FILES
-.Bl -tag -width /dev/flash/mx25l?
-.It Pa /dev/flash/mx25l?
-Provides read/write access to the storage device.
+.Bl -tag -width /dev/flash/spi?
.It Pa /dev/flash/spi?
-An alias for the
-.Pa /dev/mx25l?
-device, for backwards compatibility with older versions of the driver.
+Provides read/write access to the storage device.
.El
.Sh SEE ALSO
.Xr fdt 4 ,
diff --git a/share/man/man4/netmap.4 b/share/man/man4/netmap.4
index fd713f3c384b..6be0c8662d59 100644
--- a/share/man/man4/netmap.4
+++ b/share/man/man4/netmap.4
@@ -25,7 +25,7 @@
.\" This document is derived in part from the enet man page (enet.4)
.\" distributed with 4.3BSD Unix.
.\"
-.Dd March 6, 2022
+.Dd October 10, 2024
.Dt NETMAP 4
.Os
.Sh NAME
@@ -827,7 +827,7 @@ On
.Xr em 4 ,
.Xr iflib 4
.Pq providing Xr igb 4 and Xr em 4 ,
-.Xr ixgbe 4 ,
+.Xr ix 4 ,
.Xr ixl 4 ,
.Xr re 4 ,
.Xr vtnet 4 .
@@ -938,6 +938,16 @@ switches that can be created. This tunable can be specified
at loader time.
.It Va dev.netmap.ptnet_vnet_hdr: 1
Allow ptnet devices to use virtio-net headers
+.It Va dev.netmap.port_numa_affinity: 0
+On
+.Xr numa 4
+systems, allocate memory for netmap ports from the local NUMA domain when
+possible.
+This can improve performance by reducing the number of remote memory accesses.
+However, when forwarding packets between ports attached to different NUMA
+domains, this will prevent zero-copy forwarding optimizations and thus may hurt
+performance.
+Note that this setting must be specified as a loader tunable at boot time.
.El
.Sh SYSTEM CALLS
.Nm
@@ -1113,10 +1123,10 @@ with the network card or the host.
.Sh SEE ALSO
.Xr vale 4 ,
.Xr bridge 8 ,
-.Xr valectl 8 ,
.Xr lb 8 ,
.Xr nmreplay 8 ,
-.Xr pkt-gen 8
+.Xr pkt-gen 8 ,
+.Xr valectl 8
.Pp
.Pa http://info.iet.unipi.it/~luigi/netmap/
.Pp
diff --git a/share/man/man4/nfslockd.4 b/share/man/man4/nfslockd.4
new file mode 100644
index 000000000000..770d9b8736b0
--- /dev/null
+++ b/share/man/man4/nfslockd.4
@@ -0,0 +1,45 @@
+.\"-
+.\" Copyright (c) 2024 Dag-Erling Smørgrav
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd May 8, 2024
+.Dt NFSLOCKD 4
+.Os
+.Sh NAME
+.Nm nfslockd
+.Nd NFS advisory locking
+.Sh SYNOPSIS
+To compile this driver into the kernel, place the following lines in
+your kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "options NFSLOCKD"
+.Ed
+.Pp
+Alternatively, to load the driver as a module at boot time, place the
+following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+nfslockd_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides kernel support for NFSv3 advisory locking.
+It works in tandem with
+.Xr rpc.lockd 8 ,
+which will normally load it on startup if it is not already loaded or
+compiled-in.
+.Sh SEE ALSO
+.Xr rpc.lockd 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 6.4 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Doug Rabson Aq Mt dfr@FreeBSD.org .
diff --git a/share/man/man4/ng_iface.4 b/share/man/man4/ng_iface.4
index 0579028b4c74..e2dee22b67b9 100644
--- a/share/man/man4/ng_iface.4
+++ b/share/man/man4/ng_iface.4
@@ -153,8 +153,8 @@ to the desired level of nesting.
.Xr netgraph 4 ,
.Xr ng_cisco 4 ,
.Xr ifconfig 8 ,
-.Xr ngctl 8
-.Xr sysctl
+.Xr ngctl 8 ,
+.Xr sysctl 8
.Sh HISTORY
The
.Nm iface
diff --git a/share/man/man4/ng_ksocket.4 b/share/man/man4/ng_ksocket.4
index 1f32d39dc7d0..bb653c3688ad 100644
--- a/share/man/man4/ng_ksocket.4
+++ b/share/man/man4/ng_ksocket.4
@@ -32,7 +32,7 @@
.\"
.\" Author: Archie Cobbs <archie@FreeBSD.org>
.\"
-.Dd January 9, 2012
+.Dd January 9, 2025
.Dt NG_KSOCKET 4
.Os
.Sh NAME
@@ -183,7 +183,8 @@ in the argument field, the normal
equivalent of the C structure
is an acceptable form.
For the
-.Dv PF_INET
+.Dv PF_INET ,
+.Dv PF_INET6
and
.Dv PF_LOCAL
address families, a more convenient form is also used, which is
@@ -191,7 +192,11 @@ the protocol family name, followed by a slash, followed by the actual
address.
For
.Dv PF_INET ,
-the address is an IP address followed by an optional colon and port number.
+the address is an IPv4 address followed by an optional colon and port number.
+For
+.Dv PF_INET6 ,
+the address is an IPv6 address enclosed in square brackets followed
+by an optional colon and port number.
For
.Dv PF_LOCAL ,
the address is the pathname as a doubly quoted string.
@@ -202,6 +207,8 @@ Examples:
local/"/tmp/foo.socket"
.It Dv PF_INET
inet/192.168.1.1:1234
+.It Dv PF_INET6
+inet6/[2001::1]:1234
.It Other
.Dv "\&{ family=16 len=16 data=[0x70 0x00 0x01 0x23] \&}"
.El
diff --git a/share/man/man4/ng_nat.4 b/share/man/man4/ng_nat.4
index 10615b3b387d..20042db7a1af 100644
--- a/share/man/man4/ng_nat.4
+++ b/share/man/man4/ng_nat.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 24, 2021
+.Dd December 6, 2024
.Dt NG_NAT 4
.Os
.Sh NAME
@@ -74,6 +74,7 @@ struct ng_nat_mode {
#define NG_NAT_PROXY_ONLY 0x40
#define NG_NAT_REVERSE 0x80
#define NG_NAT_UNREGISTERED_CGN 0x100
+#define NG_NAT_UDP_EIM 0x200
.Ed
.Pp
The corresponding libalias flags can be found by replacing the
@@ -265,7 +266,7 @@ In case of
.Nm
failed to retrieve a certain counter
from its
-.Xr libalias
+.Xr libalias 3
instance, the corresponding field is returned as
.Va UINT32_MAX .
.It Dv NGM_NAT_SET_DLT Pq Ic setdlt
@@ -396,8 +397,8 @@ SEQ
.Xr libalias 3 ,
.Xr ng_ipfw 4 ,
.Xr natd 8 ,
-.Xr ngctl 8 ,
-.Xr ng_ether 8
+.Xr ng_ether 8 ,
+.Xr ngctl 8
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/ng_one2many.4 b/share/man/man4/ng_one2many.4
index 8a73c51d2bcf..06bcbabedb63 100644
--- a/share/man/man4/ng_one2many.4
+++ b/share/man/man4/ng_one2many.4
@@ -250,6 +250,7 @@ With a similar setup on a peer machine (using the address
Ethernet connection with four times normal bandwidth is
achieved.
.Sh SEE ALSO
+.Xr lagg 4 ,
.Xr netgraph 4 ,
.Xr ng_bridge 4 ,
.Xr ng_ether 4 ,
diff --git a/share/man/man4/ng_patch.4 b/share/man/man4/ng_patch.4
index 7a8543fd7dd8..9c0d7a8ee512 100644
--- a/share/man/man4/ng_patch.4
+++ b/share/man/man4/ng_patch.4
@@ -80,7 +80,7 @@ Sets the data link type on the
.Va in
hook (to help calculate relative offset). Currently, supported types are
.Cm DLT_RAW
-(raw IP datagrams , no offset applied, the default) and
+(raw IP datagrams, no offset applied, the default) and
.Cm DLT_EN10MB
(Ethernet). DLT_ definitions can be found in
.In net/bpf.h .
@@ -135,6 +135,17 @@ corresponding checksum before transmitting packet on output interface.
The
.Nm
node does not do any checksum correction by itself.
+.Pp
+The
+.Va offset
+value for the
+.Vt ng_patch_op
+structure is calculated from zero by default (the first byte of
+packet headers).
+If
+.Va relative_offset
+is enabled (set to 1) during configuration, the operation will have an
+additional amount added to the offset based on the data link type.
.It Dv NGM_PATCH_GETCONFIG Pq Ic getconfig
This control message returns the current set of modify operations,
in the form of a
diff --git a/share/man/man4/ng_pppoe.4 b/share/man/man4/ng_pppoe.4
index 346b2bfbe279..5b5f0dd64de2 100644
--- a/share/man/man4/ng_pppoe.4
+++ b/share/man/man4/ng_pppoe.4
@@ -565,9 +565,9 @@ setup(char *ethername, char *service, char *sessname,
.Xr ng_ether 4 ,
.Xr ng_ppp 4 ,
.Xr ng_socket 4 ,
+.Xr vlan 4 ,
.Xr ngctl 8 ,
-.Xr ppp 8 ,
-.Xr vlan 4
+.Xr ppp 8
.Rs
.%A L. Mamakos
.%A K. Lidl
diff --git a/share/man/man5/nullfs.5 b/share/man/man4/nullfs.4
index 6e2c199aa3b0..5aca03071594 100644
--- a/share/man/man5/nullfs.5
+++ b/share/man/man4/nullfs.4
@@ -23,7 +23,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd March 15, 2022
-.Dt NULLFS 5
+.Dt NULLFS 4
.Os
.Sh NAME
.Nm nullfs
diff --git a/share/man/man4/nvdimm.4 b/share/man/man4/nvdimm.4
index ffeac1a673fd..5b7dbe435c46 100644
--- a/share/man/man4/nvdimm.4
+++ b/share/man/man4/nvdimm.4
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2019 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2019 The FreeBSD Foundation
.\"
.\" This documentation was written by
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
diff --git a/share/man/man4/nvme.4 b/share/man/man4/nvme.4
index 011ff483c839..dcd2ec86f5fa 100644
--- a/share/man/man4/nvme.4
+++ b/share/man/man4/nvme.4
@@ -239,6 +239,15 @@ detects that the AHCI device supports RST and when it is enabled.
See
.Xr ahci 4
for more details.
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "nvme%d: System interrupt issues?"
+The driver found a timed-out transaction had a pending completion record,
+indicating an interrupt had not been delivered.
+The system is either not configuring interrupts properly, or the system drops
+them under load.
+This message will appear at most once per boot per controller.
+.El
.Sh SEE ALSO
.Xr nda 4 ,
.Xr nvd 4 ,
diff --git a/share/man/man4/nvmf.4 b/share/man/man4/nvmf.4
index 8afbb4d9daaf..9ace67783351 100644
--- a/share/man/man4/nvmf.4
+++ b/share/man/man4/nvmf.4
@@ -3,7 +3,7 @@
.\"
.\" Copyright (c) 2024 Chelsio Communications, Inc.
.\"
-.Dd May 2, 2024
+.Dd May 7, 2025
.Dt NVMF 4
.Os
.Sh NAME
@@ -65,6 +65,28 @@ disk driver.
Associations require a supported transport such as
.Xr nvmf_tcp 4
for associations using TCP/IP.
+.Sh SYSCTL VARIABLES
+The following variables are available as both
+.Xr sysctl 8
+variables and
+.Xr loader 8
+tunables:
+.Bl -tag -width indent
+.It Va kern.nvmf.fail_on_disconnection
+Determines the behavior when an association's connection is interrupted.
+By default, input/output operations are suspended while a host is disconnected.
+This includes operations pending at the time the association's connection was
+interrupted as well as new requests submitted while the host is disconnected.
+Once a new association is established, suspended I/O requests are retried.
+When set to 1, input/output operations fail with
+.Er EIO
+while a host is disconnected and
+.Xr nda 4
+peripherals are destroyed after the first failed I/O request.
+Note that any destroyed
+.Xr nda 4
+peripherals will be recreated after a new association is established.
+.El
.Sh SEE ALSO
.Xr nda 4 ,
.Xr nvme 4 ,
@@ -82,6 +104,3 @@ The
driver was developed by
.An John Baldwin Aq Mt jhb@FreeBSD.org
under sponsorship from Chelsio Communications, Inc.
-.Sh BUGS
-.Nm
-only supports a single I/O queue pair per association.
diff --git a/share/man/man4/nvmf_tcp.4 b/share/man/man4/nvmf_tcp.4
index 4d77997c19a2..0a650e342f0e 100644
--- a/share/man/man4/nvmf_tcp.4
+++ b/share/man/man4/nvmf_tcp.4
@@ -3,7 +3,7 @@
.\"
.\" Copyright (c) 2024 Chelsio Communications, Inc.
.\"
-.Dd May 2, 2024
+.Dd July 25, 2024
.Dt NVMF_TCP 4
.Os
.Sh NAME
@@ -35,10 +35,17 @@ variables and
.Xr loader 8
tunables:
.Bl -tag -width indent
-.It Va kern.nvmf.tcp.max_c2hdata
-The maximum data payload size of a
+.It Va kern.nvmf.tcp.max_transmit_data
+The maximum data payload size of
.Va C2H_DATA
-PDU sent by the controller to a remote host.
+and
+.Va H2C_DATA
+PDUs.
+A remote controller may enforce a lower limit on the size of
+.Va H2C_DATA
+PDUs via the
+.Va MAXH2CDATA
+parameter.
The default size is 256 kilobytes.
.El
.Sh SEE ALSO
diff --git a/share/man/man4/oce.4 b/share/man/man4/oce.4
index 47b09cdd7136..a8cd9ae80734 100644
--- a/share/man/man4/oce.4
+++ b/share/man/man4/oce.4
@@ -34,7 +34,7 @@
.\" 3333 Susan Street
.\" Costa Mesa, CA 92626
.\"
-.Dd June 13, 2023
+.Dd January 27, 2025
.Dt OCE 4
.Os
.Sh NAME
@@ -55,12 +55,6 @@ module at boot time, place the following line in
.Bd -literal -offset indent
if_oce_load="YES"
.Ed
-.Sh DEPRECATION NOTICE
-The
-.Nm
-driver may not be present in
-.Fx 15.0
-and later.
.Sh DESCRIPTION
Emulex OneConnect adapters come in various skews and with
different combinations of NIC, FCoE and iSCSI functions.
diff --git a/share/man/man4/otus.4 b/share/man/man4/otus.4
index 040d4b14cb01..06f73bfe3338 100644
--- a/share/man/man4/otus.4
+++ b/share/man/man4/otus.4
@@ -1,3 +1,5 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
.\"
.\" Copyright (c) 2015 Adrian Chadd <adrian@FreeBSD.org>
.\"
@@ -13,12 +15,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd September 25, 2015
+.Dd November 10, 2024
.Dt OTUS 4
.Os
.Sh NAME
.Nm otus
-.Nd Atheros AR9170 USB IEEE 802.11a/b/g/n wireless network device
+.Nd Atheros AR9170 USB IEEE 802.11a/b/g/n wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your kernel configuration file:
@@ -79,57 +81,73 @@ The
.Nm
driver can be configured at runtime with
.Xr ifconfig 8 .
-.Sh FILES
-The driver needs at least version 1.0 of the following firmware files,
-which is loaded when an interface is attached:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It Pa /boot/kernel/otusfw-init.ko
-.It Pa /boot/kernel/otusfw-main.ko
-.El
.Sh HARDWARE
The
.Nm
driver provides support for Atheros AR9170 USB IEEE 802.11b/g/n
wireless network adapters, including:
.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It 3Com 3CRUSBN275
-.It Arcadyan WN7512
+.Bl -bullet -offset indent -compact
+.It
+3Com 3CRUSBN275
+.It
+Arcadyan WN7512
.\" .It AVM FRITZ!WLAN USB Stick N
-.It CACE AirPcap \&Nx
-.It D-Link DWA-130 rev \&D1
-.It D-Link DWA-160 rev A1
-.It D-Link DWA-160 rev A2
-.It IO-Data WN-GDN/US2
-.It NEC Aterm WL300NU-G
-.It Netgear WNDA3100
-.It Netgear WN111 v2
-.It Planex GW-US300
-.It SMC Networks SMCWUSB-N2
-.It TP-Link TL-WN821N v1, v2
-.It Ubiquiti SR71 USB
-.It Unex DNUA-81
-.It Z-Com UB81
-.It Z-Com UB82
-.It ZyXEL NWD-271N
+.It
+CACE AirPcap \&Nx
+.It
+D-Link DWA-130 rev \&D1
+.It
+D-Link DWA-160 rev A1
+.It
+D-Link DWA-160 rev A2
+.It
+IO-Data WN-GDN/US2
+.It
+NEC Aterm WL300NU-G
+.It
+Netgear WNDA3100
+.It
+Netgear WN111 v2
+.It
+Planex GW-US300
+.It
+SMC Networks SMCWUSB-N2
+.It
+TP-Link TL-WN821N v1, v2
+.It
+Ubiquiti SR71 USB
+.It
+Unex DNUA-81
+.It
+Z-Com UB81
+.It
+Z-Com UB82
+.It
+ZyXEL NWD-271N
+.El
+.Sh FILES
+The driver needs at least version 1.0 of the following firmware files,
+which is loaded when an interface is attached:
+.Pp
+.Bl -tag -width Ds -offset indent -compact
+.It Pa /boot/kernel/otusfw-init.ko
+.It Pa /boot/kernel/otusfw-main.ko
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev otus0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev otus0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev otus0 ssid my_net up"
+.Dl ifconfig wlan create wlandev otus0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev otus0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Sh DIAGNOSTICS
.Bl -diag
@@ -152,7 +170,9 @@ The file might be missing or corrupted.
The
.Nm
driver first appeared in
-.Ox 4.6 .
+.Ox 4.6
+and
+.Fx 11 .
.Sh AUTHORS
.An -nosplit
The
diff --git a/share/man/man4/ow_temp.4 b/share/man/man4/ow_temp.4
index f3fd0f488f43..5afce6bd69d5 100644
--- a/share/man/man4/ow_temp.4
+++ b/share/man/man4/ow_temp.4
@@ -1,3 +1,5 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2015 M. Warner Losh <imp@FreeBSD.org>
.\"
@@ -21,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 20, 2015
+.Dd November 22, 2024
.Dt OW_TEMP 4
.Os
.Sh NAME
@@ -38,22 +40,17 @@ The sensor is read periodically and the results returned via a
.Xr sysctl 3
as described below.
.Sh HARDWARE
-These temperature sensors are supported by the
+The
.Nm
-driver:
-.Bl -tag -width MAX31820 -compact
-.It DS1820
-1-Wire Digital Thermometer
-.It DS18S20
-High-Precision 1-Wire Digital Thermometer
-.It DS18B20
-Programmable Resolution 1-Wire Digital Thermometer
-.It DS1822
-Econo 1-Wire Digital Thermometer
-.It DS1825
-Programmable Resolution 1-Wire Digital Thermometer with 4-bit ID
-.It MAX31820
-1-Wire, Parasite-Power, Ambient Temperature Sensor
+driver supports the following temperature sensors:
+.Pp
+.Bl -column "DS18S20" "Econo 1-Wire Digital Thermometer" -compact
+.It DS1820 Ta 1-Wire Digital Thermometer
+.It DS18S20 Ta High-Precision 1-Wire Digital Thermometer
+.It DS18B20 Ta Programmable Resolution 1-Wire Digital Thermometer
+.It DS1822 Ta Econo 1-Wire Digital Thermometer
+.It DS1825 Ta Programmable Resolution 1-Wire Digital Thermometer with 4-bit ID
+.It MAX31820 Ta 1-Wire, Parasite-Power, Ambient Temperature Sensor
.El
.Pp
The driver supports Family codes 0x10, 0x22, 0x28, and 0x3b.
@@ -65,11 +62,11 @@ driver reports data via
entries in the device's node in the
.Xr sysctl 8
tree:
-.Bl -tag -width xxxxxxxxxx
+.Bl -tag -width "reading_interval"
.It temperature
The last temperature read, in milli-Kelvin.
.It badcrc
-The number of CRC errors in reading the temperature form the
+The number of CRC errors in reading the temperature from the
device.
Some CRC errors are to be expected.
High rates of CRC errors, however, generally indicate a noisy
diff --git a/share/man/man4/p9fs.4 b/share/man/man4/p9fs.4
new file mode 100644
index 000000000000..04f27abd2545
--- /dev/null
+++ b/share/man/man4/p9fs.4
@@ -0,0 +1,127 @@
+.\"
+.\" Copyright (c) 2022-present Doug Rabson
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd November 7, 2024
+.Dt P9FS 4
+.Os
+.Sh NAME
+.Nm p9fs
+.Nd "9P file system"
+.Sh SYNOPSIS
+To use this filesystem,
+either add the following to the kernel config:
+.Bd -ragged -offset indent
+.Cd "options P9FS"
+.Cd "device virtio_p9fs"
+.Ed
+.Pp
+Alternatively, load the driver as a kernel module,
+either at boot time by adding the following to
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+virtio_p9fs_load="YES"
+.Ed
+.Pp
+or on system startup using the command:
+.Pp
+.Dl "# sysrc kld_list+=virtio_p9fs"
+.Sh DESCRIPTION
+The
+.Nm
+filesystem uses the 9P protocol to mount a host file system directory
+into a
+.Xr bhyve 8
+guest.
+Multiple host directories can be accessed using the
+.Xr bhyve 8
+virtio-9p virtual PCI device.
+Each device is configured with a share name and a host directory path.
+The share name can be used with
+.Xr mount 8
+to mount the host directory in the guest:
+.Pp
+.Dl "# mount -t p9fs mysharename /mnt"
+.Pp
+Host directories can be mounted on system startup using
+.Xr fstab 5
+like this:
+.Pp
+.Bd -literal -offset indent
+mysharename /mnt p9fs rw 0 0
+.Ed
+.Pp
+Using
+.Nm
+as a root file system is supported by adding the following to
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+vfs.root.mountfrom="p9fs:mysharename"
+.Ed
+.Sh LIMITATIONS
+The 9P protocol relies on stateful file opens
+which map protocol-level FIDs to host file descriptors.
+The FreeBSD vnode interface doesn't support this and
+.Nm
+uses heuristics to guess the right FID to use for file operations.
+.Pp
+This can be confused by privilege lowering and
+does not guarantee that the FID created for a
+given file open is always used,
+even if the calling process is using the file descriptor from
+the original open call.
+.Pp
+In particular, accessing unlinked files using open file descriptor
+may not work correctly.
+If
+.Nm
+is the root filesystem,
+it is recommented to use with
+.Xr tmpfs 5
+to ensure that temporary files created in
+.Pa /tmp
+or
+.Pa /var/tmp
+have the expected semantics.
+.Sh SEE ALSO
+.Xr fstab 5
+.Sh HISTORY
+The 9P protocol first appeared in the Plan 9 operating system.
+More recently, the protocol has been widely used with virtual machines
+to allow the use of host file resources inside a guest VM.
+.Sh AUTHORS
+This is derived from software released by Juniper Networks, Inc.
+with many improvements and fixes from
+.An Steve Wills .
+.Pp
+This manual page was written by
+.An -nosplit
+.An Doug Rabson Aq Mt dfr@FreeBSD.org .
+.Sh BUGS
+A better name for this filesystem would be
+.Ar 9pfs
+but for technical reasons,
+the names of filesystems must be valid C identifiers.
+As a compromise,
+the filesystem is named
+.Nm .
diff --git a/share/man/man4/pci.4 b/share/man/man4/pci.4
index e9b587dac12c..91fbb557f644 100644
--- a/share/man/man4/pci.4
+++ b/share/man/man4/pci.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 4, 2022
+.Dd April 2, 2025
.Dt PCI 4
.Os
.Sh NAME
@@ -372,16 +372,18 @@ The input parameters and results are passed in the
.Va pci_bar_mmap
structure, which has the following fields:
.Bl -tag -width Vt struct pcise pbm_sel
-.It Vt uint64_t pbm_map_base
+.It Vt void *pbm_map_base
Reports the established mapping base to the caller.
If
.Va PCIIO_BAR_MMAP_FIXED
flag was specified, then this field must be filled before the call
with the desired address for the mapping.
-.It Vt uint64_t pbm_map_length
+.It Vt size_t pbm_map_length
Reports the mapped length of the BAR, in bytes.
-Its .Vt uint64_t value is always multiple of machine pages.
-.It Vt int64_t pbm_bar_length
+Its
+.Vt size_t
+value is always multiple of machine pages.
+.It Vt uint64_t pbm_bar_length
Reports length of the bar as exposed by the device.
.It Vt int pbm_bar_off
Reports offset from the mapped base to the start of the
@@ -624,7 +626,12 @@ pin identified by the tunable name.
Mapping of IRQ values to platform interrupt sources is machine dependent.
.El
.Sh DEVICE WIRING
-You can wire the device unit at a given location with device.hints.
+You can wire the device unit at a given location with
+.Xr device.hints 5 .
+.Ss BSF Based Wiring
+Devices may be wired to a Bus / Slot / Function (BSF) address.
+This is the form reported by
+.Xr pciconf 8
Entries of the form
.Va hints.<name>.<unit>.at="pci<B>:<S>:<F>"
or
@@ -639,7 +646,7 @@ for any PCI device found to match the specification, where:
The domain
.Pq or segment
of the PCI device in decimal.
-Defaults to 0 if unspecified
+Defaults to 0 if unspecified.
.It <B>
The bus address of the PCI device in decimal.
.It <S>
@@ -660,15 +667,18 @@ produces undefined results.
.Ss Examples
Given the following lines in
.Pa /boot/device.hints :
-.Cd hint.nvme.3.at="pci6:0:0"
-.Cd hint.igb.8.at="pci14:0:0"
+.Bd -literal
+hint.nvme.3.at="pci6:0:0"
+hint.igb.8.at="pci14:0:0"
+.Ed
+.Pp
If there is a device that supports
.Xr igb 4
at PCI bus 14 slot 0 function 0,
then it will be assigned igb8 for probe and attach.
Likewise, if there is an
.Xr nvme 4
-card at PCI bus 6 slot 0 function 0,
+device at PCI bus 6 slot 0 function 0,
then it will be assigned nvme3 for probe and attach.
If another type of card is in either of these locations, the name and
unit of that card will be the default names and will be unaffected by
@@ -676,6 +686,33 @@ these hints.
If other igb or nvme cards are located elsewhere, they will be
assigned their unit numbers sequentially, skipping the unit numbers
that have 'at' hints.
+.Ss Location Based Wiring
+While simple to locate where to place a device for BSF wiring, the
+bus number of that is not invariant.
+Any number of changes to the devices within the system can cause
+this value to vary from boot to boot.
+The UEFI Standard defines a device path that's based only on the invariant parts
+of the address: The root complex (domain), the slot number and the function.
+These paths are hard to construct by hand, please see
+.Xr devctl 8
+.Sq Cm getpath
+command with a
+.Sq Ar UEFI
+locator.
+The above example could also be expressed as
+.Bd -literal
+hint.nvme.3.at="PciRoot(0x2)/Pci(0x1,0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)"
+hint.nvme.8.at="PciRoot(0x1)/Pci(0x2,0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)"
+.Ed
+.Pp
+The advantage of this notation is that you can specify the exact location a
+device will be at.
+For deployments of multiple systems with the same configuration, this can be
+helpful in managing the devices.
+However, even slight variation in motherboards can cause the path to change
+substantially.
+It is also less natural to think of the UEFI Device Paths since little else
+will report it.
.Sh FILES
.Bl -tag -width /dev/pci -compact
.It Pa /dev/pci
@@ -684,6 +721,7 @@ Character device for the
driver.
.El
.Sh SEE ALSO
+.Xr device.hints 5
.Xr pciconf 8
.Sh HISTORY
The
diff --git a/share/man/man4/pcm.4 b/share/man/man4/pcm.4
index e406bd2c8343..518c37b54f1d 100644
--- a/share/man/man4/pcm.4
+++ b/share/man/man4/pcm.4
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd March 24, 2024
+.Dd February 15, 2025
.Dt SOUND 4
.Os
.Sh NAME
@@ -101,6 +101,8 @@ The following bridge device drivers are available:
.It
.Xr snd_hda 4 (enabled by default on amd64, i386)
.It
+.Xr snd_hdsp 4
+.It
.Xr snd_hdspe 4
.It
.Xr snd_ich 4 (enabled by default on amd64, i386)
@@ -283,7 +285,7 @@ Use the most recently attached device.
.It Va hw.snd.default_unit
Default sound card for systems with multiple sound cards.
When using
-.Xr devfs 5 ,
+.Xr devfs 4 ,
the default device for
.Pa /dev/dsp .
Equivalent to a symlink from
@@ -358,14 +360,12 @@ A value of 0 will use a low and aggressive latency profile which can result
in possible underruns if the application cannot keep up with a rapid irq
rate, especially during high workload.
The default value is 1, which is considered a moderate/safe latency profile.
-.It Va hw.snd.maxautovchans
-Global VCHAN setting that only affects devices with at least one playback or
-recording channel available.
-The sound system will dynamically create up to this many VCHANs.
-Set to
-.Dq 0
-if no VCHANs are desired.
-Maximum value is 256.
+.It Va hw.snd.vchans_enable
+Global VCHAN setting to enable (1) or disable (0) VCHANs.
+This setting can be overridden for an individual device by using the
+.Va dev.pcm.%d.[play|rec].vchans
+tunables.
+Default is enabled.
.It Va hw.snd.report_soft_formats
Controls the internal format conversion if it is
available transparently to the application software.
@@ -432,11 +432,8 @@ The recommended way to use bitperfect mode is to disable VCHANs and enable this
sysctl.
Default is disabled.
.It Va dev.pcm.%d.[play|rec].vchans
-The current number of VCHANs allocated per device.
-This can be set to preallocate a certain number of VCHANs.
-Setting this value to
-.Dq 0
-will disable VCHANs for this device.
+Enable (1) or disable (0) VCHANs.
+Default is enabled.
.It Va dev.pcm.%d.[play|rec].vchanformat
Format for VCHAN mixing.
All playback paths will be converted to this format before the mixing
@@ -595,6 +592,7 @@ or outgoing (record) data.
A device node is not created properly.
.El
.Sh SEE ALSO
+.Xr devfs 4 ,
.Xr snd_ai2s 4 ,
.Xr snd_als4000 4 ,
.Xr snd_atiixp 4 ,
@@ -609,6 +607,7 @@ A device node is not created properly.
.Xr snd_es137x 4 ,
.Xr snd_fm801 4 ,
.Xr snd_hda 4 ,
+.Xr snd_hdsp 4 ,
.Xr snd_hdspe 4 ,
.Xr snd_ich 4 ,
.Xr snd_maestro3 4 ,
@@ -620,7 +619,6 @@ A device node is not created properly.
.Xr snd_via8233 4 ,
.Xr snd_via82c686 4 ,
.Xr snd_vibes 4 ,
-.Xr devfs 5 ,
.Xr device.hints 5 ,
.Xr loader.conf 5 ,
.Xr dmesg 8 ,
@@ -675,3 +673,10 @@ It was then rewritten for
.Sh BUGS
Some features of your sound card (e.g., global volume control) might not
be supported on all devices.
+.Pp
+Some audio devices might refuse to work properly unless the sample rate is
+configured the same for both recording and playback, even if only simplex is
+used.
+See the
+.Va dev.pcm.%d.[play|rec].vchanrate
+sysctls.
diff --git a/share/man/man4/pf.4 b/share/man/man4/pf.4
index 645f31e6e395..03a4ba2bbe7f 100644
--- a/share/man/man4/pf.4
+++ b/share/man/man4/pf.4
@@ -26,7 +26,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 20, 2023
+.Dd July 2, 2025
.Dt PF 4
.Os
.Sh NAME
@@ -35,6 +35,23 @@
.Sh SYNOPSIS
.Cd "device pf"
.Cd "options PF_DEFAULT_TO_DROP"
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd pf_enable="YES"
+.Pp
+In
+.Xr loader.conf 5 :
+.Cd net.pf.states_hashsize
+.Cd net.pf.source_nodes_hashsize
+.Cd net.pf.rule_tag_hashsize
+.Cd net.pf.udpendpoint_hashsize
+.Cd net.pf.default_to_drop
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd net.pf.request_maxcount
+.Cd net.pf.filter_local
.Sh DESCRIPTION
Packet filtering takes place in the kernel.
A pseudo-device,
@@ -74,23 +91,54 @@ separated by
characters, similar to how file system hierarchies are laid out.
The final component of the anchor path is the anchor under which
operations will be performed.
-.Sh SYSCTL VARIABLES AND LOADER TUNABLES
-The following
+.Sh SYSCTL VARIABLES
+The following variables can be entered at the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+.Xr sysctl.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width indent
+.It Va net.pf.filter_local
+This tells
+.Nm
+to also filter on the loopback output hook.
+This is typically used to allow redirect rules to adjust the source address.
+.It Va net.pf.request_maxcount
+The maximum number of items in a single ioctl call.
+.El
+.Sh LOADER TUNABLES
+The following tunables can be entered at the
.Xr loader 8
-tunables are available.
+prompt, or set in
+.Xr loader.conf 5 :
.Bl -tag -width indent
.It Va net.pf.states_hashsize
-Size of hash tables that store states.
+Size of hash table that stores states.
Should be power of 2.
Default value is 131072.
.It Va net.pf.source_nodes_hashsize
-Size of hash table that store source nodes.
+Size of hash table that stores source nodes.
+Should be power of 2.
+Default value is 32768.
+.It Va net.pf.rule_tag_hashsize
+Size of the hash table that stores tags.
+.It Va net.pf.udpendpoint_hashsize
+Size of hash table that store UDP endpoint mappings.
Should be power of 2.
Default value is 32768.
.It Va net.pf.default_to_drop
This value overrides
.Cd "options PF_DEFAULT_TO_DROP"
from kernel configuration file.
+.It Va net.pf.filter_local
+This tells
+.Nm
+to also filter on the loopback output hook.
+This is typically used to allow redirect rules to adjust the source address.
+.It Va net.pf.request_maxcount
+The maximum number of items in a single ioctl call.
.El
.Pp
Read only
@@ -664,7 +712,7 @@ struct pfr_tstats {
[PFR_DIR_MAX][PFR_OP_TABLE_MAX];
u_int64_t pfrts_match;
u_int64_t pfrts_nomatch;
- long pfrts_tzero;
+ time_t pfrts_tzero;
int pfrts_cnt;
int pfrts_refcnt[PFR_REFCNT_MAX];
};
@@ -804,7 +852,7 @@ struct pfr_astats {
[PFR_DIR_MAX][PFR_OP_ADDR_MAX];
u_int64_t pfras_bytes
[PFR_DIR_MAX][PFR_OP_ADDR_MAX];
- long pfras_tzero;
+ time_t pfras_tzero;
};
.Ed
.It Dv DIOCRCLRASTATS Fa "struct pfioc_table *io"
@@ -1066,7 +1114,7 @@ will be set to the length of the buffer actually used.
.It Dv DIOCCLRSRCNODES
Clear the tree of source tracking nodes.
.It Dv DIOCIGETIFACES Fa "struct pfioc_iface *io"
-Get the list of interfaces and interface drivers known to
+Get the list of interfaces and interface groups known to
.Nm .
All the ioctls that manipulate interfaces
use the same structure described below:
@@ -1083,7 +1131,7 @@ struct pfioc_iface {
.Pp
If not empty,
.Va pfiio_name
-can be used to restrict the search to a specific interface or driver.
+can be used to restrict the search to a specific interface or group.
.Va pfiio_buffer[pfiio_size]
is the user-supplied buffer for returning the data.
On entry,
diff --git a/share/man/man4/pfsync.4 b/share/man/man4/pfsync.4
index 96f498c7a7cb..cc9c350ea875 100644
--- a/share/man/man4/pfsync.4
+++ b/share/man/man4/pfsync.4
@@ -32,6 +32,14 @@
.Nd packet filter state table synchronisation interface
.Sh SYNOPSIS
.Cd "device pfsync"
+.Pp
+In
+.Xr loader.conf 5 :
+.Cd net.pfsync.pfsync_buckets
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd net.pfsync.carp_demotion_factor
.Sh DESCRIPTION
The
.Nm
@@ -147,7 +155,6 @@ E.g.:
# ifconfig pfsync0 version 1301
.Ed
.Pp
-.Bd
Currently the following versions are supported:
.Bl -tag -width indent
.It Cm 1301
@@ -156,13 +163,14 @@ Compatibility with FreeBSD 13.1 has been verified.
.It Cm 1400
FreeBSD release 14.0.
.El
-.Ed
-.Pp
-.Nm
-has the following
-.Xr sysctl 8
-tunables:
-.Bl -tag -width ".Va net.pfsync"
+.Sh SYSCTL VARIABLES
+The following variables can be entered at the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width indent
.It Va net.pfsync.carp_demotion_factor
Value added to
.Va net.inet.carp.demotion
@@ -173,6 +181,14 @@ See
.Xr carp 4
for more information.
Default value is 240.
+.El
+.Sh LOADER TUNABLES
+The following tunable may be set in
+.Xr loader.conf 5
+or at the
+.Xr loader 8
+prompt:
+.Bl -tag -width indent
.It Va net.pfsync.pfsync_buckets
The number of
.Nm
diff --git a/share/man/man4/procdesc.4 b/share/man/man4/procdesc.4
index d0b99e5cbe07..f1f3757aa836 100644
--- a/share/man/man4/procdesc.4
+++ b/share/man/man4/procdesc.4
@@ -58,10 +58,10 @@ Given a process descriptor, it is possible to query its conventional PID using
.Sh SEE ALSO
.Xr fork 2 ,
.Xr kill 2 ,
+.Xr kqueue 2 ,
.Xr pdfork 2 ,
.Xr pdgetpid 2 ,
.Xr pdkill 2 ,
-.Xr kqueue 2 ,
.Xr wait4 2 ,
.Xr capsicum 4
.Sh HISTORY
diff --git a/share/man/man5/procfs.5 b/share/man/man4/procfs.4
index 5977a8bced81..5a588004e37e 100644
--- a/share/man/man5/procfs.5
+++ b/share/man/man4/procfs.4
@@ -1,8 +1,8 @@
.\" Written by Garrett Wollman
.\" This file is in the public domain.
.\"
-.Dd April 10, 2023
-.Dt PROCFS 5
+.Dd June 23, 2024
+.Dt PROCFS 4
.Os
.Sh NAME
.Nm procfs
@@ -229,11 +229,11 @@ comma separated.
.It
the wait channel message
.It
-the process credentials consisting of
-the effective user id
-and the list of groups (whose first member
-is the effective group id)
-all comma separated.
+the process effective UID
+.It
+the process real UID
+.It
+group list, starting with the effective GID, comma-separated
.It
the hostname of the jail in which the process runs, or
.Ql -
diff --git a/share/man/man4/puc.4 b/share/man/man4/puc.4
index 076fd2ad2d0e..a29376d3f2d5 100644
--- a/share/man/man4/puc.4
+++ b/share/man/man4/puc.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2002 John Hay.
.\" All rights reserved.
.\"
@@ -22,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 24, 2008
+.Dd June 11, 2025
.Dt PUC 4
.Os
.Sh NAME
@@ -36,15 +39,245 @@ Communications driver
.Cd "device uart"
.Cd "device ppc"
.Sh DESCRIPTION
-This driver acts as a shim to connect PCI serial and parallel ports to the
+The
+.Nm
+driver acts as a shim to connect
+PCI multi-port serial and parallel adapters to the
.Xr uart 4
and
.Xr ppc 4
driver.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following
+PCI/PCIe multi-port serial and parallel adapters:
.Pp
-The list of supported devices is in
-.Pa sys/dev/puc/pucdata.c .
-Support for new cards should be added there.
+.Bl -bullet -compact
+.It
+Advantech 2-port PCI PCI-1602/1603 Rev A/B1
+.It
+Applied Micro Circuits PCI 8 Port UART
+.It
+Avlab Technology PCI IO 2S
+.It
+Avlab Low Profile PCI 4 Serial
+.It
+Boca Research PCI Turbo Serial 658/654
+.It
+Brainboxes:
+.Bl -dash -compact
+.It
+Instashield PCIe IX-400, IX-200, IX-100
+.It
+Instashield PCI IS-400, IS-200
+.It
+PX Series PCIe RS232/RS422/RS485/LPT
+.It
+UC Series Universal PCI RS232/RS422/RS485/LPT
+.It
+UP Series PCI Dual RS232
+.El
+.It
+Comtrol RocketPort 550 PCI 16/8/4 port
+.It
+Decision Computer PCCOM PCI 8/4/2 port
+.It
+Digi Neo PCIe 4 and 8 Port (with and without RJ45)
+.It
+Digi Neo PCI 4 and 8 Port
+.It
+Dolphin Peripherals PCI 4035/4014
+.It
+Exar:
+.Bl -dash -compact
+.It
+XR17C/D152
+.It
+XR17C154
+.It
+XR17C158
+.It
+XR17V258IV
+.It
+XR17V352
+.It
+XR17V354
+.It
+XR17V358
+.El
+.It
+Feasso PCI FPP-02 2S1P
+.It
+HP Diva Serial [GSP] Multiport UART:
+.Bl -dash -compact
+.It
+Tosca Console
+.It
+Tosca Secondary
+.It
+Maestro SP2
+.It
+Superdome Console
+.It
+Keystone SP2
+.It
+Everest SP2
+.El
+.It
+I-O DATA RSA-PCI2/R
+.It
+IBM SurePOS 300 Series (481033H) serial ports
+.It
+IC Book Labs:
+.Bl -dash -compact
+.It
+Dreadnought x16 Pro/Lite
+.It
+Ironclad x8 Pro
+.It
+Gunboat x4 Pro/Lite/Low Profile
+.It
+Gunboat x2 Low Profile
+.El
+.It
+Kuroutoshikou SERIAL4P-LPPCI2
+.It
+Lava Computers:
+.Bl -dash -compact
+.It
+Dual Serial PCI
+.It
+Quattro-PCIe
+.It
+Quattro-PCI
+.It
+Octopus-550 PCI
+.El
+.It
+Moxa Technologies:
+.Bl -dash -compact
+.It
+Smartio CP-102E/PCIe
+.It
+Smartio CP-102EL/PCIe
+.It
+Smartio C104H/PCI
+.It
+Smartio CP-104UL/PCI
+.It
+Smartio CP-104JU/PCI
+.It
+Smartio CP-104EL/PCIe
+.It
+Smartio CP-104EL-A/PCIe
+.It
+CP-112UL PCI
+.It
+Industio CP-114
+.It
+Smartio CP-114EL/PCIe
+.It
+Smartio CP-118EL-A/PCIe
+.It
+C168H/PCI
+.It
+C168U/PCI
+.It
+CP-168EL/PCIe
+.It
+Smartio CP-168EL-A/PCIe
+.El
+.It
+NetMos NM9815 Dual 1284 Printer port PCI
+.It
+NetMos NM9835 2/1 port UART + 1284 Printer PCI
+.It
+NetMos NM9845 4/6 port UART + 1284 Printer PCI
+.It
+NetMos NM9865 4/3/2 port UART + 1/2 port 1284 Printer PCI
+.It
+Oxford Semiconductor based boards:
+.Bl -dash -compact
+.It
+OX16PCI952 UART (with and without Parallel port)
+.It
+OX16PCI954 UART
+.It
+OX9160/OX16PCI954 UARTs
+.It
+OX16PCI958 UART
+.El
+.It
+Perle Ultraport4 Express PCIe Serial
+.It
+Perle Speed8/Speed4/Speed2 LE PCI Serial
+.It
+Quatech:
+.Bl -dash -compact
+.It
+DSC-300/200/100 PCI
+.It
+DSCLP-300/200/100 PCI
+.It
+ESC-100/100D/100M PCI
+.It
+QSC-300/200/100 PCI
+.It
+QSCLP-100 PCI
+.El
+.It
+SIIG Cyber Series of UART and parallel port boards:
+.Bl -dash -compact
+.It
+Cyber 2S and 2SP1 PCI 16550
+.It
+Cyber 4 and 4S PCI 16C650 (10x family and 20x family)
+.It
+Cyber I/O PCI (10x family and 20x family)
+.It
+Cyber Parallel Dual PCI (10x family and 20x family)
+.It
+Cyber Serial Dual PCI (10x family and 20x family)
+.It
+Cyber 2S1P PCI (10x family and 20x family)
+.It
+PS8000 8S PCI 16C650 (20x family)
+.It
+Quartet Serial 850 PCI
+.El
+.It
+Sun 1040 PCI Quad Serial
+.It
+Sunix MIO5xxxx 4/2/1 port UART and 1284 Printer
+.It
+Sunix SUN1889/1888 PCI dual port serial
+.It
+Sunix SER5xxxx 8/4/2 port serial
+.It
+Syba Tech Ltd PCI-4S2P-550-ECP
+.It
+Titan PCI-800H/PCI-200H
+.It
+VScom:
+.Bl -dash -compact
+.It
+PCIex-800H
+.It
+PCI-200HV2
+.It
+200Li uPCI
+.It
+PCI-800L, PCI-200L, and PCI-100L
+.It
+PCI-800, PCI-400, and PCI-200
+.El
+.El
+.Sh FILES
+.Bl -tag -width "sys/dev/puc/pucdata.c"
+.It Pa sys/dev/puc/pucdata.c
+list of supported devices
+.El
.Sh SEE ALSO
.Xr ppc 4 ,
.Xr uart 4
@@ -53,3 +286,4 @@ This driver took the idea from the
.Nx
.Nm
driver.
+It uses a substantial amount of the same data.
diff --git a/share/man/man4/qat.4 b/share/man/man4/qat.4
index b0fa0b0cbc92..613091df2e7e 100644
--- a/share/man/man4/qat.4
+++ b/share/man/man4/qat.4
@@ -1,11 +1,11 @@
.\" SPDX-License-Identifier: BSD-3-Clause
-.\" Copyright(c) 2007-2022 Intel Corporation
-.Dd May 4, 2023
+.\" Copyright(c) 2007-2025 Intel Corporation
+.Dd June 2, 2025
.Dt QAT 4
.Os
.Sh NAME
.Nm qat
-.Nd Intel (R) QuickAssist Technology (QAT) driver
+.Nd Intel QuickAssist Technology driver
.Sh SYNOPSIS
To load the driver call:
.Pp
@@ -39,9 +39,20 @@ The
driver supports cryptography and compression acceleration of the
Intel (R) QuickAssist Technology (QAT) devices.
.Pp
+A complete API for offloading these operations is exposed in the kernel
+and may be used by any other entity directly.
+In addition to exposing a complete kernel API for
+offloading cryptography and compression operations, the
+.Nm
+driver also integrates with
+.Xr crypto 4 ,
+allowing offloading supported operations to Intel QuickAssist Technology
+devices.
+.Sh HARDWARE
The
.Nm
-driver is intended for platforms that contain:
+driver supports the following Intel QuickAssist Technology Engines:
+.Pp
.Bl -bullet -compact
.It
Intel (R) C62x Chipset
@@ -57,127 +68,120 @@ Intel (R) Atom P5300 processor product family
.It
Intel (R) QAT 4xxx Series
.El
-.Pp
-The
-.Nm
-driver supports cryptography and compression acceleration.
-A complete API for offloading these operations is exposed in the kernel and may
-be used by any other entity directly.
-For details of usage and supported operations and algorithms refer to the
-following documentation available from Intel Download Center
-.Lk https://downloadcenter.intel.com :
-.Bl -bullet -compact
-.It
-.Rs
-.%A Intel (R)
-.%T QuickAssist Technology API Programmer's Guide
-.Re
-.It
-.Rs
-.%A Intel (R)
-.%T QuickAssist Technology Cryptographic API Reference Manual
-.Re
-.It
-.Rs
-.%A Intel (R)
-.%T QuickAssist Technology Data Compression API Reference Manual
-.Re
-.It
-.Rs
-.%A Intel (R)
-.%T QuickAssist Technology Performance Optimization Guide
-.Re
-.El
-.Pp
-In addition to exposing complete kernel API for offloading cryptography and
-compression operations, the
-.Nm
-driver also integrates with
-.Xr crypto 4 ,
-allowing offloading supported cryptography operations to Intel (R) QuickAssist
-Technology (QAT) devices.
-For details of usage and supported operations and algorithms refer to the
-documentation mentioned above and
-.Sx SEE ALSO
-section.
.Sh SYSCTL_VARIABLES
-Following variables may be used to reconfigure the QAT device.\&
-For configuration persistence those variables may be set before loading the driver, either via
+The following
+.Xr sysctl 8
+variables may be used to reconfigure the
+.Nm
+device.
+For configuration persistence those variables may be set before loading
+the driver, either via
.Xr kenv 1
or
-.Xr loader.conf(5).
-The device specific configuration options are prefixed with
-.Va dev.qat.X\&.
-where X is the device number.
-The specific device needs to be in "down" state before changing the configuration.
+.Xr loader.conf 5 .
+.Pp
+The specific device needs to be in the "down" state
+before changing the configuration.
.Bl -tag -width indent
-.It Va state
-Show current state of the device. Override the device state. Possible values: "down", "up".
-
-NOTE: If the symmetric services are used for device the qat_ocf driver needs to be disabled prior the device
-reconfiguration.
-Following variable may be used to enable/disable the QAT cryptographic framework connectivity
-.Va dev.qat_ocf.0.enable\&.
+.It Va dev.qat.X.state
+Show or set current state of the device.
+Possible values: "down", "up".
+.Pp
+NOTE: If the symmetric services are used for device the
+.Sy qat_ocf
+driver needs to be disabled prior the device reconfiguration.
+.It Va dev.qat_ocf.0.enable
+Enable/disable the QAT cryptographic framework connectivity.
Enabled by default.
-.It Va cfg_services
-Override the device services enabled: symmetric, asymmetric, data compression.
+.It Va dev.qat.X.cfg_services
+Override the device services enabled, may be one of:
+symmetric, asymmetric, data compression.
Possible values: "sym", "asym", "dc", "sym;dc", "asym;dc", "sym;asym".
-Default services configured are "sym;asym" for even and "dc" for odd devices.
-.It Va cfg_mode
-Override the device mode configuration for kernel space and user space instances.
+Default services configured
+are "sym;asym" for even and "dc" for odd devices.
+.It Va dev.qat.X.cfg_mode
+Override the device mode configuration
+for kernel space and user space instances.
Possible values: "ks", "us", "ks;us".
Default value "ks;us".
-.It Va num_user_processes
-Override the number of uio user space processes that can connect to the QAT device.
+.It Va dev.qat.X.num_user_processes
+Override the number of uio user space processes
+that can connect to the QAT device.
Default: 2
+.It Va dev.qat.X.disable_safe_dc_mode
+Override history buffer mitigation.
+Disabled by default.
+If enabled, decompression throughput increases but may result in a data leak if
+.Va dev.qat.X.num_user_processes
+is more than 1.
+Enable this option only if your system is not prone to user data leaks.
.El
.Pp
The following
.Xr sysctl 8
variables are read-only:
.Bl -tag -width indent
-.It Va frequency
+.It Va dev.qat.X.frequency
QAT device frequency value.
-.It Va mmp_version
+.It Va dev.qat.X.mmp_version
QAT MMP Library revision number.
-.It Va hw_version
+.It Va dev.qat.X.hw_version
QAT hardware revision number.
-.It Va fw_version
+.It Va dev.qat.X.fw_version
QAT firmware revision number.
-.It Va dev_cfg
+.It Va dev.qat.X.dev_cfg
Summary of device specific configuration.
-.It Va heartbeat
-QAT device heartbeat status. Value '1' indicates that the device is operational.
-'0' value means that the device is not responsive. Device requires restart.
-.It Va heartbeat_failed
+.It Va dev.qat.X.heartbeat
+QAT device heartbeat status.
+Value '1' indicates that the device is operational.
+Value '0' means that the device is not responsive.
+Device requires restart.
+.It Va dev.qat.X.heartbeat_failed
Number of QAT heartbeat failures received.
-.It Va heartbeat_sent
+.It Va dev.qat.X.heartbeat_sent
Number of QAT heartbeat requests sent.
.El
-
-.Sh COMPATIBILITY
-The
-.Nm
-driver replaced previous implementation introduced in
-.Fx 13.0 .
-Current version, in addition to
-.Xr crypto 4
-integration, supports also data compression and exposes a complete API for
-offloading data compression and cryptography operations.
.Sh SEE ALSO
.Xr crypto 4 ,
.Xr ipsec 4 ,
.Xr pci 4 ,
.Xr crypto 7 ,
.Xr crypto 9
+.Pp
+For details of usage and supported operations and algorithms refer to
+the following documentation available from Intel Download Center
+.Lk https://downloadcenter.intel.com :
+.Pp
+.Bl -bullet -compact
+.It
+.Rs
+.%A Intel (R)
+.%T QuickAssist Technology API Programmer's Guide
+.Re
+.It
+.Rs
+.%A Intel (R)
+.%T QuickAssist Technology Cryptographic API Reference Manual
+.Re
+.It
+.Rs
+.%A Intel (R)
+.%T QuickAssist Technology Data Compression API Reference Manual
+.Re
+.It
+.Rs
+.%A Intel (R)
+.%T QuickAssist Technology Performance Optimization Guide
+.Re
+.El
.Sh HISTORY
-This
+A
.Nm
-driver was introduced in
-.Fx 14.0 .
-.Fx 13.0 included a different version of
-.Nm
-driver.
+driver appeared in
+.Fx 13.0 .
+It was superseded in
+.Fx 14.0
+by the upstream driver.
.Sh AUTHORS
The
.Nm
diff --git a/share/man/man4/ral.4 b/share/man/man4/ral.4
index dbdc017dc33a..ad385e5f09d6 100644
--- a/share/man/man4/ral.4
+++ b/share/man/man4/ral.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
+.\"
.\" Copyright (c) 2005-2010 Damien Bergamini <damien.bergamini@free.fr>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
@@ -12,12 +15,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd April 4, 2017
+.Dd November 10, 2024
.Dt RAL 4
.Os
.Sh NAME
.Nm ral
-.Nd "Ralink Technology IEEE 802.11a/g/n wireless network device"
+.Nd Ralink Technology IEEE 802.11a/g/n wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -119,7 +122,7 @@ The
driver supports PCI/PCIe/CardBus wireless adapters based on Ralink Technology
chipsets, including:
.Pp
-.Bl -column -compact ".Li Atlantis Land A02-PCM-W54" "RT2561S" "CardBus"
+.Bl -column -offset indent -compact "Atlantis Land A02-PCM-W54" "RT2561S" "CardBus"
.It Em Card Ta Em MAC/BBP Ta Em Bus
.It "A-Link WL54H" Ta RT2560 Ta PCI
.It "A-Link WL54PC" Ta RT2560 Ta CardBus
@@ -212,26 +215,25 @@ chipsets, including:
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
.Pp
-.Dl "ifconfig wlan create wlandev ral0 inet 192.168.0.20 netmask 0xffffff00"
+.Dl ifconfig wlan create wlandev ral0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Bd -literal -offset indent
-ifconfig wlan create wlandev ral0 inet 192.168.0.20 \e
- netmask 0xffffff00 ssid my_net
+ifconfig wlan create wlandev ral0 inet 192.0.2.20/24 \e
+ ssid my_net
.Ed
.Pp
Join a specific BSS network with 40-bit WEP encryption:
.Bd -literal -offset indent
-ifconfig wlan create wlandev ral0 inet 192.168.0.20 \e
- netmask 0xffffff00 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1
+ifconfig wlan create wlandev ral0 inet 192.0.2.20/24 \e
+ ssid my_net wepmode on wepkey 0x1234567890 weptxkey 1
.Ed
.Pp
Join a specific BSS network with 104-bit WEP encryption:
.Bd -literal -offset indent
-ifconfig wlan create wlandev ral0 inet 192.168.0.20 \e
- netmask 0xffffff00 ssid my_net \e
+ifconfig wlan create wlandev ral0 inet 192.0.2.20/24 \e
+ ssid my_net \e
wepmode on wepkey 0x01020304050607080910111213 weptxkey 1
.Ed
.Sh DIAGNOSTICS
@@ -254,6 +256,7 @@ This should not happen.
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
+.Xr networking 7 ,
.Xr hostapd 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
diff --git a/share/man/man4/rights.4 b/share/man/man4/rights.4
index 3e5e18fc65d8..8f5f6ad9c2d2 100644
--- a/share/man/man4/rights.4
+++ b/share/man/man4/rights.4
@@ -30,7 +30,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 27, 2024
+.Dd May 22, 2025
.Dt RIGHTS 4
.Os
.Sh NAME
@@ -209,6 +209,9 @@ An alias to
.Dv CAP_FCHOWN
and
.Dv CAP_LOOKUP .
+.It Dv CAP_FCHROOT
+Permit
+.Xr fchroot 2 .
.It Dv CAP_FCNTL
Permit
.Xr fcntl 2 .
@@ -316,6 +319,14 @@ Permit
.It Dv CAP_GETSOCKOPT
Permit
.Xr getsockopt 2 .
+.It Dv CAP_INOTIFY_ADD
+Permit
+.Xr inotify_add_watch 2
+and
+.Xr inotify_add_watch_at 2 .
+.It Dv CAP_INOTIFY_RM
+Permit
+.Xr inotify_rm_watch 2 .
.It Dv CAP_IOCTL
Permit
.Xr ioctl 2 .
diff --git a/share/man/man4/rsu.4 b/share/man/man4/rsu.4
index b523bfe4aa0e..1c4f9774ea53 100644
--- a/share/man/man4/rsu.4
+++ b/share/man/man4/rsu.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
+.\"
.\" $OpenBSD: rsu.4,v 1.11 2013/02/14 07:40:42 jmc Exp $
.\"
.\" Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -14,12 +17,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd May 23, 2021
+.Dd April 1, 2025
.Dt RSU 4
.Os
.Sh NAME
.Nm rsu
-.Nd Realtek RTL8188SU/RTL8192SU USB IEEE 802.11b/g/n wireless network device
+.Nd Realtek RTL8188SU/RTL8192SU USB IEEE 802.11b/g/n wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your kernel configuration file:
@@ -93,8 +96,48 @@ The
.Nm
driver can be configured at runtime with
.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+driver provides support for Realtek RTL8188SU/RTL8192SU USB IEEE 802.11b/g/n
+wireless network adapters, including:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+ASUS USB-N10
+.It
+ASUS WL-167G V3
+.It
+Belkin F7D1101 v1
+.It
+D-Link DWA-131 A1
+.It
+EDUP EP-MS150N(W)
+.It
+Edimax EW-7622UMN
+.It
+Hercules HWGUn-54
+.It
+Hercules HWNUm-300
+.It
+Planex GW-USNano
+.It
+Sitecom WL-349 v1
+.It
+Sitecom WL-353
+.It
+Sitecom WLA-1100 v1001
+.It
+Sweex LW154
+.It
+TRENDnet TEW-646UBH
+.It
+TRENDnet TEW-648UB
+.It
+TRENDnet TEW-649UB
+.El
.Sh FILES
-.Bl -tag -width ".Pa /usr/share/doc/legal/realtek.LICENSE" -compact
+.Bl -tag -width "/usr/share/doc/legal/realtek.LICENSE" -compact
.It Pa /usr/share/doc/legal/realtek.LICENSE
.Nm
firmware license
@@ -106,45 +149,20 @@ which is loaded when an interface is attached:
.Bl -tag -width Ds -offset indent -compact
.It Pa /boot/kernel/rsu-rtl8712fw.ko
.El
-.Sh HARDWARE
-The
-.Nm
-driver provides support for Realtek RTL8188SU/RTL8192SU USB IEEE 802.11b/g/n
-wireless network adapters, including:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It ASUS USB-N10
-.It ASUS WL-167G V3
-.It Belkin F7D1101 v1
-.It D-Link DWA-131 A1
-.It EDUP EP-MS150N(W)
-.It Edimax EW-7622UMN
-.It Hercules HWGUn-54
-.It Hercules HWNUm-300
-.It Planex GW-USNano
-.It Sitecom WL-349 v1
-.It Sitecom WL-353
-.It Sweex LW154
-.It TRENDnet TEW-646UBH
-.It TRENDnet TEW-648UB
-.It TRENDnet TEW-649UB
-.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev rsu0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev rsu0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev rsu0 ssid my_net up"
+.Dl ifconfig wlan create wlandev rsu0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev rsu0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Sh DIAGNOSTICS
.Bl -diag
@@ -163,6 +181,7 @@ This should not happen.
.Xr rsufw 4 ,
.Xr usb 4 ,
.Xr wlan 4 ,
+.Xr networking 7 ,
.Xr arp 8 ,
.Xr hostapd 8 ,
.Xr ifconfig 8 ,
diff --git a/share/man/man4/rtsx.4 b/share/man/man4/rtsx.4
index c9be7a6f21f4..69de84c6d707 100644
--- a/share/man/man4/rtsx.4
+++ b/share/man/man4/rtsx.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2020 Henri Hennebert <hlh@restart.be>
.\" All rights reserved.
.\"
@@ -22,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 26, 2022
+.Dd May 26, 2025
.Dt RTSX 4
.Os
.Sh NAME
@@ -53,8 +55,7 @@ Driver attaches mmc bus on card insertion and detaches it on card removing.
.Sh HARDWARE
The
.Nm
-driver supports different specification compatible chips.
-The following chips have been verified to work:
+driver supports the following Realtek SD card readers:
.Pp
.Bl -bullet -compact
.It
@@ -71,17 +72,12 @@ RTS525A
RTS5260
.It
RTL8411B
-.El
-.Pp
-It should also work for:
-.Pp
-.Bl -bullet -compact
.It
-RTS5249
+RTS5249 (unverified)
.It
-RTL8402
+RTL8402 (unverified)
.It
-RTL8411
+RTL8411 (unverified)
.El
.Sh SEE ALSO
.Xr mmc 4 ,
@@ -93,7 +89,9 @@ RTL8411
.Sh HISTORY
The
.Nm
-driver was ported from
+driver appeared in
+.Fx 13.0
+and was ported from
.Ox
with modifications found in Linux and
.Nx .
diff --git a/share/man/man4/rtw88.4 b/share/man/man4/rtw88.4
index a1a74db41b42..4c2cba8311ae 100644
--- a/share/man/man4/rtw88.4
+++ b/share/man/man4/rtw88.4
@@ -1,28 +1,9 @@
.\"-
-.\" Copyright (c) 2022 Bjoern A. Zeeb
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
+.\" Copyright (c) 2022-2025 Bjoern A. Zeeb
.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd October 06, 2023
+.Dd June 13, 2025
.Dt RTW88 4
.Os
.Sh NAME
@@ -42,20 +23,12 @@ to manually load the driver as a module at boot time:
kld_list="${kld_list} if_rtw88"
.Ed
.Pp
-It is discouraged to load the driver from
+It is not possible to load the driver from
.Xr loader 8 .
.Sh DESCRIPTION
The
.Nm
-driver is derived from Realtek's Linux rtw88 driver and provides support for
-the following chipsets:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It Realtek 802.11n wireless 8723de (RTL8723DE)
-.It Realtek 802.11ac wireless 8821ce (RTL8821CE)
-.It Realtek 802.11ac wireless 8822be (RTL8822BE)
-.It Realtek 802.11ac wireless 8822ce (RTL8822CE)
-.El
+driver is derived from Realtek's Linux rtw88 driver.
.Pp
This driver requires firmware to be loaded before it will work.
The package
@@ -73,21 +46,30 @@ to install the correct firmware package.
.Pp
The driver uses the
.\" No LinuxKPI man pages so no .Xr here.
-.Em linuxkpi_wlan
+.Sy linuxkpi_wlan
and
-.Em linuxkpi
+.Sy linuxkpi
compat framework to bridge between the Linux and
native
.Fx
driver code as well as to the native
.Xr net80211 4
wireless stack.
-.Pp
-While
+.Sh HARDWARE
+The
.Nm
-supports all 802.11 a/b/g/n and ac
-the compatibility code currently only supports 802.11 a/b/g modes.
-Support for 802.11 n/ac is to come.
+driver supports PCIe devices with the following chipsets:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+Realtek 802.11n wireless 8723de (RTL8723DE)
+.It
+Realtek 802.11ac wireless 8821ce (RTL8821CE)
+.It
+Realtek 802.11ac wireless 8822be (RTL8822BE)
+.It
+Realtek 802.11ac wireless 8822ce (RTL8822CE)
+.El
.Sh LOADER TUNABLES
.Bl -tag -width indent
.It Va compat.linuxkpi.skb.mem_limit
@@ -101,17 +83,10 @@ This tunable will work around a problem with DMA and limit allocations
for network buffer memory to the lower 32bit of physical memory and
make the driver work.
.El
-.Sh BUGS
-Certainly.
-.Pp
-Does not seem to work (reliably) on machines with more than 4GB of
-main memory.
-See in the
-.Sx LOADER TUNABLES
-section above.
.Sh SEE ALSO
.Xr rtw88fw 4 ,
.Xr wlan 4 ,
+.Xr networking 7 ,
.Xr fwget 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
@@ -120,3 +95,17 @@ The
.Nm
driver first appeared in
.Fx 13.2 .
+.Sh BUGS
+Certainly.
+.Pp
+Does not seem to work (reliably) on machines with more than 4GB of
+main memory.
+See in the
+.Sx LOADER TUNABLES
+section above.
+.Pp
+While
+.Nm
+supports 802.11a/b/g/n/ac modes,
+the compatibility code currently only supports 802.11a/b/g modes.
+Support for 802.11n/ac is yet to come.
diff --git a/share/man/man4/rtw89.4 b/share/man/man4/rtw89.4
new file mode 100644
index 000000000000..8c7132673db5
--- /dev/null
+++ b/share/man/man4/rtw89.4
@@ -0,0 +1,112 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2023-2025 Bjoern A. Zeeb
+.\"
+.Dd June 13, 2025
+.Dt RTW89 4
+.Os
+.Sh NAME
+.Nm rtw89
+.Nd Realtek IEEE 802.11ax wireless network driver
+.Sh SYNOPSIS
+The driver will auto-load without any user interaction using
+.Xr devmatch 8
+if enabled in
+.Xr rc.conf 5 .
+.Pp
+Only if auto-loading is explicitly disabled, place the following
+lines in
+.Xr rc.conf 5
+to manually load the driver as a module at boot time:
+.Bd -literal -offset indent
+kld_list="${kld_list} if_rtw89"
+.Ed
+.Pp
+It is not possible to load the driver from
+.Xr loader 8 .
+.Sh DESCRIPTION
+The
+.Nm
+driver is derived from Realtek's Linux rtw89 driver.
+.Pp
+This driver requires firmware to be loaded before it will work.
+The package
+.Pa wifi-firmware-rtw89-kmod
+from the
+.Pa ports/net/wifi-firmware-rtw89-kmod
+port needs to be installed before the driver is loaded.
+Otherwise no
+.Xr wlan 4
+interface can be created using
+.Xr ifconfig 8 .
+One should use
+.Xr fwget 8
+to install the correct firmware package.
+.Pp
+The driver uses the
+.\" No LinuxKPI man pages so no .Xr here.
+.Sy linuxkpi_wlan
+and
+.Sy linuxkpi
+compat framework to bridge between the Linux and
+native
+.Fx
+driver code as well as to the native
+.Xr net80211 4
+wireless stack.
+.Sh HARDWARE
+The
+.Nm
+driver supports PCIe devices with the following chipsets:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+Realtek 8851BE Wi-Fi 6 (RTL8851BE)
+.It
+Realtek 8852AE Wi-Fi 6 (RTL8852AE)
+.It
+Realtek 8852BE Wi-Fi 6 (RTL8852BE)
+.It
+Realtek 8852CE Wi-Fi 6E (RTL8852CE)
+.It
+Realtek 8922AE Wi-Fi 7 (RTL8922AE)
+.El
+.Sh LOADER TUNABLES
+.Bl -tag -width indent
+.It Va compat.linuxkpi.skb.mem_limit
+If you are running a 64bit system with more than 4GB of main memory
+you need to set this tunable to
+.Sy 1
+in
+.Xr loader.conf 5
+and reboot once to make it effective.
+This tunable will work around a problem with DMA and limit allocations
+for network buffer memory to the lower 32bit of physical memory and
+make the driver work.
+.El
+.Sh SEE ALSO
+.Xr wlan 4 ,
+.Xr networking 7 ,
+.Xr fwget 8 ,
+.Xr ifconfig 8 ,
+.Xr wpa_supplicant 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 14.2 .
+.Sh BUGS
+Certainly.
+.Pp
+Does not seem to work (reliably) on machines with more than 4GB of
+main memory.
+See in the
+.Sx LOADER TUNABLES
+section above.
+.Pp
+While
+.Nm
+supports 802.11a/b/g/n/ac/ax modes,
+the compatibility code currently only supports 802.11a/b/g modes.
+Support for 802.11n/ac/ax is yet to come.
diff --git a/share/man/man4/rtwn.4 b/share/man/man4/rtwn.4
index cfebcc1bbffc..06761fdcde4e 100644
--- a/share/man/man4/rtwn.4
+++ b/share/man/man4/rtwn.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
+.\"
.\" $OpenBSD: rtwn.4,v 1.2 2015/07/09 11:28:53 stsp Exp $
.\"
.\" Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -16,12 +19,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd January 2, 2019
+.Dd November 10, 2024
.Dt RTWN 4
.Os
.Sh NAME
.Nm rtwn
-.Nd Realtek IEEE 802.11 wireless network driver
+.Nd Realtek IEEE 802.11n/ac wireless network driver
.Sh SYNOPSIS
.Cd "options RTWN_DEBUG"
.Cd "options RTWN_WITHOUT_UCODE"
@@ -48,16 +51,14 @@ if_rtwn_usb_load="YES"
.Sh DESCRIPTION
The
.Nm
-driver provides support for wireless network devices based on
-the Realtek RTL8192C, RTL8188E, RTL8192E, RTL8812A and RTL8821A
-programming APIs.
-These APIs are used by a wide variety of chips;
-most chips with USB and some with PCI interface are supported.
-.Pp
-To enable use for PCI/PCIe systems, see the rtwn_pci(4) driver;
-for USB devices, use the rtwn_usb(4) driver.
+driver provides support for 802.11n/ac wireless network PHYs supplied by
+.Xr rtwn_pci 4
+and
+.Xr rtwn_usb 4 .
.Pp
-The driver supports
+The
+.Nm
+driver supports
.Cm station ,
.Cm adhoc ,
.Cm hostap
@@ -79,17 +80,40 @@ The
.Nm
driver can be configured at runtime with
.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+driver supports USB and PCI devices with the following chipsets:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+Realtek 802.11n wireless 8188e (RTL8188E)
+.It
+Realtek 802.11n wireless 8192c (RTL8192C)
+.It
+Realtek 802.11n wireless 8192e (RTL8192E)
+.It
+Realtek 802.11ac wireless 8812a (RTL8812A)
+.It
+Realtek 802.11ac wireless 8821a (RTL8821A)
+.El
+.Pp
+For specific devices, see
+.Xr rtwn_pci 4
+and
+.Xr rtwn_usb 4 .
.Sh FILES
-.Bl -tag -width ".Pa /usr/share/doc/legal/realtek.LICENSE" -compact
+.Bl -tag -width "/usr/share/doc/legal/realtek.LICENSE" -compact
.It Pa /usr/share/doc/legal/realtek.LICENSE
.Nm
firmware license
.El
.Pp
-The driver (if not compiled with
-.Cd options RTWN_WITHOUT_UCODE
-) may use following firmware files, which are loaded
-when an interface is brought up:
+The driver
+.Pq if not compiled with Cd options RTWN_WITHOUT_UCODE
+may use following firmware files,
+which are loaded when an interface is brought up:
+.Pp
.Bl -tag -width Ds -offset indent -compact
.It Pa /boot/kernel/rtwn-rtl8188eefw.ko
.It Pa /boot/kernel/rtwn-rtl8188eufw.ko
@@ -103,41 +127,38 @@ when an interface is brought up:
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev rtwn0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev rtwn0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev rtwn0 ssid my_net up"
+.Dl ifconfig wlan create wlandev rtwn0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev rtwn0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Create an IBSS network with 128-bit WEP encryption on the channel 4:
.Bd -literal -offset indent
ifconfig wlan create wlandev rtwn0 wlanmode adhoc ssid my_net \e
- wepmode on wepkey 0x01020304050607080910111213 weptxkey 1 \e
- channel 4
+ wepmode on wepkey 0x01020304050607080910111213 weptxkey 1 \e
+ channel 4
.Ed
.Pp
Join/create an 802.11b IBSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Bd -literal -offset indent
ifconfig wlan0 create wlandev rtwn0 wlanmode adhoc
-ifconfig wlan0 inet 192.168.0.22 netmask 0xffffff00 ssid my_net \e
- mode 11b
+ifconfig wlan0 inet 192.0.2.20/24 ssid my_net mode 11b
.Ed
.Pp
Create a host-based access point:
.Bd -literal -offset indent
ifconfig wlan0 create wlandev rtwn0 wlanmode hostap
-ifconfig wlan0 inet 192.168.0.10 netmask 0xffffff00 ssid my_ap
+ifconfig wlan0 inet 192.0.2.20/24 ssid my_ap
.Ed
.Sh LOADER TUNABLES
Tunables can be set at the
@@ -147,32 +168,32 @@ prompt before booting the kernel or stored in
.Bl -tag -width indent
.It Va dev.rtwn.%d.hwcrypto
This tunable controls how key slots are assigned:
-.br
+.Pp
0 - disable h/w crypto support.
Features that require access to frame contents (e.g., TCP/UDP/IP Rx
checksum validation) will not work;
-.br
+.Pp
1 - use h/w crypto support for pairwise keys only;
-.br
+.Pp
2 - use h/w crypto support for all keys; may not work for
multi-vap configurations.
-.br
+.Pp
By default it is set to 1.
.It Va dev.rtwn.%d.ratectl
This tunable switches between rate control implementations:
-.br
+.Pp
0 - no rate control;
-.br
+.Pp
1 - driver sends 'tx complete' reports to net80211; algorithm
is controlled via net80211;
-.br
+.Pp
2 - firmware-based rate control.
-.br
+.Pp
By default it is set to 1; however driver may choose another
algorithm in case if it is not implemented
-.br
+.Pp
Currently selected algorithm is reported via
-.Em Va dev.rtwn.%d.ratectl_selected
+.Va dev.rtwn.%d.ratectl_selected
read-only OID.
.It Va dev.rtwn.%d.rx_buf_size
(USB only) Controls size of temporary Rx buffer; smaller buffer size
@@ -212,6 +233,7 @@ This should not happen.
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
+.Xr networking 7 ,
.Xr hostapd 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
@@ -225,7 +247,9 @@ and
the
.Nm
driver first appeared in
-.Ox 5.8 .
+.Ox 5.8
+and
+.Fx 11.0 .
.Sh AUTHORS
The
.Nm
diff --git a/share/man/man4/rtwn_pci.4 b/share/man/man4/rtwn_pci.4
index c53500a0cae3..e604007d5509 100644
--- a/share/man/man4/rtwn_pci.4
+++ b/share/man/man4/rtwn_pci.4
@@ -1,8 +1,10 @@
.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
.\" Copyright (c) 2016 Andriy Voskoboinyk <avos@FreeBSD.org>
.\" All rights reserved.
-.\""
+.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
@@ -26,13 +28,13 @@
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGES.
-.\"/
-.Dd January 2, 2019
+.\"
+.Dd November 10, 2024
.Dt RTWN_PCI 4
.Os
.Sh NAME
.Nm rtwn_pci
-.Nd "Realtek PCI device glue"
+.Nd Realtek wireless rtwn network driver PCI/PCIe support
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -46,12 +48,24 @@ kernel configuration file:
.Sh DESCRIPTION
The
.Nm
-driver supports PCIe wireless network devices based on the Realtek
-RTL8188CE/RTL8188EE chipsets.
+driver provides support for PCIe wireless network devices to the
+.Xr rtwn 4
+driver.
.Pp
Both RTL8188CE and RTL8188EE are highly integrated 802.11n adapters
that combines a MAC, a 1T1R capable baseband and an RF in a single chip.
They are operate in the 2GHz spectrum only.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following PCIe Wi-Fi devices:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+Realtek 802.11n wireless 8188 (RTL8188EE)
+.It
+Realtek 802.11n wireless 8192 (RTL8192CE)
+.El
.Sh SEE ALSO
.Xr pci 4 ,
.Xr rtwn 4 ,
diff --git a/share/man/man4/rtwn_usb.4 b/share/man/man4/rtwn_usb.4
index 8d670839c3e3..3a584d18014f 100644
--- a/share/man/man4/rtwn_usb.4
+++ b/share/man/man4/rtwn_usb.4
@@ -1,8 +1,10 @@
.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
.\" Copyright (c) 2016 Andriy Voskoboinyk <avos@FreeBSD.org>
.\" All rights reserved.
-.\""
+.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
@@ -26,13 +28,13 @@
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGES.
-.\"/
-.Dd November 1, 2021
+.\"
+.Dd November 10, 2024
.Dt RTWN_USB 4
.Os
.Sh NAME
.Nm rtwn_usb
-.Nd "Realtek USB device glue"
+.Nd Realtek wireless rtwn network driver USB support
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -48,17 +50,18 @@ kernel configuration file:
.Cd "device wlan"
.Ed
.Sh DESCRIPTION
-This module provides the USB bus glue needed for the devices supported
-by the
+The
+.Nm
+driver provides support for USB wireless network devices to the
.Xr rtwn 4
driver.
.Sh HARDWARE
The
.Nm
-driver supports Realtek RTL8188CUS/RTL8188RU/RTL8188EU/RTL8192CU/RTL8192EU/RTL8812AU/RTL8821AU
-based USB wireless network adapters, including:
+driver supports USB wireless network adapters based on certain
+Realtek RTL 8188/8192/8812 and 8821 chipsets, including:
.Pp
-.Bl -column -compact "Belkin F7D1102 Surf Wireless Micro" "RTL8188CUS" "Bus"
+.Bl -column -compact "Belkin F7D1102 Surf Wireless Micro" "RTL8188CUS" "USB 2.0"
.It Em Card Ta Em Chip Ta Em Bus
.It "Alfa AWUS036NHR v2" Ta RTL8188RU Ta USB 2.0
.It "ASUS USB-AC56" Ta RTL8812AU Ta USB 3.0
diff --git a/share/man/man4/rum.4 b/share/man/man4/rum.4
index 814f312b291b..8e77839b106b 100644
--- a/share/man/man4/rum.4
+++ b/share/man/man4/rum.4
@@ -1,3 +1,5 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
.\"
.\" Copyright (c) 2005-2007
.\" Damien Bergamini <damien.bergamini@free.fr>
@@ -14,12 +16,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd November 8, 2018
+.Dd November 10, 2024
.Dt RUM 4
.Os
.Sh NAME
.Nm rum
-.Nd Ralink Technology USB IEEE 802.11a/b/g wireless network device
+.Nd Ralink Technology USB IEEE 802.11a/b/g wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -125,20 +127,18 @@ including:
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev rum0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev rum0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev rum0 ssid my_net up"
+.Dl ifconfig wlan create wlandev rum0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev rum0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Join a specific BSS network with 128-bit WEP encryption:
@@ -164,6 +164,7 @@ This should not happen.
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
+.Xr networking 7 ,
.Xr hostapd 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
@@ -171,7 +172,9 @@ This should not happen.
The
.Nm
driver first appeared in
-.Ox 4.0 .
+.Ox 4.0
+and
+.Fx 7.0 .
.Sh AUTHORS
.An -nosplit
The original
diff --git a/share/man/man4/run.4 b/share/man/man4/run.4
index 03554d96e527..c3d9d75f8e28 100644
--- a/share/man/man4/run.4
+++ b/share/man/man4/run.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
+.\"
.\" $OpenBSD: run.4,v 1.22 2009/11/23 06:16:32 jmc Exp $
.\"
.\" Copyright (c) 2008 Damien Bergamini <damien.bergamini@free.fr>
@@ -14,12 +17,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd May 23, 2021
+.Dd April 1, 2025
.Dt RUN 4
.Os
.Sh NAME
.Nm run
-.Nd Ralink Technology USB IEEE 802.11a/g/n wireless network device
+.Nd Ralink Technology USB IEEE 802.11a/g/n wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -119,87 +122,150 @@ The
.Nm
driver supports the following wireless adapters:
.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It Airlink101 AWLL6090
-.It ASUS USB-N11
-.It ASUS USB-N13 ver. A1
-.It ASUS USB-N14
-.It ASUS USB-N66
-.It ASUS WL-160N
-.It Belkin F5D8051 ver 3000
-.It Belkin F5D8053
-.It Belkin F5D8055
-.It Belkin F6D4050 ver 1
-.It Belkin F9L1103
-.It Buffalo WLI-UC-AG300N
-.It Buffalo WLI-UC-G300HP
-.It Buffalo WLI-UC-G300N
-.It Buffalo WLI-UC-G301N
-.It Buffalo WLI-UC-GN
-.It Buffalo WLI-UC-GNM
-.It Buffalo WLI-UC-GNM2
-.It Corega CG-WLUSB2GNL
-.It Corega CG-WLUSB2GNR
-.It Corega CG-WLUSB300AGN
-.It Corega CG-WLUSB300GNM
-.It D-Link DWA-130 rev B1
-.It D-Link DWA-130 rev F1
-.It D-Link DWA-140 rev B1, B2, B3, \&D1
-.It D-Link DWA-160 rev B2
-.It D-Link DWA-162
-.It DrayTek Vigor N61
-.It Edimax EW-7711UAn
-.It Edimax EW-7711UTn
-.It Edimax EW-7717Un
-.It Edimax EW-7718Un
-.It Edimax EW-7733UnD
-.It Gigabyte GN-WB30N
-.It Gigabyte GN-WB31N
-.It Gigabyte GN-WB32L
-.It Hawking HWDN1
-.It Hawking HWUN1
-.It Hawking HWUN2
-.It Hercules HWNU-300
-.It Linksys WUSB54GC v3
-.It Linksys WUSB600N
-.It Logitec LAN-W150N/U2
-.It Mvix Nubbin MS-811N
-.It Panda Wireless PAU06
-.It Planex GW-USMicroN
-.It Planex GW-US300MiniS
-.It Sitecom WL-182
-.It Sitecom WL-188
-.It Sitecom WL-301
-.It Sitecom WL-302
-.It Sitecom WL-315
-.It SMC SMCWUSBS-N2
-.It Sweex LW303
-.It Sweex LW313
-.It TP-LINK TL-WDN3200
-.It TP-LINK TL-WN321G v4
-.It TP-LINK TL-WN727N v3
-.It Unex DNUR-81
-.It Unex DNUR-82
-.It ZyXEL NWD2705
-.It ZyXEL NWD210N
-.It ZyXEL NWD270N
+.Bl -bullet -offset indent -compact
+.It
+Airlink101 AWLL6090
+.It
+ASUS USB-N11
+.It
+ASUS USB-N13 ver. A1
+.It
+ASUS USB-N14
+.It
+ASUS USB-N66
+.It
+ASUS WL-160N
+.It
+Belkin F5D8051 ver 3000
+.It
+Belkin F5D8053
+.It
+Belkin F5D8055
+.It
+Belkin F6D4050 ver 1
+.It
+Belkin F9L1103
+.It
+Buffalo WLI-UC-AG300N
+.It
+Buffalo WLI-UC-G300HP
+.It
+Buffalo WLI-UC-G300N
+.It
+Buffalo WLI-UC-G301N
+.It
+Buffalo WLI-UC-GN
+.It
+Buffalo WLI-UC-GNM
+.It
+Buffalo WLI-UC-GNM2
+.It
+Corega CG-WLUSB2GNL
+.It
+Corega CG-WLUSB2GNR
+.It
+Corega CG-WLUSB300AGN
+.It
+Corega CG-WLUSB300GNM
+.It
+D-Link DWA-130 rev B1
+.It
+D-Link DWA-130 rev F1
+.It
+D-Link DWA-140 rev B1, B2, B3, \&D1
+.It
+D-Link DWA-160 rev B2
+.It
+D-Link DWA-162
+.It
+DrayTek Vigor N61
+.It
+Edimax EW-7711UAn
+.It
+Edimax EW-7711UTn
+.It
+Edimax EW-7717Un
+.It
+Edimax EW-7718Un
+.It
+Edimax EW-7733UnD
+.It
+Gigabyte GN-WB30N
+.It
+Gigabyte GN-WB31N
+.It
+Gigabyte GN-WB32L
+.It
+Hawking HWDN1
+.It
+Hawking HWUN1
+.It
+Hawking HWUN2
+.It
+Hercules HWNU-300
+.It
+Linksys WUSB54GC v3
+.It
+Linksys WUSB600N
+.It
+Logitec LAN-W150N/U2
+.It
+Mvix Nubbin MS-811N
+.It
+Panda Wireless PAU06
+.It
+Planex GW-USMicroN
+.It
+Planex GW-US300MiniS
+.It
+Sitecom WL-182
+.It
+Sitecom WL-188
+.It
+Sitecom WL-301
+.It
+Sitecom WL-302
+.It
+Sitecom WL-315
+.It
+Sitecom WL-364
+.It
+SMC SMCWUSBS-N2
+.It
+Sweex LW303
+.It
+Sweex LW313
+.It
+TP-LINK TL-WDN3200
+.It
+TP-LINK TL-WN321G v4
+.It
+TP-LINK TL-WN727N v3
+.It
+Unex DNUR-81
+.It
+Unex DNUR-82
+.It
+ZyXEL NWD2705
+.It
+ZyXEL NWD210N
+.It
+ZyXEL NWD270N
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev run0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev run0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev run0 ssid my_net up"
+.Dl ifconfig wlan create wlandev run0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev run0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Join a specific BSS network with 128-bit WEP encryption:
@@ -232,6 +298,7 @@ This should not happen.
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
+.Xr networking 7 ,
.Xr hostapd 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
diff --git a/share/man/man4/sa.4 b/share/man/man4/sa.4
index 96b11ebe5360..699a940a34d1 100644
--- a/share/man/man4/sa.4
+++ b/share/man/man4/sa.4
@@ -457,7 +457,8 @@ One EOM notification will be sent, BPEW status will be set for one position
query, and then the driver state will be reset to normal.
.Sh SEE ALSO
.Xr mt 1 ,
-.Xr cam 4
+.Xr cam 4 ,
+.Xr mtio 4
.Sh AUTHORS
.An -nosplit
The
diff --git a/share/man/man4/safe.4 b/share/man/man4/safe.4
index 61f2041ff333..89375d058bf7 100644
--- a/share/man/man4/safe.4
+++ b/share/man/man4/safe.4
@@ -1,4 +1,6 @@
-.\"-
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2003 Sam Leffler, Errno Consulting
.\" All rights reserved.
.\"
@@ -22,13 +24,13 @@
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
-.\"/
-.Dd July 29, 2020
+.\"
+.Dd November 22, 2024
.Dt SAFE 4
.Os
.Sh NAME
.Nm safe
-.Nd SafeNet crypto accelerator
+.Nd SafeNet SafeXcel 1141/1741 crypto accelerator
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -46,11 +48,15 @@ module at boot time, place the following line in
safe_load="YES"
.Ed
.Pp
-.Nm sysctl Va hw.safe.debug
-.Nm sysctl Va hw.safe.dump
-.Nm sysctl Va hw.safe.rnginterval
-.Nm sysctl Va hw.safe.rngbufsize
-.Nm sysctl Va hw.safe.rngmaxalarm
+In
+.Xr sysctl.conf 5 :
+.Bd -ragged -offset indent
+.Cd hw.safe.debug
+.Cd hw.safe.dump
+.Cd hw.safe.rnginterval
+.Cd hw.safe.rngbufsize
+.Cd hw.safe.rngmaxalarm
+.Ed
.Sh DESCRIPTION
The
.Nm
@@ -106,15 +112,13 @@ to dump the hardware interrupt registers.
.Sh HARDWARE
The
.Nm
-driver supports cards containing any of the following chips:
-.Bl -tag -width "SafeNet 1141" -offset indent
-.It SafeNet 1141
-The original chipset.
+driver supports the following SafeXcel chips:
+.Bl -column "SafeNet 1141" "The original chipset. Supports" -offset indent
+.It SafeNet 1141 Ta The original chipset.
Supports DES, Triple-DES, AES, MD5, and SHA-1
symmetric crypto operations, RNG, public key operations, and full IPsec
packet processing.
-.It SafeNet 1741
-A faster version of the 1141.
+.It SafeNet 1741 Ta A faster version of the 1141.
.El
.Sh SEE ALSO
.Xr crypt 3 ,
diff --git a/share/man/man4/safexcel.4 b/share/man/man4/safexcel.4
index d5e079822ecc..e14eebe40da2 100644
--- a/share/man/man4/safexcel.4
+++ b/share/man/man4/safexcel.4
@@ -1,4 +1,6 @@
-.\"-
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2020 Rubicon Communications, LLC (Netgate)
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -22,12 +24,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 29, 2020
+.Dd November 22, 2024
.Dt SAFEXCEL 4
.Os
.Sh NAME
.Nm safexcel
-.Nd Inside Secure SafeXcel-IP-97 security packet engine
+.Nd Inside Secure SafeXcel-IP-97 cryptographic offload engine
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -69,6 +71,11 @@ AES-CCM
.Nm
also implements SHA1 and SHA2 transforms, and can combine AES-CBC and AES-CTR
with SHA1-HMAC and SHA2-HMAC for encrypt-then-authenticate operations.
+.Sh HARDWARE
+The
+.Nm
+driver supports the cryptographic acceleration functions of the
+Inside Secure EIP-97 device found on some Marvell systems-on-chip.
.Sh SEE ALSO
.Xr crypto 4 ,
.Xr ipsec 4 ,
diff --git a/share/man/man4/scc.4 b/share/man/man4/scc.4
index 05e9890a0bcc..db0c6deaf6bd 100644
--- a/share/man/man4/scc.4
+++ b/share/man/man4/scc.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2006 Marcel Moolenaar
.\" All rights reserved.
.\"
@@ -23,13 +25,13 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd December 26, 2020
+.Dd May 26, 2025
.Dt SCC 4
.Os
.\"
.Sh NAME
.Nm scc
-.Nd driver for Serial Communications Controllers (SCC) devices
+.Nd Serial Communications Controller driver
.\"
.Sh SYNOPSIS
.Cd "device scc"
@@ -48,7 +50,7 @@ take care of the details of the communication itself.
.Sh HARDWARE
The
.Nm
-driver supports the following classes of SCCs:
+driver supports the following classes of Serial Communications Controllers:
.Pp
.Bl -bullet -compact
.It
diff --git a/share/man/man4/sg.4 b/share/man/man4/sg.4
new file mode 100644
index 000000000000..ac549452cc93
--- /dev/null
+++ b/share/man/man4/sg.4
@@ -0,0 +1,63 @@
+.\"
+.\" Copyright (c) 2024 Netflix, Inc.
+.\"
+.\" SPDX-License-Expression: BSD-2-Clause
+.\"
+.Dd May 6, 2024
+.Dt SG 4
+.Os
+.Sh NAME
+.Nm sg
+.Nd Linux ioctl-compatible SCSI passthru device
+.Sh SYNOPSIS
+.Cd device sg
+.Cd device scbus
+.Sh DESCRIPTION
+The
+.Nm
+driver provides a Linux compatible scsi passthru device.
+This driver attaches to all
+.Xr cam 4
+peripheral devices.
+It is similar to the
+.Xr pass 4
+device, but uses the Linux interfaces, rather than the FreeBSD CAM interfaces.
+.Sh IOCTL
+The following subset of the Linux sg ioctl interfaces are implemented:
+.Bl -tag -width 12
+.It Va SG_SET_TIMEOUT
+.Fa u_int to
+Set the timeout in milliseconds.
+.It Va SG_GET_TIMEOUT
+Get the timeout in milliseconds
+.It Va SG_GET_RESERVED_SIZE
+.Fa u_int
+Returns the size of the I/O one can do this device.
+.It Va SG_GET_SCSI_ID
+.Fa struct sg_scsi_id
+Returns the bus number, channel, scsi bus ID number, lun and other information
+about the SCSI device.
+.It Va SG_GET_SG_TABLESIZE
+.Fa u_int
+Returns the table size, though hard wired to 0.
+.It Va SG_GET_VERSION_NUM
+.Fa u_int
+Return the version number that is implemented.
+.It Va SG_IO
+.Fa struct sg_io_hdr
+.El
+All other ioctl interfaces return
+.Va ENODEV .
+.Sh FILES
+.Bl -tag -width ".Pa /dev/sg*" -compact
+.It Pa /dev/sg*
+Passthru devices.
+.El
+.Sh SEE ALSO
+.Xr cam 4 ,
+.Xr pass 4
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 7.0 .
diff --git a/share/man/man4/smb.4 b/share/man/man4/smb.4
index d2a1c3b9a618..e944f1b76b5e 100644
--- a/share/man/man4/smb.4
+++ b/share/man/man4/smb.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifer: BSD-2-Clause
+.\"
.\" Copyright (c) 1998, Nicolas Souchu
.\" Copyright (c) 2004, Joerg Wunsch
.\" Copyright (c) 2015, Michael Gmelin <freebsd@grem.de>
@@ -29,7 +32,7 @@
.Os
.Sh NAME
.Nm smb
-.Nd SMB generic I/O device driver
+.Nd System Management Bus (SMBus) generic I/O device driver
.Sh SYNOPSIS
.Cd "device smb"
.Sh DESCRIPTION
diff --git a/share/man/man5/smbfs.5 b/share/man/man4/smbfs.4
index 7be90c3ba882..df64bdc3884f 100644
--- a/share/man/man5/smbfs.5
+++ b/share/man/man4/smbfs.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2020 Gordon Bergling
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -22,11 +25,11 @@
.\" SUCH DAMAGE.
.\"
.Dd April 6, 2022
-.Dt SMBFS 5
+.Dt SMBFS 4
.Os
.Sh NAME
.Nm smbfs
-.Nd "SMB FS"
+.Nd server message block (SMB1/CIFS) file system
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -59,7 +62,7 @@ and
may be removed from a future version of
.Fx .
Users are advised to evaluate the
-.Pa sysutils/fusefs-smbnetfs
+.Pa filesystems/smbnetfs
port instead.
.Ef
.Sh SEE ALSO
diff --git a/share/man/man4/smsc.4 b/share/man/man4/smsc.4
index 56c1556e5f83..61b12c7d230c 100644
--- a/share/man/man4/smsc.4
+++ b/share/man/man4/smsc.4
@@ -25,12 +25,12 @@
.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd November 24, 2015
+.Dd May 7, 2024
.Dt SMSC 4
.Os
.Sh NAME
.Nm smsc
-.Nd "USB SMSC LAN9xxx Fast Ethernet driver"
+.Nd "USB Microchip LAN9xxx Fast Ethernet driver"
.Sh SYNOPSIS
To load the driver as a module at boot time, place the
following line in
@@ -53,7 +53,7 @@ following lines in your kernel configuration file:
The
.Nm
device driver provides support for USB Fast Ethernet adapters based
-on the SMSC LAN9xxx chipsets.
+on the Microchip (formerly SMSC) LAN9xxx chipsets.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
@@ -64,11 +64,11 @@ driver:
.Pp
.Bl -bullet -compact
.It
-SMSC LAN9500, LAN9500A, LAN9505 and LAN9505A based Ethernet adapters
+LAN9500, LAN9500A, LAN9505 and LAN9505A based Ethernet adapters
.It
-SMSC LAN89530, LAN9530 and LAN9730 based Ethernet adapters
+LAN89530, LAN9530 and LAN9730 based Ethernet adapters
.It
-SMSC LAN951x Ethernet adapters with integrated USB hub
+LAN951x Ethernet adapters with integrated USB hub
.El
.Sh SEE ALSO
.Xr arp 4 ,
diff --git a/share/man/man9/vm_map_simplify_entry.9 b/share/man/man4/snd_dummy.4
index 0e99596d067e..2b9d26d318ef 100644
--- a/share/man/man9/vm_map_simplify_entry.9
+++ b/share/man/man4/snd_dummy.4
@@ -1,6 +1,10 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
-.\" All rights reserved.
+.\" Copyright (c) 2024 The FreeBSD Foundation
+.\"
+.\" Portions of this software were developed by Christos Margiolis
+.\" <christos@FreeBSD.org> under sponsorship from the FreeBSD Foundation.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -23,37 +27,43 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 19, 2003
-.Dt VM_MAP_SIMPLIFY_ENTRY 9
+.Dd July 15, 2024
+.Dt SND_DUMMY 4
.Os
.Sh NAME
-.Nm vm_map_simplify_entry
-.Nd simplify a
-.Vt vm_map_entry
+.Nm snd_dummy
+.Nd Dummy audio driver
.Sh SYNOPSIS
-.In sys/param.h
-.In vm/vm.h
-.In vm/vm_map.h
-.Ft void
-.Fn vm_map_simplify_entry "vm_map_t map" "vm_map_entry_t entry"
+To load the driver at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+snd_dummy_load="YES"
+.Ed
.Sh DESCRIPTION
The
-.Fn vm_map_simplify_entry
-function simplifies the given
-.Fa entry
-by merging with either neighbour.
-The
-.Fa map
-must be locked upon entry.
+.Nm
+driver implements a virtual testing device, meaning it does not correspond to a
+physical sound card.
+It is intended for testing, so that test programs do not need to rely on
+hardware being present in the machine in order to run.
.Pp
-This function also has the ability to merge with both neighbours.
+The driver attaches as a regular PCM device, with two channels (one playback
+and one recording), as well as a mixer.
.Pp
-This function guarantees that the passed entry remains valid, although
-possibly extended.
+Playback works by discarding all input, and recording by returning silence
+(zeros).
.Sh SEE ALSO
-.Xr vm_map 9 ,
-.Xr vm_map_insert 9 ,
-.Xr vm_map_remove 9
+.Xr sound 4 ,
+.Xr loader.conf 5 ,
+.Xr loader 8
.Sh AUTHORS
-This manual page was written by
-.An Bruce M Simpson Aq Mt bms@spc.org .
+The
+.Nm
+driver was implemented by
+.An Christos Margiolis Aq Mt christos@FreeBSD.org
+under sponsorship from the
+.Fx
+Foundation.
+.Sh CAVEATS
+Because the driver automatically attaches once the module is loaded, it can
+only be attached once.
diff --git a/share/man/man4/snd_hda.4 b/share/man/man4/snd_hda.4
index 45ad2ee132ca..93bac0e5b3b9 100644
--- a/share/man/man4/snd_hda.4
+++ b/share/man/man4/snd_hda.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2006-2008 Joel Dahl <joel@FreeBSD.org>
.\" Copyright (c) 2008 Alexander Motin <mav@FreeBSD.org>
.\" All rights reserved.
@@ -23,7 +26,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 16, 2019
+.Dd January 20, 2025
.Dt SND_HDA 4
.Os
.Sh NAME
@@ -384,6 +387,15 @@ Run-time equivalent of the
.Va hint.pcm.%d.rec.autosrc
tunable.
.El
+.Sh HARDWARE
+The
+.Nm
+driver supports PCI class 04h
+.Pq multimedia ,
+subclass 03h
+.Pq HDA
+audio controllers and codecs compatible with the
+Intel High Definition Audio 1.0 specification.
.Sh EXAMPLES
Taking HP Compaq DX2300 with Realtek ALC888 HDA codec for example.
This system has two audio connectors on a front side, three audio connectors
@@ -583,17 +595,6 @@ other random inputs
Controls have different precision.
Some could be just an on/off triggers.
Most of controls use logarithmic scale.
-.Sh HARDWARE
-The
-.Nm
-driver supports controllers having PCI class 4 (multimedia) and
-subclass 3 (HDA), compatible with Intel HDA specification.
-.Pp
-The
-.Nm
-driver supports more than two hundred different controllers and CODECs.
-There is no sense to list all of them here, as in most cases specific CODEC
-configuration and wiring are more important then type of the CODEC itself.
.Sh SEE ALSO
.Xr snd_ich 4 ,
.Xr sound 4 ,
diff --git a/share/man/man4/snd_hdsp.4 b/share/man/man4/snd_hdsp.4
new file mode 100644
index 000000000000..ca24bcf22cd0
--- /dev/null
+++ b/share/man/man4/snd_hdsp.4
@@ -0,0 +1,176 @@
+.\" Copyright (c) 2012 Ruslan Bukin <br@bsdpad.com>
+.\" Copyright (c) 2024 Florian Walpen <dev@submerge.ch>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd October 28, 2024
+.Dt SND_HDSP 4
+.Os
+.Sh NAME
+.Nm snd_hdsp
+.Nd "RME HDSP bridge device driver"
+.Sh SYNOPSIS
+To compile this driver into the kernel, place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device sound"
+.Cd "device snd_hdsp"
+.Ed
+.Pp
+Alternatively, to load the driver as a module at boot time, place the
+following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+snd_hdsp_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+bridge driver allows the generic audio driver
+.Xr sound 4
+to attach to RME HDSP audio devices.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following audio devices:
+.Pp
+.Bl -bullet -compact
+.It
+RME HDSP 9632 (optional AO4S-192 and AIS-192 extension boards)
+.It
+RME HDSP 9652
+.El
+.Pp
+By default, each
+.Xr pcm 4
+device corresponds to a physical port on the sound card.
+For ADAT ports, 8 channel, 4 channel and 2 channel formats are supported.
+The effective number of ADAT channels is 8 channels at single speed
+(32kHz-48kHz) and 4 channels at double speed (64kHz-96kHz).
+Only the HDSP 9632 can operate at quad speed (128kHz-192kHz), ADAT is
+disabled in this mode.
+Depending on sample rate and channel format selected, not all pcm channels can
+be mapped to ADAT channels and vice versa.
+.Sh LOADER TUNABLES
+These settings can be entered at the
+.Xr loader 8
+prompt or in
+.Xr loader.conf 5 .
+.Bl -tag -width indent
+.It Va hw.hdsp.unified_pcm
+If set to 1, all physical ports are combined into one unified pcm device.
+When opened in multi-channel audio software, this makes all ports available
+at the same time, and fully synchronized.
+For resulting channel numbers consult the following table:
+.El
+.Bl -column "Sound Card" "Single Speed" "Double Speed" "Quad Speed"
+.Sy "Sound Card" Ta Sy "Single Speed" Ta Sy "Double Speed" Ta Sy "Quad Speed"
+.It "" Ta "Play | Rec" Ta "Play | Rec" Ta "Play | Rec"
+.It HDSP 9632 Ta " 16 | 16" Ta " 12 | 12" Ta " 8 | 8"
+.It HDSP 9652 Ta " 26 | 26" Ta " 14 | 14" Ta " - | -"
+.El
+.Sh SYSCTL TUNABLES
+These settings and informational values can be accessed at runtime with the
+.Xr sysctl 8
+command.
+If multiple RME HDSP sound cards are installed, each device has a separate
+configuration.
+To adjust the following sysctl identifiers for a specific sound card, insert
+the respective device number in place of
+.Ql 0 .
+.Bl -tag -width indent
+.It Va dev.hdsp.0.sample_rate
+Set a fixed sample rate from 32000, 44100, 48000, up to 192000.
+This is usually required for digital connections (AES, S/PDIF, ADAT).
+The default value of 0 adjusts the sample rate according to pcm device settings.
+.It Va dev.hdsp.0.period
+The number of samples processed per interrupt, from 32, 64, 128, up to 4096.
+Setting a lower value here results in less latency, but increases system load
+due to frequent interrupt processing.
+Extreme values may cause audio gaps and glitches.
+.It Va dev.hdsp.0.clock_list
+Lists possible clock sources to sync with, depending on the hardware model.
+This includes internal and external master clocks as well as incoming digital
+audio signals like AES, S/PDIF and ADAT.
+.It Va dev.hdsp.0.clock_preference
+Select a preferred clock source from the clock list.
+HDSP cards will sync to this clock source when available, but fall back to
+auto-sync with any other digital clock signal they receive.
+Set this to
+.Ql internal
+if the HDSP card should act as master clock.
+.It Va dev.hdsp.0.clock_source
+Shows the actual clock source in use (read only).
+This differs from what is set as clock preference when in auto-sync mode.
+.It Va dev.hdsp.0.sync_status
+Display the current sync status of all external clock sources.
+Status indications are
+.Ql none
+for no signal at all,
+.Ql lock
+for when a valid signal is present, and
+.Ql sync
+for accurately synchronized signals (required for recording digital
+audio).
+.El
+.Pp
+The following tunables are applicable to HDSP 9632 devices only:
+.Bl -tag -width indent
+.It Va dev.hdsp.0.input_level
+Select the sensitivity of the analog line input.
+Available reference levels for the input signal are
+.Ql LowGain ,
+.Ql +4dBu
+and
+.Ql -10dBV .
+.It Va dev.hdsp.0.output_level
+Select the gain level of the analog line output.
+Available reference levels for the output signal are
+.Ql HighGain ,
+.Ql +4dBu
+and
+.Ql -10dBV .
+.It Va dev.hdsp.0.phones_level
+Adjust the gain level of the phones output, separately from the analog line
+output.
+The signal can be lowered by 6 or 12 dB.
+.El
+.Pp
+Where appropriate these sysctl values are modeled after official RME software on
+other platforms, and adopt their terminology.
+Consult the RME user manuals for additional information.
+.Sh SEE ALSO
+.Xr sound 4
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+Based on
+.Xr snd_hdspe 4
+originally written by
+.An Ruslan Bukin <br@bsdpad.com> .
+All adaptation to HDSP cards by
+.An Florian Walpen <dev@submerge.ch> .
diff --git a/share/man/man4/snd_hdspe.4 b/share/man/man4/snd_hdspe.4
index a8c7be538dd1..35dea518da64 100644
--- a/share/man/man4/snd_hdspe.4
+++ b/share/man/man4/snd_hdspe.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 9, 2024
+.Dd November 2, 2024
.Dt SND_HDSPE 4
.Os
.Sh NAME
@@ -55,7 +55,7 @@ driver supports the following audio devices:
.Pp
.Bl -bullet -compact
.It
-RME HDSPe AIO
+RME HDSPe AIO (optional AO4S-192 and AI4S-192 extension boards)
.It
RME HDSPe RayDAT
.El
@@ -84,7 +84,7 @@ For resulting channel numbers consult the following table:
.Bl -column "HDSPe RayDAT" "Single Speed" "Double Speed" "Quad Speed"
.Sy "Sound Card" Ta Sy "Single Speed" Ta Sy "Double Speed" Ta Sy "Quad Speed"
.It "" Ta "Play | Rec" Ta "Play | Rec" Ta "Play | Rec"
-.It HDSPe AIO Ta " 16 | 14" Ta " 12 | 10" Ta " 10 | 8"
+.It HDSPe AIO Ta " 20 | 18" Ta " 16 | 14" Ta " 14 | 12"
.It HDSPe RayDAT Ta " 36 | 36" Ta " 20 | 20" Ta " 12 | 12"
.El
.Sh SYSCTL TUNABLES
@@ -132,6 +132,32 @@ for accurately synchronized signals (required for recording digital
audio).
.El
.Pp
+The following tunables are applicable to HDSPe AIO devices only:
+.Bl -tag -width indent
+.It Va dev.hdspe.0.input_level
+Select the sensitivity of the analog line input.
+Available reference levels for the input signal are
+.Ql LowGain ,
+.Ql +4dBu
+and
+.Ql -10dBV .
+.It Va dev.hdspe.0.output_level
+Select the gain level of the analog line output.
+Available reference levels for the output signal are
+.Ql HighGain ,
+.Ql +4dBu
+and
+.Ql -10dBV .
+.It Va dev.hdspe.0.phones_level
+Adjust the gain level of the phones output, separately from the analog line
+output.
+Available reference levels for the output signal are
+.Ql HighGain ,
+.Ql +4dBu
+and
+.Ql -10dBV .
+.El
+.Pp
Where appropriate these sysctl values are modeled after official RME software on
other platforms, and adopt their terminology.
Consult the RME user manuals for additional information.
diff --git a/share/man/man4/snd_uaudio.4 b/share/man/man4/snd_uaudio.4
index 6e2509b8f2ac..7193c85fa4f0 100644
--- a/share/man/man4/snd_uaudio.4
+++ b/share/man/man4/snd_uaudio.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" $NetBSD: uaudio.4,v 1.15 2002/02/12 19:53:57 jdolecek Exp $
.\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -27,32 +30,30 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd March 26, 2024
+.Dd July 17, 2025
.Dt SND_UAUDIO 4
.Os
.Sh NAME
.Nm snd_uaudio
.Nd USB audio and MIDI device driver
.Sh SYNOPSIS
-To compile this driver into the kernel, place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device sound"
.Cd "device usb"
.Cd "device snd_uaudio"
-.Ed
.Pp
-Alternatively, to load the driver as a module at boot time, place the
-following line in
-.Xr loader.conf 5 :
-.Bd -literal -offset indent
-snd_uaudio_load="YES"
-.Ed
-.Sh DESCRIPTION
-The
-.Nm
-driver provides support for USB audio class devices and USB MIDI class devices.
+In
+.Xr rc.conf 5 :
+.Cd kld_list="snd_uaudio"
.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd hw.usb.uaudio.buffer_ms
+.Cd hw.usb.uaudio.default_bits
+.Cd hw.usb.uaudio.default_channels
+.Cd hw.usb.uaudio.default_rate
+.Cd hw.usb.uaudio.handle_hid
+.Cd hw.usb.uaudio.debug
+.Sh DESCRIPTION
A USB audio device consists of a number of components: input terminals (e.g.\&
USB digital input), output terminals (e.g.\& speakers), and a number of units
in between (e.g.\& volume control).
@@ -68,6 +69,11 @@ sample rate and sample size.
Refer to the
.Ql USB Audio Class Specification
for more information.
+.Sh HARDWARE
+The
+.Nm
+driver provides support for USB audio class devices and
+USB MIDI class devices.
.Sh SYSCTL VARIABLES
The following settings can be entered at the
.Xr loader 8
@@ -156,13 +162,6 @@ and modified for
by
.An Hiten Pandya Aq Mt hmp@FreeBSD.org .
.Sh BUGS
-Some USB audio devices might refuse to work properly unless the sample
-rate is configured the same for both recording and playback, even if
-only simplex is used.
-See the
-.Va dev.pcm.%d.[play|rec].vchanrate
-sysctls.
-.Pp
The PCM framework in
.Fx
currently does not support the full set of USB audio mixer controls.
diff --git a/share/man/man4/sndstat.4 b/share/man/man4/sndstat.4
index 8325490da162..5927e03ae439 100644
--- a/share/man/man4/sndstat.4
+++ b/share/man/man4/sndstat.4
@@ -29,7 +29,7 @@
.\"
.\" Note: The date here should be updated whenever a non-trivial
.\" change is made to the manual page.
-.Dd April 15, 2021
+.Dd July 26, 2024
.Dt SNDSTAT 4
.Os
.Sh NAME
@@ -60,25 +60,63 @@ struct sndstioc_nv_arg {
Here is an example of an nvlist object with explanations of the common fields:
.Bd -literal -offset indent
dsps (NVLIST ARRAY): 1
- from_user (BOOL): FALSE
- nameunit (STRING): [pcm0]
- devnode (STRING): [dsp0]
- desc (STRING): [Generic (0x8086) (Analog Line-out)]
- pchan (NUMBER): 1 (1) (0x1)
- rchan (NUMBER): 0 (0) (0x0)
- info_play (NVLIST):
- min_rate (NUMBER): 48000 (48000) (0xbb80)
- max_rate (NUMBER): 48000 (48000) (0xbb80)
- formats (NUMBER): 16 (16) (0x10)
- min_chn (NUMBER): 2 (2) (0x2)
- max_chn (NUMBER): 2 (2) (0x2)
- provider_info (NVLIST):
- unit (NUMBER): 0 (0) (0x0)
- bitperfect (BOOL): FALSE
- pvchan (NUMBER): 1 (1) (0x1)
- rvchan (NUMBER): 0 (0) (0x0)
- provider (STRING): [sound(4)]
- ,
+ from_user (BOOL): FALSE
+ nameunit (STRING): [pcm0]
+ devnode (STRING): [dsp0]
+ desc (STRING): [Generic (0x8086) (Analog Line-out)]
+ pchan (NUMBER): 1
+ rchan (NUMBER): 0
+ info_play (NVLIST):
+ min_rate (NUMBER): 48000
+ max_rate (NUMBER): 48000
+ formats (NUMBER): 16
+ min_chn (NUMBER): 2
+ max_chn (NUMBER): 2
+ provider_info (NVLIST):
+ unit (NUMBER): 0
+ status (STRING): on hdaa0
+ bitperfect (BOOL): FALSE
+ pvchan (BOOL): TRUE
+ pvchanrate (NUMBER): 48000
+ pvchanformat (NUMBER): 0x00000010
+ rvchan (BOOL): TRUE
+ rvchanrate (NUMBER): 48000
+ rvchanformat (NUMBER): 0x00000010
+ channel_info (NVLIST_ARRAY): 1
+ name (STRING): dsp0.virtual_play.0
+ parentchan (STRING): dsp0.play.0
+ unit (NUMBER): 1
+ caps (NUMBER): 0x073200
+ latency (NUMBER): 2
+ rate (NUMBER): 48000
+ format (NUMBER): 0x201000
+ pid (NUMBER): 1234
+ comm (STRING): mpv
+ interrupts (NUMBER): 0
+ feedcount (NUMBER): 0
+ xruns (NUMBER): 0
+ left_volume (NUMBER): 45
+ right_volume (NUMBER): 45
+ hwbuf_fmt (NUMBER): 0x200010
+ hwbuf_rate (NUMBER): 48000
+ hwbuf_size (NUMBER): 0
+ hwbuf_blksz (NUMBER): 0
+ hwbuf_blkcnt (NUMBER): 0
+ hwbuf_free (NUMBER): 0
+ hwbuf_ready (NUMBER): 0
+ swbuf_fmt (NUMBER): 0x201000
+ swbuf_rate (NUMBER): 48000
+ swbuf_size (NUMBER): 16384
+ swbuf_blksz (NUMBER): 2048
+ swbuf_blkcnt (NUMBER): 8
+ swbuf_free (NUMBER): 16384
+ swbuf_ready (NUMBER): 0
+ feederchain (STRING):
+ [userland ->
+ feeder_root(0x00201000) ->
+ feeder_format(0x00201000 -> 0x00200010) ->
+ feeder_volume(0x00200010) -> hardware]
+ provider (STRING): [sound(4)]
.Ed
.Bl -tag -width ".Dv provider_info"
.It Dv from_user
@@ -133,6 +171,93 @@ Provider-specific fields.
This field may not exist if the PCM audio device is not provided by in-kernel
interface.
This field will not exist if the provider field is an empty string.
+For the
+.Xr sound 4
+provider, there are a number of name/value pairs inside this field:
+.Bl -tag -width ".Dv channel_info"
+.It Dv unit
+Sound card unit.
+.It Dv status
+Status string.
+Usually reports the driver the device is attached on.
+.It Dv bitperfect
+Whether the sound card has bit-perfect mode enabled.
+.It Dv pvchan
+Playback virtual channels enabled.
+.It Dv pvchanrate
+Playback virtual channel sample rate.
+.It Dv pvchanformat
+Playback virtual channel format.
+.It Dv rvchan
+Recording virtual channels enabled.
+.It Dv rvchanrate
+Recording virtual channel sample rate.
+.It Dv rvchanformat
+Recording virtual channel format.
+.It Dv channel_info
+Channel information.
+There are a number of name/value pairs inside this field:
+.Bl -tag -width ".Dv hwbuf_blkcnt"
+.It Dv name
+Channel name.
+.It Dv parentchan
+Parent channel name (e.g., in the case of virtual channels).
+.It Dv unit
+Channel unit.
+.It Dv caps
+OSS capabilities.
+.It Dv latency
+Latency.
+.It Dv rate
+Sampling rate.
+.It Dv format
+Sampling format.
+.It Dv pid
+PID of the process consuming the channel.
+.It Dv comm
+Name of the process consuming the channel.
+.It Dv interrupts
+Number of interrupts since the channel has been opened.
+.It Dv xruns
+Number of overruns/underruns, depending on channel direction.
+.It Dv feedcount
+Number of read/written bytes since the channel has been opened.
+.It Dv left_volume
+Left volume.
+.It Dv right_volume
+Right volume.
+.It Dv hwbuf_format
+Hardware buffer format.
+.It Dv hwbuf_rate
+Hardware buffer sample rate;
+.It Dv hwbuf_size
+Hardware buffer size.
+.It Dv hwbuf_blksz
+Hardware buffer block size.
+.It Dv hwbuf_blkcnt
+Hardware buffer block count.
+.It Dv hwbuf_free
+Free space in hardware buffer (in bytes).
+.It Dv hwbuf_ready
+Number of bytes ready to be read/written from hardware buffer.
+.It Dv swbuf_format
+Software buffer format.
+.It Dv swbuf_rate
+Software buffer sample rate;
+.It Dv swbuf_size
+Software buffer size.
+.It Dv swbuf_blksz
+Software buffer block size.
+.It Dv swbuf_blkcnt
+Software buffer block count.
+.It Dv swbuf_free
+Free space in software buffer (in bytes).
+.It Dv swbuf_ready
+Number of bytes ready to be read/written from software buffer.
+.It Dv feederchain
+Channel feeder chain.
+.El
+.El
.It Dv provider
A string specifying the provider of the PCm audio device.
.El
diff --git a/share/man/man4/splash.4 b/share/man/man4/splash.4
index b6d93287286c..0e52d9eb83c4 100644
--- a/share/man/man4/splash.4
+++ b/share/man/man4/splash.4
@@ -24,7 +24,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd December 31, 2015
+.Dd July 09, 2024
.Dt SPLASH 4
.Os
.Sh NAME
@@ -203,7 +203,9 @@ have the following line in the kernel configuration file.
.Pp
.Dl device splash
.Pp
-Next, edit
+Next for
+.Xr syscons 4 ,
+edit
.Pa /boot/loader.conf
(see
.Xr loader.conf 5 )
@@ -240,6 +242,18 @@ splash_txt_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bin"
.Ed
+.Pp
+For
+.Xr vt 4 ,
+edit
+.Pa /boot/loader.conf
+(see
+.Xr loader.conf 5 )
+and include the following lines:
+.Bd -literal -offset indent
+splash="/boot/images/freebsd-logo-rev.png"
+boot_mute="YES"
+.Ed
.\".Sh DIAGNOSTICS
.Sh SEE ALSO
.Xr vidcontrol 1 ,
@@ -290,10 +304,17 @@ and
.Pa warp_saver
modules were written by
.An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org .
+.Pa splash
+png support for
+.Xr vt 4
+was written by
+.An Emmanuel Vadot Aq Mt manu@FreeBSD.org .
.Sh CAVEATS
-Both the splash screen and the screen saver work with
+The screen saver works with
.Xr syscons 4
only.
+.Pp
+For vt splash screen, only RGBA png are supported.
.Sh BUGS
If you load a screen saver while another screen saver has already
been loaded, the first screen saver will not be automatically unloaded
diff --git a/share/man/man4/stf.4 b/share/man/man4/stf.4
index 2c0296b204d9..c93600c15e0a 100644
--- a/share/man/man4/stf.4
+++ b/share/man/man4/stf.4
@@ -201,7 +201,7 @@ The IPv4 WAN address.
The prefix length of the IPv4 WAN address.
.El
.Pp
-These can parameters are all configured through
+These parameters are all configured through
.Xr ifconfig 8 .
.Pp
The IPv6 address and prefix length can be configured like any other IPv6 address.
diff --git a/share/man/man4/syscons.4 b/share/man/man4/syscons.4
index 19ecd5e3746e..7e31680ced3f 100644
--- a/share/man/man4/syscons.4
+++ b/share/man/man4/syscons.4
@@ -24,7 +24,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd May 25, 2022
+.Dd November 2, 2024
.Dt SYSCONS 4
.Os
.Sh NAME
@@ -69,6 +69,14 @@ In
In
.Pa /boot/loader.conf :
.Cd kern.vty=sc
+.Sh DEPRECATION NOTICE
+The
+.Nm
+console is deprecated, and will be removed in a future version of
+.Fx .
+Users are advised to migrate to the
+.Xr vt 4
+console instead.
.Sh DESCRIPTION
The
.Nm
diff --git a/share/man/man5/tarfs.5 b/share/man/man4/tarfs.4
index 56c56ac43287..1a2944de9063 100644
--- a/share/man/man5/tarfs.5
+++ b/share/man/man4/tarfs.4
@@ -25,7 +25,7 @@
.\" SUCH DAMAGE.
.\"
.Dd February 14, 2023
-.Dt TARFS 5
+.Dt TARFS 4
.Os
.Sh NAME
.Nm tarfs
@@ -72,7 +72,7 @@ When using
to create the tar file, this can be achieved using the
.Cm zstd:max-frame-size
and
-.Cm ztsd:frame-per-file
+.Cm zstd:frame-per-file
options.
Sensible frame sizes are powers of 2 between the system's base page size
(see
diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4
index 39db12752937..fcfda42908d8 100644
--- a/share/man/man4/tcp.4
+++ b/share/man/man4/tcp.4
@@ -31,7 +31,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 30, 2023
+.Dd June 27, 2025
.Dt TCP 4
.Os
.Sh NAME
@@ -200,6 +200,35 @@ The alternate TCP stack must already be loaded in the kernel.
To list the available TCP stacks, see
.Va functions_available
in the
+.Sx FIB support
+TCP sockets are FIB-aware.
+They inherit the FIB of the process which created the socket, or that of the
+listening socket for sockets created by
+.Xr accept 2 .
+In particular, the FIB is not inherited from that of the interface where the
+initiating SYN packet was received.
+When an incoming connection request arrives to a listening socket, the initial
+handshake also occurs in the FIB of the listening socket, not that of the
+received packet.
+.Pp
+By default, a TCP listening socket can accept connections originating from any
+FIB.
+If the
+.Va net.inet.tcp.bind_all_fibs
+tunable is set to 0, a listening socket will only accept connections
+originating
+from the FIB's listening socket.
+Connection requests from other FIBs will be treated as though there is no
+listening socket for the destination address and port.
+In this mode, multiple listening sockets owned by the same user can listen on
+the same address and port so long as they belong to different FIBs, similar to
+the behavior of the
+.Dv SO_REUSEPORT
+socket option.
+If the tunable is set to 0, all sockets added to a load-balancing group created
+with the
+.Dv SO_REUSEPORT_LB
+socket option must belong to the same FIB.
.Sx MIB (sysctl) Variables
section further down.
To list the default TCP stack, see
@@ -418,7 +447,7 @@ and the reverse source route is used in responding.
The default congestion control algorithm for
.Tn TCP
is
-.Xr cc_newreno 4 .
+.Xr cc_cubic 4 .
Other congestion control algorithms can be made available using the
.Xr mod_cc 4
framework.
@@ -432,6 +461,17 @@ branch of the
MIB, which can also be read or modified with
.Xr sysctl 8 .
.Bl -tag -width ".Va v6pmtud_blackhole_mss"
+.It Va ack_war_timewindow , ack_war_cnt
+The challenge ACK throttling algorithm defined in RFC 5961 limits
+the number of challenge ACKs sent per TCP connection to
+.Va ack_war_cnt
+during the time interval specified in milliseconds by
+.Va ack_war_timewindow .
+Setting
+.Va ack_war_timewindow
+or
+.Va ack_war_cnt
+to zero disables challenge ACK throttling.
.It Va always_keepalive
Assume that
.Dv SO_KEEPALIVE
@@ -611,11 +651,6 @@ Defaults to 60 seconds.
List of available TCP function blocks (TCP stacks).
.It Va functions_default
The default TCP function block (TCP stack).
-.It Va functions_inherit_listen_socket_stack
-Determines whether to inherit listen socket's TCP stack or use the current
-system default TCP stack, as defined by
-.Va functions_default .
-Default is true.
.It Va hostcache
The TCP host cache is used to cache connection details and metrics to
improve future performance of connections between the same hosts.
@@ -699,6 +734,9 @@ Default is false.
.It Va insecure_syn
Use criteria defined in RFC793 instead of RFC5961 for accepting SYN segments.
Default is false.
+.It Va insecure_ack
+Use criteria defined in RFC793 for validating SEG.ACK.
+Default is false.
.It Va isn_reseed_interval
The interval (in seconds) specifying how often the secret data used in
RFC 1948 initial sequence number calculations should be reseeded.
@@ -742,21 +780,34 @@ Minimum TCP Maximum Segment Size; used to prevent a denial of service attack
from an unreasonably low MSS.
.It Va msl
The Maximum Segment Lifetime, in milliseconds, for a packet.
+.It Va msl_local
+The Maximum Segment Lifetime, in milliseconds, for a packet when both endpoints
+are local.
+.Va msl_local
+is only used if
+.Va nolocaltimewait ,
+which is deprecated, is zero.
.It Va mssdflt
The default value used for the TCP Maximum Segment Size
.Pq Dq MSS
for IPv4 when no advice to the contrary is received from MSS negotiation.
-.It Va newcwd
+.It Va newcwv
Enable the New Congestion Window Validation mechanism as described in RFC 7661.
This gently reduces the congestion window during periods, where TCP is
application limited and the network bandwidth is not utilized completely.
That prevents self-inflicted packet losses once the application starts to
transmit data at a higher speed.
.It Va nolocaltimewait
-Suppress creation of TCP
+Suppress the creation of TCP
.Dv TIME_WAIT
states for connections in
which both endpoints are local.
+The default is 0.
+.Va nolocaltimewait
+is deprecated and will be removed in
+.Fx 16 .
+.Va msl_local
+can be used instead.
.It Va path_mtu_discovery
Enable Path MTU Discovery.
.It Va pcbcount
@@ -833,10 +884,13 @@ segment is lost (default and maximum is 12).
.It Va rexmit_drop_options
Drop TCP options from third and later retransmitted SYN segments
of a connection.
-.It Va rexmit_initial , rexmit_min , rexmit_slop
+.It Va rexmit_initial , rexmit_min , rexmit_slop , rexmit_max
Adjust the retransmit timer calculation for
.Tn TCP .
-The slop is
+A new connection starts with timer set to
+.Va rexmit_initial .
+The
+.Va rexmit_slop
typically added to the raw calculation to take into account
occasional variances that the
.Tn SRTT
@@ -856,6 +910,11 @@ For this reason, we use 200ms of slop and a near-0
minimum, which gives us an effective minimum of 200ms (similar to
.Tn Linux ) .
The initial value is used before an RTT measurement has been performed.
+The
+.Va rexmit_min
+and
+.Va rexmit_max
+set minimum and maximum timer values that a connection may have.
.It Va rfc1323
Implement the window scaling and timestamp options of RFC 1323/RFC 7323
(default is 1).
@@ -1032,6 +1091,7 @@ when trying to use a TCP function block that is not available;
.El
.Sh SEE ALSO
.Xr getsockopt 2 ,
+.Xr setfib 2 ,
.Xr socket 2 ,
.Xr stats 3 ,
.Xr sysctl 3 ,
@@ -1075,6 +1135,13 @@ when trying to use a TCP function block that is not available;
.%T "The Addition of Explicit Congestion Notification (ECN) to IP"
.%O "RFC 3168"
.Re
+.Rs
+.%A "A. Ramaiah"
+.%A "R. Stewart"
+.%A "M. Dalal"
+.%T "Improving TCP's Robustness to Blind In-Window Attacks"
+.%O "RFC 5961"
+.Re
.Sh HISTORY
The
.Tn TCP
diff --git a/share/man/man5/tmpfs.5 b/share/man/man4/tmpfs.4
index f3d6a2f6c2b5..7d24f7db9aea 100644
--- a/share/man/man5/tmpfs.5
+++ b/share/man/man4/tmpfs.4
@@ -1,6 +1,6 @@
.\"-
.\" Copyright (c) 2007 Xin LI
-.\" Copyright (c) 2017 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2017 The FreeBSD Foundation
.\"
.\" Part of this documentation was written by
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
@@ -52,7 +52,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd September 18, 2023
-.Dt TMPFS 5
+.Dt TMPFS 4
.Os
.Sh NAME
.Nm tmpfs
diff --git a/share/man/man4/tty.4 b/share/man/man4/tty.4
index 331c0c42f476..caa31835a331 100644
--- a/share/man/man4/tty.4
+++ b/share/man/man4/tty.4
@@ -287,7 +287,7 @@ and is the means by which most full\&-screen oriented programs determine the
screen size.
The
.Va winsize
-structure is defined in
+structure is provided by
.In sys/ioctl.h .
.It Dv TIOCSWINSZ Fa struct winsize *ws
Set the window size associated with the terminal to be the value in
@@ -372,6 +372,7 @@ variables.
.Xr stty 1 ,
.Xr ioctl 2 ,
.Xr ng_tty 4 ,
+.Xr pts 4 ,
.Xr pty 4 ,
.Xr termios 4 ,
.Xr getty 8
diff --git a/share/man/man4/twe.4 b/share/man/man4/twe.4
deleted file mode 100644
index 03a51b7b6a50..000000000000
--- a/share/man/man4/twe.4
+++ /dev/null
@@ -1,278 +0,0 @@
-.\"
-.\" Copyright (c) 2000 Michael Smith
-.\" Copyright (c) 2000 BSDi
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd May 7, 2023
-.Dt TWE 4
-.Os
-.Sh NAME
-.Nm twe
-.Nd 3ware 5000/6000/7000/8000 series PATA/SATA RAID adapter driver
-.Sh SYNOPSIS
-To compile this driver into the kernel,
-place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
-.Cd "device pci"
-.Cd "device twe"
-.Ed
-.Pp
-Alternatively, to load the driver as a
-module at boot time, place the following line in
-.Xr loader.conf 5 :
-.Bd -literal -offset indent
-twe_load="YES"
-.Ed
-.Sh DEPRECATION NOTICE
-The
-.Nm
-driver is not present in
-.Fx 14.0 .
-.Sh DESCRIPTION
-The
-.Nm
-driver provides support for AMCC's 3ware 5000/6000/7000/8000 series
-PATA/SATA RAID adapters.
-These adapters were formerly known as
-.Dq 3ware Escalade .
-.Pp
-These devices support 2, 4, 8, or 12 ATA disk drives
-and provide RAID0 (striping) and RAID1 (mirroring) functionality.
-.Sh HARDWARE
-The
-.Nm
-driver supports the following PATA/SATA RAID
-controllers:
-.Pp
-.Bl -bullet -compact
-.It
-AMCC's 3ware 5000 series
-.It
-AMCC's 3ware 6000 series
-.It
-AMCC's 3ware 7000-2
-.It
-AMCC's 3ware 7006-2
-.It
-AMCC's 3ware 7500-4LP
-.It
-AMCC's 3ware 7500-8
-.It
-AMCC's 3ware 7500-12
-.It
-AMCC's 3ware 7506-4LP
-.It
-AMCC's 3ware 7506-8
-.It
-AMCC's 3ware 7506-12
-.It
-AMCC's 3ware 8006-2LP
-.It
-AMCC's 3ware 8500-4LP
-.It
-AMCC's 3ware 8500-8
-.It
-AMCC's 3ware 8500-12
-.It
-AMCC's 3ware 8506-4LP
-.It
-AMCC's 3ware 8506-8
-.It
-AMCC's 3ware 8506-8MI
-.It
-AMCC's 3ware 8506-12
-.It
-AMCC's 3ware 8506-12MI
-.El
-.Sh DIAGNOSTICS
-.Ss Controller initialisation phase
-.Bl -diag
-.It twe%d: microcontroller not ready
-.Pp
-The controller's onboard CPU is not reporting that it is ready;
-this may be due to either a board or system failure.
-Initialisation has failed.
-.It twe%d: no attention interrupt
-.It twe%d: can't drain AEN queue
-.It twe%d: reset not reported
-.It twe%d: controller errors detected
-.It twe%d: can't drain response queue
-.It twe%d: reset %d failed, trying again
-.Pp
-The controller is not responding correctly to
-the driver's attempts to reset and initialise it.
-This process is retried several times.
-.It twe%d: can't initialise controller, giving up
-.Pp
-Several attempts to reset and initialise the controller have failed;
-initialisation has failed
-and the driver will not attach to this controller.
-.El
-.Ss Driver initialisation/shutdown phase
-.Bl -diag
-.It twe%d: register window not available
-.It twe%d: can't allocate register window
-.It twe%d: can't allocate parent DMA tag
-.It twe%d: can't allocate interrupt
-.It twe%d: can't set up interrupt
-.It twe%d: can't establish configuration hook
-.Pp
-A resource allocation error occurred while initialising the driver;
-initialisation has failed
-and the driver will not attach to this controller.
-.It twe%d: can't detect attached units
-.Pp
-Fetching the list of attached units failed; initialisation has failed.
-.It twe%d: error fetching capacity for unit %d
-.It twe%d: error fetching state for unit %d
-.It twe%d: error fetching descriptor size for unit %d
-.It twe%d: error fetching descriptor for unit %d
-.It twe%d: device_add_child failed
-.It twe%d: bus_generic_attach returned %d
-.Pp
-Creation of the disk devices failed, either due to communication
-problems with the adapter or due to resource shortage;
-attachment of one or more units may have been aborted.
-.El
-.Ss Operational phase
-.Bl -diag
-.It twe%d: command completed - %s
-.El
-.Pp
-A command was reported completed with a warning by the controller.
-The warning may be one of:
-.Bl -diag
-.It redundant/inconsequential request ignored
-.It failed to write zeroes to LBA 0
-.It failed to profile TwinStor zones
-.El
-.Bl -diag
-.It twe%d: command failed - %s
-.El
-.Pp
-A command was reported as failed by the controller.
-The failure message may be one of:
-.Bl -diag
-.It aborted due to system command or reconfiguration
-.It aborted
-.It access error
-.It access violation
-.It device failure
-.It controller error
-.It timed out
-.It invalid unit number
-.It unit not available
-.It undefined opcode
-.It request incompatible with unit
-.It invalid request
-.It firmware error, reset requested
-.Pp
-The command will be returned to the operating system after a
-fatal error.
-.El
-.Bl -diag
-.It twe%d: command failed submission - controller wedged
-.Pp
-A command could not be delivered to the controller because
-the controller is unresponsive.
-.It twe%d: AEN: <%s>
-.El
-.Pp
-The controller has reported a change in status using an AEN
-(Asynchronous Event Notification).
-The following AENs may be reported:
-.Bl -diag
-.It queue empty
-.It soft reset
-.It degraded mirror
-.It controller error
-.It rebuild fail
-.It rebuild done
-.It incomplete unit
-.It initialisation done
-.It unclean shutdown detected
-.It drive timeout
-.It drive error
-.It rebuild started
-.It aen queue full
-.Pp
-AENs are also queued internally for use by management tools.
-.El
-.Bl -diag
-.It twe%d: error polling for signalled AENs
-.Pp
-The controller has reported
-that one or more status messages are ready for the driver,
-but attempting to fetch one of these has returned an error.
-.It twe%d: AEN queue overflow, lost AEN <%s>
-.Pp
-A status message was retrieved from the controller,
-but there is no more room to queue it in the driver.
-The message is lost (but will be printed to the console).
-.It twe%d: missing expected status bits %s
-.It twe%d: unexpected status bits %s
-.Pp
-A check of the controller's status bits
-indicates an unexpected condition.
-.It twe%d: host interrupt
-.Pp
-The controller has signalled a host interrupt.
-This serves an unknown purpose and is ignored.
-.It twe%d: command interrupt
-.Pp
-The controller has signalled a command interrupt.
-This is not used, and will be disabled.
-.It twe%d: controller reset in progress...
-.Pp
-The controller is being reset by the driver.
-Typically this is done when the driver has determined that the
-controller is in an unrecoverable state.
-.It twe%d: can't reset controller, giving up
-.Pp
-The driver has given up on resetting the controller.
-No further I/O will be handled.
-.It controller reset done, %d commands restarted
-.Pp
-The controller was successfully reset,
-and outstanding commands were restarted.
-.El
-.Sh AUTHORS
-.An -nosplit
-The
-.Nm
-driver and manual page were written by
-.An Michael Smith Aq Mt msmith@FreeBSD.org .
-.Pp
-Extensive work done on the driver by
-.An Vinod Kashyap Aq Mt vkashyap@FreeBSD.org
-and
-.An Paul Saab Aq Mt ps@FreeBSD.org .
-.Sh BUGS
-The controller cannot handle I/O transfers
-that are not aligned to a 512-byte boundary.
-In order to support raw device access from user-space,
-the driver will perform alignment fixup on non-aligned data.
-This process is inefficient,
-and thus in order to obtain best performance
-user-space applications accessing the device
-should do so with aligned buffers.
diff --git a/share/man/man4/u3g.4 b/share/man/man4/u3g.4
index 234b5a4b3277..51c883b8378e 100644
--- a/share/man/man4/u3g.4
+++ b/share/man/man4/u3g.4
@@ -1,3 +1,5 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
.\"
.\" Copyright (c) 2008 AnyWi Technologies
.\" All rights reserved.
@@ -16,12 +18,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd February 4, 2023
+.Dd December 5, 2024
.Dt U3G 4
.Os
.Sh NAME
.Nm u3g
-.Nd USB support for 3G and 4G datacards
+.Nd USB support for 3G and 4G cellular modems
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -39,26 +41,46 @@ module at boot time, place the following line in
u3g_load="YES"
.Ed
.Pp
-If neither of the above is done, the driver will automatically be loaded
-by devd(8) when the device is connected.
+If neither of the above is done, the driver will be
+automatically loaded by devd(8) when the device is connected.
.Sh DESCRIPTION
The
.Nm
-driver provides support for the multiple USB-to-serial interfaces exposed by
-many 3G USB/PCCard modems.
+driver provides support for USB-to-serial interfaces
+exposed by many 3G and 4G modems.
+The supported adapters provide the necessary modem port for
+.Xr ppp 8 ,
+or
+.Pa net/mpd5
+connections.
+Depending on the specific device, extra ports provide other functions
+such as an additional command port, diagnostic port,
+GPS receiver port, or SIM toolkit port.
.Pp
The device is accessed through the
.Xr ucom 4
driver which makes it behave like a
.Xr tty 4 .
+.Pp
+In some adapters a mass storage device supported by the
+.Xr umass 4
+driver is present which contains Windows and Mac OS X drivers.
+The device starts up in disk mode (TruInstall, ZeroCD, etc.)
+and requires additional commands to switch it to modem mode.
+If your device is not switching automatically, please try to add quirks.
+See
+.Xr usbconfig 8
+and
+.Xr usb_quirk 4 .
.Sh HARDWARE
The
.Nm
-driver supports the following adapters:
+driver supports the following cellular modems:
.Pp
.Bl -bullet -compact
.It
-Option GT 3G Fusion, GT Fusion Quad, etc. (only 3G part, not WLAN)
+Option GT 3G Fusion, GT Fusion Quad, etc.
+.Pq 3G only, not WLAN
.It
Option GT 3G, GT 3G Quad, etc.
.It
@@ -70,9 +92,10 @@ Qualcomm Inc. CDMA MSM
.It
Qualcomm Inc. GOBI 1000, 2000 and 3000 devices with MDM1000 or MDM2000 chipsets
.It
-QUECTEL BGX, ECX, EGX, EMX, EPX, RGX series.
+QUECTEL BGX, ECX, EGX, EMX, EPX, RGX series
.It
-Quectel EM160R (see CAVEATS)
+Quectel EM160R
+.Pq see Sx CAVEATS
.It
Huawei B190, E180v, E220, E3372, E3372v153, E5573Cs322, ('<Huawei Mobile>')
.It
@@ -83,26 +106,9 @@ Sierra MC875U, MC8775U, etc.
Panasonic CF-F9 GOBI
.El
.Pp
-(See
+Many more are supported, see
.Pa /sys/dev/usb/serial/u3g.c
-for the complete list of supported cards for each vendor
-mentioned above.)
-.Pp
-The supported 3G cards provide the necessary modem port for ppp, or mpd
-connections as well as extra ports (depending on the specific device) to
-provide other functions (additional command port, diagnostic port, SIM toolkit
-port).
-.Pp
-In some of these devices a mass storage device supported by the
-.Xr umass 4
-driver is present which contains Windows and Mac OS X drivers.
-The device starts up in disk mode (TruInstall, ZeroCD, etc.) and requires
-additional commands to switch it to modem mode.
-If your device is not switching automatically, please try to add quirks.
-See
-.Xr usbconfig 8
-and
-.Xr usb_quirk 4 .
+for the complete list.
.Sh FILES
.Bl -tag -width "/dev/ttyU*.*.init" -compact
.It Pa /dev/ttyU*.*
@@ -153,7 +159,9 @@ Hardware for testing was provided by AnyWi Technologies, Leiden, NL.
The Quectel EM160R is not officially supported in PPP mode.
In order to use it in PPP mode, the ctsrts option needs to be turned off,
for example, by adding:
+.Pp
.Dl set ctsrts off
+.Pp
to
.Pa /etc/ppp/ppp.conf
in the correct section.
diff --git a/share/man/man4/uart.4 b/share/man/man4/uart.4
index 90ab2fd4cb57..98b61886371d 100644
--- a/share/man/man4/uart.4
+++ b/share/man/man4/uart.4
@@ -1,3 +1,5 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2003 Marcel Moolenaar
.\" All rights reserved.
@@ -23,12 +25,12 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 11, 2020
+.Dd December 5, 2024
.Dt UART 4
.Os
.Sh NAME
.Nm uart
-.Nd driver for Universal Asynchronous Receiver/Transmitter (UART) devices
+.Nd Universal Asynchronous Receiver/Transmitter serial driver
.Sh SYNOPSIS
.Cd "device uart"
.Pp
@@ -269,6 +271,89 @@ be locked for devices that support more than one setting.
The CLOCAL flag on callin ports should be locked off for logins
to avoid certain security holes, but this needs to be done by
getty if the callin port is used for anything else.
+.Sh Console Tuneable
+The
+.Nm
+driver can be designated as a system console.
+.Bl -tag -width indent
+.It Va hw.uart.console
+Contains a number of
+.Pa /etc/remote
+like tag:value pairs, separated by commas.
+.Bl -tag -width indent
+.It Cm \&bd
+Busy Detect.
+Enable the so-called
+.Dq Busy Detect
+quirk for the device.
+For NS 16550-compatible devices, this will use heuristics to ensure that the
+UART is no longer busy before manipulating line control.
+DesignWare-based UARTs need this due to a design flaw in the UART.
+.It Cm \&br
+Baudrate.
+The data rate (bits per second) used for communications on the serial port.
+When the device clock rate (see below) is set to 0, then the baud rate will be
+used with the divisor to compute the device clock rate the first time the device
+is initialized.
+Only the traditional baud rates are allowed.
+Rates larger than 19200 must be a multiple of 19200.
+Baud rates between 1200 and 19200 must be a multiple of 1200.
+Otherwise the baud rate must be a multiple of 75.
+A value of '0' instructs the
+.Nm
+driver to not program the baud rate divisor and use the hardware as-is.
+.It Cm \&ch
+Channel.
+Defaults to 0.
+Has no effect on UARTs with only one channel.
+.It Cm \&db
+Data bits.
+Defaults to 8.
+.It Cm \&dt
+Device type.
+Specify the uart class to use for this device.
+.Bl -tag -width indent
+.It ns8250
+Traditional PC UART National Semiconductor 16550 and compatible devices.
+.It pl011
+Common ARM UART, based on ARM Limited designs.
+.El
+.It Cm \&io
+I/O port address.
+Specifies the address of a UART in an Intel processor's I/O space.
+Mutually exclusive with
+.Sq mm .
+.It Cm \&mm
+Memory mapped I/O address.
+Specifies the physical address of a memory-mapped UART.
+Mutually exclusive with
+.Sq io .
+.It Cm \&pa
+Parity.
+The type of parity to use when sending data
+to the host.
+This may be one of ``even'',
+``odd'', ``none'', ``zero'' (always set bit 8 to zero),
+``one'' (always set bit 8 to 1).
+The default is even parity.
+.It Cm \&rs
+Register shift.
+Number of bits to shift left the base register offset.
+.It Cm \&rw
+Register width.
+Size of operations to read and write the registers of the device.
+.It Cm \&sb
+Stopbits.
+Defaults to 1.
+.It Cm \&xo
+Device clock (xtal oscillator).
+Base frequency of the oscillator to use for the device.
+When set to 0, and the baud rate is also set, the UART's initialization
+code will compute this the first time and use that after.
+Automatically computed values can be as large as 5% when the base
+frequency is a poor match to the traditional baud rates.
+.El
+.El
.Sh FILES
.Bl -tag -width "/dev/ttyu?.init" -compact
.It Pa /dev/ttyu?
@@ -283,6 +368,11 @@ for callout ports
.It Pa /dev/cuau?.lock
corresponding callout initial-state and lock-state devices
.El
+.Sh EXAMPLES
+.Dl hw.uart.console="io:0x2f8,br=115200"
+.Pp
+When the kernel is using a serial console port, it should use
+COM2 instead of COM1 and set the baud rate to 115200.
.Sh SEE ALSO
.Xr cu 1 ,
.Xr puc 4 ,
diff --git a/share/man/man4/uath.4 b/share/man/man4/uath.4
index 7d9632fe8e0f..865f04b84232 100644
--- a/share/man/man4/uath.4
+++ b/share/man/man4/uath.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: ISC
+.\"
.\" Copyright (c) 2006
.\" Damien Bergamini <damien.bergamini@free.fr>
.\"
@@ -19,7 +21,7 @@
.Os
.Sh NAME
.Nm uath
-.Nd Atheros USB IEEE 802.11a/b/g wireless network device
+.Nd Atheros USB IEEE 802.11a/b/g wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
diff --git a/share/man/man4/uchcom.4 b/share/man/man4/uchcom.4
index d5efe83286ba..6cee3d82c2ce 100644
--- a/share/man/man4/uchcom.4
+++ b/share/man/man4/uchcom.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" $NetBSD: uchcom.4,v 1.2 2008/04/30 13:10:54 martin Exp $
.\"
.\" Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -27,46 +30,74 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 26, 2017
+.Dd June 25, 2025
.Dt UCHCOM 4
.Os
.Sh NAME
.Nm uchcom
-.Nd WinChipHead CH341/CH340 serial adapter driver
+.Nd WinChipHead CH9102/CH343/CH341/CH340 USB to serial UART driver
.Sh SYNOPSIS
-To compile this driver into the kernel,
-place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device usb"
.Cd "device ucom"
.Cd "device uchcom"
-.Ed
.Pp
-Alternatively, to load the driver as a
-module at boot time, place the following line in
-.Xr loader.conf 5 :
-.Bd -literal -offset indent
-uchcom_load="YES"
-.Ed
+In
+.Xr rc.conf 5 :
+.Cd kld_list="uchcom"
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd hw.usb.uchcom.debug=1
.Sh DESCRIPTION
The
.Nm
-driver provides support for the WinChipHead CH341/CH340 USB-to-RS-232
-Bridge chip.
-.Pp
+driver provides support for the WinChipHead USB to serial UART adapters.
+If the appropriate hardware is detected,
+the driver will be loaded automatically by
+.Xr devmatch 8 .
+To load the driver manually, add it to the
+.Ic kld_list
+in
+.Xr rc.conf 5 ,
+or use
+.Xr kldload 8
+at runtime.
The device is accessed through the
.Xr ucom 4
-driver which makes it behave like a
+driver, which makes it behave like a
.Xr tty 4 .
+.Pp
+Call out through this interface with applications like
+.Xr cu 1
+or
+.Xr tip 1 .
.Sh HARDWARE
The
.Nm
-driver supports the following adapters:
+driver supports the following USB to serial UART controllers:
.Pp
.Bl -bullet -compact
.It
-HL USB-RS232
+WinChipHead CH9102 (max 6Mbps)
+.It
+WinChipHead CH343 (max 6Mbps)
+.It
+WinChipHead CH341 (max 2Mbps)
+.It
+WinChipHead CH340 (max 2Mbps)
+.El
+.Sh SYSCTL VARIABLES
+These settings can be entered in the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+.Xr sysctl.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width "hw.usb.uchcom.debug"
+.It Va hw.usb.uchcom.debug
+Enable debugging messages, default
+.Ql 0
.El
.Sh FILES
.Bl -tag -width "/dev/ttyU*.init" -compact
@@ -83,18 +114,14 @@ for callout ports
corresponding callout initial-state and lock-state devices
.El
.Sh SEE ALSO
+.Xr cu 1 ,
.Xr tty 4 ,
.Xr ucom 4 ,
.Xr usb 4
.Sh HISTORY
The
.Nm
-driver first appeared in
-.Nx .
-The first
-.Fx
-release to include it was
-.Fx 8.0 .
-.Sh BUGS
-Actually, this chip seems unable to drive other than 8 data bits and
-1 stop bit line.
+driver appeared in
+.Fx 8.0
+from
+.Nx 5.0 .
diff --git a/share/man/man4/udp.4 b/share/man/man4/udp.4
index 178adfe06b9f..b1dbff56154f 100644
--- a/share/man/man4/udp.4
+++ b/share/man/man4/udp.4
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 1, 2022
+.Dd January 20, 2025
.Dt UDP 4
.Os
.Sh NAME
@@ -107,6 +107,19 @@ Only one value is supported for this option:
.Tn UDP_ENCAP_ESPINUDP
from RFC 3948, defined in
.In netinet/udp.h .
+.Sh FIB support
+UDP sockets are FIB-aware.
+They inherit the FIB of the process which created the socket.
+By default, a UDP socket bound to an address can receive datagrams originating
+from any FIB.
+If the
+.Va net.inet.udp.bind_all_fibs
+tunable is set to 0, all UDP sockets will receive only datagrams originating
+from the same FIB as the socket.
+In this mode, multiple sockets can be bound to the same address, so long as
+each socket belongs to a different FIB, similar to the behavior of the
+.Dv SO_REUSEPORT
+option.
.Sh MIB (sysctl) Variables
The
.Nm
diff --git a/share/man/man4/ufshci.4 b/share/man/man4/ufshci.4
new file mode 100644
index 000000000000..d722c9902b98
--- /dev/null
+++ b/share/man/man4/ufshci.4
@@ -0,0 +1,181 @@
+.\"
+.\" Copyright (c) 2025, Samsung Electronics Co., Ltd.
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" ufshci driver man page.
+.\"
+.\" Author: Jaeyoon Choi <j_yoon.choi@samsung.com>
+.\"
+.Dd July 17, 2025
+.Dt UFSHCI 4
+.Os
+.Sh NAME
+.Nm ufshci
+.Nd Universal Flash Storage Host Controller Interface driver
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in the kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device ufshci"
+.Ed
+.Pp
+Or, to load the driver as a module at boot, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+ufshci_load="YES"
+.Ed
+.Sh DESCRIPTION
+Universal Flash Storage (UFS) is a low-power, high-performance storage
+standard composed of a host controller and a single target device.
+.Pp
+The driver currently provides:
+.Bl -bullet
+.It
+Initialization of the host controller and the target device
+.It
+Handling of UFS Interconnect (UIC) commands
+.It
+Support for UTP Transfer Requests (UTR) and UTP Task Management Requests (UTMR)
+.It
+Support for the SCSI command set
+.It
+Operation in the legacy single-doorbell queue mode
+.It
+Support for the PCI Express bus
+.El
+.Pp
+After initialization, the controller is registered with the
+.Xr cam 4
+subsystem and its logical unit appears as the device node
+.Pa /dev/daX .
+.Pp
+The driver is under active development; upcoming work includes full
+UFS 4.1 feature coverage, additional power-management modes, and
+ACPI/FDT-based attach support.
+.Sh HARDWARE
+The
+.Nm
+driver supports both host controllers and devices implementing the
+Universal Flash Storage Host Controller Interface 4.1 and earlier.
+.Sh CONFIGURATION
+The
+.Nm
+driver currently operates with a single doorbell (one I/O-queue), so any
+tunables that change the queue count are ignored.
+When Multi-Circular Queue (MCQ) support is added and multiple queues
+become available, the following queue count tunable values will take effect:
+.Pp
+To force a single I/O queue pair shared by all CPUs, set the following
+tunable value in loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.per_cpu_io_queues=0
+.Ed
+.Pp
+To assign more than one CPU per I/O queue pair, thereby reducing the
+number of MSI-X vectors consumed by the device, set the following tunable
+value in loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.min_cpus_per_ioq=X
+.Ed
+.Pp
+To change the I/O command timeout value (in seconds), set the following tunable
+value in loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.timeout_period=X
+.Ed
+.Pp
+To change the I/O command retry count, set the following tunable value in
+loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.retry_count=X
+.Ed
+.Pp
+To force the driver to use legacy INTx interrupts, set the following tunable
+value in loader.conf(5):
+.br
+(Note: until MCQ support is available the driver always uses legacy INTx, so
+this value effectively remains 1)
+.Bd -literal -offset indent
+hw.ufshci.force_intx=1
+.Ed
+.Sh SYSCTL VARIABLES
+The following controller-level
+.Xr sysctl 8
+nodes are currently implemented:
+.Bl -tag -width indent
+.It Va dev.ufshci.0.num_failures
+(R) Number of command failures for the entire controller.
+.It Va dev.ufshci.0.num_retries
+(R) Number of command retries for the entire controller.
+.It Va dev.ufshci.0.num_intr_handler_calls
+(R) Number of times the interrupt handler has been called.
+.It Va dev.ufshci.0.num_cmds
+(R) Total number of commands issued by the controller.
+.It Va dev.ufshci.0.timeout_period
+(RW) Configured timeout period (in seconds).
+.It Va dev.ufshci.0.cap
+(R) Host controller capabilities register value.
+.It Va dev.ufshci.0.num_io_queues
+(R) Number of I/O-queue pairs.
+.It Va dev.ufshci.0.io_queue_mode
+(R) Indicates single doorbell mode or multi circular queue mode.
+.It Va dev.ufshci.0.minor_version
+(R) Host controller minor version.
+.It Va dev.ufshci.0.major_version
+(R) Host controller major version.
+.It Va dev.ufshci.0.utmrq.num_failures
+(R) Number of failed UTP task-management requests.
+.It Va dev.ufshci.0.utmrq.ioq.num_retries
+(R) Number of retried UTP task-management requests.
+.It Va dev.ufshci.0.utmrq.num_intr_handler_calls
+(R) Number of interrupt handler calls caused by UTP task-management requests.
+.It Va dev.ufshci.0.utmrq.num_cmds
+(R) Number of UTP task-management requests issued.
+.It Va dev.ufshci.0.utmrq.cq_head
+(R) Current location of the UTP task-management completion queue head.
+.It Va dev.ufshci.0.utmrq.sq_tail
+(R) Current location of the UTP task-management submission queue tail.
+.It Va dev.ufshci.0.utmrq.sq_head
+(R) Current location of the UTP task-management submission queue head.
+.It Va dev.ufshci.0.utmrq.num_trackers
+(R) Number of trackers in the UTP task-management queue.
+.It Va dev.ufshci.0.utmrq.num_entries
+(R) Number of entries in the UTP task-management queue.
+.It Va dev.ufshci.0.ioq.0.num_failures
+(R) Number of failed UTP transfer requests.
+.It Va dev.ufshci.0.ioq.0.num_retries
+(R) Number of retried UTP transfer requests.
+.It Va dev.ufshci.0.ioq.0.num_intr_handler_calls
+(R) Number of interrupt-handler calls caused by UTP transfer requests.
+.It Va dev.ufshci.0.ioq.0.num_cmds
+(R) Number of UTP transfer requests issued.
+.It Va dev.ufshci.0.ioq.0.cq_head
+(R) Current location of the UTP transfer completion queue head.
+.It Va dev.ufshci.0.ioq.0.sq_tail
+(R) Current location of the UTP transfer submission queue tail.
+.It Va dev.ufshci.0.ioq.0.sq_head
+(R) Current location of the UTP transfer submission queue head.
+.It Va dev.ufshci.0.ioq.0.num_trackers
+(R) Number of trackers in the UTP transfer queue.
+.It Va dev.ufshci.0.ioq.0.num_entries
+(R) Number of entries in the UTP transfer queue.
+.El
+.Sh SEE ALSO
+.Xr cam 4 ,
+.Xr pci 4 ,
+.Xr disk 9
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was developed by Samsung Electronics and originally written by
+.An Jaeyoon Choi Aq Mt j_yoon.choi@samsung.com .
+.Pp
+This manual page was written by
+.An Jaeyoon Choi Aq Mt j_yoon.choi@samsung.com .
diff --git a/share/man/man4/uftdi.4 b/share/man/man4/uftdi.4
index 9bd3d4a4a293..b526143eaa25 100644
--- a/share/man/man4/uftdi.4
+++ b/share/man/man4/uftdi.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" $NetBSD: uftdi.4,v 1.5 2002/02/07 03:15:08 ross Exp $
.\"
.\" Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -27,61 +30,90 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 26, 2017
+.Dd June 25, 2025
.Dt UFTDI 4
.Os
.Sh NAME
.Nm uftdi
-.Nd USB support for serial adapters based on the FTDI family of USB
-serial adapter chips.
+.Nd Future Technology Devices International USB to serial UART driver
.Sh SYNOPSIS
-To compile this driver into the kernel,
-place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device usb"
.Cd "device ucom"
.Cd "device uftdi"
-.Ed
.Pp
-Alternatively, to load the driver as a
-module at boot time, place the following line in
-.Xr loader.conf 5 :
-.Bd -literal -offset indent
-uftdi_load="YES"
-.Ed
+In
+.Xr rc.conf 5 :
+.Cd kld_list="uftdi"
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd hw.usb.uftdi.debug=1
+.Cd hw.usb.uftdi.skip_jtag_interfaces=0
.Sh DESCRIPTION
The
.Nm
-driver provides support for various serial adapters based on the
-following FTDI chips:
+driver supports FTDI USB to serial UART devices.
+If the appropriate hardware is detected,
+the driver will be loaded automatically by
+.Xr devmatch 8 .
+To load the driver manually, add it to the
+.Ic kld_list
+in
+.Xr rc.conf 5 ,
+or use
+.Xr kldload 8
+at runtime.
+The device is accessed through the
+.Xr ucom 4
+driver which makes it behave like a
+.Xr tty 4 .
+.Pp
+Call out through this interface with applications like
+.Xr cu 1
+or
+.Xr tip 1 .
+.Sh HARDWARE
+The
+.Nm
+driver supports the following USB to serial UART controllers:
.Pp
.Bl -bullet -compact
.It
-FT8U100AX
+FTDI FT4232H
.It
-FT8U232AM
+FTDI FT232R
.It
-FT8U232BM
+FTDI FT230X
.It
-FT232R
+FTDI FT2232H
.It
-FT2232C
+FTDI FT2232D
.It
-FT2232D
+FTDI FT2232C
.It
-FT2232H
+FTDI FT8U232BM
.It
-FT4232H
+FTDI FT8U232AM
.It
-FT230X
+FTDI FT8U100AX
.El
-.Pp
-The device is accessed through the
-.Xr ucom 4
-driver which makes it behave like a
-.Xr tty 4 .
-.Pp
+.Sh SYSCTL VARIABLES
+These settings can be entered in the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+.Xr sysctl.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width "hw.usb.uftdi.skip_jtag_interfaces"
+.It Va hw.usb.uftdi.debug
+Enable debugging messages, default
+.Ql 0
+.It Va hw.usb.uftdi.skip_jtag_interfaces
+Ignore JTAG interfaces, default
+.Ql 1
+.El
+.Sh IOCTLS
Many of the supported chips provide additional functionality
such as bitbang mode and the MPSSE engine for serial bus emulation.
The
@@ -219,27 +251,6 @@ ioctl, you must pass the special value
.Dv UFTDI_CONFIRM_ERASE
as the argument to this ioctl.
.El
-.Sh HARDWARE
-The
-.Nm
-driver supports the following adapters:
-.Pp
-.Bl -bullet -compact
-.It
-B&B Electronics USB->RS422/485 adapter
-.It
-Elexol USB MOD1 and USB MOD3
-.It
-HP USB-Serial adapter shipped with some HP laptops
-.It
-Inland UAS111
-.It
-QVS USC-1000
-.It
-Buffalo PC-OP-RS / Kurouto-shikou KURO-RS universal remote
-.It
-Prologix GPIB-USB Controller
-.El
.Sh FILES
.Bl -tag -width "/dev/ttyU*.init" -compact
.It Pa /dev/ttyU*
@@ -255,14 +266,14 @@ for callout ports
corresponding callout initial-state and lock-state devices
.El
.Sh SEE ALSO
+.Xr cu 1 ,
.Xr tty 4 ,
.Xr ucom 4 ,
.Xr usb 4
.Sh HISTORY
The
.Nm
-driver
-appeared in
+driver appeared in
.Fx 4.8
from
.Nx 1.5 .
diff --git a/share/man/man4/uipaq.4 b/share/man/man4/uipaq.4
index 86f3da36f9dc..b49344956541 100644
--- a/share/man/man4/uipaq.4
+++ b/share/man/man4/uipaq.4
@@ -28,7 +28,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 26, 2017
+.Dd April 14, 2025
.Dt UIPAQ 4
.Os
.Sh NAME
@@ -50,23 +50,6 @@ module at boot time, place the following line in
.Bd -literal -offset indent
uipaq_load="YES"
.Ed
-.Sh HARDWARE
-The
-.Nm
-driver supports the following adapters:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It ASUS P535 PDA
-.It Casio BE300 PDA
-.It Compaq IPaq PocketPC
-.It HP Jornada 568
-.It HP iPAQ 22xx/Jornada 548
-.It HTC PPC6700 Modem
-.It HTC Smart Phone
-.It HTC Winmobile
-.It Sharp W-ZERO3 ES Spart Phone
-.It Most Windows CE based phones
-.El
.Sh DESCRIPTION
The
.Nm
@@ -77,6 +60,33 @@ The device is accessed through the
.Xr ucom 4
driver which makes it behave like a
.Xr tty 4 .
+.Sh HARDWARE
+The
+.Nm
+driver supports the following iPAQ devices:
+.Pp
+.Bl -bullet -compact
+.It
+ASUS P535 PDA
+.It
+Casio BE300 PDA
+.It
+Compaq IPaq PocketPC
+.It
+HP Jornada 568
+.It
+HP iPAQ 22xx/Jornada 548
+.It
+HTC PPC6700 Modem
+.It
+HTC Smart Phone
+.It
+HTC Winmobile
+.It
+Sharp W-ZERO3 ES Spart Phone
+.It
+Most Windows CE based phones
+.El
.Sh FILES
.Bl -tag -width "/dev/ttyU*.init" -compact
.It Pa /dev/ttyU*
diff --git a/share/man/man4/umb.4 b/share/man/man4/umb.4
new file mode 100644
index 000000000000..7ecc9a39c1ca
--- /dev/null
+++ b/share/man/man4/umb.4
@@ -0,0 +1,119 @@
+.\"-
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Copyright (c) 2016 genua mbH
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.\" $NetBSD: umb.4,v 1.4 2019/08/30 09:22:17 wiz Exp $
+.\"
+.Dd May 11, 2025
+.Dt UMB 4
+.Os
+.Sh NAME
+.Nm umb
+.Nd USB Mobile Broadband Interface Model (MBIM) cellular modem driver
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device usb"
+.Cd "device umb"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+umb_load="YES"
+.Ed
+.Pp
+If neither of the above is done, the driver will automatically be loaded
+by devd(8) when the device is connected.
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for USB MBIM devices.
+.Pp
+MBIM devices establish connections via cellular networks such as
+GPRS, UMTS, and LTE.
+They appear as a regular point-to-point network interface,
+transporting raw IP frames.
+.Pp
+Required configuration parameters like PIN and APN have to be set
+with
+.Xr umbctl 8 .
+Once the SIM card has been unlocked with the correct PIN, it
+will remain in this state until the MBIM device is power-cycled.
+In case the device is connected to an "always-on" USB port,
+it may be possible to connect to a provider without entering the
+PIN again even if the system was rebooted.
+.Sh HARDWARE
+The
+.Nm
+driver should support any USB device implementing MBIM, including
+the following cellular modems:
+.Pp
+.Bl -bullet -compact
+.It
+Ericsson H5321gw and N5321gw
+.It
+Fibocom L831-EAU
+.It
+Medion Mobile S4222 (MediaTek OEM)
+.It
+Sierra Wireless EM7345
+.It
+Sierra Wireless EM7455
+.It
+Sierra Wireless EM8805
+.It
+Sierra Wireless MC8305
+.El
+.Sh SEE ALSO
+.Xr intro 4 ,
+.Xr netintro 4 ,
+.Xr usb 4 ,
+.Xr ifconfig 8 ,
+.Xr umbctl 8
+.Rs
+.%T "Universal Serial Bus Communications Class Subclass Specification for Mobile Broadband Interface Model"
+.%U http://www.usb.org/developers/docs/devclass_docs/MBIM10Errata1_073013.zip
+.Re
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Ox 6.0 ,
+.Nx 9.0 ,
+and
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Gerhard Roth Aq Mt gerhard@openbsd.org
+and ported from
+.Ox
+by
+.An Pierre Pronchery Aq Mt khorben@defora.org .
+.Sh CAVEATS
+The
+.Nm
+driver does not support IPv6.
+.Pp
+Devices which fail to provide a conforming MBIM implementation will
+probably be attached as some other driver, such as
+.Xr u3g 4 .
diff --git a/share/man/man5/unionfs.5 b/share/man/man4/unionfs.4
index a20889d54839..85714331b6ce 100644
--- a/share/man/man5/unionfs.5
+++ b/share/man/man4/unionfs.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2020 Gordon Bergling
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -22,11 +25,11 @@
.\" SUCH DAMAGE.
.\"
.Dd April 27, 2020
-.Dt UNIONFS 5
+.Dt UNIONFS 4
.Os
.Sh NAME
.Nm unionfs
-.Nd "UNION FS"
+.Nd union mount file system
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
diff --git a/share/man/man4/unix.4 b/share/man/man4/unix.4
index 5ac9ccd5514f..2fdfde225b14 100644
--- a/share/man/man4/unix.4
+++ b/share/man/man4/unix.4
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 1, 2022
+.Dd October 31, 2024
.Dt UNIX 4
.Os
.Sh NAME
@@ -77,6 +77,15 @@ removed when the socket is closed \(em
.Xr unlink 2
must be used to remove the file.
.Pp
+Prior to binding a socket,
+.Xr fchmod 2
+can be used to set the permissions of the socket file.
+This avoids the race that would otherwise occur between creation of the file
+and a subsequent call to
+.Xr chmod 2 .
+Once the socket is bound to a file name, the permissions of the file can not be
+changed this way.
+.Pp
The length of
.Ux Ns -domain
address, required by
@@ -441,6 +450,7 @@ The order is preserved for writes coming through a particular connection.
.Sh SEE ALSO
.Xr connect 2 ,
.Xr dup 2 ,
+.Xr fchmod 2 ,
.Xr fcntl 2 ,
.Xr getsockopt 2 ,
.Xr listen 2 ,
diff --git a/share/man/man4/upgt.4 b/share/man/man4/upgt.4
index 805d045e61dd..5d4ada1d1a1f 100644
--- a/share/man/man4/upgt.4
+++ b/share/man/man4/upgt.4
@@ -48,13 +48,13 @@
.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 17, 2008
+.Dd February 18, 2025
.Dt UPGT 4
.Os
.Sh NAME
.Nm upgt
.Nd Conexant/Intersil PrismGT SoftMAC USB IEEE 802.11b/g wireless network
-device
+driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -74,6 +74,11 @@ module at boot time, place the following line in
.Bd -literal -offset indent
if_upgt_load="YES"
.Ed
+.Sh DEPRECATION NOTICE
+The
+.Nm
+driver is slated to be removed in
+.Fx 15.0 .
.Sh DESCRIPTION
The
.Nm
diff --git a/share/man/man4/ural.4 b/share/man/man4/ural.4
index 141777e14168..53ac1b5dd665 100644
--- a/share/man/man4/ural.4
+++ b/share/man/man4/ural.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: ISC
+.\"
.\" Copyright (c) 2005, 2006
.\" Damien Bergamini <damien.bergamini@free.fr>
.\"
@@ -13,12 +16,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd April 13, 2008
+.Dd November 10, 2024
.Dt URAL 4
.Os
.Sh NAME
.Nm ural
-.Nd "Ralink Technology RT2500USB IEEE 802.11 driver"
+.Nd Ralink RT2500USB IEEE 802.11a/b/g wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -68,7 +71,7 @@ The
driver supports USB 2.0 wireless adapters based on the Ralink Technology
RT2500USB chipset, including:
.Pp
-.Bl -column -compact ".Li Atlantis Land A02-PCM-W54" "Bus"
+.Bl -column -compact "Atlantis Land A02-PCM-W54" "Bus"
.It Em Card Ta Em Bus
.It "AMIT WL532U" Ta USB
.It "ASUS WL-167g" Ta USB
@@ -103,20 +106,18 @@ An up to date list can be found at
.Pa http://ralink.rapla.net/ .
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev ural0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev ural0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev ural0 ssid my_net up"
+.Dl ifconfig wlan create wlandev ural0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev ural0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Pp
Join a specific BSS network with 128-bit WEP encryption:
@@ -140,6 +141,7 @@ This should not happen.
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
+.Xr networking 7 ,
.Xr hostapd 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
@@ -147,7 +149,9 @@ This should not happen.
The
.Nm
driver first appeared in
-.Ox 3.7 .
+.Ox 3.7
+and
+.Fx 6.0 .
.Sh AUTHORS
The original
.Nm
@@ -155,5 +159,5 @@ driver was written by
.An Damien Bergamini Aq Mt damien.bergamini@free.fr .
.Sh BUGS
Host AP mode doesn't support client power save.
-Clients using power save mode will experience
-packet loss (disabling power saving on the client will fix this).
+Clients using power save mode will experience packet loss
+.Pq disabling power saving on the client will fix this .
diff --git a/share/man/man4/ure.4 b/share/man/man4/ure.4
index 18b68ec9bc8a..0d14a20f5f44 100644
--- a/share/man/man4/ure.4
+++ b/share/man/man4/ure.4
@@ -1,3 +1,5 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2015-2016 Kevin Lo <kevlo@FreeBSD.org>
.\" All rights reserved.
@@ -23,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 31, 2016
+.Dd April 8, 2025
.Dt URE 4
.Os
.Sh NAME
.Nm ure
-.Nd "RealTek RTL8152/RTL8153 USB to Ethernet controller driver"
+.Nd Realtek RTL8152/RTL8153/RTL8156 USB Ethernet driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -51,16 +53,12 @@ if_ure_load="YES"
.Sh DESCRIPTION
The
.Nm
-driver provides support for USB Ethernet adapters based on the RealTek
-RealTek RTL8152 and RTL8153 USB Ethernet controllers.
-.Pp
-NICs based on the RTL8152 are capable of 10 and 100Mbps speeds.
-NICs based on the RTL8153 are capable of 10, 100 and 1000Mbps operation.
+driver supports the Realtek USB Ethernet Controller family.
.Pp
The
.Nm
driver supports the following media types:
-.Bl -tag -width ".Cm 10baseT/UTP"
+.Bl -tag -width "10baseT/UTP"
.It Cm autoselect
Enable auto selection of the media type and options.
The user can manually override
@@ -86,24 +84,40 @@ or
.Cm half-duplex
modes.
.It Cm 1000baseTX
-Set 1000baseTX operation over twisted pair.
-The RealTek gigE chips support 1000Mbps in
+Set 1000baseTX (Gigabit Ethernet) operation over twisted pair.
+The Realtek gigE chips support 1000Mbps in
+.Cm full-duplex
+mode only.
+.It Cm 2500base-T
+Set 2500Base-T operation over twisted pair.
+The Realtek 8156/8156B chips support 2500Mbps in
.Cm full-duplex
mode only.
.El
.Pp
The
.Nm
-driver supports the following media options:
-.Bl -tag -width ".Cm full-duplex"
+driver supports the following media options for 10/100 operation:
+.Bl -tag -width "full-duplex"
.It Cm full-duplex
-Force full duplex operation.
+Force full-duplex operation.
.It Cm half-duplex
-Force half duplex operation.
+Force half-duplex operation.
.El
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+driver supports the following USB Ethernet controllers:
+.Bl -column "Realtek RTL8168/8169/8110/8211 via rgephy(4)" "10, 100, 1000, and 2500"
+.It Model: Ta Speed (Mbps):
+.It Realtek RTL8156/RTL8156B/RTL8156BG Ta 10, 100, 1000, and 2500
+.It Realtek RTL8153/RTL8153B Ta 10, 100, and 1000
+.It Realtek RTL8152 Ta 10 and 100
+.It Realtek RTL8168/8169/8110/8211 via rgephy(4) Ta 10, 100, and 1000
+.El
.Sh DIAGNOSTICS
.Bl -diag
.It "ure%d: watchdog timeout"
diff --git a/share/man/man4/urtw.4 b/share/man/man4/urtw.4
index 7036aaa24df6..7252b8ac8579 100644
--- a/share/man/man4/urtw.4
+++ b/share/man/man4/urtw.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2008 Weongyo Jeong
.\" All rights reserved.
.\"
@@ -22,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 17, 2009
+.Dd November 10, 2024
.Dt URTW 4
.Os
.Sh NAME
.Nm urtw
-.Nd Realtek RTL8187B/L USB IEEE 802.11b/g wireless network device
+.Nd Realtek RTL8187B/L USB IEEE 802.11b/g wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your kernel configuration file:
@@ -59,6 +62,7 @@ and
.Cm monitor
mode operation.
Only one virtual interface may be configured at any time.
+.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
@@ -66,35 +70,33 @@ The
.Nm
driver supports Realtek RTL8187B/L based wireless network devices, including:
.Pp
-.Bl -column "Shuttle XPC Accessory PN20" "RTL8225" "USB" -compact -offset 6n
-.It Em "Card Radio Bus"
-.It "Belkin F5D7050E RTL8225 USB"
-.It "Linksys WUSB54GCv2 RTL8225 USB"
-.It "Netgear WG111v2 RTL8225 USB"
-.It "Netgear WG111v3 RTL8225 USB"
-.It "Safehome WLG-1500SMA5 RTL8225 USB"
-.It "Shuttle XPC Accessory PN20 RTL8225 USB"
-.It "Sitecom WL168v1 RTL8225 USB"
-.It "Sitecom WL168v4 RTL8225 USB"
-.It "SureCom EP-9001-g(2A) RTL8225 USB"
-.It "TRENDnet TEW-424UB V3.xR RTL8225 USB"
+.Bl -column -offset indent "Shuttle XPC Accessory PN20" "RTL8225" "USB" -compact
+.It Em Card Ta Em Radio Ta Em Bus
+.It Belkin F5D7050E Ta RTL8225 Ta USB
+.It Linksys WUSB54GCv2 Ta RTL8225 Ta USB
+.It Netgear WG111v2 Ta RTL8225 Ta USB
+.It Netgear WG111v3 Ta RTL8225 Ta USB
+.It Safehome WLG-1500SMA5 Ta RTL8225 Ta USB
+.It Shuttle XPC Accessory PN20 Ta RTL8225 Ta USB
+.It Sitecom WL168v1 Ta RTL8225 Ta USB
+.It Sitecom WL168v4 Ta RTL8225 Ta USB
+.It SureCom EP-9001-g(2A) Ta RTL8225 Ta USB
+.It TRENDnet TEW-424UB V3.xR Ta RTL8225 Ta USB
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):
-.Bd -literal -offset indent
-ifconfig wlan create wlandev urtw0 inet 192.168.0.20 \e
- netmask 0xffffff00
-.Ed
+.Pp
+.Dl ifconfig wlan create wlandev urtw0 inet 192.0.2.20/24
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
-.Dl "ifconfig wlan create wlandev urtw0 ssid my_net up"
+.Dl ifconfig wlan create wlandev urtw0 ssid my_net up
.Pp
Join a specific BSS network with 64-bit WEP encryption:
.Bd -literal -offset indent
ifconfig wlan create wlandev urtw0 ssid my_net \e
- wepmode on wepkey 0x1234567890 weptxkey 1 up
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
.Ed
.Sh SEE ALSO
.Xr intro 4 ,
diff --git a/share/man/man4/usbhid.4 b/share/man/man4/usbhid.4
index c47afaff3534..5109bbe72de6 100644
--- a/share/man/man4/usbhid.4
+++ b/share/man/man4/usbhid.4
@@ -55,7 +55,11 @@ tunables:
.It Va hw.usb.usbhid.enable
Enable
.Nm
-and make its priority greater than other USB HID drivers have.
+and make its priority greater than other USB HID drivers, such as
+.Xr ukbd 4 ,
+.Xr ums 4 ,
+and
+.Xr uhid 4 .
Default is 0.
.El
.Bl -tag -width indent
diff --git a/share/man/man4/vale.4 b/share/man/man4/vale.4
index 77e4433d2742..a9f172e11fba 100644
--- a/share/man/man4/vale.4
+++ b/share/man/man4/vale.4
@@ -26,7 +26,7 @@
.\" distributed with 4.3BSD Unix.
.\" $Id: $
.\"
-.Dd March 6, 2022
+.Dd August 30, 2024
.Dt VALE 4
.Os
.Sh NAME
@@ -100,7 +100,8 @@ qemu -net nic -net netmap,ifname=vale2:c ... &
qemu -net nic -net netmap,ifname=vale2:d ... &
.Ed
.Sh SEE ALSO
-.Xr netmap 4
+.Xr netmap 4 ,
+.Xr valectl 8
.Pp
Luigi Rizzo, Giuseppe Lettieri: VALE, a switched ethernet for virtual machines,
June 2012, http://info.iet.unipi.it/~luigi/vale/
diff --git a/share/man/man4/veriexec.4 b/share/man/man4/veriexec.4
new file mode 100644
index 000000000000..14e4aeae0d10
--- /dev/null
+++ b/share/man/man4/veriexec.4
@@ -0,0 +1,96 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2024, Juniper Networks, Inc.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+.\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd August 1, 2024
+.Dt VERIEXEC 4
+.Os
+.Sh NAME
+.Nm veriexec
+.Nd the veriexec device
+.Sh SYNOPSIS
+.In dev/veriexec/veriexec_ioctl.h
+.Sh DESCRIPTION
+The
+.Nm
+device is used by
+.Xr veriexec 8
+to query and modify the state of
+.Xr mac_veriexec 4 .
+.Pp
+Once
+.Xr mac_veriexec 4
+is active, only a process which is marked as
+.Ql trusted
+(normally only
+.Xr veriexec 8 )
+is able to more than the
+.Dv VERIEXEC_GETSTATE
+ioctl.
+.Sh IOCTLS
+The supported ioctls are described below.
+.Bl -tag
+.It Dv VERIEXEC_SIGNED_LOAD Vt struct verified_exec_params
+Pass file information to
+.Xr mac_veriexec 4 .
+.Bd -literal
+struct verified_exec_params {
+ unsigned char flags;
+ char fp_type[VERIEXEC_FPTYPELEN]; /* type of fingerprint */
+ char file[MAXPATHLEN];
+ unsigned char fingerprint[MAXFINGERPRINTLEN];
+};
+.Ed
+.It Dv VERIEXEC_LABEL_LOAD Vt struct verified_exec_label_params
+Pass file information and a label to
+.Xr mac_veriexec 4 .
+.Bd -literal
+struct verified_exec_label_params {
+ struct verified_exec_params params;
+ char label[MAXLABELLEN];
+};
+.Ed
+.It Dv VERIEXEC_ACTIVE
+.It Dv VERIEXEC_DEBUG_OFF
+.It Dv VERIEXEC_DEBUG_ON Vt int level
+.It Dv VERIEXEC_ENFORCE
+.It Dv VERIEXEC_GETSTATE
+.It Dv VERIEXEC_GETVERSION
+.It Dv VERIEXEC_LOCK
+.It Dv VERIEXEC_VERIFIED_FILE Vt int fd
+Rarely needed.
+Tells
+.Xr mac_veriexec 4
+that the file associated with
+.Va fd
+is verified.
+.El
+.Sh HISTORY
+A
+.Nm
+device first appeared in
+.Nx .
+It was added to
+.Fx 13.1 .
diff --git a/share/man/man4/virtio_gpu.4 b/share/man/man4/virtio_gpu.4
index bb34ec419df6..f8d48faa05f0 100644
--- a/share/man/man4/virtio_gpu.4
+++ b/share/man/man4/virtio_gpu.4
@@ -46,7 +46,7 @@ device driver provides support for VirtIO gpu devices to create a
.Xr vt 4
console.
.Sh SEE ALSO
-.Xr virtio 4
+.Xr virtio 4 ,
.Xr vt 4
.Sh HISTORY
The
diff --git a/share/man/man4/vlan.4 b/share/man/man4/vlan.4
index 775eb3235c07..25405172ed62 100644
--- a/share/man/man4/vlan.4
+++ b/share/man/man4/vlan.4
@@ -130,7 +130,7 @@ in hardware:
.Xr cxgbe 4 ,
.Xr em 4 ,
.Xr igb 4 ,
-.Xr ixgbe 4 ,
+.Xr ix 4 ,
.Xr jme 4 ,
.Xr liquidio 4 ,
.Xr msk 4 ,
diff --git a/share/man/man4/vmd.4 b/share/man/man4/vmd.4
index 2d6a06bc10e3..590a368f006b 100644
--- a/share/man/man4/vmd.4
+++ b/share/man/man4/vmd.4
@@ -34,7 +34,7 @@
.Sh SYNOPSIS
To compile this driver into the kernel, place the following lines in your
kernel configuration file:
-.Bd -ragged -offset -indent
+.Bd -ragged -offset indent
.Cd "device vmd"
.Ed
.Pp
diff --git a/share/man/man4/vmm.4 b/share/man/man4/vmm.4
index dfd7ad26fb98..07c40541f404 100644
--- a/share/man/man4/vmm.4
+++ b/share/man/man4/vmm.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd March 6, 2024
+.Dd December 30, 2024
.Dt VMM 4
.Os
.Sh NAME
@@ -45,15 +45,22 @@ kldload vmm
provides the kernel portion of the
.Xr bhyve 4
hypervisor.
-.Pp
-An Intel CPU with VT-x/EPT or AMD CPU with SVM support is required.
+The following platforms are supported:
+.Bl -bullet -compat
+.It
+amd64: An Intel CPU with VT-x/EPT or AMD CPU with SVM support is required.
+.It
+arm64: The boot CPU must start in EL2 and the system must have a GICv3 interrupt
+controller.
+VHE support will be used if available.
+.It
+riscv: The CPUs must implement the H (hypervisor) RISC-V ISA extension.
+.El
.Pp
PCI device passthrough to a virtual machine requires
-hardware with VT-d support.
+hardware with VT-d support and is available only on amd64.
.Sh PCI PASSTHROUGH
-When the hardware supports VT-d, and
-.Nm
-has been loaded at boot time,
+On amd64 where the hardware supports VT-d,
PCI devices can be reserved for use by the hypervisor.
Entries consisting of the PCI
.Ar bus Ns / Ns Ar slot Ns / Ns Ar function
@@ -108,16 +115,43 @@ bus 6 slot 5 function 0, and bus 6 slot 5 function 1.
.Bd -literal -offset indent
pptdevs="10/0/0 6/5/0 6/5/1"
.Ed
+.Pp
+It is possible to detach
+.Va ppt
+from a PCI device without rebooting the host machine and then attach a host
+driver, using the
+.Xr devctl 8
+utility.
+Suppose
+.Va ppt
+is currently attached to
+.Va pci0:0:1:0
+and we want the host's
+.Xr xhci 4
+driver to be attached instead:
+.Bd -literal -offset indent
+# devctl set driver -f pci0:0:1:0 xhci
+.Ed
+.Pp
+The same can be applied to attach
+.Va ppt
+back:
+.Bd -literal -offset indent
+# devctl set driver -f pci0:0:1:0 ppt
+.Ed
.Sh SEE ALSO
.Xr bhyve 4 ,
.Xr loader.conf 5 ,
.Xr bhyve 8 ,
.Xr bhyveload 8 ,
+.Xr devctl 8 ,
.Xr kldload 8
.Sh HISTORY
.Nm vmm.ko
first appeared in
.Fx 10.0 .
+arm64 and riscv support first appeared in
+.Fx 15.0 .
.Sh AUTHORS
.An Neel Natu Aq neel@freebsd.org
.An Peter Grehan Aq grehan@freebsd.org
diff --git a/share/man/man4/vt.4 b/share/man/man4/vt.4
index ed4da98df673..ad050bdd0d59 100644
--- a/share/man/man4/vt.4
+++ b/share/man/man4/vt.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2014 Warren Block
.\" All rights reserved.
.\"
@@ -22,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 8, 2023
+.Dd July 7, 2024
.Dt "VT" 4
.Os
.Sh NAME
.Nm vt
-.Nd virtual terminal console driver
+.Nd virtual terminal system video console driver
.Sh SYNOPSIS
.Cd "options TERMINAL_KERN_ATTR=_attribute_"
.Cd "options TERMINAL_NORM_ATTR=_attribute_"
@@ -47,11 +50,13 @@ In
.Cd kern.vt.color.<colornum>.rgb="<colorspec>"
.Cd kern.vt.fb.default_mode="<X>x<Y>"
.Cd kern.vt.fb.modes.<connector>="<X>x<Y>"
+.Cd kern.vt.slow_down=<delay>"
.Cd screen.font="<X>x<Y>"
.Pp
In
.Xr loader.conf 5 or
.Xr sysctl.conf 5 :
+.Cd kern.consmute=1
.Cd kern.vt.kbd_halt=1
.Cd kern.vt.kbd_poweroff=1
.Cd kern.vt.kbd_reboot=1
@@ -220,6 +225,11 @@ The
kernel uses
.Nm
when this value is not set.
+Note that
+.Ql sc
+is not compatible with
+.Xr UEFI 8
+boot.
.It Va kern.vt.color. Ns Ar colornum Ns Va .rgb
Set this value to override default palette entry for color
.Pa colornum
@@ -258,6 +268,16 @@ It will contain a list of connectors and their associated tunables.
This is currently only supported by the
.Cm vt_fb
backend when it is paired with a KMS video driver.
+.It Va kern.vt.slow_down
+When debugging the kernel on modern laptops, the screen is often
+the only available console, and relevant information will scroll
+out of view before it can be captured by eye or camera.
+.Pp
+Setting
+.Va kern.vt.slow_down
+to a non-zero number will make console output synchronous (ie:
+not dependent on timers and interrupts) and slow it down in proportion
+to the number.
.It Va screen.font
Set this value to the base name of the desired font file located in
.Pa /boot/fonts .
@@ -300,11 +320,13 @@ prompt, set in
or changed at runtime with
.Xr sysctl 8 .
.Bl -tag -width indent
+.It Va kern.consmute
+Disable printing kernel messages to the system console.
.It Va kern.vt.enable_bell
Enable the terminal bell.
.El
.Sh FILES
-.Bl -tag -width /usr/share/vt/keymaps/* -compact
+.Bl -tag -width "/usr/share/vt/keymaps/*.kbd" -compact
.It Pa /dev/console
.It Pa /dev/consolectl
.It Pa /dev/ttyv*
@@ -317,13 +339,12 @@ console fonts
keyboard layouts
.El
.Sh DEVCTL MESSAGES
-.Bl -column "System" "Subsystem" "1234567" -compact
+.Bl -column "System" "Subsystem" "Type" "Description"
.Sy "System" Ta Sy "Subsystem" Ta Sy "Type" Ta Sy "Description"
.It Li VT Ta BELL Ta RING Ta
Notification that the console bell has rung.
.El
-.Pp
-.Bl -column "Variable" "Meaning" -compact
+.Bl -column "duration_ms" "Meaning"
.Sy "Variable" Ta Sy "Meaning"
.It Li duration_ms Ta Length of time the bell was requested to ring in milliseconds.
.It Li enabled Ta true or false indicating whether or not the bell was administratively enabled when rung.
@@ -349,7 +370,8 @@ To set a 1024x768 mode on all output connectors, put the following line in
.Pp
.Dl kern.vt.fb.default_mode="1024x768"
.Pp
-To set a 800x600 only on a laptop builtin screen, use the following line instead:
+To set a 800x600 only on a laptop builtin screen,
+use the following line instead:
.Pp
.Dl kern.vt.fb.modes.LVDS-1="800x600"
.Pp
diff --git a/share/man/man4/vtnet.4 b/share/man/man4/vtnet.4
index e45a47ff6c87..8b99cd9f17b9 100644
--- a/share/man/man4/vtnet.4
+++ b/share/man/man4/vtnet.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 22, 2012
+.Dd July 29, 2025
.Dt VTNET 4
.Os
.Sh NAME
@@ -70,6 +70,11 @@ prompt before booting the kernel or stored in
.It Va hw.vtnet. Ns Ar X Ns Va .csum_disable
This tunable disables receive and send checksum offload.
The default value is 0.
+.It Va hw.vtnet.fixup_needs_csum
+.It Va hw.vtnet. Ns Ar X Ns Va .fixup_needs_csum
+This tunable enforces the calculation of a valid checksum for NEEDS_CSUM
+packets.
+The default value is 0.
.It Va hw.vtnet.tso_disable
.It Va hw.vtnet. Ns Ar X Ns Va .tso_disable
This tunable disables TSO.
@@ -91,6 +96,26 @@ The number of queue pairs used is the lesser of the maximum supported by the
driver and the hypervisor, the number of CPUs present in the guest, and this
tunable if not zero.
The default value is 0.
+.It Va hw.vtnet.tso_maxlen
+.It Va hw.vtnet. Ns Ar X Ns Va .tso_maxlen
+This tunable sets the TSO burst limit.
+The default value is 65535.
+.It Va hw.vtnet.rx_process_limit
+.It Va hw.vtnet. Ns Ar X Ns Va .rx_process_limit
+This tunable sets the number of RX segments processed in one pass.
+The default value is 1024.
+.It Va hw.vtnet.lro_entry_count
+.It Va hw.vtnet. Ns Ar X Ns Va .lro_entry_count
+This tunable sets the software LRO entry count.
+The default value is 128, the minimum value is 8.
+.It Va hw.vtnet.lro_mbufq_depth
+.It Va hw.vtnet. Ns Ar X Ns Va .lro_mbufq_depth
+This tunable sets the depth of the software LRO mbuf queue.
+The default value is 0.
+.It Va hw.vtnet.altq_disable
+This tunable disables ALTQ support, allowing the use of multiqueue instead.
+This option applies to all interfaces.
+The default value is 0.
.El
.Sh SEE ALSO
.Xr arp 4 ,
diff --git a/share/man/man4/watchdog.4 b/share/man/man4/watchdog.4
index 2cd66bb8ba85..b74640de8469 100644
--- a/share/man/man4/watchdog.4
+++ b/share/man/man4/watchdog.4
@@ -42,7 +42,7 @@ supports several optional
.Xr ioctl 2
calls for configuration, and
responds to a single operational
-.Xr ioctl
+.Xr ioctl 2
call,
.Dv WDIOCPATPAT .
It takes a single argument which represents a timeout value specified as a
@@ -84,7 +84,7 @@ The watchdog might
still be armed!
.Pp
The optional configuration
-.Xr ioctl
+.Xr ioctl 2
commands are listed here, along with the type of the parameter used.
Examples of their use can be found in
.Xr watchdogd 8 .
@@ -127,7 +127,7 @@ printf(9)
.Sh RETURN VALUES
The
.Dv WDIOCPATPAT
-.Xr ioctl
+.Xr ioctl 2
returns zero on success and non-zero on failure.
.Bl -tag -width Er
.It Bq Er EOPNOTSUPP
@@ -141,7 +141,7 @@ Invalid flag combination passed.
.El
.Pp
The configuration
-.Xr ioctl
+.Xr ioctl 2
operations return zero on success and non-zero on failure.
.Sh EXAMPLES
.Bd -literal -offset indent
diff --git a/share/man/man4/wg.4 b/share/man/man4/wg.4
index 2f758c2a8e11..8e2fcfe6b863 100644
--- a/share/man/man4/wg.4
+++ b/share/man/man4/wg.4
@@ -23,14 +23,21 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd June 12, 2023
+.Dd February 12, 2025
.Dt WG 4
.Os
.Sh NAME
.Nm wg
.Nd "WireGuard protocol driver"
.Sh SYNOPSIS
-To load the driver as a module at boot time, place the following line in
+To compile this driver into the kernel,
+place the following lines in your kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device wg"
+.Ed
+.Pp
+Alternatively, to load the driver as a module at boot time,
+place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
if_wg_load="YES"
diff --git a/share/man/man4/witness.4 b/share/man/man4/witness.4
index ab23eb49d9fe..f382a9378727 100644
--- a/share/man/man4/witness.4
+++ b/share/man/man4/witness.4
@@ -21,7 +21,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 18, 2015
+.Dd March 5, 2025
.Dt WITNESS 4
.Os
.Sh NAME
@@ -62,12 +62,12 @@ kernel option controls the maximum number of
.Nm
entries that are tracked in the kernel.
The maximum number of entries can be queried via the
-.Va debug.witness.count
+.Va debug.witness.witness_count
sysctl.
It can also be set from the
.Xr loader 8
via the
-.Va debug.witness.count
+.Va debug.witness.witness_count
environment variable.
.Pp
The
diff --git a/share/man/man4/wlan.4 b/share/man/man4/wlan.4
index 4cd1bfbdc9d5..ff983c66c1cb 100644
--- a/share/man/man4/wlan.4
+++ b/share/man/man4/wlan.4
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 5, 2023
+.Dd June 13, 2025
.Dt WLAN 4
.Os
.Sh NAME
@@ -44,7 +44,7 @@ module is required by all native 802.11 drivers.
.Nm
supports multi-mode devices capable of
operating in both 2.4GHz and 5GHz bands and supports numerous
-802.11 standards: 802.11a, 802.11b, 802.11g, 802.11n, and 802.11s (Draft 3.0).
+802.11 standards: 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, and 802.11s (Draft 3.0).
The WPA, 802.11i, and 802.1x security protocols are supported
through a combination of in-kernel code and user-mode applications.
The WME/WMM multi-media protocols are supported entirely within
@@ -174,6 +174,7 @@ Stations implementing earlier drafts (e.g., Linux) may be incompatible.
.Xr iwlwifi 4 ,
.Xr iwm 4 ,
.Xr iwn 4 ,
+.Xr iwx 4 ,
.Xr malo 4 ,
.Xr mwl 4 ,
.Xr netintro 4 ,
@@ -181,6 +182,7 @@ Stations implementing earlier drafts (e.g., Linux) may be incompatible.
.Xr ral 4 ,
.Xr rsu 4 ,
.Xr rtw88 4 ,
+.Xr rtw89 4 ,
.Xr rtwn 4 ,
.Xr rum 4 ,
.Xr run 4 ,
@@ -190,6 +192,7 @@ Stations implementing earlier drafts (e.g., Linux) may be incompatible.
.Xr urtw 4 ,
.Xr wlan_acl 4 ,
.Xr wlan_ccmp 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
diff --git a/share/man/man4/wlan_ccmp.4 b/share/man/man4/wlan_ccmp.4
index f0efa86d2fdb..ffd4da8694e9 100644
--- a/share/man/man4/wlan_ccmp.4
+++ b/share/man/man4/wlan_ccmp.4
@@ -53,6 +53,7 @@ calculations in hardware, the
module will do the work.
.Sh SEE ALSO
.Xr wlan 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4
.Sh STANDARDS
diff --git a/share/man/man4/wlan_gcmp.4 b/share/man/man4/wlan_gcmp.4
new file mode 100644
index 000000000000..a7657a9ad91b
--- /dev/null
+++ b/share/man/man4/wlan_gcmp.4
@@ -0,0 +1,72 @@
+.\"
+.\" Copyright (c) 2004 Sam Leffler
+.\" All rights reserved.
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\"
+.\" Portions of this documentation were written by Bj\xc3\xb6rn Zeeb
+.\" under sponsorship from the FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" Based on wlan_ccmp.4.
+.\"
+.Dd June 13, 2025
+.Dt WLAN_GCMP 4
+.Os
+.Sh NAME
+.Nm wlan_gcmp
+.Nd AES-GCMP crypto support for 802.11 devices
+.Sh SYNOPSIS
+.Cd "device wlan_gcmp"
+.Sh DESCRIPTION
+The
+.Nm
+module handles the
+.Em Galois/Counter Mode Protocol
+cryptographic requirements of the IEEE 802.11ad and WPA2/WPA3 protocols.
+It does encapsulation and decapsulation of GCMP-encoded 802.11 frames
+and optionally calculates the AES-GCMP cipher.
+The
+.Nm
+module is an 802.11 cryptographic plugin module for use by the
+.Xr wlan 4
+module.
+This module is automatically loaded if an AES-GCMP key is configured;
+typically by a WPA supplicant program such as wpa_supplicant,
+or a WPA authenticator program such as
+.Nm hostapd .
+Should the underlying network device not be capable of doing the AES-GCMP
+calculations in hardware, the
+.Nm
+module will do the work.
+.Sh SEE ALSO
+.Xr wlan 4 ,
+.Xr wlan_ccmp 4 ,
+.Xr wlan_tkip 4 ,
+.Xr wlan_wep 4
+.Sh STANDARDS
+More information can be found in the IEEE 802.11, and WPA Standards.
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 15.0 .
diff --git a/share/man/man4/wlan_tkip.4 b/share/man/man4/wlan_tkip.4
index 2e812ceffe9a..e74c24d45614 100644
--- a/share/man/man4/wlan_tkip.4
+++ b/share/man/man4/wlan_tkip.4
@@ -54,6 +54,7 @@ module will do the work.
.Sh SEE ALSO
.Xr wlan 4 ,
.Xr wlan_ccmp 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_wep 4
.Sh STANDARDS
More information can be found in the IEEE 802.11, WPA, and 802.11i Standards.
diff --git a/share/man/man4/wlan_wep.4 b/share/man/man4/wlan_wep.4
index 4e5887bbc35e..d83ef23e7a4e 100644
--- a/share/man/man4/wlan_wep.4
+++ b/share/man/man4/wlan_wep.4
@@ -51,6 +51,7 @@ module will do the work.
.Sh SEE ALSO
.Xr wlan 4 ,
.Xr wlan_ccmp 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_tkip 4
.Sh STANDARDS
More information can be found in the IEEE 802.11 Standard.
diff --git a/share/man/man4/wpi.4 b/share/man/man4/wpi.4
index 8fe52cdc58eb..9d8d5fb1bd65 100644
--- a/share/man/man4/wpi.4
+++ b/share/man/man4/wpi.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2004-2007
.\" Damien Bergamini <damien.bergamini@free.fr>. All rights reserved.
.\" Benjamin Close <Benjamin.Close@clearchain.com>. All rights reserved.
@@ -26,12 +29,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 31, 2016
+.Dd October 17, 2024
.Dt WPI 4
.Os
.Sh NAME
.Nm wpi
-.Nd "Intel 3945ABG Wireless LAN IEEE 802.11 driver"
+.Nd Intel PRO/Wireless 3945ABG IEEE 802.11a/b/g network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -48,16 +51,13 @@ kernel configuration file:
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-if_wpi_load="YES"
-.Ed
+.Pp
+.Dl if_wpi_load="YES"
.Sh DESCRIPTION
The
.Nm
-driver provides support for the
-.Tn Intel
-3945ABG Wireless network adapter.
-The driver supports
+driver supports running the
+Intel PRO/Wireless 3945ABG network adapter in
.Cm station ,
.Cm adhoc ,
.Cm adhoc-demo ,
@@ -65,6 +65,11 @@ The driver supports
and
.Cm monitor
mode operation.
+This driver requires the wpifw firmware module
+and can be configured at runtime with
+.Xr ifconfig 8
+or at boot in
+.Xr rc.conf 5 .
Only one virtual interface may be configured at any time.
.Pp
The
@@ -81,17 +86,13 @@ The
.Nm
driver offloads both encryption and decryption of data frames to the
hardware for the CCMP cipher.
-.Pp
-This driver requires the firmware built with the
-.Nm wpifw 4
-module to work.
-.Pp
+.Sh HARDWARE
The
.Nm
-driver can be configured at runtime with
-.Xr ifconfig 8 .
+driver provides support for the
+Intel PRO/Wireless 3945ABG Mini PCIe network adapter.
.Sh FILES
-.Bl -tag -width ".Pa /usr/share/doc/legal/intel_wpi.LICENSE" -compact
+.Bl -tag -width "/usr/share/doc/legal/intel_wpi.LICENSE" -compact
.It Pa /usr/share/doc/legal/intel_wpi.LICENSE
.Nm
firmware license
@@ -104,7 +105,7 @@ ifconfig wlan0 create wlandev wpi0 inet 192.168.0.20 \e
.Ed
.Pp
Join a specific BSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Pp
.Dl "ifconfig wlan0 create wlandev wpi0 ssid my_net up"
.Pp
@@ -122,7 +123,7 @@ ifconfig wlan0 create wlandev wpi0 wlanmode adhoc ssid my_net \e
.Ed
.Pp
Join/create an 802.11b IBSS network with network name
-.Dq Li my_net :
+.Ar my_net :
.Bd -literal -offset indent
ifconfig wlan0 create wlandev wpi0 wlanmode adhoc
ifconfig wlan0 inet 192.168.0.22 netmask 0xffffff00 ssid my_net \e
@@ -141,9 +142,7 @@ ifconfig wlan0 inet 192.168.0.10 netmask 0xffffff00 ssid my_ap \e
The driver failed to load the firmware image using the
.Xr firmware 9
subsystem.
-Verify the
-.Xr wpifw 4
-firmware module is installed.
+Verify the wpifw firmware module is installed.
.It "wpi%d: %s: timeout waiting for adapter to initialize, error %d"
The onboard microcontroller failed to initialize in time.
This should not happen.
@@ -189,7 +188,7 @@ This should not happen.
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
-.Xr wpifw 4 ,
+.Xr networking 7 ,
.Xr hostapd 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
@@ -207,10 +206,11 @@ ported
to
.Fx .
.Sh CAVEATS
-Hostap mode is not directly supported by the device;
+.Cm Hostap
+mode is not directly supported by the device;
it is implemented through IBSS mode (as a result, DFS/passive
channels are not available in this mode).
.Pp
-Powersave may be unstable on some networks (results in
-occasional 'wpi%d: device timeout' messages); you can try
-to disable it to improve device stability.
+Powersave may be unstable on some networks
+.Po results in occasional Sy 'wpi%d: device timeout' No messages Pc ;
+you can try to disable it to improve device stability.
diff --git a/share/man/man4/wsp.4 b/share/man/man4/wsp.4
index 39660a53ee9a..50ada937e104 100644
--- a/share/man/man4/wsp.4
+++ b/share/man/man4/wsp.4
@@ -49,27 +49,150 @@ The
driver provides support for the Apple Internal Trackpad
device found in many Apple laptops.
.Pp
-The driver simulates a three-button mouse using multi-finger tap
+The driver simulates a three-button mouse using multi-finger press/tap
detection.
A single-finger press generates a left button click.
-A two-finger tap maps to the right button; whereas a three-finger tap
-gets treated as a middle button click.
+A two-finger press maps to the right button; whereas a three-finger
+press gets treated as a middle button click.
.Pp
+The trackpad functions with presses and taps.
+A press is a full-forced
+press which causes a physical lowering of the trackpad.
+A tap is a
+touch of the trackpad which does not depress the physical trackpad.
+.Pp
+The
.Nm
-supports dynamic reconfiguration using
+driver supports receiving evdev input device data if enabled.
+This data
+is used for extended usage of the touchpad like multi-finger support,
+pressure detection, tap support, and gestures.
+At least the second bit of the
.Xr sysctl 8
-through nodes under
-.Nm hw.usb.wsp .
-Pointer sensitivity can be controlled using the sysctl tunable
-.Nm hw.usb.wsp.scale_factor .
-Tap to left-click can be controlled using the sysctl tunable
-.Nm hw.usb.wsp.enable_single_tap_clicks ,
-set to 0 to disable single tap clicks or 1 to enable them (default).
-Z-Axis sensitivity can be controlled using the sysctl tunable
-.Nm hw.usb.wsp.z_factor .
-Z-Axis inversion can be controlled using the sysctl tunable
-.Nm hw.usb.wsp.z_invert ,
-set to 0 to disable (default) or 1 to enable inversion.
+tunable
+.Va kern.evdev.rcpt_mask
+must be set.
+This can be enabled with
+.Va kern.evdev.rcpt_mask=3 .
+.Pp
+Vertical scrolling (z-axis) is enabled by default with a two-finger
+tap and the movement of a finger up and down.
+Horizontal scrolling (t-axis) is not natively supported by the sysmouse
+protocol, therefore must be enabled with evdev data.
+This can be enabled with the
+.Xr sysctl 8
+tunable
+.Va kern.evdev.sysmouse_t_axis=3 .
+Horizontal scrolling can be used with a two-finger tap and the movement
+of a finger from side to side.
+The
+.Xr sysctl 8
+tunable
+.Va hw.usb.wsp.t_factor
+must be greater than 0 for horizontal scrolling to be enabled, too.
+.Pp
+Horizontal swiping with a three-finger tap is registered as mouse buttons
+8 and 9, depending on the direction.
+These buttons default to backwards and forwards keyboard events.
+.Sh SYSCTL VARIABLES
+The following variables are available as
+.Xr sysctl 8
+tunables:
+.Bl -tag -width indent
+.It Va hw.usb.wsp.scale_factor
+Controls the pointer sensitivity.
+Default is 12.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.enable_single_tap_clicks
+Enables single-tap to register as a left-click.
+Default is 1 (enabled).
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.enable_single_tap_movement
+Enables movement on the trackpad follow a partially-released left-click.
+Default is 1 (enabled).
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.max_finger_diameter
+Specifies the maximum finger diameter on the trackpad that is registered as a
+finger (a lower value is used for palm detection). Default is 1900.
+.El
+.Bl -tag -width indent
+.It Va max_scroll_finger_distance
+Specifies the maximum distance between two fingers where z-axis
+and t-axis movements are registered.
+Z-axis and T-axis movements
+are vertical and horizontal movements with more than one finger
+tapped (not clicked), respectively.
+Default is 8192.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.max_double_tap_distance
+Specifies the maximum distance between two fingers that a two-finger
+click will be registered as a right-click.
+Default is 2500.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.scr_threshold
+Specifies the minimum horizontal or vertical distance required to
+register as a scrolling gesture.
+Default is 20.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.z_factor
+Z-axis sensitivity.
+Default is 5.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.z_invert
+Z-axis inversion.
+Default is 0 (disabled).
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.t_factor
+T-axis sensitivity.
+Default is 0 (disabled).
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.t_invert
+T-axis inversion.
+Default is 0 (disabled).
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.scroll_finger_count
+Specifies the number of tapped fingers which registers as a scrolling
+movement.
+Default is 2.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.horizontal_swipe_finger_count
+Speifies the number of tapped fingers which registers as a swipe
+gesture.
+Default is 3.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.pressure_touch_threshold
+Specifies the threshold for a finger to be registered as a click.
+Default is 50.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.pressure_untouch_threshold
+Specifies the threshold for a finger to be registered as an unclick.
+Default is 10.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.pressure_tap_threshold
+Specifies the threadhold for a finger to be registered as a tap.
+Default is 120.
+.El
+.Bl -tag -width indent
+.It Va hw.usb.wsp.debug
+Specifies the
+.Nm
+driver debugging level (0-3).
+Default is 1.
+.El
.Sh FILES
.Nm
creates a blocking pseudo-device file,
@@ -80,8 +203,7 @@ or
.Em mousesystems
type device--see
.Xr moused 8
-for an explanation of these mouse
-types.
+for an explanation of these mouse types.
.Sh SEE ALSO
.Xr sysmouse 4 ,
.Xr usb 4 ,
diff --git a/share/man/man4/xen.4 b/share/man/man4/xen.4
index 15312866dae6..284b09bc87b7 100644
--- a/share/man/man4/xen.4
+++ b/share/man/man4/xen.4
@@ -39,7 +39,6 @@ PVH mode only.
.Pp
Xen support is built by default in the i386 and amd64 GENERIC kernels; note
however that host mode is only available on amd64.
-.Ed
.Sh DESCRIPTION
The Xen Hypervisor allows multiple virtual machines to be run on a single
computer system.
diff --git a/share/man/man4/zyd.4 b/share/man/man4/zyd.4
index 1c73c0563e05..687adb97ad3d 100644
--- a/share/man/man4/zyd.4
+++ b/share/man/man4/zyd.4
@@ -31,12 +31,12 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd March 7, 2013
+.Dd November 10, 2024
.Dt ZYD 4
.Os
.Sh NAME
.Nm zyd
-.Nd ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device
+.Nd ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -77,51 +77,95 @@ The following devices are known to be supported by the
.Nm
driver:
.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It 3COM 3CRUSB10075
-.It Acer WLAN-G-US1
-.It Airlink+ AWLL3025
-.It Airlink 101 AWLL3026
-.It AOpen 802.11g WL54
-.It Asus A9T integrated wireless
-.It Asus WL-159g
-.It Belkin F5D7050 v.4000
-.It Billion BiPAC 3011G
-.It Buffalo WLI-U2-KG54L
-.It CC&C WL-2203B
-.It DrayTek Vigor 550
-.It Edimax EW-7317UG
-.It Edimax EW-7317LDG
-.It Fiberline Networks WL-43OU
-.It iNexQ UR055g
-.It Linksys WUSBF54G
-.It Longshine LCS-8131G3
-.It MSI US54SE
-.It MyTek MWU-201 USB adapter
-.It Philips SNU5600
-.It Planet WL-U356
-.It Planex GW-US54GZ
-.It Planex GW-US54GZL
-.It Planex GW-US54Mini
-.It Safecom SWMULZ-5400
-.It Sagem XG 760A
-.It Sagem XG 76NA
-.It Sandberg Wireless G54 USB
-.It Sitecom WL-113
-.It SMC SMCWUSB-G
-.It Sweex wireless USB 54 Mbps
-.It Tekram/Siemens USB adapter
-.It Telegent TG54USB
-.It Trendnet TEW-424UB rev A
-.It Trendnet TEW-429UB
-.It TwinMOS G240
-.It Unicorn WL-54G
-.It US Robotics 5423
-.It X-Micro XWL-11GUZX
-.It Yakumo QuickWLAN USB
-.It Zonet ZEW2501
-.It ZyXEL ZyAIR G-202
-.It ZyXEL ZyAIR G-220
+.Bl -bullet -offset indent -compact
+.It
+3COM 3CRUSB10075
+.It
+Acer WLAN-G-US1
+.It
+Airlink+ AWLL3025
+.It
+Airlink 101 AWLL3026
+.It
+AOpen 802.11g WL54
+.It
+Asus A9T integrated wireless
+.It
+Asus WL-159g
+.It
+Belkin F5D7050 v.4000
+.It
+Billion BiPAC 3011G
+.It
+Buffalo WLI-U2-KG54L
+.It
+CC&C WL-2203B
+.It
+DrayTek Vigor 550
+.It
+Edimax EW-7317UG
+.It
+Edimax EW-7317LDG
+.It
+Fiberline Networks WL-43OU
+.It
+iNexQ UR055g
+.It
+Linksys WUSBF54G
+.It
+Longshine LCS-8131G3
+.It
+MSI US54SE
+.It
+MyTek MWU-201 USB adapter
+.It
+Philips SNU5600
+.It
+Planet WL-U356
+.It
+Planex GW-US54GZ
+.It
+Planex GW-US54GZL
+.It
+Planex GW-US54Mini
+.It
+Safecom SWMULZ-5400
+.It
+Sagem XG 760A
+.It
+Sagem XG 76NA
+.It
+Sandberg Wireless G54 USB
+.It
+Sitecom WL-113
+.It
+SMC SMCWUSB-G
+.It
+Sweex wireless USB 54 Mbps
+.It
+Tekram/Siemens USB adapter
+.It
+Telegent TG54USB
+.It
+Trendnet TEW-424UB rev A
+.It
+Trendnet TEW-429UB
+.It
+TwinMOS G240
+.It
+Unicorn WL-54G
+.It
+US Robotics 5423
+.It
+X-Micro XWL-11GUZX
+.It
+Yakumo QuickWLAN USB
+.It
+Zonet ZEW2501
+.It
+ZyXEL ZyAIR G-202
+.It
+ZyXEL ZyAIR G-220
.El
.Sh EXAMPLES
The following
@@ -131,14 +175,14 @@ channel 11:
.Bd -literal -offset indent
ifconfig wlan create wlandev zyd0 channel 11 \e
wepmode on wepkey 0x1deadbeef1 weptxkey 1 \e
- inet 192.168.1.1 netmask 255.255.255.0
+ inet 192.0.2.20/24
.Ed
.Pp
Join an existing BSS network,
-.Dq my_net :
+.Ar my_net :
.Bd -literal -offset indent
-ifconfig wlan create wlandev zyd0 192.168.0.2 \e
- netmask 0xffffff00 ssid my_net
+ifconfig wlan create wlandev zyd0 192.0.2.20/24 \e
+ ssid my_net
.Ed
.Sh DIAGNOSTICS
.Bl -diag
@@ -167,6 +211,7 @@ This should not happen.
.Xr wlan_ccmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
+.Xr networking 7 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh AUTHORS
diff --git a/share/man/man5/Makefile b/share/man/man5/Makefile
index d9129307bea2..0f6559b236c6 100644
--- a/share/man/man5/Makefile
+++ b/share/man/man5/Makefile
@@ -1,93 +1,47 @@
-
.include <src.opts.mk>
+MANGROUPS= MAN
+
#MISSING: dump.5 plot.5
-MAN= acct.5 \
- ar.5 \
- a.out.5 \
+MAN= a.out.5 \
${_boot.config.5} \
- cd9660.5 \
core.5 \
- devfs.5 \
- devfs.conf.5 \
- devfs.rules.5 \
- device.hints.5 \
dir.5 \
disktab.5 \
elf.5 \
ethers.5 \
eui64.5 \
- ext2fs.5 \
fbtab.5 \
- fdescfs.5 \
forward.5 \
- fs.5 \
- fstab.5 \
- fusefs.5 \
group.5 \
hosts.5 \
hosts.equiv.5 \
- hosts.lpd.5 \
intro.5 \
libmap.conf.5 \
- lindebugfs.5 \
link.5 \
- linprocfs.5 \
- linsysfs.5 \
mailer.conf.5 \
make.conf.5 \
- moduli.5 \
motd.5 \
mount.conf.5 \
- mqueuefs.5 \
- msdosfs.5 \
networks.5 \
- nsmb.conf.5 \
nsswitch.conf.5 \
- nullfs.5 \
os-release.5 \
- passwd.5 \
pbm.5 \
- periodic.conf.5 \
phones.5 \
portindex.5 \
- procfs.5 \
protocols.5 \
quota.user.5 \
- rc.conf.5 \
rctl.conf.5 \
regdomain.5 \
remote.5 \
resolver.5 \
services.5 \
shells.5 \
- smbfs.5 \
src.conf.5 \
stab.5 \
style.Makefile.5 \
style.mdoc.5 \
sysctl.conf.5 \
- tarfs.5 \
- tmpfs.5 \
- unionfs.5
-
-MLINKS= dir.5 dirent.5
-MLINKS+=ext2fs.5 ext4fs.5
-MLINKS+=fs.5 inode.5
-MLINKS+=hosts.equiv.5 rhosts.5
-MLINKS+=msdosfs.5 msdos.5
-MLINKS+=passwd.5 master.passwd.5
-MLINKS+=passwd.5 pwd.db.5
-MLINKS+=passwd.5 spwd.db.5
-MLINKS+=portindex.5 INDEX.5
-MLINKS+=quota.user.5 quota.group.5
-MLINKS+=rc.conf.5 rc.conf.local.5
-MLINKS+=resolver.5 resolv.conf.5
-MLINKS+=src.conf.5 src-env.conf.5
-
-.if ${MK_AUTOFS} != "no"
-MAN+= autofs.5
-.endif
.if ${MK_BLUETOOTH} != "no"
MAN+= bluetooth.device.conf.5 \
@@ -103,11 +57,68 @@ MAN+= freebsd-update.conf.5
MAN+= hesiod.conf.5
.endif
+MLINKS= dir.5 dirent.5
+MLINKS+=fs.5 inode.5
+MLINKS+=hosts.equiv.5 rhosts.5
+MLINKS+=portindex.5 INDEX.5
+MLINKS+=quota.user.5 quota.group.5
+MLINKS+=resolver.5 resolv.conf.5
+MLINKS+=src.conf.5 src-env.conf.5
+
+MANGROUPS+= ACCT
+ACCT= acct.5
+ACCTPACKAGE= acct
+
+MANGROUPS+= BOOTLOADER
+BOOTLOADER= device.hints.5
+BOOTLOADERPACKAGE=bootloader
+
+MANGROUPS+= CLANG
+CLANG= ar.5
+CLANGPACKAGE= clang
+
+MANGROUPS+= LP
+LP= hosts.lpd.5
+LPPACKAGE= lp
+
+MANGROUPS+= PERIODIC
+PERIODIC= periodic.conf.5
+PERIODICPACKAGE=periodic
+
.if ${MK_PF} != "no"
-MAN+= pf.conf.5 \
- pf.os.5
+MANGROUPS+= PF
+PF= pf.conf.5 \
+ pf.os.5
+PFPACKAGE= pf
.endif
+MANGROUPS+= RC
+RC= rc.conf.5
+RCLINKS= rc.conf.5 rc.conf.local.5
+RCPACKAGE= rc
+
+MANGROUPS+= RUNTIME
+RUNTIME= devfs.conf.5 \
+ devfs.rules.5 \
+ fstab.5 \
+ passwd.5
+RUNTIMELINKS= passwd.5 master.passwd.5
+RUNTIMELINKS+= passwd.5 pwd.db.5
+RUNTIMELINKS+= passwd.5 spwd.db.5
+RUNTIMEPACKAGE= runtime
+
+MANGROUPS+= SMB
+SMB= nsmb.conf.5
+SMBPACKAGE= smbutils
+
+MANGROUPS+= SSH
+SSH= moduli.5
+SSHPACKAGE= ssh
+
+MANGROUPS+= UFS
+UFS= fs.5
+UFSPACKAGE= ufs
+
# This makes more sense for amd64 and i386 but
# we decide to install all manpages in all architectures
_boot.config.5= boot.config.5
diff --git a/share/man/man5/core.5 b/share/man/man5/core.5
index 8efc8c970014..628fdb7920bb 100644
--- a/share/man/man5/core.5
+++ b/share/man/man5/core.5
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 12, 2023
+.Dd July 17, 2025
.Dt CORE 5
.Os
.Sh NAME
@@ -48,26 +48,6 @@ a system crash.
(In this event, the decision to save the core file is arbitrary, see
.Xr savecore 8 . )
.Pp
-The maximum size of a core file is limited by the
-.Dv RLIMIT_CORE
-.Xr setrlimit 2
-limit.
-Files which would be larger than the limit are not created.
-.Pp
-With a large limit, a process that had mapped a very large,
-and perhaps sparsely populated, virtual memory region, could take
-a very long time to create core dumps.
-The system ignores all signals sent to a process writing a core file, except
-.Dv SIGKILL
-which terminates the writing and causes immediate exit of the process.
-The behavior of
-.Dv SIGKILL
-can be disabled by setting tunable
-.Xr sysctl 8
-variable
-.Va kern.core_dump_can_intr
-to zero.
-.Pp
The name of the file is controlled via the
.Xr sysctl 8
variable
@@ -107,6 +87,26 @@ yielding the traditional
.Fx
behaviour.
.Pp
+The maximum size of a core file is limited by the
+.Dv RLIMIT_CORE
+.Xr setrlimit 2
+limit.
+Files which would be larger than the limit are not created.
+.Pp
+With a large limit, a process that had mapped a very large,
+and perhaps sparsely populated, virtual memory region, could take
+a very long time to create core dumps.
+The system ignores all signals sent to a process writing a core file, except
+.Dv SIGKILL
+which terminates the writing and causes immediate exit of the process.
+The behavior of
+.Dv SIGKILL
+can be disabled by setting tunable
+.Xr sysctl 8
+variable
+.Va kern.core_dump_can_intr
+to zero.
+.Pp
By default, a process that changes user or group credentials whether
real or effective will not create a corefile.
This behaviour can be
@@ -116,11 +116,13 @@ variable
.Va kern.sugid_coredump
to 1.
.Pp
-Corefiles can be compressed by the kernel if the following item
-is included in the kernel configuration file:
+Corefiles can be compressed by the kernel if one of the following items
+are included in the kernel configuration file:
.Bl -tag -width "1234567890" -compact -offset "12345"
.It options
GZIO
+.It options
+ZSTDIO
.El
.Pp
The following sysctl control core file compression:
diff --git a/share/man/man5/devfs.conf.5 b/share/man/man5/devfs.conf.5
index e95c7b578bf5..f7141b76c3f6 100644
--- a/share/man/man5/devfs.conf.5
+++ b/share/man/man5/devfs.conf.5
@@ -54,7 +54,7 @@ The action to take for the device.
The action names are only significant to the first unique character.
.It Ar devname
The name of the device created by
-.Xr devfs 5 .
+.Xr devfs 4 .
.It Ar arg
The argument of the
.Ar action .
@@ -68,7 +68,7 @@ This action creates a symbolic link named
that points to
.Ar devname ,
the name of the device created by
-.Xr devfs 5 .
+.Xr devfs 4 .
.It Ic own
This action changes the ownership of
.Ar devname .
@@ -118,8 +118,8 @@ perm cd0 0660
.Ed
.Sh SEE ALSO
.Xr chmod 1 ,
+.Xr devfs 4 ,
.Xr devd.conf 5 ,
-.Xr devfs 5 ,
.Xr devfs.rules 5 ,
.Xr chown 8
.Sh AUTHORS
diff --git a/share/man/man5/devfs.rules.5 b/share/man/man5/devfs.rules.5
index 368a7696b5cd..e878c2a97738 100644
--- a/share/man/man5/devfs.rules.5
+++ b/share/man/man5/devfs.rules.5
@@ -124,7 +124,7 @@ group, a similar rule may be used:
.Dl "add path 'usb/*' mode 0660 group usb"
.Sh SEE ALSO
.Xr glob 3 ,
-.Xr devfs 5 ,
+.Xr devfs 4 ,
.Xr devfs.conf 5 ,
.Xr devfs 8 ,
.Xr service 8
diff --git a/share/man/man5/elf.5 b/share/man/man5/elf.5
index 7ad469a03c3b..d89a917bd96f 100644
--- a/share/man/man5/elf.5
+++ b/share/man/man5/elf.5
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 25, 2022
+.Dd May 26, 2025
.Dt ELF 5
.Os
.Sh NAME
@@ -864,6 +864,13 @@ This section holds version control information.
This section is of type
.Sy SHT_PROGBITS .
No attribute types are used.
+.It .ctors
+This legacy section holds pointers to initialization routines,
+executed before calling the main program entry point.
+This section is of type
+.Sy SHT_PROGBITS .
+The attributes used are
+.Sy SHF_ALLOC .
.It .data
This section holds initialized data that contribute to the program's
memory image.
@@ -889,6 +896,13 @@ are unspecified.
This section is of type
.Sy SHT_PROGBITS .
No attribute types are used.
+.It .dtors
+This legacy section holds pointers to finalization routines,
+executed when the program exits normally.
+This section is of type
+.Sy SHT_PROGBITS .
+The attributes used are
+.Sy SHF_ALLOC .
.It .dynamic
This section holds dynamic linking information.
The section's attributes
@@ -915,7 +929,7 @@ This section is of type
The attribute used is
.Sy SHF_ALLOC .
.It .fini
-This section holds executable instructions that contribute to the process
+This legacy section holds executable instructions that contribute to the process
termination code.
When a program exits normally the system arranges to
execute the code in this section.
@@ -925,6 +939,19 @@ The attributes used are
.Sy SHF_ALLOC
and
.Sy SHF_EXECINSTR .
+.It .fini_array
+This section holds pointers to finalization routines.
+When a program exits normally
+.Xr rtld 1
+executes the code referenced by this section.
+This section is of type
+.Sy SHT_FINI_ARRAY .
+The attributes used are
+.Sy SHF_ALLOC .
+Refer to
+.Dv NT_FREEBSD_NOINIT_TAG
+.Pq below
+for a description of how initialization and finalization code is invoked.
.It .got
This section holds the global offset table.
This section is of type
@@ -937,7 +964,7 @@ This section is of type
The attribute used is
.Sy SHF_ALLOC .
.It .init
-This section holds executable instructions that contribute to the process
+This legacy section holds executable instructions that contribute to the process
initialization code.
When a program starts to run the system arranges to
execute the code in this section before calling the main program entry point.
@@ -947,6 +974,20 @@ The attributes used are
.Sy SHF_ALLOC
and
.Sy SHF_EXECINSTR .
+.It .init_array
+This section holds pointers to initialization routines.
+When a program starts to run
+.Xr rtld 1
+executes the code referenced by this section before calling the program entry
+point.
+This section is of type
+.Sy SHT_INIT_ARRAY .
+The attributes used are
+.Sy SHF_ALLOC .
+Refer to
+.Dv NT_FREEBSD_NOINIT_TAG
+.Pq below
+for a description of how initialization and finalization code is invoked.
.It .interp
This section holds the pathname of a program interpreter.
If the file has
@@ -1065,6 +1106,9 @@ and
.It .jcr
This section holds information about Java classes that must
be registered.
+It is obsolete and binaries created for
+.Fx 15
+or later do not process it.
.It .eh_frame
This section holds information used for C++ exception-handling.
.El
@@ -1381,6 +1425,10 @@ Disable stack gap.
.It NT_FREEBSD_FCTL_WXNEEDED Pq Value: 0x08
Indicate that the binary requires mappings that are simultaneously
writeable and executable.
+.It NT_FREEBSD_FCTL_LA48 Pq Value: 0x10
+Request 48-bit linear address space on amd64.
+.It NT_FREEBSD_FCTL_LA57 Pq Value: 0x40
+Accept 57-bit linear address space on amd64.
.El
.El
.Sh SEE ALSO
diff --git a/share/man/man5/fstab.5 b/share/man/man5/fstab.5
index 6a357e497ca7..787fe3933aca 100644
--- a/share/man/man5/fstab.5
+++ b/share/man/man5/fstab.5
@@ -113,7 +113,7 @@ flag.
Other options need both the file system specific flag and its argument,
separated by an equal sign.
For example, mounting an
-.Xr msdosfs 5
+.Xr msdosfs 4
filesystem, the options
.Bd -literal -offset indent
-o sync -o noatime -m 644 -M 755 -u foo -g bar
@@ -423,10 +423,9 @@ resides in
# Swap space on a block device.
/dev/da0p1 none swap sw 0 0
#
-# Swap space using a block device with GBDE/GELI encryption.
+# Swap space using a block device with GELI encryption.
# aalgo, ealgo, keylen, sectorsize options are available
# for .eli devices.
-/dev/da1p1.bde none swap sw 0 0
/dev/da1p2.eli none swap sw 0 0
#
# tmpfs.
diff --git a/share/man/man5/hosts.equiv.5 b/share/man/man5/hosts.equiv.5
index 319d47718cbf..dbb3bb2f4205 100644
--- a/share/man/man5/hosts.equiv.5
+++ b/share/man/man5/hosts.equiv.5
@@ -124,7 +124,6 @@ and their users
except users from netgroup
.Dq dau .
.Sh SEE ALSO
-.Xr rcp 1 ,
.Xr gethostbyname 3 ,
.Xr inet 3 ,
.Xr innetgr 3 ,
diff --git a/share/man/man5/intro.5 b/share/man/man5/intro.5
index 78e147975e81..3e67b319da14 100644
--- a/share/man/man5/intro.5
+++ b/share/man/man5/intro.5
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
@@ -25,25 +28,41 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 16, 1997
+.Dd November 17, 2024
.Dt INTRO 5
.Os
.Sh NAME
.Nm intro
-.Nd "introduction to file formats"
+.Nd introduction to file formats
.Sh DESCRIPTION
-This section contains information about file formats.
+This section contains information about the file formats
+which comprise most data structures in the
+.Bx
+environment, including:
+.Pp
+.Bl -bullet -compact
+.It
+.Xr ascii 7
+configuration and resource files
+.It
+system binary file and stream structures
+.It
+composition of database files
+.El
.Sh FILES
-.Bl -tag -width /etc/shells -compact
-.It Pa /etc
-location of most system configuration files
+.Bl -tag -width "/usr/local/etc/" -compact
+.It Pa /etc/
+base system software configuration files
+.It Pa /usr/local/etc/
+locally installed software configuration files
.El
.Sh SEE ALSO
.Xr apropos 1 ,
.Xr intro 1 ,
+.Xr hier 7 ,
.Xr intro 8
.Sh HISTORY
The
-.Nm
-section manual page appeared in
+.Nm Ns Pq 5
+manual page first appeared in
.Fx 2.2 .
diff --git a/share/man/man5/linprocfs.5 b/share/man/man5/linprocfs.5
deleted file mode 100644
index 6b30d944b14b..000000000000
--- a/share/man/man5/linprocfs.5
+++ /dev/null
@@ -1,98 +0,0 @@
-.\" Written by Garrett Wollman
-.\" This file is in the public domain.
-.\"
-.Dd November 13, 2019
-.Dt LINPROCFS 5
-.Os
-.Sh NAME
-.Nm linprocfs
-.Nd Linux process file system
-.Sh SYNOPSIS
-.Bd -literal
-linproc /compat/linux/proc linprocfs rw 0 0
-.Ed
-.Sh DESCRIPTION
-The Linux process file system, or
-.Nm ,
-emulates a subset of Linux' process file system and is required for
-the complete operation of some Linux binaries.
-.Pp
-The
-.Nm
-provides a two-level view of process space.
-At the highest level, processes themselves are named, according to
-their process ids in decimal, with no leading zeros.
-There is also a special node called
-.Pa self
-which always refers to the process making the lookup request.
-.Pp
-Each node is a directory containing several files:
-.Bl -tag -width status
-.It Pa exe
-A reference to the vnode from which the process text was read.
-This can be used to gain access to the process' symbol table,
-or to start another copy of the process.
-.It Pa mem
-The complete virtual memory image of the process.
-Only those addresses which exist in the process can be accessed.
-Reads and writes to this file modify the process.
-Writes to the text segment remain private to the process.
-.El
-.Pp
-Each node is owned by the process's user, and belongs to that user's
-primary group, except for the
-.Pa mem
-node, which belongs to the
-.Li kmem
-group.
-.Sh FILES
-.Bl -tag -width /compat/linux/proc/self/XXXXXXX -compact
-.It Pa /compat/linux/proc
-The normal mount point for the
-.Nm .
-.It Pa /compat/linux/proc/cpuinfo
-CPU vendor and model information in human-readable form.
-.It Pa /compat/linux/proc/meminfo
-System memory information in human-readable form.
-.It Pa /compat/linux/proc/pid
-A directory containing process information for process
-.Pa pid .
-.It Pa /compat/linux/proc/self
-A directory containing process information for the current process.
-.It Pa /compat/linux/proc/self/exe
-The executable image for the current process.
-.It Pa /compat/linux/proc/self/mem
-The complete virtual address space of the current process.
-.El
-.Sh EXAMPLES
-To mount a
-.Nm
-file system on
-.Pa /compat/linux/proc :
-.Pp
-.Dl "mount -t linprocfs linproc /compat/linux/proc"
-.Sh SEE ALSO
-.Xr mount 2 ,
-.Xr unmount 2 ,
-.Xr linux 4 ,
-.Xr procfs 5 ,
-.Xr pseudofs 9
-.Sh HISTORY
-The
-.Nm
-first appeared in
-.Fx 4.0 .
-.Sh AUTHORS
-.An -nosplit
-The
-.Nm
-was derived from
-.Nm procfs
-by
-.An Pierre Beyssac .
-This manual page was written by
-.An Dag-Erling Sm\(/orgrav ,
-based on the
-.Xr procfs 5
-manual page by
-.An Garrett Wollman .
diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5
index ebf1b8a119f7..46bfa91d36ba 100644
--- a/share/man/man5/make.conf.5
+++ b/share/man/man5/make.conf.5
@@ -158,6 +158,15 @@ and
.Va COPTFLAGS
to contain the appropriate optimization directive to
.Xr cc 1 .
+To set the
+.Va CPUTYPE
+value, use
+.Dq Li ?=
+instead of
+.Dq Li =
+so that it can be overridden by
+.Xr make 1
+targets.
The automatic setting of
.Va CFLAGS
may be overridden using the
diff --git a/share/man/man5/motd.5 b/share/man/man5/motd.5
index 86cb8f723634..109fc4e56ca4 100644
--- a/share/man/man5/motd.5
+++ b/share/man/man5/motd.5
@@ -2,7 +2,7 @@
.\"
.\" This file is in the public domain.
.\"
-.Dd October 18, 2020
+.Dd December 14, 2024
.Dt MOTD 5
.Os
.Sh NAME
@@ -25,9 +25,8 @@ and the contents are written to
can be updated without a system reboot by manually restarting the
motd service after updating
.Pa /etc/motd.template :
-.Bd -literal -offset -ident -compact
-service motd restart
-.Ed
+.Pp
+.Dl service motd restart
.Pp
Individual users may suppress the display of this file by
creating a file named
@@ -35,7 +34,10 @@ creating a file named
in their home directories or through
.Xr login.conf 5 .
.Sh FILES
-.Bl -tag -width $HOME/.hushlogin -compact
+.Bl -tag -width "/etc/motd.template" -compact
+.It Pa /etc/motd
+Symbolic link to
+.Pa /var/run/motd .
.It Pa /etc/motd.template
The template file that system administrators can edit.
.It Pa /var/run/motd
diff --git a/share/man/man5/mount.conf.5 b/share/man/man5/mount.conf.5
index 633a642e37be..4b5c272ef601 100644
--- a/share/man/man5/mount.conf.5
+++ b/share/man/man5/mount.conf.5
@@ -50,7 +50,7 @@ The logic for this is in
.Fn vfs_mountroot_conf0 .
.It
The kernel will first mount
-.Xr devfs 5
+.Xr devfs 4
as the root file system.
.It
Next, the kernel will parse the in-memory config file created in step 1
@@ -60,7 +60,7 @@ See
for the format of the config file.
.It
When the actual root file system is mounted,
-.Xr devfs 5
+.Xr devfs 4
will be re-mounted on the
.Pa /dev
directory.
@@ -221,7 +221,7 @@ For each root file system which is mounted, a
directory
.Em must
exist so that the root mount logic can properly re-mount
-.Xr devfs 5 .
+.Xr devfs 4 .
If this directory does not exist, the system
may hang during the bootup process.
.Sh SEE ALSO
diff --git a/share/man/man5/nsmb.conf.5 b/share/man/man5/nsmb.conf.5
index 1a09743874e5..0da10343ed77 100644
--- a/share/man/man5/nsmb.conf.5
+++ b/share/man/man5/nsmb.conf.5
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2003
.\" Originally written by Sergey A. Osokin
.\" Rewritten by Tom Rhodes
@@ -28,9 +31,7 @@
.Os
.Sh NAME
.Nm nsmb.conf
-.Nd configuration file for
-.Tn SMB
-requests
+.Nd configuration file for server message block (SMB1/CIFS) requests
.Sh DESCRIPTION
The
.Nm
diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5
index 9803d96bc5d9..8954e872c231 100644
--- a/share/man/man5/pf.conf.5
+++ b/share/man/man5/pf.conf.5
@@ -27,7 +27,7 @@
.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd December 6, 2023
+.Dd July 9, 2025
.Dt PF.CONF 5
.Os
.Sh NAME
@@ -100,6 +100,8 @@ Macro names may not be reserved words (for example
.Ar in ,
.Ar out ) .
Macros are not expanded inside quotes.
+Ranges of network addresses used in macros that will be expanded in lists
+later on must be quoted with additional simple quotes.
.Pp
For example,
.Bd -literal -offset indent
@@ -107,6 +109,11 @@ ext_if = \&"kue0\&"
all_ifs = \&"{\&" $ext_if lo0 \&"}\&"
pass out on $ext_if from any to any
pass in on $ext_if proto tcp from any to any port 25
+
+usr_lan_range = "'192.0.2.0/24'"
+srv_lan_range = "'198.51.100.0 - 198.51.100.255'"
+nat_ranges = \&"{\&" $usr_lan_range $srv_lan_range \&"}\&"
+nat on $ext_if from $nat_ranges to any -> ($ext_if)
.Ed
.Sh TABLES
Tables are named structures which can hold a collection of addresses and
@@ -132,8 +139,8 @@ Tables can also be used for the redirect address of
.Ar nat
and
.Ar rdr
-rules and in the routing options of filter rules, but only for
-.Ar round-robin
+and in the routing options of filter rules, but not for
+.Ar bitmask
pools.
.Pp
Tables can be defined with any of the following
@@ -167,7 +174,7 @@ will be cleared on load.
.El
.Pp
Tables may be defined with the following attributes:
-.Bl -tag -width persist
+.Bl -tag -width counters
.It Ar persist
The
.Ar persist
@@ -195,9 +202,9 @@ Note that this feature carries significant memory overhead for large tables.
.Pp
For example,
.Bd -literal -offset indent
-table \*(Ltprivate\*(Gt const { 10/8, 172.16/12, 192.168/16 }
-table \*(Ltbadhosts\*(Gt persist
-block on fxp0 from { \*(Ltprivate\*(Gt, \*(Ltbadhosts\*(Gt } to any
+table <private> const { 10/8, 172.16/12, 192.168/16 }
+table <badhosts> persist
+block on fxp0 from { <private>, <badhosts> } to any
.Ed
.Pp
creates a table called private, to hold RFC 1918 private network
@@ -215,8 +222,8 @@ these hosts can be blocked by using
A table can also be initialized with an address list specified in one or more
external files, using the following syntax:
.Bd -literal -offset indent
-table \*(Ltspam\*(Gt persist file \&"/etc/spammers\&" file \&"/etc/openrelays\&"
-block on fxp0 from \*(Ltspam\*(Gt to any
+table <spam> persist file \&"/etc/spammers\&" file \&"/etc/openrelays\&"
+block on fxp0 from <spam> to any
.Ed
.Pp
The files
@@ -265,7 +272,8 @@ firewall at the risk of dropping valid idle connections.
.It Ar tcp.first
The state after the first packet.
.It Ar tcp.opening
-The state before the destination host ever sends a packet.
+The state after the second packet but before both endpoints have
+acknowledged the connection.
.It Ar tcp.established
The fully established state.
.It Ar tcp.closing
@@ -353,11 +361,11 @@ For example:
.Bd -literal -offset indent
set timeout tcp.first 120
set timeout tcp.established 86400
-set timeout { adaptive.start 6000, adaptive.end 12000 }
-set limit states 10000
+set timeout { adaptive.start 60000, adaptive.end 120000 }
+set limit states 100000
.Ed
.Pp
-With 9000 state table entries, the timeout values are scaled to 50%
+With 90000 state table entries, the timeout values are scaled to 50%
(tcp.first 60, tcp.established 43200).
.It Ar set loginterface
Enable collection of packet and byte count statistics for the given
@@ -419,13 +427,10 @@ and
options) to 2000.
Using
.Bd -literal -offset indent
-set limit tables 1000
set limit table-entries 100000
.Ed
.Pp
-sets limits on the memory pools used by tables.
-The first limits the number of tables that can exist to 1000.
-The second limits the overall number of addresses that can be stored
+sets the limit on the overall number of addresses that can be stored
in tables to 100000.
.Pp
Various limits can be combined on a single line:
@@ -537,6 +542,9 @@ an ICMP UNREACHABLE is returned for blocked UDP packets,
and all other packets are silently dropped.
.El
.Pp
+The default value is
+.Cm drop .
+.Pp
For example:
.Bd -literal -offset indent
set block-policy return
@@ -661,6 +669,8 @@ but can be overridden via this option.
Setting this option may leave a small period of time where the fingerprints
referenced by the currently active ruleset are inconsistent until the new
ruleset finishes loading.
+The default location for fingerprints is
+.Pa /etc/pf.os .
.Pp
For example:
.Pp
@@ -705,11 +715,12 @@ and
.Ar pass
packets based on attributes of their Ethernet (layer 2) header.
.Pp
-For each packet processed by the packet filter, the filter rules are
-evaluated in sequential order, from first to last.
+Each time a packet processed by the packet filter comes in on or
+goes out through an interface, the filter rules are evaluated in
+sequential order, from first to last.
The last matching rule decides what action is taken.
If no rule matches the packet, the default action is to pass
-the packet.
+the packet without creating a state.
.Pp
The following actions can be used in the filter:
.Bl -tag -width xxxx
@@ -720,12 +731,15 @@ Unlike for layer 3 traffic the packet is always silently dropped.
The packet is passed;
no state is created for layer 2 traffic.
.El
-.Sh PARAMETERS
+.Ss Parameters applicable to layer 2 rules
The rule parameters specify the packets to which a rule applies.
A packet always comes in on, or goes out through, one interface.
Most parameters are optional.
If a parameter is specified, the rule only applies to packets with
matching attributes.
+The matching for some parameters can be inverted with the
+.Cm !\&
+operator.
Certain parameters can be expressed as lists, in which case
.Xr pfctl 8
generates all needed rule combinations.
@@ -751,6 +765,8 @@ see the
.Ic group
keyword in
.Xr ifconfig 8 .
+.Ar any
+will match any existing interface except loopback ones.
.It Ar bridge-to Aq interface
Packets matching this rule will be sent out of the specified interface without
further processing.
@@ -1333,29 +1349,18 @@ If the
.Xr dummynet 4
module is not loaded any traffic sent into a queue or pipe will be dropped.
.Sh TRANSLATION
-Translation rules modify either the source or destination address of the
-packets associated with a stateful connection.
-A stateful connection is automatically created to track packets matching
-such a rule as long as they are not blocked by the filtering section of
-.Nm pf.conf .
-The translation engine modifies the specified address and/or port in the
-packet, recalculates IP, TCP and UDP checksums as necessary, and passes
-it to the packet filter for evaluation.
-.Pp
-Since translation occurs before filtering the filter
-engine will see packets as they look after any
-addresses and ports have been translated.
-Filter rules will therefore have to filter based on the translated
+Translation options modify either the source or destination address and
+port of the packets associated with a stateful connection.
+.Xr pf 4
+modifies the specified address and/or port in the packet and recalculates
+IP, TCP, and UDP checksums as necessary.
+.Pp
+If specified on a
+.Ic match
+rule, subsequent rules will see packets as they look
+after any addresses and ports have been translated.
+These rules will therefore have to filter based on the translated
address and port number.
-Packets that match a translation rule are only automatically passed if
-the
-.Ar pass
-modifier is given, otherwise they are
-still subject to
-.Ar block
-and
-.Ar pass
-rules.
.Pp
The state entry created permits
.Xr pf 4
@@ -1364,15 +1369,72 @@ and correctly direct return traffic for that connection.
.Pp
Various types of translation are possible with pf:
.Bl -tag -width xxxx
+.It Ar af-to
+Translation between different address families (NAT64) is handled
+using
+.Ar af-to
+rules.
+Because address family translation overrides the routing table, it's
+only possible to use
+.Ar af-to
+on inbound rules, and a source address of the resulting translation
+must always be specified.
+.Pp
+The optional second argument is the host or subnet the original
+addresses are translated into for the destination.
+The lowest bits of the original destination address form the host
+part of the new destination address according to the specified subnet.
+It is possible to embed a complete IPv4 address into an IPv6 address
+using a network prefix of /96 or smaller.
+.Pp
+When a destination address is not specified, it is assumed that the host
+part is 32-bit long.
+For IPv6 to IPv4 translation this would mean using only the lower 32
+bits of the original IPv6 destination address.
+For IPv4 to IPv6 translation the destination subnet defaults to the
+subnet of the new IPv6 source address with a prefix length of /96.
+See RFC 6052 Section 2.2 for details on how the prefix determines the
+destination address encoding.
+.Pp
+For example, the following rules are identical:
+.Bd -literal -offset indent
+pass in inet af-to inet6 from 2001:db8::1 to 2001:db8::/96
+pass in inet af-to inet6 from 2001:db8::1
+.Ed
+.Pp
+In the above example the matching IPv4 packets will be modified to
+have a source address of 2001:db8::1 and a destination address will
+get prefixed with 2001:db8::/96, e.g. 198.51.100.100 will be
+translated to 2001:db8::c633:6464.
+.Pp
+In the reverse case the following rules are identical:
+.Bd -literal -offset indent
+pass in inet6 from any to 64:ff9b::/96 af-to inet \e
+ from 198.51.100.1 to 0.0.0.0/0
+pass in inet6 from any to 64:ff9b::/96 af-to inet \e
+ from 198.51.100.1
+.Ed
+.Pp
+The destination IPv4 address is assumed to be embedded inside the
+original IPv6 destination address, e.g. 64:ff9b::c633:6464 will be
+translated to 198.51.100.100.
+.Pp
+The current implementation will only extract IPv4 addresses from the
+IPv6 addresses with a prefix length of /96 and greater.
.It Ar binat
A
-.Ar binat
+.Ar binat-to
rule specifies a bidirectional mapping between an external IP netblock
and an internal IP netblock.
-.It Ar nat
+It expands to an outbound
+.Ar nat-to
+rule and an inbound
+.Ar rdr-to
+rule.
+.It Ar nat-to
A
-.Ar nat
-rule specifies that IP addresses are to be changed as the packet
+.Ar nat-to
+option specifies that IP addresses are to be changed as the packet
traverses the given interface.
This technique allows one or more IP addresses
on the translating host to support network traffic for a larger range of
@@ -1380,35 +1442,112 @@ machines on an "inside" network.
Although in theory any IP address can be used on the inside, it is strongly
recommended that one of the address ranges defined by RFC 1918 be used.
These netblocks are:
-.Bd -literal
-10.0.0.0 - 10.255.255.255 (all of net 10, i.e., 10/8)
-172.16.0.0 - 172.31.255.255 (i.e., 172.16/12)
-192.168.0.0 - 192.168.255.255 (i.e., 192.168/16)
+.Bd -literal -offset indent
+10.0.0.0 - 10.255.255.255 (all of net 10.0.0.0, i.e., 10.0.0.0/8)
+172.16.0.0 - 172.31.255.255 (i.e., 172.16.0.0/12)
+192.168.0.0 - 192.168.255.255 (i.e., 192.168.0.0/16)
.Ed
-.It Pa rdr
+.Pp
+.Ar nat-to
+is usually applied outbound.
+If applied inbound, nat-to to a local IP address is not supported.
+.It Pa rdr-to
The packet is redirected to another destination and possibly a
different port.
-.Ar rdr
-rules can optionally specify port ranges instead of single ports.
-rdr ... port 2000:2999 -\*(Gt ... port 4000
+.Ar rdr-to
+can optionally specify port ranges instead of single ports.
+For instance:
+.Bd -literal -offset indent
+match in ... port 2000:2999 rdr-to ... port 4000
+.Ed
redirects ports 2000 to 2999 (inclusive) to port 4000.
-rdr ... port 2000:2999 -\*(Gt ... port 4000:*
+.Bd -literal -offset indent
+qmatch in ... port 2000:2999 rdr-to ... port 4000:*
+.Ed
redirects port 2000 to 4000, 2001 to 4001, ..., 2999 to 4999.
.El
.Pp
+.Ar rdr-to
+is usually applied inbound.
+If applied outbound, rdr-to to a local IP address is not supported.
In addition to modifying the address, some translation rules may modify
source or destination ports for
.Xr tcp 4
or
.Xr udp 4
connections; implicitly in the case of
-.Ar nat
-rules and explicitly in the case of
-.Ar rdr
-rules.
+.Ar nat-to
+options and both implicitly and explicitly in the case of
+.Ar rdr-to
+ones.
+A
+.Ar rdr-to
+opion may cause the source port to be modified if doing so avoids a conflict
+with an existing connection.
+A random source port in the range 50001-65535 is chosen in this case.
Port numbers are never translated with a
-.Ar binat
-rule.
+.Ar binat-to
+option.
+.Pp
+Note that redirecting external incoming connections to the loopback
+address, as in
+.Bd -literal -offset indent
+pass in on egress proto tcp from any to any port smtp \e
+ rdr-to 127.0.0.1 port spamd
+.Ed
+.Pp
+will effectively allow an external host to connect to daemons
+bound solely to the loopback address, circumventing the traditional
+blocking of such connections on a real interface.
+Unless this effect is desired, any of the local non-loopback addresses
+should be used as redirection target instead, which allows external
+connections only to daemons bound to this address or not bound to
+any address.
+.Pp
+See
+.Sx TRANSLATION EXAMPLES
+below.
+.Ss NAT ruleset (pre-FreeBSD 15)
+In order to maintain compatibility with older releases of FreeBSD
+.Ar NAT
+rules can also be specified in their own ruleset.
+A stateful connection is automatically created to track packets matching
+such a rule as long as they are not blocked by the filtering section of
+.Nm pf.conf .
+Since translation occurs before filtering the filter
+engine will see packets as they look after any
+addresses and ports have been translated.
+Filter rules will therefore have to filter based on the translated
+address and port number.
+Packets that match a translation rule are only automatically passed if
+the
+.Ar pass
+modifier is given, otherwise they are
+still subject to
+.Ar block
+and
+.Ar pass
+rules.
+.Pp
+The following rules can be defined in the NAT ruleset:
+.Ar binat ,
+.Ar nat ,
+and
+.Ar rdr .
+They have the same effect as
+.Ar binat-to ,
+.Ar nat-to
+and
+.Ar rdr-to
+options for filter rules.
+.Pp
+The
+.Ar no
+option prefixed to a translation rule causes packets to remain untranslated,
+much in the same way as
+.Ar drop quick
+works in the packet filter.
+If no rule matches the packet it is passed to the filter engine unmodified.
.Pp
Evaluation order of the translation rules is dependent on the type
of the translation rules and of the direction of a packet.
@@ -1423,14 +1562,6 @@ Rules of the same type are evaluated in the same order in which they
appear in the ruleset.
The first matching rule decides what action is taken.
.Pp
-The
-.Ar no
-option prefixed to a translation rule causes packets to remain untranslated,
-much in the same way as
-.Ar drop quick
-works in the packet filter (see below).
-If no rule matches the packet it is passed to the filter engine unmodified.
-.Pp
Translation rules apply only to packets that pass through
the specified interface, and if no interface is specified,
translation is applied to packets on all interfaces.
@@ -1443,22 +1574,8 @@ Redirections cannot reflect packets back through the interface they arrive
on, they can only be redirected to hosts connected to different interfaces
or to the firewall itself.
.Pp
-Note that redirecting external incoming connections to the loopback
-address, as in
-.Bd -literal -offset indent
-rdr on ne3 inet proto tcp to port smtp -\*(Gt 127.0.0.1 port spamd
-.Ed
-.Pp
-will effectively allow an external host to connect to daemons
-bound solely to the loopback address, circumventing the traditional
-blocking of such connections on a real interface.
-Unless this effect is desired, any of the local non-loopback addresses
-should be used as redirection target instead, which allows external
-connections only to daemons bound to this address or not bound to
-any address.
-.Pp
See
-.Sx TRANSLATION EXAMPLES
+.Sx COMPATIBILITY TRANSLATION EXAMPLES
below.
.Sh PACKET FILTERING
.Xr pf 4
@@ -1554,6 +1671,9 @@ rules in that parameters are set for every rule a packet matches, not only
on the last matching rule.
For the following parameters, this means that the parameter effectively becomes
"sticky" until explicitly overridden:
+.Ar nat-to ,
+.Ar binat-to ,
+.Ar rdr-to ,
.Ar queue ,
.Ar dnpipe ,
.Ar dnqueue ,
@@ -1600,10 +1720,6 @@ allows echo requests (such as those created by
out statefully, and matches incoming echo replies correctly to states.
.Pp
Also, looking up states is usually faster than evaluating rules.
-If there are 50 rules, all of them are evaluated sequentially in O(n).
-Even with 50000 states, only 16 comparisons are needed to match a
-state, since states are stored in a binary search tree that allows
-searches in O(log2 n).
.Pp
Furthermore, correct handling of ICMP error messages is critical to
many protocols, particularly TCP.
@@ -1635,7 +1751,7 @@ handles state tracking.
See
.Sx STATEFUL TRACKING OPTIONS
below for further details.
-.Sh PARAMETERS
+.Ss Parameters
The rule parameters specify the packets to which a rule applies.
A packet always comes in on, or goes out through, one interface.
Most parameters are optional.
@@ -1652,34 +1768,49 @@ If neither
nor
.Ar out
are specified, the rule will match packets in both directions.
-.It Ar log
-In addition to the action specified, a log message is generated.
+.It Ar log Pq Cm all | matches | to Ao Ar interface Ac | Cm user
+In addition to any action specified,
+log the packet.
Only the packet that establishes the state is logged,
unless the
.Ar no state
option is specified.
The logged packets are sent to a
.Xr pflog 4
-interface, by default
-.Ar pflog0 .
-This interface is monitored by the
+interface, by default pflog0;
+pflog0 is monitored by the
.Xr pflogd 8
-logging daemon, which dumps the logged packets to the file
+logging daemon which logs to the file
.Pa /var/log/pflog
in
.Xr pcap 3
binary format.
-.It Ar log (all)
-Used to force logging of all packets for a connection.
+.Pp
+The keywords
+.Cm all , matches , to ,
+and
+.Cm user
+are optional and can be combined using commas,
+but must be enclosed in parentheses if given.
+.Pp
+Use
+.Cm all
+to force logging of all packets for a connection.
This is not necessary when
.Ar no state
is explicitly specified.
-As with
-.Ar log ,
-packets are logged to
-.Xr pflog 4 .
-.It Ar log (user)
-Logs the
+.Pp
+If
+.Cm matches
+is specified,
+it logs the packet on all subsequent matching rules.
+It is often combined with
+.Cm to Aq Ar interface
+to avoid adding noise to the default log file.
+.Pp
+The keyword
+.Cm user
+logs the
.Ux
user ID of the user that owns the socket and the PID of the process that
has the socket open where the packet is sourced from or destined to
@@ -1690,11 +1821,10 @@ Only the first packet
logged via
.Ar log (all, user)
will have the user credentials logged when using stateful matching.
-.It Ar log (to Aq Ar interface )
-Send logs to the specified
-.Xr pflog 4
-interface instead of
-.Ar pflog0 .
+.Pp
+To specify a logging interface other than pflog0,
+use the syntax
+.Cm to Aq Ar interface .
.It Ar quick
If a packet matches a rule which has the
.Ar quick
@@ -1709,6 +1839,8 @@ see the
.Ic group
keyword in
.Xr ifconfig 8 .
+.Ar any
+will match any existing interface except loopback ones.
.It Aq Ar af
This rule applies only to packets of this address family.
Supported values are
@@ -1751,6 +1883,8 @@ Any address which is not currently routable.
Any source address that fails a unicast reverse path forwarding (URPF)
check, i.e. packets coming in on an interface other than that which holds
the route back to the packet's source address.
+.It Ar self
+Expands to all addresses assigned to all interfaces.
.It Aq Ar table
Any address that matches the given table.
.El
@@ -1763,7 +1897,9 @@ For instance:
means all addresses from 10.1.1.10 to 10.1.1.12,
hence addresses 10.1.1.10, 10.1.1.11, and 10.1.1.12.
.Pp
-Interface names and interface group names can have modifiers appended:
+Interface names and interface group names, and
+.Ar self
+can have modifiers appended:
.Pp
.Bl -tag -width xxxxxxxxxxxx -compact
.It Ar :network
@@ -1806,17 +1942,17 @@ Ports and ranges of ports are specified by using these operators:
.Bd -literal -offset indent
= (equal)
!= (unequal)
-\*(Lt (less than)
-\*(Le (less than or equal)
-\*(Gt (greater than)
-\*(Ge (greater than or equal)
+< (less than)
+<= (less than or equal)
+> (greater than)
+>= (greater than or equal)
: (range including boundaries)
-\*(Gt\*(Lt (range excluding boundaries)
-\*(Lt\*(Gt (except range)
+>< (range excluding boundaries)
+<> (except range)
.Ed
.Pp
-.Sq \*(Gt\*(Lt ,
-.Sq \*(Lt\*(Gt
+.Sq >< ,
+.Sq <>
and
.Sq \&:
are binary operators (they take two arguments).
@@ -1824,15 +1960,15 @@ For instance:
.Bl -tag -width Fl
.It Ar port 2000:2004
means
-.Sq all ports \*(Ge 2000 and \*(Le 2004 ,
+.Sq all ports >= 2000 and <= 2004 ,
hence ports 2000, 2001, 2002, 2003 and 2004.
-.It Ar port 2000 \*(Gt\*(Lt 2004
+.It Ar port 2000 >< 2004
means
-.Sq all ports \*(Gt 2000 and \*(Lt 2004 ,
+.Sq all ports > 2000 and < 2004 ,
hence ports 2001, 2002 and 2003.
-.It Ar port 2000 \*(Lt\*(Gt 2004
+.It Ar port 2000 <> 2004
means
-.Sq all ports \*(Lt 2000 or \*(Gt 2004 ,
+.Sq all ports < 2000 or > 2004 ,
hence ports 1-1999 and 2005-65535.
.El
.Pp
@@ -1848,9 +1984,9 @@ The host, port and OS specifications are optional, as in the following examples:
.Bd -literal -offset indent
pass in all
pass in from any to any
-pass in proto tcp from any port \*(Le 1024 to any
+pass in proto tcp from any port < 1024 to any
pass in proto tcp from any to any port 25
-pass in proto tcp from 10.0.0.0/8 port \*(Gt 1024 \e
+pass in proto tcp from 10.0.0.0/8 port >= 1024 \e
to ! 10.1.2.3 port != ssh
pass in proto tcp from any os "OpenBSD"
.Ed
@@ -1909,8 +2045,23 @@ The following example allows only selected users to open outgoing
connections:
.Bd -literal -offset indent
block out proto { tcp, udp } all
-pass out proto { tcp, udp } all user { \*(Lt 1000, dhartmei }
+pass out proto { tcp, udp } all user { < 1000, dhartmei }
.Ed
+.Pp
+The example below permits users with uid between 1000 and 1500
+to open connections:
+.Bd -literal -offset indent
+block out proto tcp all
+pass out proto tcp from self user { 999 >< 1501 }
+.Ed
+.Pp
+The
+.Sq \&:
+operator, which works for port number matching, does not work for
+.Cm user
+and
+.Cm group
+match.
.It Xo Ar flags Aq Ar a
.Pf / Ns Aq Ar b
.No \*(Ba / Ns Aq Ar b
@@ -1960,7 +2111,10 @@ if one flushes the state table.
However, states created from such intermediate packets may be missing
connection details such as the TCP window scaling factor.
States which modify the packet flow, such as those affected by
-.Ar nat , binat No or Ar rdr
+.Ar af-to ,
+.Ar nat ,
+.Ar binat or
+.Ar rdr
rules,
.Ar modulate No or Ar synproxy state
options, or scrubbed with
@@ -1968,10 +2122,10 @@ options, or scrubbed with
will also not be recoverable from intermediate packets.
Such connections will stall and time out.
.It Xo Ar icmp-type Aq Ar type
-.Ar code Aq Ar code
+.Ar Op code Aq Ar code
.Xc
.It Xo Ar icmp6-type Aq Ar type
-.Ar code Aq Ar code
+.Ar Op code Aq Ar code
.Xc
This rule only applies to ICMP or ICMPv6 packets with the specified type
and code.
@@ -2017,20 +2171,21 @@ pass all tos 0x10
pass all tos 16
.Ed
.It Ar allow-opts
-By default, IPv4 packets with IP options or IPv6 packets with routing
-extension headers are blocked.
+By default, packets with IPv4 options or IPv6 hop-by-hop or destination
+options header are blocked.
When
.Ar allow-opts
is specified for a
.Ar pass
rule, packets that pass the filter based on that rule (last matching)
-do so even if they contain IP options or routing extension headers.
+do so even if they contain options.
For packets that match state, the rule that initially created the
state is used.
The implicit
.Ar pass
-rule that is used when a packet does not match any rules does not
-allow IP options.
+rule, that is used when a packet does not match
+any rules, does not allow IP options or option headers.
+Note that IPv6 packets with type 0 routing headers are always dropped.
.It Ar label Aq Ar string
Adds a label (name) to the rule, which can be used to identify the rule.
For instance,
@@ -2060,15 +2215,15 @@ For example:
.Bd -literal -offset indent
ips = \&"{ 1.2.3.4, 1.2.3.5 }\&"
pass in proto tcp from any to $ips \e
- port \*(Gt 1023 label \&"$dstaddr:$dstport\&"
+ port > 1023 label \&"$dstaddr:$dstport\&"
.Ed
.Pp
expands to
.Bd -literal -offset indent
pass in inet proto tcp from any to 1.2.3.4 \e
- port \*(Gt 1023 label \&"1.2.3.4:\*(Gt1023\&"
+ port > 1023 label \&"1.2.3.4:>1023\&"
pass in inet proto tcp from any to 1.2.3.5 \e
- port \*(Gt 1023 label \&"1.2.3.5:\*(Gt1023\&"
+ port > 1023 label \&"1.2.3.5:>1023\&"
.Ed
.Pp
The macro expansion for the
@@ -2077,6 +2232,24 @@ directive occurs only at configuration file parse time, not during runtime.
.It Ar ridentifier Aq Ar number
Add an identifier (number) to the rule, which can be used to correlate the rule
to pflog entries, even after ruleset updates.
+.It Cm max-pkt-rate Ar number Ns / Ns Ar seconds
+Measure the rate of packets matching the rule and states created by it.
+When the specified rate is exceeded, the rule stops matching.
+Only packets in the direction in which the state was created are considered,
+so that typically requests are counted and replies are not.
+For example,
+to pass up to 100 ICMP packets per 10 seconds:
+.Bd -literal -offset indent
+block in proto icmp
+pass in proto icmp max-pkt-rate 100/10
+.Ed
+.Pp
+When the rate is exceeded, all ICMP is blocked until the rate falls below
+100 per 10 seconds again.
+.Pp
+.It Ar max-pkt-size Aq Ar number
+Limit each packet to be no more than the specified number of bytes.
+This includes the IP header, but not any layer 2 header.
.It Xo Ar queue Aq Ar queue
.No \*(Ba ( Aq Ar queue ,
.Aq Ar queue )
@@ -2103,15 +2276,22 @@ If the packet is transmitted on a
.Xr vlan 4
interface, the queueing priority will be written as the priority
code point in the 802.1Q VLAN header.
-If two priorities are given, packets which have a TOS of
+If two priorities are given, TCP ACKs with no data payload and packets
+which have a TOS of
.Cm lowdelay
-and TCP ACKs with no data payload will be assigned to the second one.
+will be assigned to the second one.
.Pp
For example:
.Bd -literal -offset indent
pass in proto tcp to port 25 set prio 2
pass in proto tcp to port 22 set prio (2, 5)
.Ed
+.It Oo Cm \&! Oc Ns Cm received-on Ar interface
+Only match packets which were received on the specified
+.Ar interface
+(or interface group).
+.Ar any
+will match any existing interface except loopback ones.
.It Ar tag Aq Ar string
Packets matching this rule will be tagged with the
specified string.
@@ -2139,12 +2319,6 @@ Tags take the same macros as labels (see above).
Used with filter, translation or scrub rules
to specify that packets must already
be tagged with the given tag in order to match the rule.
-Inverse tag matching can also be done
-by specifying the
-.Cm !\&
-operator before the
-.Ar tagged
-keyword.
.It Ar rtable Aq Ar number
Used to select an alternate routing table for the routing lookup.
Only effective before the route lookup happened, i.e. when filtering inbound.
@@ -2259,8 +2433,8 @@ The
option loops through the redirection address(es).
.Pp
When more than one redirection address is specified,
-.Ar round-robin
-is the only permitted pool type.
+.Ar bitmask
+is not permitted as a pool type.
.It Ar static-port
With
.Ar nat
@@ -2289,6 +2463,16 @@ nat on $gif_mape_if from $int_if:network to any \e
.Ed
.Pp
sets PSID offset 6, PSID length 8, PSID 0x34.
+.It Ar endpoint-independent
+With
+.Ar nat
+rules, the
+.Ar endpoint-independent
+option caues
+.Xr pf 4
+to always map connections from a UDP source address and port to the same
+NAT address and port.
+This feature implements "full-cone" NAT behavior.
.El
.Pp
Additionally, the
@@ -2390,6 +2574,7 @@ will not work if
.Xr pf 4
operates on a
.Xr bridge 4 .
+Also they act on incoming SYN packets only.
.Pp
Example:
.Bd -literal -offset indent
@@ -2410,7 +2595,7 @@ must be specified explicitly to apply options to a rule.
.It Ar max Aq Ar number
Limits the number of concurrent states the rule may create.
When this limit is reached, further packets that would create
-state will not match this rule until existing states time out.
+state are dropped until existing states time out.
.It Ar no-sync
Prevent state changes for states created by this rule from appearing on the
.Xr pfsync 4
@@ -2433,6 +2618,10 @@ Cannot be used with modulate or synproxy state.
States created by this rule are exported on the
.Xr pflow 4
interface.
+.It Ar allow-related
+Automatically allow connections related to this one, regardless of rules that
+might otherwise affect them.
+This currently only applies to SCTP multihomed connection.
.El
.Pp
Multiple options can be specified, separated by commas:
@@ -2492,6 +2681,9 @@ Limit the rate of new connections over a time interval.
The connection rate is an approximation calculated as a moving average.
.El
.Pp
+When one of these limits is reached, further packets that would create
+state are dropped until existing states time out.
+.Pp
Because the 3-way handshake ensures that the source address is not being
spoofed, more aggressive action can be taken based on these limits.
With the
@@ -2520,9 +2712,9 @@ table and have all states originating from it flushed.
Any new packets arriving from this host will be dropped unconditionally
by the block rule.
.Bd -literal -offset indent
-block quick from \*(Ltbad_hosts\*(Gt
+block quick from <bad_hosts>
pass in on $ext_if proto tcp to $webserver port www keep state \e
- (max-src-conn-rate 100/10, overload \*(Ltbad_hosts\*(Gt flush global)
+ (max-src-conn-rate 100/10, overload <bad_hosts> flush global)
.Ed
.Sh OPERATING SYSTEM FINGERPRINTING
Passive OS Fingerprinting is a mechanism to inspect nuances of a TCP
@@ -2592,8 +2784,8 @@ This means that it will not work on other protocols and will not match
a currently established connection.
.Pp
Caveat: operating system fingerprints are occasionally wrong.
-There are three problems: an attacker can trivially craft his packets to
-appear as any operating system he chooses;
+There are three problems: an attacker can trivially craft packets to
+appear as any operating system;
an operating system patch could change the stack behavior and no fingerprints
will match it until the database is updated;
and multiple operating systems may have the same fingerprint.
@@ -2914,12 +3106,13 @@ anchor, if any, before finally evaluating the
.Ar pass
rule.
.Pp
-Filter rule
-.Ar anchors
-can also be loaded inline in the ruleset within a brace ('{' '}') delimited
-block.
+An
+.Ar anchor
+rule can also contain a filter ruleset in a brace-delimited block.
+In that case, no separate loading of rules into the anchor
+is required.
Brace delimited blocks may contain rules or other brace-delimited blocks.
-When anchors are loaded this way the anchor name becomes optional.
+When an anchor is populated this way, the anchor name becomes optional.
.Bd -literal -offset indent
anchor "external" on $ext_if {
block
@@ -2948,21 +3141,24 @@ Doing so would break SCTP multihoming.
This example maps incoming requests on port 80 to port 8080, on
which a daemon is running (because, for example, it is not run as root,
and therefore lacks permission to bind to port 80).
-.Bd -literal
+.Bd -literal -offset indent
# use a macro for the interface name, so it can be changed easily
ext_if = \&"ne3\&"
# map daemon on 8080 to appear to be on 80
-rdr on $ext_if proto tcp from any to any port 80 -\*(Gt 127.0.0.1 port 8080
+match in on $ext_if proto tcp from any to any port 80 \e
+ rdr-to 127.0.0.1 port 8080
.Ed
.Pp
-If the
+If a
.Ar pass
-modifier is given, packets matching the translation rule are passed without
-inspecting the filter rules:
-.Bd -literal
-rdr pass on $ext_if proto tcp from any to any port 80 -\*(Gt 127.0.0.1 \e
- port 8080
+rule is used with the
+.Ar quick
+modifier, packets matching the translation rule are passed without
+inspecting subsequent filter rules:
+.Bd -literal -offset indent
+pass in quick on $ext_if proto tcp from any to any port 80 \e
+ rdr-to 127.0.0.1 port 8080
.Ed
.Pp
In the example below, vlan12 is configured as 192.168.168.1;
@@ -2973,29 +3169,8 @@ network appear as though it is the Internet routable address
204.92.77.111 to nodes behind any interface on the router except
for the nodes on vlan12.
(Thus, 192.168.168.1 can talk to the 192.168.168.0/24 nodes.)
-.Bd -literal
-nat on ! vlan12 from 192.168.168.0/24 to any -\*(Gt 204.92.77.111
-.Ed
-.Pp
-In the example below, the machine sits between a fake internal 144.19.74.*
-network, and a routable external IP of 204.92.77.100.
-The
-.Ar no nat
-rule excludes protocol AH from being translated.
-.Bd -literal
-# NO NAT
-no nat on $ext_if proto ah from 144.19.74.0/24 to any
-nat on $ext_if from 144.19.74.0/24 to any -\*(Gt 204.92.77.100
-.Ed
-.Pp
-In the example below, packets bound for one specific server, as well as those
-generated by the sysadmins are not proxied; all other connections are.
-.Bd -literal
-# NO RDR
-no rdr on $int_if proto { tcp, udp } from any to $server port 80
-no rdr on $int_if proto { tcp, udp } from $sysadmins to any port 80
-rdr on $int_if proto { tcp, udp } from any to any port 80 -\*(Gt 127.0.0.1 \e
- port 80
+.Bd -literal -offset indent
+match out on ! vlan12 from 192.168.168.0/24 to any nat-to 204.92.77.111
.Ed
.Pp
This longer example uses both a NAT and a redirection.
@@ -3008,62 +3183,84 @@ The three mandatory anchors for
are omitted from this example; see the
.Xr ftp-proxy 8
manpage.
-.Bd -literal
+.Bd -literal -offset indent
# NAT
# Translate outgoing packets' source addresses (any protocol).
# In this case, any address but the gateway's external address is mapped.
-nat on $ext_if inet from ! ($ext_if) to any -\*(Gt ($ext_if)
+pass out on $ext_if inet from ! ($ext_if) to any nat-to ($ext_if)
# NAT PROXYING
# Map outgoing packets' source port to an assigned proxy port instead of
# an arbitrary port.
# In this case, proxy outgoing isakmp with port 500 on the gateway.
-nat on $ext_if inet proto udp from any port = isakmp to any -\*(Gt ($ext_if) \e
- port 500
+pass out on $ext_if inet proto udp from any port = isakmp to any \e
+ nat-to ($ext_if) port 500
# BINAT
# Translate outgoing packets' source address (any protocol).
# Translate incoming packets' destination address to an internal machine
# (bidirectional).
-binat on $ext_if from 10.1.2.150 to any -\*(Gt $ext_if
+pass on $ext_if from 10.1.2.150 to any binat-to $ext_if
# Translate packets arriving on $peer_if addressed to 172.22.16.0/20
# to the corresponding address in 172.21.16.0/20 (bidirectional).
-binat on $peer_if from 172.21.16.0/20 to any -> 172.22.16.0/20
+pass on $peer_if from 172.21.16.0/20 to any binat-to 172.22.16.0/20
# RDR
# Translate incoming packets' destination addresses.
# As an example, redirect a TCP and UDP port to an internal machine.
-rdr on $ext_if inet proto tcp from any to ($ext_if) port 8080 \e
- -\*(Gt 10.1.2.151 port 22
-rdr on $ext_if inet proto udp from any to ($ext_if) port 8080 \e
- -\*(Gt 10.1.2.151 port 53
+pass in on $ext_if inet proto tcp from any to ($ext_if) port 8080 \e
+ rdr-to 10.1.2.151 port 22
+pass in on $ext_if inet proto udp from any to ($ext_if) port 8080 \e
+ rdr-to 10.1.2.151 port 53
# RDR
# Translate outgoing ftp control connections to send them to localhost
# for proxying with ftp-proxy(8) running on port 8021.
-rdr on $int_if proto tcp from any to any port 21 -\*(Gt 127.0.0.1 port 8021
+pass in on $int_if proto tcp from any to any port 21 \e
+ rdr-to 127.0.0.1 port 8021
.Ed
.Pp
In this example, a NAT gateway is set up to translate internal addresses
using a pool of public addresses (192.0.2.16/28) and to redirect
incoming web server connections to a group of web servers on the internal
network.
-.Bd -literal
+.Bd -literal -offset indent
# NAT LOAD BALANCE
# Translate outgoing packets' source addresses using an address pool.
# A given source address is always translated to the same pool address by
# using the source-hash keyword.
-nat on $ext_if inet from any to any -\*(Gt 192.0.2.16/28 source-hash
+pass out on $ext_if inet from any to any nat-to 192.0.2.16/28 source-hash
# RDR ROUND ROBIN
# Translate incoming web server connections to a group of web servers on
# the internal network.
-rdr on $ext_if proto tcp from any to any port 80 \e
- -\*(Gt { 10.1.2.155, 10.1.2.160, 10.1.2.161 } round-robin
+pass in on $ext_if proto tcp from any to any port 80 \e
+ rdr-to { 10.1.2.155, 10.1.2.160, 10.1.2.161 } round-robin
+.Ed
+.Sh COMPATIBILITY TRANSLATION EXAMPLES
+In the example below, the machine sits between a fake internal 144.19.74.*
+network, and a routable external IP of 204.92.77.100.
+The
+.Ar no nat
+rule excludes protocol AH from being translated.
+.Bd -literal -offset indent
+# NAT
+no nat on $ext_if proto ah from 144.19.74.0/24 to any
+nat on $ext_if from 144.19.74.0/24 to any -> 204.92.77.100
+.Ed
+.Pp
+In the example below, packets bound for one specific server, as well as those
+generated by the sysadmins are not proxied; all other connections are.
+.Bd -literal -offset indent
+# RDR
+no rdr on $int_if proto { tcp, udp } from any to $server port 80
+no rdr on $int_if proto { tcp, udp } from $sysadmins to any port 80
+rdr on $int_if proto { tcp, udp } from any to any port 80 \e
+ -> 127.0.0.1 port 80
.Ed
.Sh FILTER EXAMPLES
-.Bd -literal
+.Bd -literal -offset indent
# The external interface is kue0
# (157.161.48.183, the only routable address)
# and the private network is 10.0.0.0/8, for which we are doing NAT.
@@ -3153,12 +3350,26 @@ pass out on $ext_if proto tcp from any to any port 80
# tag incoming packets as they are redirected to spamd(8). use the tag
# to pass those packets through the packet filter.
-rdr on $ext_if inet proto tcp from \*(Ltspammers\*(Gt to port smtp \e
- tag SPAMD -\*(Gt 127.0.0.1 port spamd
+rdr on $ext_if inet proto tcp from <spammers> to port smtp \e
+ tag SPAMD -> 127.0.0.1 port spamd
block in on $ext_if
pass in on $ext_if inet proto tcp tagged SPAMD
.Ed
+.Pp
+In the example below, a router handling both address families
+translates an internal IPv4 subnet to IPv6 using the well-known
+64:ff9b::/96 prefix:
+.Bd -literal -offset 4n
+pass in on $v4_if inet af-to inet6 from ($v6_if) to 64:ff9b::/96
+.Ed
+.Pp
+Paired with the example above, the example below can be used on
+another router handling both address families to translate back
+to IPv4:
+.Bd -literal -offset 4n
+pass in on $v6_if inet6 to 64:ff9b::/96 af-to inet from ($v4_if)
+.Ed
.Sh GRAMMAR
Syntax for
.Nm
@@ -3187,16 +3398,16 @@ option = "set" ( [ "timeout" ( timeout | "{" timeout-list "}" ) ] |
ether-rule = "ether" etheraction [ ( "in" | "out" ) ]
[ "quick" ] [ "on" ifspec ] [ "bridge-to" interface-name ]
- [ etherprotospec ] etherhosts [ "l3" hosts ]
+ [ etherprotospec ] [ etherhosts ] [ "l3" hosts ]
[ etherfilteropt-list ]
pf-rule = action [ ( "in" | "out" ) ]
[ "log" [ "(" logopts ")"] ] [ "quick" ]
[ "on" ifspec ] [ route ] [ af ] [ protospec ]
- hosts [ filteropt-list ]
+ [ hosts ] [ filteropt-list ]
logopts = logopt [ "," logopts ]
-logopt = "all" | "user" | "to" interface-name
+logopt = "all" | "matches" | "user" | "to" interface-name
etherfilteropt-list = etherfilteropt-list etherfilteropt | etherfilteropt
etherfilteropt = "tag" string | "tagged" string | "queue" ( string ) |
@@ -3204,23 +3415,28 @@ etherfilteropt = "tag" string | "tagged" string | "queue" ( string ) |
filteropt-list = filteropt-list filteropt | filteropt
filteropt = user | group | flags | icmp-type | icmp6-type | "tos" tos |
+ "af-to" af "from" ( redirhost | "{" redirhost-list "}" )
+ [ "to" ( redirhost | "{" redirhost-list "}" ) ] |
( "no" | "keep" | "modulate" | "synproxy" ) "state"
[ "(" state-opts ")" ] |
"fragment" | "no-df" | "min-ttl" number | "set-tos" tos |
"max-mss" number | "random-id" | "reassemble tcp" |
fragmentation | "allow-opts" |
- "label" string | "tag" string | [ ! ] "tagged" string |
+ "label" string | "tag" string | [ "!" ] "tagged" string |
+ "max-pkt-rate" number "/" seconds |
"set prio" ( number | "(" number [ [ "," ] number ] ")" ) |
+ "max-pkt-size" number |
"queue" ( string | "(" string [ [ "," ] string ] ")" ) |
"rtable" number | "probability" number"%" | "prio" number |
"dnpipe" ( number | "(" number "," number ")" ) |
"dnqueue" ( number | "(" number "," number ")" ) |
- "ridentifier" number
+ "ridentifier" number |
+ [ ! ] "received-on" ( interface-name | interface-group )
nat-rule = [ "no" ] "nat" [ "pass" [ "log" [ "(" logopts ")" ] ] ]
[ "on" ifspec ] [ af ]
[ protospec ] hosts [ "tag" string ] [ "tagged" string ]
- [ "-\*(Gt" ( redirhost | "{" redirhost-list "}" )
+ [ "->" ( redirhost | "{" redirhost-list "}" )
[ portspec ] [ pooltype ] [ "static-port" ]
[ "map-e-portset" number "/" number "/" number ] ]
@@ -3229,19 +3445,19 @@ binat-rule = [ "no" ] "binat" [ "pass" [ "log" [ "(" logopts ")" ] ] ]
[ "proto" ( proto-name | proto-number ) ]
"from" address [ "/" mask-bits ] "to" ipspec
[ "tag" string ] [ "tagged" string ]
- [ "-\*(Gt" address [ "/" mask-bits ] ]
+ [ "->" address [ "/" mask-bits ] ]
rdr-rule = [ "no" ] "rdr" [ "pass" [ "log" [ "(" logopts ")" ] ] ]
[ "on" ifspec ] [ af ]
[ protospec ] hosts [ "tag" string ] [ "tagged" string ]
- [ "-\*(Gt" ( redirhost | "{" redirhost-list "}" )
+ [ "->" ( redirhost | "{" redirhost-list "}" )
[ portspec ] [ pooltype ] ]
antispoof-rule = "antispoof" [ "log" ] [ "quick" ]
"for" ifspec [ af ] [ "label" string ]
[ "ridentifier" number ]
-table-rule = "table" "\*(Lt" string "\*(Gt" [ tableopts-list ]
+table-rule = "table" "<" string ">" [ tableopts-list ]
tableopts-list = tableopts-list tableopts | tableopts
tableopts = "persist" | "const" | "counters" | "file" string |
"{" [ tableaddr-list ] "}"
@@ -3305,7 +3521,7 @@ hosts = "all" |
"{" host-list "}" ) [ port ]
ipspec = "any" | host | "{" host-list "}"
-host = [ "!" ] ( address [ "/" mask-bits ] | "\*(Lt" string "\*(Gt" )
+host = [ "!" ] ( address [ "/" mask-bits ] | "<" string ">" )
redirhost = address [ "/" mask-bits ]
routehost = "(" interface-name [ address [ "/" mask-bits ] ] ")"
address = ( interface-name | interface-group |
@@ -3321,9 +3537,9 @@ os = "os" ( os-name | "{" os-list "}" )
user = "user" ( unary-op | binary-op | "{" op-list "}" )
group = "group" ( unary-op | binary-op | "{" op-list "}" )
-unary-op = [ "=" | "!=" | "\*(Lt" | "\*(Le" | "\*(Gt" | "\*(Ge" ]
+unary-op = [ "=" | "!=" | "<" | "<=" | ">" | ">=" ]
( name | number )
-binary-op = number ( "\*(Lt\*(Gt" | "\*(Gt\*(Lt" | ":" ) number
+binary-op = number ( "<>" | "><" | ":" ) number
op-list = ( unary-op | binary-op ) [ [ "," ] op-list ]
os-name = operating-system-name
@@ -3348,7 +3564,7 @@ state-opt = ( "max" number | "no-sync" | timeout | "sloppy" |
"max-src-nodes" number | "max-src-states" number |
"max-src-conn" number |
"max-src-conn-rate" number "/" number |
- "overload" "\*(Lt" string "\*(Gt" [ "flush" ] |
+ "overload" "<" string ">" [ "flush" ] |
"if-bound" | "floating" | "pflow" )
fragmentation = [ "fragment reassemble" ]
@@ -3412,8 +3628,8 @@ Service name database.
.Xr pf 4 ,
.Xr pflow 4 ,
.Xr pfsync 4 ,
-.Xr tcp 4 ,
.Xr sctp 4 ,
+.Xr tcp 4 ,
.Xr udp 4 ,
.Xr hosts 5 ,
.Xr pf.os 5 ,
diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5
index a45c60cca410..de2181d638d1 100644
--- a/share/man/man5/rc.conf.5
+++ b/share/man/man5/rc.conf.5
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 4, 2024
+.Dd July 15, 2025
.Dt RC.CONF 5
.Os
.Sh NAME
@@ -103,9 +103,8 @@ and
will be loaded.
If
.Ao Ar dir Ac Ns Pa /rc.conf.d/ Ns Ao Ar name Ac
-is a directory,
-all of the files in the directory will be loaded.
-Also see the
+is a directory then all of the files in the directory will be loaded.
+See also the
.Va rc_conf_files
variable below.
.Pp
@@ -263,6 +262,24 @@ value.
.It Ao Ar name Ac Ns Va _user
.Pq Vt str
Run the service under this user account.
+.It Ao Ar name Ac Ns Va _svcj
+.Pq Vt bool
+If set to
+.Dq Li YES ,
+auto-jail the service with inherited filesystem and other
+jail properties depending on
+.Ao Ar name Ac Ns Va _svcj_options .
+.It Ao Ar name Ac Ns Va _svcj_ipaddrs
+.Pq Vt str
+A list of IP addresses that the service jail will be permitted to use.
+If this is not specified, the service jail will be permitted to use all
+assigned IP addresses if networking is enabled in the jail.
+.It Ao Ar name Ac Ns Va _svcj_options
+.Pq Vt str
+A list of jail properties for the service.
+See
+.Sx SERVICE JAILS
+for a list of valid properties.
.It Va apm_enable
.Pq Vt bool
If set to
@@ -334,10 +351,6 @@ A whitespace-separated list of kernel modules to load right after
the local disks are mounted, without any
.Pa .ko
extension or path.
-Loading modules at this point in the boot process is
-much faster than doing it via
-.Pa /boot/loader.conf
-for those modules not necessary for mounting local disks.
.It Va kldxref_enable
.Pq Vt bool
Set to
@@ -396,6 +409,12 @@ is set to
these are the flags to pass to the
.Xr powerd 8
daemon.
+.It Va svcj_all_enable
+Enable auto-jailing of all services which are not explicitly
+excluded.
+See
+.Sx SERVICE JAILS
+for more info.
.It Va tmpmfs
Controls the creation of a
.Pa /tmp
@@ -603,6 +622,15 @@ When specified, this variable overrides the
variable for interface
.Ar iface
only.
+.It Va dhclient_arpwait
+.Pq Vt bool
+Set to
+.Dq Li NO
+to stop
+.Xr dhclient 8
+from waiting for ARP resolution, to make the system boot faster.
+This may be done on networks where the DHCP server is certain to
+know whether an address is available.
.It Va synchronous_dhclient
.Pq Vt bool
Set to
@@ -1136,8 +1164,8 @@ and
is not found.
Multiple rules can be set as follows:
.Bd -literal
-pf_fallback_rules="\\
- block drop log all\\
+pf_fallback_rules="
+ block drop log all
pass in quick on em0"
.Pp
.Ed
@@ -1723,7 +1751,7 @@ is added to all of
.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6
and the
.Va ipv6_activate_all_interfaces
-is defined as
+variable is defined as
.Dq Li YES .
.It Va ipv6_prefer
.Pq Vt bool
@@ -2181,43 +2209,6 @@ which had the
attribute set using
.Xr gpart 8
utility.
-.It Va gbde_autoattach_all
-.Pq Vt bool
-If set to
-.Dq Li YES ,
-.Pa /etc/rc.d/gbde
-will attempt to automatically initialize the .bde devices specified in
-.Pa /etc/fstab .
-.It Va gbde_devices
-.Pq Vt str
-List the devices that the script should try to attach,
-or
-.Dq Li AUTO .
-.It Va gbde_lockdir
-.Pq Vt str
-The directory where the
-.Xr gbde 4
-lockfiles are located.
-The default lockfile directory is
-.Pa /etc .
-.Pp
-The lockfile for each individual
-.Xr gbde 4
-device can be overridden by setting the variable
-.Va gbde_lock_ Ns Aq Ar device ,
-where
-.Ar device
-is the encrypted device without the
-.Dq Pa /dev/
-and
-.Dq Pa .bde
-parts.
-.It Va gbde_attach_attempts
-.Pq Vt int
-Number of times to attempt attaching to a
-.Xr gbde 4
-device, i.e., how many times the user is asked for the pass-phrase.
-Default is 3.
.It Va geli_devices
.Pq Vt str
List of devices to automatically attach on boot.
@@ -2722,22 +2713,6 @@ is set to
these are the flags to pass to the
.Xr rpcbind 8
daemon.
-.It Va keyserv_enable
-.Pq Vt bool
-If set to
-.Dq Li YES ,
-run the
-.Xr keyserv 8
-daemon on boot for running Secure RPC.
-.It Va keyserv_flags
-.Pq Vt str
-If
-.Va keyserv_enable
-is set to
-.Dq Li YES ,
-these are the flags to pass to
-.Xr keyserv 8
-daemon.
.It Va pppoed_enable
.Pq Vt bool
If set to
@@ -3147,6 +3122,14 @@ the interfaces specified in
This should only be enabled with great care.
You may want to fine-tune
.Xr rtadvd.conf 5 .
+.It Va rtadvd_flags
+.Pq Vt str
+If
+.Va rtadvd_enable
+is set to
+.Dq Li YES ,
+these are the flags to pass to
+.Xr rtadvd 8 .
.It Va rtadvd_interfaces
.Pq Vt str
If
@@ -4957,7 +4940,127 @@ daemon.
.Dq Li YES ,
these are the flags to pass to the
.Xr sendmail 8
+.It Va precious_machine
+If set to
+.Dq Li YES ,
+some destructive actions require removal of the action-specific safe-belts
+before being allowed.
+For instance, the file
+.Pa /var/run/noshutdown
+is created to prevent
+.Xr shutdown 8
+targeted at the wrong machine.
.El
+.Sh SERVICE JAILS
+The service jails part of the rc system automatically puts a service
+into a jail.
+This jail inherits the filesystem and various other parts of the
+parent (if you allow child-jails in your jails, service jails
+can be used in jails) depending on the content of the
+.Ao Ar name Ac Ns Va _svcj_options
+variable.
+Typically this variable is set inside rc scripts, but it can be
+overriden in the rc config.
+Valid options for
+.Ao Ar name Ac Ns Va _svcj_options
+are:
+.Bl -tag -width indent-two
+.It mlock
+Allows to lock memory pages into the physical memory.
+.It netv4
+Allows IPv4 network access and the ability to bind to reserved ports.
+If
+.Ao Ar name Ac Ns Va _svcj_ipaddrs
+is set, only the IPv4 addresses listed there will be visible to the jail,
+otherwise all assigned IPv4 addresses will be visible.
+This can not be combined with
+.Pa netv6 .
+.It netv6
+Allows IPv6 network access and the ability to bind to reserved ports.
+If
+.Ao Ar name Ac Ns Va _svcj_ipaddrs
+is set, only the IPv6 addresses listed there will be visible to the jail,
+otherwise all assigned IPv6 addresses will be visible.
+This can not be combined with
+.Pa netv4 .
+.It net_basic
+Equivalent to enabling both
+.Pa netv6
+and
+.Pa netv4 .
+.It net_raw
+Allow to open raw sockets.
+This option can be combined with
+.Pa netv4 ,
+.Pa netv6 ,
+.Pa net_basic .
+.It net_all
+Allows IPv6 and IPv4 network access as for
+.Pa netv4
+and
+.Pa netv6 ,
+allows to open raw sockets, and allows to open sockets of protocol stacks that
+have not had jail functionality added to them.
+.It nfsd
+Allows to run nfsd and affiliated daemons.
+.It routing
+Allows to modify the system routing table.
+.It settime
+Allows to set and slew the system time.
+.It sysvipc
+Inherits the SysV semaphores, SysV shared memory and
+SysV messages from the host or the parent jail.
+.It sysvipcnew
+Creates a new namespace for SysV semaphores, SysV shared memory
+and SysV messages for this particular service jail.
+.It vmm
+Allows access to
+.Xr vmm 4 .
+This option is only available when
+.Xr vmm 4
+is enabled in the kernel.
+.El
+
+All non-network options can be combined with all other options.
+From the SysV options only one option can be specified.
+
+If the
+.Ao Ar name Ac Ns Va _svcj
+variable is set to
+.Dq Li YES ,
+this particular service is started in a
+service jail named
+.Va svcj- Ns Ar name .
+
+The
+.Va svcj_all_enable
+variable allows to enable service jails for all services of the
+system at once.
+Services which have
+.Ao Ar name Ac Ns Va _svcj
+set to
+.Dq Li NO
+are excluded.
+Some services may set
+.Ao Ar name Ac Ns Va _svcj
+to
+.Dq Li NO
+in the script to either prevent service jails for this
+service at all, or may set it to
+.Dq Li NO
+if it is not set in the
+rc config, to exclude it from
+.Va svcj_all_enable
+but allow to explicitely enable it.
+The sshd service for example would not see other jails, if
+it would run as a service jail.
+This may or may not be what is needed, and as such it is
+excluded from
+.Va svcj_all_enable
+but can be enabled via setting
+.Va sshd_svcj
+to
+.Dq Li YES .
.Sh FILES
.Bl -tag -width "/etc/defaults/rc.conf" -compact
.It Pa /etc/defaults/rc.conf
diff --git a/share/man/man5/resolver.5 b/share/man/man5/resolver.5
index f7f1b1d6f9ea..9f8c0d689a0a 100644
--- a/share/man/man5/resolver.5
+++ b/share/man/man5/resolver.5
@@ -236,7 +236,7 @@ nameserver 192.168.2.1
# Fallback nameservers, in this case these from Google.
nameserver 8.8.8.8
-nameserver 4.4.4.4
+nameserver 8.8.4.4
# Attach an OPT pseudo-RR for the EDNS0 extension,
# as specified in RFC 2671.
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index 5301fc488021..f93d3f9fc69f 100644
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -1,5 +1,5 @@
.\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
-.Dd April 23, 2024
+.Dd July 27, 2025
.Dt SRC.CONF 5
.Os
.Sh NAME
@@ -137,7 +137,7 @@ Do not build
.Xr authpf 8 .
.It Va WITHOUT_AUTOFS
Do not build
-.Xr autofs 5
+.Xr autofs 4
related programs, libraries, and kernel modules.
.It Va WITHOUT_AUTO_OBJ
Disable automatic creation of objdirs.
@@ -158,6 +158,25 @@ This library is currently only used to perform
signature verification and related operations
for Verified Exec and
.Xr loader 8 .
+.Pp
+Due to size constraints in the BIOS environment on x86, one may need to set
+.Va LOADERSIZE
+larger than the
+default 500000, although often loader is under the 500k limit even with
+this option.
+Setting
+.Va LOADERSIZE
+larger than 500000 may cause
+.Xr pxeboot 8
+to be too large to work.
+Careful testing of the loader in the target environment when built with a larger
+limit to establish safe limits is critical because different BIOS environments
+reserve differing amounts of the low 640k space, making a precise limit for
+everybody impossible.
+.Pp
+See also
+.Va WITH_LOADER_PXEBOOT
+for other considerations.
When set, these options are also in effect:
.Pp
.Bl -inset -compact
@@ -234,6 +253,11 @@ Do not build or install
.It Va WITHOUT_BOOTPD
Do not build or install
.Xr bootpd 8 .
+.It Va WITH_BRANCH_PROTECTION
+Build with branch protection enabled.
+On arm64 enable the use of pointer authentication and
+branch target identification instructions on arm64.
+These can be used to help mitigate some exploit techniques.
.It Va WITHOUT_BSDINSTALL
Do not build
.Xr bsdinstall 8 ,
@@ -275,11 +299,18 @@ Use
for the build.
No configuration is required except to install the
.Sy devel/ccache
+or
+.Sy devel/sccache
package.
When using with
.Xr distcc 1 ,
set
.Sy CCACHE_PREFIX=/usr/local/bin/distcc .
+When using with sccache
+set
+.Sy CCACHE_NAME=sccache
+in
+.Xr src.conf 5 .
The default cache directory of
.Pa $HOME/.ccache
will be used, which can be overridden by setting
@@ -325,6 +356,8 @@ When set, it enforces these options:
.Va WITHOUT_LOADER_ZFS
.It
.Va WITHOUT_ZFS
+.It
+.Va WITHOUT_ZFS_TESTS
.El
.It Va WITHOUT_CLANG
Do not build the Clang C/C++ compiler during the regular phase of the build.
@@ -378,8 +411,8 @@ Build clang-format.
.It Va WITHOUT_CLANG_FULL
Avoid building the ARCMigrate, Rewriter and StaticAnalyzer components of
the Clang C/C++ compiler.
-.It Va WITHOUT_CLEAN
-Do not clean before building world and/or kernel.
+.It Va WITH_CLEAN
+Clean before building world and/or kernel.
.It Va WITHOUT_CPP
Do not build
.Xr cpp 1 .
@@ -424,6 +457,8 @@ When set, it enforces these options:
.It
.Va WITHOUT_LOADER_ZFS
.It
+.Va WITHOUT_MITKRB5
+.It
.Va WITHOUT_OPENSSH
.It
.Va WITHOUT_OPENSSL
@@ -435,6 +470,8 @@ When set, it enforces these options:
.Va WITHOUT_UNBOUND
.It
.Va WITHOUT_ZFS
+.It
+.Va WITHOUT_ZFS_TESTS
.El
.Pp
When set, these options are also in effect:
@@ -456,7 +493,7 @@ Do not build
.Xr cxgbetool 8
.Pp
This is a default setting on
-arm/armv7, powerpc/powerpc and riscv/riscv64.
+arm/armv7 and riscv/riscv64.
.It Va WITH_CXGBETOOL
Build
.Xr cxgbetool 8
@@ -618,7 +655,7 @@ and
.Xr efivar 8 .
.Pp
This is a default setting on
-i386/i386, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
+i386/i386, powerpc/powerpc64 and powerpc/powerpc64le.
.It Va WITH_EFI
Build
.Xr efivar 3
@@ -626,7 +663,7 @@ and
.Xr efivar 8 .
.Pp
This is a default setting on
-amd64/amd64, arm/armv7 and arm64/aarch64.
+amd64/amd64, arm/armv7, arm64/aarch64 and riscv/riscv64.
.It Va WITHOUT_ELFTOOLCHAIN_BOOTSTRAP
Do not build ELF Tool Chain tools
(addr2line, nm, size, strings and strip)
@@ -650,7 +687,7 @@ Build Flattened Device Tree support as part of the base system.
This includes the device tree compiler (dtc) and libfdt support library.
.Pp
This is a default setting on
-arm/armv7, arm64/aarch64, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
+arm/armv7, arm64/aarch64, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
.It Va WITHOUT_FILE
Do not build
.Xr file 1
@@ -684,15 +721,12 @@ and
.Xr ftpd 8 .
.It Va WITHOUT_GAMES
Do not build games.
-.It Va WITHOUT_GH_BC
-Install the traditional FreeBSD
-.Xr bc 1
-and
-.Xr dc 1
-programs instead of the enhanced versions.
.It Va WITHOUT_GNU_DIFF
Do not build GNU
-.Xr diff3 1 .
+.Xr diff3 1 ;
+build BSD
+.Xr diff3 1
+instead.
.It Va WITHOUT_GOOGLETEST
Neither build nor install
.Lb libgmock ,
@@ -716,7 +750,7 @@ Do not build HTML docs.
Do not build or install HyperV utilities.
.Pp
This is a default setting on
-arm/armv7, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
+arm/armv7, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
.It Va WITH_HYPERV
Build or install HyperV utilities.
.Pp
@@ -791,6 +825,12 @@ and related utilities.
.It Va WITHOUT_JAIL
Do not build tools for the support of jails; e.g.,
.Xr jail 8 .
+.It Va WITHOUT_JEMALLOC_LG_VADDR_WIDE
+Disallow programs to use more than 48 address bits on amd64.
+Incompatible with LA57 mode.
+Enabling this option might result in a slight reduction in memory
+consumption for jemalloc metadata, but also requires disabling LA57
+(if hardware supports it).
.It Va WITHOUT_KDUMP
Do not build
.Xr kdump 1
@@ -876,7 +916,7 @@ On 64-bit platforms, do not build 32-bit library set and a
runtime linker.
.Pp
This is a default setting on
-arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64le and riscv/riscv64.
+arm/armv7, i386/i386, powerpc/powerpc64le and riscv/riscv64.
.It Va WITH_LIB32
On 64-bit platforms, build the 32-bit library set and a
.Nm ld-elf32.so.1
@@ -895,16 +935,16 @@ arm/armv7 and riscv/riscv64.
Build the LLDB debugger.
.Pp
This is a default setting on
-amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
+amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and powerpc/powerpc64le.
.It Va WITHOUT_LLD_BOOTSTRAP
Do not build the LLD linker during the bootstrap phase of
the build.
To be able to build the system an alternate linker must be provided via XLD.
-.It Va WITHOUT_LLVM_ASSERTIONS
-Disable debugging assertions in LLVM.
-.It Va WITH_LLVM_BINUTILS
-Install LLVM's binutils (without an llvm- prefix),
-instead of ELF Tool Chain's tools.
+.It Va WITH_LLVM_ASSERTIONS
+Enable debugging assertions in LLVM.
+Use when working on or requesting help with LLVM components.
+.It Va WITHOUT_LLVM_BINUTILS
+Install ELF Tool Chain's binary utilities instead of LLVM's.
This includes
.Xr addr2line 1 ,
.Xr ar 1 ,
@@ -988,10 +1028,9 @@ Do not build LLVM target support for X86.
The
.Va LLVM_TARGET_ALL
option should be used rather than this in most cases.
-.It Va WITH_LOADER_BIOS_TEXTONLY
-Use the old, FreeBSD 12 vidconsole.c.
-This only supports text mode without teken, without any graphics, font or video mode support.
-This setting only affects the i386 and amd64 BIOS boot loader.
+.It Va WITHOUT_LOADER_BIOS_TEXTONLY
+Include graphics, font and video mode support in the i386 and amd64 BIOS
+boot loader.
.It Va WITH_LOADER_EFI_SECUREBOOT
Enable building
.Xr loader 8
@@ -1000,17 +1039,27 @@ with support for verification based on certificates obtained from UEFI.
Disable inclusion of GELI crypto support in the boot chain binaries.
.Pp
This is a default setting on
-powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
+powerpc/powerpc64 and powerpc/powerpc64le.
.It Va WITH_LOADER_GELI
Build GELI bootloader support.
.Pp
This is a default setting on
amd64/amd64, arm/armv7, arm64/aarch64, i386/i386 and riscv/riscv64.
+.It Va WITHOUT_LOADER_IA32
+Do not build the 32-bit UEFI loader.
+.Pp
+This is a default setting on
+arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
+.It Va WITH_LOADER_IA32
+Build the 32-bit UEFI loader.
+.Pp
+This is a default setting on
+amd64/amd64.
.It Va WITHOUT_LOADER_KBOOT
Do not build kboot, a linuxboot environment loader
.Pp
This is a default setting on
-arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64le and riscv/riscv64.
+arm/armv7, i386/i386, powerpc/powerpc64le and riscv/riscv64.
.It Va WITH_LOADER_KBOOT
Build kboot, a linuxboot environment loader
.Pp
@@ -1020,7 +1069,7 @@ amd64/amd64, arm64/aarch64 and powerpc/powerpc64.
Do not build LUA bindings for the boot loader.
.Pp
This is a default setting on
-powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
+powerpc/powerpc64 and powerpc/powerpc64le.
.It Va WITH_LOADER_LUA
Build LUA bindings for the boot loader.
.Pp
@@ -1035,7 +1084,18 @@ amd64/amd64, arm/armv7, arm64/aarch64, i386/i386 and riscv/riscv64.
Build openfirmware bootloader components.
.Pp
This is a default setting on
-powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
+powerpc/powerpc64 and powerpc/powerpc64le.
+.It Va WITHOUT_LOADER_PXEBOOT
+Do not build pxeboot on i386/amd64.
+When the pxeboot is too large, or unneeded, it may be disabled with this option.
+See
+.Va WITH_LOADER_PXEBOOT
+for how to adjust the defaults when you need both a larger
+.Pa /boot/loader
+and
+.Pa /boot/pxeboot
+.Pp
+This option only has an effect on x86.
.It Va WITHOUT_LOADER_UBOOT
Disable building of ubldr.
.Pp
@@ -1045,7 +1105,7 @@ amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64le and riscv/riscv64.
Build ubldr.
.Pp
This is a default setting on
-arm/armv7, powerpc/powerpc and powerpc/powerpc64.
+arm/armv7 and powerpc/powerpc64.
.It Va WITH_LOADER_VERBOSE
Build with extra verbose debugging in the loader.
May explode already nearly too large loader over the limit.
@@ -1057,6 +1117,8 @@ with support for verification similar to Verified Exec.
.Pp
Depends on
.Va WITH_BEARSSL .
+May require a larger
+.Va LOADERSIZE .
When set, these options are also in effect:
.Pp
.Bl -inset -compact
@@ -1137,7 +1199,12 @@ for more details.
.It Va WITH_MALLOC_PRODUCTION
Disable assertions and statistics gathering in
.Xr malloc 3 .
-It also defaults the A and J runtime options to off.
+The run-time options
+.Dv opt.abort ,
+.Dv opt.abort_conf ,
+and
+.Dv opt.junk
+also default to false.
.It Va WITHOUT_MAN
Do not build manual pages.
When set, these options are also in effect:
@@ -1236,12 +1303,14 @@ This must be set in the environment, make command line, or
.Pa /etc/src-env.conf ,
not
.Pa /etc/src.conf .
+.It Va WITH_MITKRB5
+Set this to build MIT Kerberos 5 instead of KTH Heimdal.
.It Va WITHOUT_MLX5TOOL
Do not build
.Xr mlx5tool 8
.Pp
This is a default setting on
-arm/armv7, powerpc/powerpc and riscv/riscv64.
+arm/armv7 and riscv/riscv64.
.It Va WITH_MLX5TOOL
Build
.Xr mlx5tool 8
@@ -1333,7 +1402,7 @@ Build the
InfiniBand software stack, including kernel modules and userspace libraries.
.Pp
This is a default setting on
-amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
+amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
.It Va WITH_OFED_EXTRA
Build the non-essential components of the
.Dq "OpenFabrics Enterprise Distribution"
@@ -1344,7 +1413,7 @@ Enable building LDAP support for kerberos using an openldap client from ports.
Do not build LLVM's OpenMP runtime.
.Pp
This is a default setting on
-arm/armv7 and powerpc/powerpc.
+arm/armv7.
.It Va WITH_OPENMP
Build LLVM's OpenMP runtime.
.Pp
@@ -1370,6 +1439,8 @@ When set, it enforces these options:
.It
.Va WITHOUT_LOADER_ZFS
.It
+.Va WITHOUT_MITKRB5
+.It
.Va WITHOUT_OPENSSH
.It
.Va WITHOUT_OPENSSL_KTLS
@@ -1379,6 +1450,8 @@ When set, it enforces these options:
.Va WITHOUT_UNBOUND
.It
.Va WITHOUT_ZFS
+.It
+.Va WITHOUT_ZFS_TESTS
.El
.Pp
When set, these options are also in effect:
@@ -1393,7 +1466,7 @@ is set explicitly)
Do not include kernel TLS support in OpenSSL.
.Pp
This is a default setting on
-arm/armv7, i386/i386, powerpc/powerpc and riscv/riscv64.
+arm/armv7, i386/i386 and riscv/riscv64.
.It Va WITH_OPENSSL_KTLS
Include kernel TLS support in OpenSSL.
.Pp
@@ -1430,7 +1503,7 @@ Do not build dynamically linked binaries as
Position-Independent Executable (PIE).
.Pp
This is a default setting on
-arm/armv7, i386/i386 and powerpc/powerpc.
+arm/armv7 and i386/i386.
.It Va WITH_PIE
Build dynamically linked binaries as
Position-Independent Executable (PIE).
@@ -1449,11 +1522,6 @@ and related programs.
Do not build
.Xr ppp 8
and related programs.
-.It Va WITH_PROFILE
-Build profiled libraries for use with
-.Xr gprof 8 .
-This option is deprecated and may not be present in a future version of
-.Fx .
.It Va WITHOUT_PTHREADS_ASSERTIONS
Disable debugging assertions in pthreads library.
.It Va WITHOUT_QUOTAS
@@ -1503,6 +1571,8 @@ utility.
Build
.Xr rpcbind 8
with warmstart support.
+.It Va WITH_RUN_TESTS
+Run tests as part of the build.
.It Va WITHOUT_SCTP_SUPPORT
Disable support in the kernel for the
.Xr sctp 4
@@ -1552,6 +1622,9 @@ When set, it enforces these options:
.El
.It Va WITHOUT_SSP
Do not build world with stack smashing protection.
+See
+.Xr mitigations 7
+for more information.
.It Va WITH_STAGING
Enable staging of files to a stage tree.
This can be best thought of as auto-install to
@@ -1655,6 +1728,8 @@ When set, it enforces these options:
.Bl -item -compact
.It
.Va WITHOUT_DTRACE_TESTS
+.It
+.Va WITHOUT_ZFS_TESTS
.El
.Pp
When set, these options are also in effect:
@@ -1707,6 +1782,15 @@ When set, it enforces these options:
.It
.Va WITHOUT_LLVM_COV
.El
+.Pp
+When set, these options are also in effect:
+.Pp
+.Bl -inset -compact
+.It Va WITHOUT_LLVM_BINUTILS
+(unless
+.Va WITH_LLVM_BINUTILS
+is set explicitly)
+.El
.It Va WITH_UBSAN
Build the base system with Undefined Behavior Sanitizer (UBSan) to detect
various kinds of undefined behavior at runtime.
@@ -1716,9 +1800,11 @@ and that the runtime support library is available
Do not build
.Xr unbound 8
and related programs.
-.It Va WITHOUT_UNDEFINED_VERSION
-Link libraries with --no-undefined-version to ensure all symbols are
-provided.
+.It Va WITH_UNDEFINED_VERSION
+Link libraries with --undefined-version which permits version maps to
+contain symbols that are not present in the library.
+If this is necessary to build a particular configuration, a bug is
+present and the configuration should be reported.
.It Va WITHOUT_UNIFIED_OBJDIR
Use the historical object directory format for
.Xr build 7
@@ -1799,6 +1885,11 @@ Build
without support for the IEEE 802.1X protocol and without
support for EAP-PEAP, EAP-TLS, EAP-LEAP, and EAP-TTLS
protocols (usable only via 802.1X).
+.It Va WITH_ZEROREGS
+Build the basesystem with code to zero caller-used register contents
+on function return.
+This prevents leaking temporary values for side channel attacks.
+Additionally this reduces the number of usable ROP gadgets for attackers.
.It Va WITHOUT_ZFS
Do not build the ZFS file system kernel module, libraries such as
.Xr libbe 3 ,
@@ -1808,6 +1899,14 @@ or
.Xr zfs 8 .
Also disable ZFS support in utilities and libraries which implement
ZFS-specific functionality.
+When set, it enforces these options:
+.Pp
+.Bl -item -compact
+.It
+.Va WITHOUT_ZFS_TESTS
+.El
+.It Va WITHOUT_ZFS_TESTS
+Do not build and install the legacy ZFS test suite.
.It Va WITHOUT_ZONEINFO
Do not build the timezone database.
When set, it enforces these options:
@@ -1818,6 +1917,11 @@ When set, it enforces these options:
.El
.It Va WITH_ZONEINFO_LEAPSECONDS_SUPPORT
Build leapsecond information in to the timezone database.
+This option violates
+.St -p1003.1
+and all other applicable standards, and is known to cause unexpected
+issues with date/time handling in many applications and programming
+languages.
.El
.Pp
The following options accept a single value from a list of valid values.
diff --git a/share/man/man5/style.Makefile.5 b/share/man/man5/style.Makefile.5
index cc5d2f6bb28a..fe8754924575 100644
--- a/share/man/man5/style.Makefile.5
+++ b/share/man/man5/style.Makefile.5
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 2002-2003, 2023 David O'Brien <obrien@FreeBSD.org>
.\" All rights reserved.
.\"
@@ -30,10 +33,7 @@
.Os
.Sh NAME
.Nm style.Makefile
-.Nd
-.Fx
-.Pa Makefile
-file style guide
+.Nd FreeBSD Makefile style guide
.Sh DESCRIPTION
This file specifies the preferred style for makefiles in the
.Fx
diff --git a/share/man/man5/style.mdoc.5 b/share/man/man5/style.mdoc.5
index 42dbc940074c..1c3ec2012118 100644
--- a/share/man/man5/style.mdoc.5
+++ b/share/man/man5/style.mdoc.5
@@ -1,4 +1,4 @@
-.\"-
+.\"
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2018-2022 Mateusz Piotrowski <0mp@FreeBSD.org>
@@ -24,15 +24,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 12, 2024
+.Dd December 21, 2024
.Dt STYLE.MDOC 5
.Os
.Sh NAME
.Nm style.mdoc
-.Nd
-.Fx
-.Xr mdoc 7
-manual page style guide
+.Nd FreeBSD manual page style guide
.Sh DESCRIPTION
This file specifies the preferred style for manual pages in the
.Fx
@@ -74,6 +71,33 @@ Historically,
was the preferred way before the deprecation of
.Sy \&Li .
.El
+.Ss HARDWARE Section
+Driver manuals in section four should have a
+.Sx HARDWARE
+section describing hardware known to work with the driver.
+This section is drawn verbatim into the Release Hardware Notes,
+therefore there are several things to note:
+.Bl -dash -width ""
+.It
+The introductory sentence should be in the form:
+.Bd -literal -offset indent
+The
+\&.Nm
+driver supports the following $device_class:
+.Ed
+.Pp
+Followed by the list of supported hardware.
+.Pp
+This defines what driver the subsection is referring to,
+and allows the reader to search through the Hardware Notes
+not only for the device models they have,
+but also for the device type they are looking to acquire.
+.It
+The supported hardware should be listed as a bullet list,
+or if complexity requires, a column list.
+These two list types create very neat subsections
+with clean starting and stopping points.
+.El
.Ss EXAMPLES Section
.Bl -dash -width ""
.It
@@ -124,7 +148,8 @@ The
.Fl width
argument to the
.Sy \&.Bl
-macro should match the length of the longest item in the list, e.g.:
+macro should match the length of the longest rendered item in the list,
+e.g.:
.Bd -literal -offset indent
\&.Bl -tag -width "-a address"
\&.It Fl a Ar address
diff --git a/share/man/man6/Makefile b/share/man/man6/Makefile
index b97fae54a03d..9c94781169f8 100644
--- a/share/man/man6/Makefile
+++ b/share/man/man6/Makefile
@@ -1,4 +1,3 @@
-
MAN= intro.6
.include <bsd.prog.mk>
diff --git a/share/man/man7/Makefile b/share/man/man7/Makefile
index f163d4e0a0d8..1e50242a1754 100644
--- a/share/man/man7/Makefile
+++ b/share/man/man7/Makefile
@@ -1,4 +1,3 @@
-
.include <src.opts.mk>
#MISSING: eqnchar.7 ms.7 term.7
@@ -7,11 +6,11 @@ MAN= arch.7 \
bsd.snmpmod.mk.7 \
build.7 \
c.7 \
+ d.7 \
clocks.7 \
crypto.7 \
development.7 \
environ.7 \
- ffs.7 \
firewall.7 \
growfs.7 \
hier.7 \
@@ -19,6 +18,7 @@ MAN= arch.7 \
intro.7 \
maclabel.7 \
mitigations.7 \
+ named_attribute.7 \
operator.7 \
orders.7 \
ports.7 \
@@ -32,6 +32,7 @@ MAN= arch.7 \
stdint.7 \
sticky.7 \
tests.7 \
+ tracing.7 \
tuning.7
MLINKS= intro.7 miscellaneous.7
@@ -44,7 +45,8 @@ MLINKS+= c.7 c95.7
MLINKS+= c.7 c99.7
MLINKS+= c.7 c11.7
MLINKS+= c.7 c17.7
-MLINKS+= c.7 c2x.7
+MLINKS+= c.7 c23.7
+MLINKS+= c.7 c2y.7
.if ${MK_INET} != "no"
MAN+= networking.7
diff --git a/share/man/man7/arch.7 b/share/man/man7/arch.7
index 35a7b0246389..fe4e8055a8b1 100644
--- a/share/man/man7/arch.7
+++ b/share/man/man7/arch.7
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 2, 2023
+.Dd July 14, 2025
.Dt ARCH 7
.Os
.Sh NAME
@@ -42,7 +42,7 @@ documentation.
.Pp
If not explicitly mentioned, sizes are in bytes.
The architecture details in this document apply to
-.Fx 12.0
+.Fx 13.0
and later, unless otherwise noted.
.Pp
.Fx
@@ -67,8 +67,7 @@ and
should be avoided.
.Pp
On some architectures, e.g.,
-.Dv powerpc
-and AIM variants of
+AIM variants of
.Dv powerpc64 ,
the kernel uses a separate address space.
On other architectures, kernel and a user mode process share a
@@ -87,11 +86,7 @@ release to support each architecture.
.It Sy Architecture Ta Sy Initial Release
.It aarch64 Ta 11.0
.It amd64 Ta 5.1
-.It armv6 Ta 10.0
.It armv7 Ta 12.0
-.It i386 Ta 1.0
-.It powerpc Ta 6.0
-.It powerpcspe Ta 12.0
.It powerpc64 Ta 9.0
.It powerpc64le Ta 13.0
.It riscv64 Ta 12.0
@@ -103,18 +98,22 @@ Discontinued architectures are shown in the following table.
.It alpha Ta 3.2 Ta 6.4
.It arm Ta 6.0 Ta 12.4
.It armeb Ta 8.0 Ta 11.4
+.It armv6 Ta 10.0 Ta 14.x
.It ia64 Ta 5.0 Ta 10.4
-.It mips Ta 8.0 Ta 13.x
-.It mipsel Ta 9.0 Ta 13.x
-.It mipselhf Ta 12.0 Ta 13.x
-.It mipshf Ta 12.0 Ta 13.x
-.It mipsn32 Ta 9.0 Ta 13.x
-.It mips64 Ta 9.0 Ta 13.x
-.It mips64el Ta 9.0 Ta 13.x
-.It mips64elhf Ta 12.0 Ta 13.x
-.It mips64hf Ta 12.0 Ta 13.x
+.It i386 Ta 1.0 Ta 14.x
+.It mips Ta 8.0 Ta 13.5
+.It mipsel Ta 9.0 Ta 13.5
+.It mipselhf Ta 12.0 Ta 13.5
+.It mipshf Ta 12.0 Ta 13.5
+.It mipsn32 Ta 9.0 Ta 13.5
+.It mips64 Ta 9.0 Ta 13.5
+.It mips64el Ta 9.0 Ta 13.5
+.It mips64elhf Ta 12.0 Ta 13.5
+.It mips64hf Ta 12.0 Ta 13.5
.It pc98 Ta 2.2 Ta 11.4
-.It riscv64sf Ta 12.0 Ta 13.x
+.It powerpc Ta 6.0 Ta 14.x
+.It powerpcspe Ta 12.0 Ta 14.x
+.It riscv64sf Ta 12.0 Ta 13.5
.It sparc64 Ta 5.0 Ta 12.4
.El
.Ss Type sizes
@@ -156,24 +155,19 @@ Examples are:
.It Sy LP64 Ta Sy ILP32 counterpart
.It Dv amd64 Ta Dv i386
.It Dv powerpc64 Ta Dv powerpc
-.It Dv aarch64 Ta Dv armv6/armv7
+.It Dv aarch64 Ta Dv armv7
.El
.Pp
.Dv aarch64
will support execution of
-.Dv armv6
-or
.Dv armv7
binaries if the CPU implements
.Dv AArch32
-execution state, however older
-.Dv armv4
-and
-.Dv armv5
-binaries aren't supported.
+execution state, however older arm binaries are not supported by
+.Fx .
.Pp
On all supported architectures:
-.Bl -column -offset -indent "long long" "Size"
+.Bl -column -offset indent "long long" "Size"
.It Sy Type Ta Sy Size
.It short Ta 2
.It int Ta 4
@@ -195,7 +189,6 @@ Machine-dependent type sizes:
.It Sy Architecture Ta Sy void * Ta Sy long double Ta Sy time_t
.It aarch64 Ta 8 Ta 16 Ta 8
.It amd64 Ta 8 Ta 16 Ta 8
-.It armv6 Ta 4 Ta 8 Ta 8
.It armv7 Ta 4 Ta 8 Ta 8
.It i386 Ta 4 Ta 12 Ta 4
.It powerpc Ta 4 Ta 8 Ta 8
@@ -212,7 +205,6 @@ is 8 bytes on all supported architectures except i386.
.It Sy Architecture Ta Sy Endianness Ta Sy char Signedness
.It aarch64 Ta little Ta unsigned
.It amd64 Ta little Ta signed
-.It armv6 Ta little Ta unsigned
.It armv7 Ta little Ta unsigned
.It i386 Ta little Ta signed
.It powerpc Ta big Ta unsigned
@@ -224,9 +216,8 @@ is 8 bytes on all supported architectures except i386.
.Ss Page Size
.Bl -column -offset indent "Architecture" "Page Sizes"
.It Sy Architecture Ta Sy Page Sizes
-.It aarch64 Ta 4K, 2M, 1G
+.It aarch64 Ta 4K, 64K, 2M, 1G
.It amd64 Ta 4K, 2M, 1G
-.It armv6 Ta 4K, 1M
.It armv7 Ta 4K, 1M
.It i386 Ta 4K, 2M (PAE), 4M
.It powerpc Ta 4K
@@ -235,12 +226,65 @@ is 8 bytes on all supported architectures except i386.
.It powerpc64le Ta 4K
.It riscv64 Ta 4K, 2M, 1G
.El
+.Ss User Address Space Layout
+.Bl -column -offset indent "riscv64 (Sv48)" "0x0001000000000000" "NNNU"
+.It Sy Architecture Ta Sy Maximum Address Ta Sy Address Space Size
+.It aarch64 Ta 0x0001000000000000 Ta 256TiB
+.It amd64 (LA48) Ta 0x0000800000000000 Ta 128TiB
+.It amd64 (LA57) Ta 0x0100000000000000 Ta 64PiB
+.It armv7 Ta 0xbfc00000 Ta 3GiB
+.It i386 Ta 0xffc00000 Ta 4GiB
+.It powerpc Ta 0xfffff000 Ta 4GiB
+.It powerpcspe Ta 0x7ffff000 Ta 2GiB
+.It powerpc64 Ta 0x000fffffc0000000 Ta 4PiB
+.It powerpc64le Ta 0x000fffffc0000000 Ta 4PiB
+.It riscv64 (Sv39) Ta 0x0000004000000000 Ta 256GiB
+.It riscv64 (Sv48) Ta 0x0000800000000000 Ta 128TiB
+.El
+.Pp
+The layout of a process' address space can be queried via the
+.Dv KERN_PROC_VM_LAYOUT
+.Xr sysctl 3
+MIB.
+.Pp
+Historically, amd64 CPUs were limited to a 48-bit virtual address space.
+Newer CPUs support 5-level page tables, which extend the significant bits of
+addresses to 57 bits (LA57 mode).
+The address space layout is determined by the CPU's support for LA57.
+Setting the
+.Sy vm.pmap.la57
+tunable to 0 forces the system into 4-level paging mode, even on hardware that
+supports 5-level paging.
+In this mode, all processes get a 48-bit address space.
+The
+.Sy vm.pmap.prefer_la48_uva
+tunable determines whether processes running on a LA57 system are limited to
+a 48-bit address space by default.
+Some applications make use of unused upper bits in pointer values to store
+information, and thus implicitly assume they are running in LA48 mode.
+To avoid breaking compatibility, all processes run in LA48 mode by default.
+The
+.Xr elfctl 1
+utility can be used to request LA48 or LA57 mode for specific executables.
+Similarly,
+.Xr proccontrol 1
+can be used to configure the address space layout when executing a process.
+.Pp
+The RISC-V specification permits 3-level (Sv39), 4-level (Sv48), and
+5-level (Sv57) page tables.
+Hardware is only required to implement Sv39; implementations which support
+Sv48 must also support Sv39, and implementations which support Sv57 must also
+support Sv48.
+The
+.Sy vm.pmap.mode
+tunable can be used to select the layout.
+.Fx
+currently supports Sv39 and Sv48 and defaults to using Sv39.
.Ss Floating Point
.Bl -column -offset indent "Architecture" "float, double" "long double"
.It Sy Architecture Ta Sy float, double Ta Sy long double
.It aarch64 Ta hard Ta soft, quad precision
.It amd64 Ta hard Ta hard, 80 bit
-.It armv6 Ta hard Ta hard, double precision
.It armv7 Ta hard Ta hard, double precision
.It i386 Ta hard Ta hard, 80 bit
.It powerpc Ta hard Ta hard, double precision
@@ -257,7 +301,7 @@ as the default compiler on all supported CPU architectures,
LLVM's
.Xr ld.lld 1
as the default linker, and
-ELF Tool Chain binary utilities such as
+LLVM binary utilities such as
.Xr objcopy 1
and
.Xr readelf 1 .
@@ -276,7 +320,7 @@ or similar things like boot sequences.
.It Dv MACHINE Ta Dv MACHINE_CPUARCH Ta Dv MACHINE_ARCH
.It arm64 Ta aarch64 Ta aarch64
.It amd64 Ta amd64 Ta amd64
-.It arm Ta arm Ta armv6, armv7
+.It arm Ta arm Ta armv7
.It i386 Ta i386 Ta i386
.It powerpc Ta powerpc Ta powerpc, powerpcspe, powerpc64, powerpc64le
.It riscv Ta riscv Ta riscv64
@@ -308,7 +352,6 @@ Architecture-specific macros:
.It Sy Architecture Ta Sy Predefined macros
.It aarch64 Ta Dv __aarch64__
.It amd64 Ta Dv __amd64__ , Dv __x86_64__
-.It armv6 Ta Dv __arm__ , Dv __ARM_ARCH >= 6
.It armv7 Ta Dv __arm__ , Dv __ARM_ARCH >= 7
.It i386 Ta Dv __i386__
.It powerpc Ta Dv __powerpc__
@@ -383,15 +426,19 @@ It, along with
defines the ABI used by the system.
Generally, the plain CPU name specifies the most common (or at least
first) variant of the CPU.
-This is why powerpc and powerpc64 imply 'big endian' while 'armv6' and 'armv7'
+This is why powerpc and powerpc64 imply 'big endian' while armv7 and aarch64
imply little endian.
If we ever were to support the so-called x32 ABI (using 32-bit
pointers on the amd64 architecture), it would most likely be encoded
as amd64-x32.
-It is unfortunate that amd64 specifies the 64-bit evolution of the x86
-platform (it matches the 'first rule') as everybody else uses x86_64.
-There is no standard name for the processor: each OS selects its own
-conventions.
+It is unfortunate that amd64 specifies the 64-bit evolution of the x86 platform
+(it matches the 'first rule') as almost everybody else uses x86_64.
+The
+.Fx
+port was so early, it predated processor name standardization after Intel joined
+the market.
+At the time, each OS selected its own conventions.
+Backwards compatibility means it is not easy to change to the consensus name.
.It Dv MACHINE_CPUARCH
Represents the source location for a given
.Dv MACHINE_ARCH .
@@ -420,7 +467,7 @@ in the top level Makefile for cross building.
Unused outside of that scope.
It is not passed down to the rest of the build.
Makefiles outside of the top level should not use it at all (though
-some have their own private copy for hysterical raisons).
+some have their own private copy for historical reasons).
.It Dv TARGET_ARCH
Used to set
.Dv MACHINE_ARCH
@@ -430,6 +477,9 @@ Like
it is unused outside of that scope.
.El
.Sh SEE ALSO
+.Xr elfctl 1 ,
+.Xr proccontrol 1 ,
+.Xr sysctl 3 ,
.Xr src.conf 5 ,
.Xr build 7 ,
.Xr simd 7
diff --git a/share/man/man7/ascii.7 b/share/man/man7/ascii.7
index 3e4693153e99..11f4f63ccb47 100644
--- a/share/man/man7/ascii.7
+++ b/share/man/man7/ascii.7
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 12, 2022
+.Dd January 4, 2025
.Dt ASCII 7
.Os
.Sh NAME
@@ -192,4 +192,4 @@ ESC ESCape
An
.Nm
manual page appeared in
-.At v2 .
+.At v1 .
diff --git a/share/man/man7/build.7 b/share/man/man7/build.7
index 596c64da0673..0aae2c42ac04 100644
--- a/share/man/man7/build.7
+++ b/share/man/man7/build.7
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2000
.\" Mike W. Meyer
.\"
@@ -22,12 +25,14 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 1, 2023
+.Dd March 8, 2025
.Dt BUILD 7
.Os
.Sh NAME
.Nm build
-.Nd General instructions on how to build the system
+.Nd general instructions on how to build the
+.Fx
+system
.Sh DESCRIPTION
The sources for the
.Fx
@@ -396,6 +401,19 @@ Install the kernel to the directory
.Pa ${DISTDIR}/kernel/boot/kernel .
This target is used while building a release; see
.Xr release 7 .
+.It Cm packages
+Create a
+.Xr pkg 7
+repository containing packages that can be used to create or upgrade an
+installation of the base system.
+The output repository is placed in the object directory, under
+.Pa repo/${PKG_ABI}
+where
+.Va PKG_ABI
+is the
+.Xr pkg 7
+ABI for the build target, for example,
+.Pa /usr/obj/${SRCDIR}/repo/FreeBSD:15:amd64 .
.It Cm packagekernel
Archive the results of
.Cm distributekernel ,
@@ -431,6 +449,8 @@ include:
.Bl -tag -width ".Cm delete-old-libs"
.It Cm check-old
Print a list of old files and directories in the system.
+.It Cm check-old-libs
+Print a list of obsolete base system libraries.
.It Cm delete-old
Delete obsolete base system files and directories interactively.
When
@@ -482,6 +502,9 @@ The directory hierarchy prefix where built objects will be installed.
If not set,
.Va DESTDIR
defaults to the empty string.
+If set,
+.Va DESTDIR
+must specify an absolute path.
.It Va MAKEOBJDIRPREFIX
Defines the prefix for directory names in the tree of built objects.
Defaults to
@@ -494,6 +517,8 @@ and not via
or
.Pa /etc/src.conf
or the command line.
+.Va MAKEOBJDIRPREFIX
+must specify an absolute path.
.It Va WITHOUT_WERROR
If defined, compiler warnings will not cause the build to halt,
even if the makefile says otherwise.
@@ -529,6 +554,13 @@ Overrides which kernel to build and install for the various kernel
make targets.
It defaults to
.Cm GENERIC .
+.It Va KERNBUILDDIR
+Overrides the default directory to get all the opt_*.h files for
+building a kernel module.
+Useful for stand-alone modules that depend on
+.Xr config 8
+options.
+Automatically set for modules built with a kernel.
.It Va KERNCONFDIR
Overrides the directory in which
.Va KERNCONF
@@ -610,6 +642,20 @@ If set, this variable supplies a list of additional directories relative to
the root of the source tree to build as part of the
.Cm cross-tools
target.
+.It Va PKG_FORMAT
+Specify a package compression format when building
+.Pa src
+into
+.Cm packages .
+Default:
+.Ql tzst .
+Consider using
+.Ql tar
+to disable compression.
+Accepted options are documented in the
+.Fl f
+description of
+.Xr pkg-create 8 .
.It Va PORTS_MODULES
A list of ports with kernel modules that should be built and installed
as part of the
@@ -617,6 +663,10 @@ as part of the
and
.Cm installkernel
process.
+This is currently incompatible with building
+.Pa src
+into
+.Cm packages .
.Bd -literal -offset indent
make PORTS_MODULES=emulators/virtualbox-ose-kmod kernel
.Ed
@@ -856,6 +906,11 @@ This variable implies
Use external GCC toolchains to build the requested targets.
If the required toolchain package for a supported architecture is not installed,
the build for that architecture is skipped.
+.Pp
+A specific version of GCC can be used by setting the value of this variable
+to the desired version
+.Pq for example, Dq gcc14 ;
+otherwise a default version of GCC is used.
.It Va TARGETS
Only build the listed targets instead of each supported architecture.
.It Va EXTRA_TARGETS
@@ -884,18 +939,14 @@ method of updating your system from the latest sources, please see the
section in
.Pa src/UPDATING .
.Pp
-The following sequence of commands can be used to cross-build the
-system for the armv6 architecture on an amd64 host:
+The following sequence of commands can be used to cross-build the system for
+the arm64 (aarch64) architecture on a different host architecture, such as
+amd64:
.Bd -literal -offset indent
cd /usr/src
-make TARGET_ARCH=armv6 buildworld buildkernel
-make TARGET_ARCH=armv6 DESTDIR=/clients/arm installworld installkernel
+make TARGET=arm64 buildworld buildkernel
+make TARGET=arm64 DESTDIR=/clients/arm64 installworld installkernel
.Ed
-.Sh HISTORY
-The
-.Nm
-manpage first appeared in
-.Fx 4.3 .
.Sh SEE ALSO
.Xr cc 1 ,
.Xr install 1 ,
@@ -903,6 +954,7 @@ manpage first appeared in
.Xr make.conf 5 ,
.Xr src.conf 5 ,
.Xr arch 7 ,
+.Xr development 7 ,
.Xr pkg 7 ,
.Xr ports 7 ,
.Xr release 7 ,
@@ -911,5 +963,10 @@ manpage first appeared in
.Xr etcupdate 8 ,
.Xr reboot 8 ,
.Xr shutdown 8
+.Sh HISTORY
+The
+.Nm
+manpage first appeared in
+.Fx 4.3 .
.Sh AUTHORS
.An Mike W. Meyer Aq Mt mwm@mired.org
diff --git a/share/man/man7/c.7 b/share/man/man7/c.7
index 97869fe0f8f2..c95bab1c1f19 100644
--- a/share/man/man7/c.7
+++ b/share/man/man7/c.7
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 20, 2021
+.Dd November 4, 2024
.Dt C 7
.Os
.Sh NAME
@@ -34,7 +34,8 @@
.Nm c99 ,
.Nm c11 ,
.Nm c17 ,
-.Nm c2x
+.Nm c23 ,
+.Nm c2y
.Nd The C programming language
.Sh DESCRIPTION
C is a general purpose programming language, which has a strong connection
@@ -112,9 +113,12 @@ development of the language did not stop.
.Pp
The ISO C standard was later extended with an amendment as
ISO/IEC 9899/AMD1 in 1995.
-This contained, for example, the wide-character support in <wchar.h> and
-<wctype.h>, and also restricted character set support via diagraphs and
-<iso646.h>.
+This contained, for example, the wide-character support in
+.In wchar.h
+and
+.In wctype.h ,
+and also restricted character set support via diagraphs and
+.In iso646.h .
This amendment is usually referred to as C95.
Two technical corrigenda were also published: Technical Corrigendum 1 as
ISO/IEC 9899/COR1 in 1994 and Technical Corrigendum 2 as ISO/IEC 9899/COR2
@@ -130,18 +134,23 @@ The improvements include (but are not limited to) the following:
.Bl -bullet -offset indent
.It
digraphs, trigraphs, and alternative spellings for the operators that
-use non-ISO646 characters in <iso646.h>
+use non-ISO646 characters in
+.In iso646.h
.It
-extended multibyte and wide character library support in <wchar.h> and
-<wctype.h>
+extended multibyte and wide character library support in
+.In wchar.h
+and
+.In wctype.h
.It
variable length arrays
.It
flexible array members
.It
-complex (and imaginary) number arithmetic support in <complex.h>
+complex (and imaginary) number arithmetic support in
+.In complex.h
.It
-type-generic math macros in <tgmath.h>
+type-generic math macros in
+.In tgmath.h
.It
the long long int type and library functions
.It
@@ -157,15 +166,24 @@ BCPL style single-line comments
.It
allow mixed declarations and code
.It
-the vscanf family of functions in <stdio.h> and <wchar.h>
+the
+.Fn vscanf
+family of functions in
+.In stdio.h
+and
+.In wchar.h
.It
allow trailing comma in enum declaration
.It
inline functions
.It
-the snprintf family of functions in <stdio.h>
+the
+.Fn snprintf
+family of functions in
+.In stdio.h
.It
-boolean type and macros in <stdbool.h>
+boolean type and macros in
+.In stdbool.h
.It
empty macro arguments
.It
@@ -173,7 +191,8 @@ _Pragma preprocessing operator
.It
__func__ predefined identifier
.It
-va_copy macro in <stdarg.h>
+va_copy macro in
+.In stdarg.h
.It
additional strftime conversion specifiers
.El
@@ -185,24 +204,34 @@ and ISO/IEC 9899:1999/COR3:2007.
The improvements include (but are not limited to) the following:
.Bl -bullet -offset indent
.It
-support for multiple threads of execution and atomic operations in <threads.h>
-and <stdatomic.h>
+support for multiple threads of execution and atomic operations in
+.In threads.h
+and
+.In stdatomic.h
.It
-additional floating-point characteristic macros in <float.h>
+additional floating-point characteristic macros in
+.In float.h
.It
-querying and specifying alignment of objects in <stdalign.h> and <stdlib.h>
+querying and specifying alignment of objects in
+.In stdalign.h
+and
+.In stdlib.h
.It
-Unicode character types and functions in <uchar.h>
+Unicode character types and functions in
+.In uchar.h
.It
type-generic expressions
.It
-static assertions in <assert.h>
+static assertions in
+.In assert.h
.It
anonymous structures and unions
.It
-remove the gets function from <stdio.h>
+remove the gets function from
+.In stdio.h
.It
-add the aligned_alloc, at_quick_exit, and quick_exit functions in <stdlib.h>
+add the aligned_alloc, at_quick_exit, and quick_exit functions in
+.In stdlib.h
.El
.Pp
C11 was later superseded by ISO/IEC 9899:2018, also known as C17 which was
@@ -211,17 +240,154 @@ It incorporates the Technical Corrigendum 1 (ISO/IEC 9899:2011/COR1:2012)
which was published in 2012.
It addressed defects and deficiencies in C11 without introducing new features,
only corrections and clarifications.
-Since there were no major changes in C17, the current standard for
-Programming Language C, is still considered C11 \(em ISO/IEC 9899:2011, published
-2011-12-08.
.Pp
-The next standard, the fifth, is currently referred to as C2x and is scheduled
-to be adopted by the end of 2021, with a publication date of 2022.
-When published, it will cancel and replace the fourth edition, ISO/IEC
-9899:2018.
+C23, formally ISO/IEC 9899:2024, is the current standard with significant
+updates that supersede C17 (ISO/IEC 9899:2018).
+The standardization effort began in 2016, informally as C2x, with the first
+WG14 meeting in 2019, and was officially published on October 31, 2024.
+C23 was originally anticipated for an earlier release, but the timeline was
+extended due to COVID-19 pandemic.
+With C23, the value of __STDC_VERSION__ has been updated from 201710L to
+202311L.
+Key changes include (but are not limited to) the following:
+.Bl -bullet -offset indent
+.It
+Add null pointer type nullptr_t and the nullptr keyword
+.It
+Add constexpr keyword as a storage-class specifier for objects
+.It
+Redefine the usage of the auto keyword to support type inference while also
+retaining its previous functionality as a storage-class specifier when used
+with a type
+.It
+Add %b binary conversion specifier to the
+.Fn printf
+and
+.Fn scanf
+function families
+.It
+Add binary conversion support (0b and 0B) to the
+.Fn strtol
+and
+.Fn wcstol
+function families
+.It
+Add the #embed directive for binary resource inclusion and __has_embed to
+check resource availability with preprocessor directives
+.It
+Add the #warning directive for diagnostics
+.It
+Add the #elifdef and #elifndef directives
+.It
+Add the u8 prefix for character literals to represent UTF-8 encoding,
+compatible with C++17
+.It
+Add the char8_t type for UTF-8 encoded data and update the types of u8
+character constants and string literals to char8_t
+.It
+Add functions
+.Fn mbrtoc8
+and
+.Fn c8rtomb
+to convert between narrow multibyte
+characters and UTF-8 encoding
+.It
+Define all char16_t strings and literals as UTF-16 encoded and char32_t
+strings and literals as UTF-32 encoded unless specified otherwise
+.It
+Allow storage-class specifiers within compound literals
+.It
+Support the latest IEEE 754 standard, ISO/IEC 60559:2020, with binary and
+(optional) decimal floating-point arithmetic
+.It
+Add single-argument _Static_assert for compatibility with C++17
+.It
+Add _Decimal32, _Decimal64, _Decimal128 keywords for (optional) decimal
+floating-point arithmetic
+.It
+Add digit separator ' (the single quote character) for literals
+.It
+Enable specification of the underlying type of an enum
+.It
+Standardize the
+.Fn typeof
+operator
+.It
+Add
+.Fn memset_explicit
+in
+.In string.h
+to securely erase sensitive data
+regardless of optimizations
+.It
+Add
+.Fn memccpy
+in
+.In string.h
+for efficient string concatenation
+.It
+Add
+.Fn memalignment
+in
+.In stdlib.h
+to determine pointer alignment
+.It
+Add
+.Fn strdup
+and
+.Fn strndup
+in
+.In string.h
+to allocate string copies
+.It
+Introduce bit utility functions, macros, and types in the new header
+.In stdbit.h
+.It
+Add
+.Fn timegm
+in
+.In time.h
+for converting time structures to calendar time
+values
+.It
+Add __has_include for header availability checking via preprocessor
+directives
+.It
+Add __has_c_attribute to check attribute availability via preprocessor
+directives
+.It
+Add _BitInt(N) and unsigned _BitInt(N) for bit-precise integers, and
+BITINT_MAXWIDTH for maximum bit width
+.It
+Elevate true and false to proper keywords (previously macros from
+.In stdbool.h )
+.It
+Add keywords alignas, alignof, bool, static_assert, thread_local; previously
+defined keywords remain available as alternative spellings
+.It
+Enable zero initialization with {} (including initialization of VLAs)
+.It
+Introduce C++11 style attributes using [[]], with adding [[deprecated]],
+[[fallthrough]], [[maybe_unused]], [[nodiscard]], and [[noreturn]]
+.It
+Deprecate _Noreturn, noreturn, header
+.In stdnoreturn.h
+features introduced
+in C11
+.It
+Remove trigraph support
+.It
+Remove K&R function definitions and declarations
+.It
+Remove non-two's-complement representations for signed integers
+.El
.Pp
-Some useful features have been provided as extensions by some compilers, but
-they cannot be considered as standard features.
+The next version of the C Standard, informally named C2y, is anticipated
+to release within the next six years, targeting 2030 at the latest.
+A charter for C2y is still being drafted and discussed, with several
+papers under debate from the January 2024 meeting in Strasbourg, France
+indicating that this new version may address long-standing requests and
+deficiencies noted by the C community, while preserving its core strengths.
.Pp
ISO/IEC JTC1/SC22/WG14 committee is responsible for the ISO/IEC 9899,
C Standard.
@@ -349,6 +515,11 @@ C Standard.
.%A ISO/IEC
.%T 9899:2018 (aka C17)
.Re
+.Pp
+.Rs
+.%A ISO/IEC
+.%T 9899:2024 (aka C23)
+.Re
.Sh HISTORY
This manual page first appeared in
.Fx 9.0 .
@@ -356,8 +527,6 @@ This manual page first appeared in
.An -nosplit
This manual page was originally written by
.An Gabor Kovesdan Aq Mt gabor@FreeBSD.org .
-It was updated for
-.Fx 14.0
-by
+It was updated by
.An Faraz Vahedi Aq Mt kfv@kfv.io
with information about more recent C standards.
diff --git a/share/man/man7/d.7 b/share/man/man7/d.7
new file mode 100644
index 000000000000..f4686d98b1d1
--- /dev/null
+++ b/share/man/man7/d.7
@@ -0,0 +1,287 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd June 14, 2025
+.Dt D 7
+.Os
+.Sh NAME
+.Nm D
+.Nd DTrace scripting language overview
+.Sh SYNOPSIS
+.Sm off
+.Ar provider Cm \&:
+.Ar module Cm \&:
+.Ar function Cm \&:
+.Ar name
+.Sm on
+.Sm off
+.Oo
+.Cm /
+.Ar predicate
+.Cm /
+.Sm on
+.Oc
+.Op Cm \&{ Ns Ar action Ns Cm \&}
+.Sh DESCRIPTION
+.Nm D
+is the
+.Xr dtrace 1
+scripting language.
+This manual provides a brief reference of the
+.Nm
+language and scripting.
+.Pp
+This manual page serves as a short reference of the language.
+Refer to books listed in
+.Sx SEE ALSO
+for a complete reference.
+.Sh PROBE'S DESCRIPTION
+A probe's description consists of four elements:
+.Sm off
+.D1 Ar provider Ns Cm \&: Ns Ar module Cm \&: Ar function Cm \&: Ar name
+.Sm on
+.Pp
+The exact meaning of
+.Ar module ,
+.Ar function ,
+and
+.Ar name
+depends on
+.Ar provider .
+.Sh USER-DEFINED VARIABLE TYPES
+.Bl -column "thread-local" "Syntax"
+.It Sy Type Ta Sy Syntax
+.It global Ta Va variable_name
+.It thread-local Ta Sy self-> Ns Va variable_name
+.It clause-local Ta Sy this-> Ns Va variable_name
+.It aggregate Ta Sy @ Ns Va variable_name
+.El
+.Pp
+.Em Tips :
+.Bl -dash -compact
+.It
+Always use the variable type with the smallest scope
+to minimize processing overhead.
+.It
+Use aggregate variables instead of global variables when possible.
+Aggregate variables are multi-CPU safe in contrast to global variables.
+.El
+.Sh BUILT-IN VARIABLES
+.Ss Probe Arguments
+.Bl -tag -width "arg0, ..., arg9"
+.It Va args[]
+The array of typed probe arguments.
+.It Va arg0 , ... , arg9
+The untyped probe arguments represented as 64-bit unsigned integers.
+Only the first ten arguments are available this way.
+.El
+.Ss Probe Information
+.Bl -tag -width probeprov
+.It Va epid
+The enabled probe ID which uniquely identifies an enabled probe.
+An enabled probe is defined by its probe ID, its predicates, and its actions.
+.It Va id
+The probe ID which uniquely identifies a probe available to DTrace.
+.It Va probeprov
+The
+.Ar provider
+in the probe's description
+.Sm off
+.Pq Ar provider Cm \&: Ar module Cm \&: Ar function Cm \&: Ar name
+.Sm on .
+.It Va probemod
+The
+.Ar module
+in the probe's description
+.Sm off
+.Pq Ar provider Cm \&: Ar module Cm \&: Ar function Cm \&: Ar name
+.Sm on .
+.It Va probefunc
+The
+.Ar function
+in the probe's description
+.Sm off
+.Pq Ar provider Cm \&: Ar module Cm \&: Ar function Cm \&: Ar name
+.Sm on .
+.It Va probename
+The
+.Ar name
+in the probe's description
+.Sm off
+.Pq Ar provider Cm \&: Ar module Cm \&: Ar function Cm \&: Ar name
+.Sm on .
+.El
+.Ss Process Information
+.Bl -tag -width execname
+.It Va execargs
+The process arguments.
+Effectively,
+.Ql curthread->td_proc->p_args .
+.It Va execname
+The name of the current process.
+Effectively,
+.Ql curthread->td_proc->p_comm .
+.It Va gid
+The group ID of the current process.
+.It Va pid
+The process ID of the current process.
+.It Va ppid
+The parent process ID of the current process.
+.It Va uid
+The user ID of the current process.
+.El
+.Ss Thread Information
+.Bl -tag -width curlwpsinfo
+.It Va uregs[]
+The saved user-mode register values.
+.It Va cpu
+The ID of the current CPU.
+.It Va stackdepth
+The kernel stack frame depth.
+.It Va ustackdepth
+The userspace counterpart of
+.Va stackdepth .
+.It Va tid
+The thread ID.
+Depending on the context,
+this can be either the ID of a kernel thread or a thread in a user process.
+.It Va errno
+The
+.Xr errno 2
+value of the last system call performed by the current thread.
+.It Va curlwpsinfo
+A pointer to the
+.Vt lwpsinfo_t
+representation of the current thread.
+Refer to
+.Xr dtrace_proc 4
+for more details.
+.It Va curpsinfo
+A pointer to the
+.Vt psinfo_t
+representation of the current process.
+Refer to
+.Xr dtrace_proc 4
+for more details.
+.It Va curthread
+A pointer to the thread struct that is currently on-CPU.
+E.g.,
+.Ql curthread->td_name
+returns the thread name.
+The
+.In sys/proc.h
+header documents all members of
+.Vt struct thread .
+.It Va caller
+The address of the kernel thread instruction at the time of execution
+of the current probe.
+.It Va ucaller
+The userspace counterpart of
+.Va caller .
+.El
+.Ss Timestamps
+.Bl -tag -width walltimestamp
+.It Va timestamp
+The number of nanoseconds since boot.
+Suitable for calculating relative time differences of elapsed time and latency.
+.It Va vtimestamp
+The number of nanoseconds that the current thread spent on CPU.
+The counter is not increased during handling of a fired DTrace probe.
+Suitable for calculating relative time differences of on-CPU time.
+.It Va walltimestamp
+The number of nanoseconds since the Epoch
+.Pq 1970-01-01T00+00:00 .
+Suitable for timestamping logs.
+.El
+.Sh BUILT-IN FUNCTIONS
+.Ss Aggregation Functions
+.Bl -tag -compact -width "llquantize(value, factor, low, high, nsteps)"
+.It Fn avg value
+Average
+.It Fn count
+Count
+.It Fn llquantize value factor low high nsteps
+Log-linear quantization
+.It Fn lquantize value low high nsteps
+Linear quantization
+.It Fn max value
+Maximum
+.It Fn min value
+Minimum
+.It Fn quantize value
+Power-of-two frequency distribution
+.It Fn stddev value
+Standard deviation
+.It Fn sum value
+Sum
+.El
+.Ss Kernel Destructive Functions
+By default,
+.Xr dtrace 1
+does not permit the use of destructive actions.
+.Bl -tag -width "chill(nanoseconds)"
+.It Fn breakpoint
+Set a kernel breakpoint and transfer control to
+the
+.Xr ddb 4
+kernel debugger.
+.It Fn chill nanoseconds
+Spin on the CPU for the specified number of
+.Fa nanoseconds .
+.It Fn panic
+Panic the kernel.
+.El
+.Sh FILES
+.Bl -tag -width /usr/share/dtrace
+.It Pa /usr/share/dtrace
+DTrace scripts shipped with
+.Fx
+base.
+.El
+.Sh SEE ALSO
+.Xr awk 1 ,
+.Xr dtrace 1 ,
+.Xr tracing 7
+.Rs
+.%B The illumos Dynamic Tracing Guide
+.%D 2008
+.%U https://illumos.org/books/dtrace/
+.Re
+.Rs
+.%A Brendan Gregg
+.%A Jim Mauro
+.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD
+.%I Prentice Hall
+.%D 2011
+.%U https://www.brendangregg.com/dtracebook/
+.Re
+.Rs
+.%A George Neville-Neil
+.%A Jonathan Anderson
+.%A Graeme Jenkinson
+.%A Brian Kidney
+.%A Domagoj Stolfa
+.%A Arun Thomas
+.%A Robert N. M. Watson
+.%C Cambridge, United Kingdom
+.%D August 2018
+.%T Univeristy of Cambridge Computer Laboratory
+.%R OpenDTrace Specification version 1.0
+.%U https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-924.pdf
+.Re
+.Sh HISTORY
+This manual page first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+This manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
+.Sh BUGS
+The
+.Va cwd
+variable which typically provides the current working directory is
+not supported on
+.Fx
+at the moment.
diff --git a/share/man/man7/development.7 b/share/man/man7/development.7
index 0eb5377bd07b..1b875fb14bda 100644
--- a/share/man/man7/development.7
+++ b/share/man/man7/development.7
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2018 Edward Tomasz Napierala <trasz@FreeBSD.org>
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -21,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 1, 2022
+.Dd January 19, 2025
.Dt DEVELOPMENT 7
.Os
.Sh NAME
@@ -89,7 +92,7 @@ and
.Xr release 7 .
Kernel programming interfaces (KPIs) are documented in section 9
manual pages; use
-.Ql "apropos -s 9 ."
+.Ql apropos -s 9 \&.
for a list.
Regression test suite is described in
.Xr tests 7 .
@@ -116,7 +119,14 @@ build and test status of CURRENT and STABLE branches,
the continuous integration system is at:
.Pp
.Lk https://ci.FreeBSD.org
-.Pp
+.Sh FILES
+.Bl -compact -tag -width "/usr/src/tools/tools/git/git-arc.sh"
+.It Pa /usr/src/CONTRIBUTING.md
+.Fx
+contribution guidelines
+.It Pa /usr/src/tools/tools/git/git-arc.sh
+Phabricator review tooling
+.El
.Sh EXAMPLES
Check out the CURRENT branch, build it, and install, overwriting the current
system:
@@ -142,6 +152,13 @@ cd src/bin/ls
make clean all install
.Ed
.Pp
+Rebuild and reinstall a single loadable kernel module, in this case
+.Xr sound 4 :
+.Bd -literal -offset indent
+cd src/sys/modules/sound
+make all install clean cleandepend KMODDIR=/boot/kernel
+.Ed
+.Pp
Quickly rebuild and reinstall the kernel, only recompiling the files
changed since last build; note that this will only work if the full kernel
build has been completed in the past, not on a fresh source tree:
@@ -187,8 +204,7 @@ The
.Nm
manual page was originally written by
.An Matthew Dillon Aq Mt dillon@FreeBSD.org
-and first appeared
-in
+and first appeared in
.Fx 5.0 ,
December 2002.
It was since extensively modified by
diff --git a/share/man/man7/hier.7 b/share/man/man7/hier.7
index 7d164b5683d6..1c69b911f53b 100644
--- a/share/man/man7/hier.7
+++ b/share/man/man7/hier.7
@@ -28,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 18, 2024
+.Dd October 10, 2024
.Dt HIER 7
.Os
.Sh NAME
@@ -128,7 +128,7 @@ compatibility run-time
device nodes and special files; see
.Xr intro 4
and
-.Xr devfs 5
+.Xr devfs 4
.Pp
.Bl -tag -width "loader.conf.d" -compact
.It Pa ada0
@@ -156,6 +156,8 @@ file descriptor files; see
.Xr fd 4
.It Pa fd0
first floppy drive
+.It Pa gpt/
+storage partitions by GPT label
.It Pa mmcsd0
first SD storage device
.It Pa mmcsd0s1
@@ -168,7 +170,7 @@ infinite loop that accepts anything and contains nothing
.It Pa nvd0
first NVMe storage device using NVMe namespaces
.It Pa pts/
-pseduo-terminals; see
+pseudo-terminals; see
.Xr pts 4
.It Pa random
source of weak randomness; see
@@ -365,7 +367,7 @@ that need no home directory; see also
.Pa /var/empty/
.It Pa /proc/
process file system; see
-.Xr procfs 5
+.Xr procfs 4
.It Pa /rescue/
statically linked programs for emergency recovery; see
.Xr rescue 8
@@ -499,9 +501,6 @@ local 32-bit compatability libraries
local utility data files
.It Pa libexec/
utilities executed by local utilities
-.It Pa man/
-local manual pages; see
-.Xr man 1
.It Pa sbin/
local administration utilities
.It Pa share/
@@ -512,6 +511,9 @@ local documentation
articles, books, FAQ, and handbooks available from the
.Fx
project
+.It Pa share/man/
+local manual pages; see
+.Xr man 1
.El
.Pp
.It Pa obj/
diff --git a/share/man/man7/intro.7 b/share/man/man7/intro.7
index a155839bde64..43e48de87bc5 100644
--- a/share/man/man7/intro.7
+++ b/share/man/man7/intro.7
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 18, 2024
+.Dd July 14, 2025
.Dt INTRO 7
.Os
.Sh NAME
@@ -49,14 +49,14 @@ system timekeeping clocks available in
.It Xr crypto 7
cryptographic algorithms provided by OpenCrypto in
.Fx
+.It Xr d 7
+.Xr dtrace 1
+scripting language overview
.It Xr development 7
development introduction to
.Fx
.It Xr environ 7
user environment
-.It Xr ffs 7
-commonly used filesystem in
-.Fx
.It Xr firewall 7
simple firewalls under
.Fx
@@ -84,6 +84,8 @@ statistics utilities available in
introduction to the
.Fx
Test Suite
+.It Xr tracing 7
+introduction to tracing and performance monitoring facilities
.It Xr tuning 7
general advice on tuning
.Fx
diff --git a/share/man/man7/mitigations.7 b/share/man/man7/mitigations.7
index 1cea86e352c5..c3c6ab55c480 100644
--- a/share/man/man7/mitigations.7
+++ b/share/man/man7/mitigations.7
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifer: BSD-2-Clause
+.\"
.\" Copyright © 2023 The FreeBSD Foundation
.\"
.\" This documentation was written by Ed Maste <emaste@freebsd.org>, and
@@ -25,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 6, 2023
+.Dd January 29, 2025
.Dt MITIGATIONS 7
.Os
.Sh NAME
@@ -41,6 +44,7 @@ or per-process basis, some are optionally enabled or disabled at compile time,
and some are inherent to the implementation and have no controls.
.Pp
The following vulnerability mitigations are covered in this document:
+.Pp
.Bl -bullet -compact
.It
Address Space Layout Randomization (ASLR)
@@ -54,14 +58,16 @@ Write XOR Execute page protection policy
Relocation Read-Only (RELRO)
.It
Bind Now
-.\".It
-.\"Stack Smashing Protection (SSP)
-.\".It
-.\"Supervisor Mode Memory Protection
.It
-Hardware Vulnerability Mitigation Controls
+Stack Overflow Protection
+.It
+Supervisor Mode Memory Protection
.It
Capsicum
+.It
+Firmware and Microcode
+.It
+Architectural Vulnerability Mitigations
.El
.Pp
Please note that the effectiveness and availability of these mitigations may
@@ -148,7 +154,7 @@ proccontrol
.Ss Position Independent Executable (PIE)
PIE binaries are executable files that do not have a fixed load address.
They can be loaded at an arbitrary memory address by the
-.Xr rtld
+.Xr rtld 1
run-time linker.
With ASLR they are loaded at a random address on each execution.
.\"
@@ -179,17 +185,19 @@ Allow 64-bit processes to map pages simultaneously writable and executable.
.\"
.Ss PROT_MAX
.Dv PROT_MAX
-is a FreeBSD-specific extension to
+is a
+.Fx Ns
+-specific extension to
.Xr mmap 2 .
.Dv PROT_MAX
provides the ability to set the maximum protection of a region allocated by
-.Xr mmap
+.Xr mmap 2
and later altered by
-.Xr mprotect .
+.Xr mprotect 2 .
For example, memory allocated originally with an mmap prot argument of
PROT_MAX(PROT_READ | PROT_WRITE) | PROT_READ
may be made writable by a future
-.Xr mprotect
+.Xr mprotect 2
call, but may not be made executable.
.\"
.Ss Relocation Read-Only (RELRO)
@@ -232,22 +240,121 @@ preventing attacks on the relocation table.
Note that this results in a nonstandard Application Binary Interface (ABI),
and it is possible that some applications may not function correctly.
.\"
-.\".Ss Stack Smashing Protection (SSP)
-.\"
-.\".Ss Supervisor mode memory protection
+.Ss Stack Overflow Protection
+.Fx
+supports stack overflow protection using the Stack Smashing Protector
+.Pq SSP
+compiler feature.
+Stack clash protection is also enabled,
+if supported by the compiler for the given architecture.
+In userland, SSP adds a per-process randomized canary at the end of every stack
+frame which is checked for corruption upon return from the function,
+and stack probing in
+.Dv PAGE_SIZE
+chunks.
+In the kernel, a single randomized canary is used globally except on aarch64,
+which has a
+.Dv PERTHREAD_SSP
+.Xr config 8
+option to enable per-thread randomized canaries.
+If stack corruption is detected, then the process aborts to avoid potentially
+malicious execution as a result of the corruption.
+SSP may be enabled or disabled when building
+.Fx
+base with the
+.Xr src.conf 5
+SSP knob.
+.Pp
+When
+.Va WITH_SSP
+is enabled, which is the default, world is built with the
+.Fl fstack-protector-strong
+and
+.Fl fstack-clash-protection
+compiler options.
+The kernel is built with the
+.Fl fstack-protector
+option.
+.Pp
+In addition to SSP, a
+.Dq FORTIFY_SOURCE
+implementation is supported up to level 2 by defining
+.Va _FORTIFY_SOURCE
+to
+.Dv 1
+or
+.Dv 2
+before including any
+.Fx
+headers.
+.Fx
+world builds can set
+.Va FORTIFY_SOURCE
+in the environment or
+.Pa /etc/src-env.conf
+to provide a default value for
+.Va _FORTIFY_SOURCE .
+When enabled,
+.Dq FORTIFY_SOURCE
+enables extra bounds checking in various functions that accept buffers to be
+written into.
+These functions currently have extra bounds checking support:
+.Bl -column -offset indent "snprintf()" "memmove()" "strncpy()" "vsnprintf()" "readlink()"
+.It Fn bcopy Ta Fn bzero Ta Fn fgets Ta Fn getcwd Ta Fn gets
+.It Fn memcpy Ta Fn memmove Ta Fn memset Ta Fn read Ta Fn readlink
+.It Fn snprintf Ta Fn sprintf Ta Fn stpcpy Ta Fn stpncpy Ta Fn strcat
+.It Fn strcpy Ta Fn strncat Ta Fn strncpy Ta Fn vsnprintf Ta Fn vsprintf
+.El
+.Pp
+.Dq FORTIFY_SOURCE
+requires compiler support from
+.Xr clang 1
+or
+.Xr gcc 1 ,
+which provide the
+.Xr __builtin_object_size 3
+function that is used to determine the bounds of an object.
+This feature works best at optimization levels
+.Fl O1
+and above, as some object sizes may be less obvious without some data that the
+compiler would collect in an optimization pass.
+.Pp
+Similar to SSP, violating the bounds of an object will cause the program to
+abort in an effort to avoid malicious execution.
+This effectively provides finer-grained protection than SSP for some class of
+function and system calls, along with some protection for buffers allocated as
+part of the program data.
.\"
-.Ss Hardware vulnerability controls
-See
-.Xr security 7
-for more information.
+.Ss Supervisor mode memory protection
+Certain processors include features that prevent unintended access to memory
+pages accessible to userspace (non-privileged) code, while in a privileged
+mode.
+One feature prevents execution, intended to mitigate exploitation of kernel
+vulnerabilities from userland.
+Another feature prevents unintended reads from or writes to user space memory
+from the kernel.
+This also provides effective protection against NULL pointer dereferences from
+kernel.
+.Bl -column -offset indent "Architecture" "Feature" "Access Type Prevented"
+.It Sy Architecture Ta Sy Feature Ta Sy Access Type Prevented
+.It amd64 Ta SMAP Ta Read / Write
+.It amd64 Ta SMEP Ta Execute
+.It arm64 Ta PAN Ta Read / Write
+.It arm64 Ta PXN Ta Execute
+.It riscv Ta SUM Ta Read / Write
+.It riscv Ta - Ta Execute
+.El
+.Pp
+These features are automatically used by the kernel.
+There is no user-facing configuration.
.\"
.Ss Capsicum
Capsicum is a lightweight OS capability and sandbox framework.
See
.Xr capsicum 4
for more information.
-.Pp
.Sh HARDWARE VULNERABILITY MITIGATIONS
+.Ss Firmware and Microcode
Recent years have seen an unending stream of new hardware vulnerabilities,
notably CPU ones generally caused by detectable microarchitectural side-effects
of speculative execution which leak private data from some other thread or
@@ -255,18 +362,36 @@ process or sometimes even internal CPU state that is normally inaccessible.
Hardware vendors usually address these vulnerabilities as they are discovered by
releasing microcode updates, which may then be bundled into platform firmware
updates
-.Pq historically called BIOS updates for PCs .
+.Pq historically called BIOS updates for PCs
+or packages to be updated by the operating system at boot time.
+.Pp
+Platform firmware updates, if available from the manufacturer,
+are the best defense as they provide coverage during early boot.
+Install them with
+.Pa sysutils/flashrom
+from the
+.Fx
+Ports Collection.
+.Pp
+If platform firmware updates are no longer available,
+packaged microcode is available for installation at
+.Pa sysutils/cpu-microcode
+and can be loaded at runtime using
+.Xr loader.conf 5 ,
+see the package message for more details.
.Pp
The best defense overall against hardware vulnerabilities is to timely apply
-these updates when available and to disable the affected hardware's problematic
-functionalities when possible (e.g., CPU Simultaneous Multi-Threading).
+these updates when available, as early as possible in the boot process,
+and to disable the affected hardware's problematic functionalities when possible
+(e.g., CPU Simultaneous Multi-Threading).
Software mitigations are only partial substitutes for these, but they can be
helpful on out-of-support hardware or as complements for just-discovered
vulnerabilities not yet addressed by vendors.
Some software mitigations depend on hardware capabilities provided by a
microcode update.
-.Pp
-FreeBSD's usual policy is to apply by default all OS-level mitigations that do
+.Ss Architectural Vulnerability Mitigations
+.Fx Ap s
+usual policy is to apply by default all OS-level mitigations that do
not require recompilation, except those the particular hardware it is running on
is known not to be vulnerable to
.Pq which sometimes requires firmware updates ,
@@ -355,6 +480,10 @@ should be considered when configuring and deploying them in a
.Fx
system.
.Pp
+Additional mitigation knobs are listed in the
+.Sx KNOBS AND TWEAKS
+section of
+.Xr security 7 .
.Sh SEE ALSO
.Xr elfctl 1 ,
.Xr proccontrol 1 ,
diff --git a/share/man/man7/named_attribute.7 b/share/man/man7/named_attribute.7
new file mode 100644
index 000000000000..4080dfce2fab
--- /dev/null
+++ b/share/man/man7/named_attribute.7
@@ -0,0 +1,294 @@
+.\"
+.\" Copyright (c) 2025 Rick Macklem
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd July 20, 2025
+.Dt NAMED_ATTRIBUTE 7
+.Os
+.Sh NAME
+.Nm named_attribute
+.Nd Solaris-like extended attribute system interface
+.Sh DESCRIPTION
+Description of the system interface for named attributes
+(the NFS Version 4 terminology).
+.Ss Introduction
+This document describes an alternate system interface for extended
+attributes as compared to
+.Xr extattr 2 .
+It is based on the interface provided by Solaris and NFS Version 4.
+.Pp
+This interface associates a directory, known as a named attribute directory,
+to a file system object.
+This directory is read in the same manner as a normal directory via the
+.Xr getdents 2
+or
+.Xr getdirentries 2
+system calls.
+The
+.Pa .\&
+and
+.Pa ..\&
+entries refer to the directory itself and to the associated file object,
+respectively.
+The other entries in this directory
+are the names of the extended attributes for the associated file object
+and are referred to as named attributes.
+These named attributes are regular files used to store the attribute's
+value.
+.Pp
+A named attribute directory does not live in the file system's name space.
+It is accessed via an
+.Xr open 2
+or
+.Xr openat 2
+system call done on a file to query the named attributes for the file,
+with the
+.Dv O_NAMEDATTR
+flag specified and a
+.Fa path
+argument of
+.Pa .\& .
+This file descriptor can be used as the
+.Fa fd
+argument for a variety of system calls, such as:
+.Xr fchdir 2 ,
+.Xr unlinkat 2
+and
+.Xr renameat 2 .
+.Xr renameat 2
+is only permitted to rename a named attribute within the same named
+attribute directory.
+.Pp
+When a file descriptor for a file object in the file system's namespace
+is used as the
+.Fa fd
+argument of an
+.Xr openat 2
+along with the
+.Fa flag
+.Dv O_NAMEDATTR
+and a
+.Fa path
+argument that is the name of a named attribute (not
+.Pa .\&
+or
+.Pa ..\&
+), a file descriptor for the named attribute is returned.
+If the
+.Fa flag
+.Dv O_CREAT
+is specified, the named attribute will be created if it does not exist.
+The
+.Fa path
+argument must be a single component name, with no embedded
+.Dq /
+in it.
+I/O on these named attribute file descriptors may be performed by
+standard I/O system calls
+such as:
+.Xr read 2 ,
+.Xr write 2 ,
+.Xr lseek 2
+and
+.Xr ftruncate 2 .
+.Pp
+The
+.Dv _PC_NAMEDATTR_ENABLED
+.Fa name
+argument to
+.Xr pathconf 2
+will return 1 if the file system supports named attributes.
+The
+.Dv _PC_HAS_NAMEDATTR
+.Fa name
+argument to
+.Xr pathconf 2
+will return 1 if there are one or more named attributes for the file.
+If an application does a
+.Xr openat 2
+of
+.Dq .\&
+to open a named attribute directory when no named attribute directory exists,
+an empty named attribute directory will be created.
+Testing
+.Dv _PC_HAS_NAMEDATTR
+can be done to avoid creating these named attribute directories unnecessarily.
+.Pp
+The named attribute interface is a different mechanism/system call interface for
+manipulating extended attributes compared with
+.Xr extattr 2 .
+Although the named attribute machanism might require different internal
+implementation
+of extended attributes within a file system, both ZFS and NFSv4 provide
+both mechanisms, which can be used interchangeably to manipulate
+extended attributes, but with a few limitations.
+.Bl -bullet
+.It
+The
+.Xr extattr 2
+interface requires that an extended attribute's value be set or acquired
+via a single system call using a single buffer.
+This limits the size of the attribute's value.
+.It
+The named attribute interface does not support system namespace
+extended attributes and,
+as such, system namespace extended attributes must be manipulated via
+.Xr extattr 2 .
+.It
+For ZFS, if an extended attribute with a value
+that is a small length in bytes is created when the ZFS
+.Dv xattr
+property is set to
+.Dq sa ,
+that extended attribute is only visible via
+.Xr extattr 2
+and not as a named attribute.
+Archiving/de-archiving the file via
+.Xr tar 1
+after setting the
+.Dv xattr
+property to
+.Dq dir
+will make the attribute(s) visible as both named attributes
+and via
+.Xr extattr 2 .
+.El
+.Pp
+The named attribute mechanism/system call interface provides certain
+advantages over
+.Xr extattr 2 .
+Since the attribute's value is updated via
+.Xr read 2
+and
+.Xr write 2
+system calls, the attribute's data may be as large as any regular file
+and may be partially updated.
+(Note that this interface does not provide the atomicity guarantee that
+.Xr extattr 2
+does.)
+The permission to access a named attribute directory is determined from
+the access control information for the associated file object.
+However, access control information can be set on each individual attribute
+in a manner similar to a regular file.
+This provides
+.Dq per attribute
+granular control over attribute permissions via
+.Xr fchown 2 .
+.Pp
+At this time, the only local file system which supports this interface
+is ZFS and only if the
+.Dv xattr
+property is set to
+.Dq dir .
+(Note that, even when
+.Dq zfs get xattr <file-system>
+shows
+.Dq on
+the command
+.Dq zfs set xattr=dir <file-system>
+must be done, followed by a remount to make the setting take effect.)
+A NFSv4 mount will also support this interface, but only if the NFSv4
+server file system supports named attributes (the openattr operation).
+The
+.Fx
+NFSv4 server supports named attributes only
+for ZFS exported file systems where the
+.Dq xattr
+property is set to
+.Dq dir
+for the file system.
+.Sh EXAMPLES
+.Bd -literal
+#include <stdio.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+\&...
+
+/* For a file called "myfile". Failure checks removed for brevity. */
+int file_fd, nameddir_fd, namedattr_fd;
+ssize_t siz;
+char buf[DIRBLKSIZ], *cp;
+struct dirent *dp;
+long named_enabled, has_named_attrs;
+
+\&...
+/* Check to see if named attributes are supported. */
+named_enabled = pathconf("myfile", _PC_NAMEDATTR_ENABLED);
+if (named_enabled <= 0)
+ err(1, "Named attributes not enabled");
+/* Test to see if named attribute(s) exist for the file. */
+has_named_attrs = pathconf("myfile", _PC_HAS_NAMEDATTR);
+if (has_named_attrs == 1)
+ printf("myfile has named attribute(s)\\n");
+else
+ printf("myfile does not have any named attributes\\n");
+/* Open a named attribute directory. */
+file_fd = open("myfile", O_RDONLY, 0);
+nameddir_fd = openat(file_fd, ".", O_NAMEDATTR, 0);
+\&...
+/* and read it, assuming it all fits in DIRBLKSIZ for simplicity. */
+siz = getdents(fd, buf, sizeof(buf));
+cp = buf;
+while (cp < &buf[siz]) {
+ dp = (struct dirent *)cp;
+ printf("name=%s\\n", dp->d_name);
+ cp += dp->d_reclen;
+}
+\&...
+/* Open/create a named attribute called "foo". */
+namedattr_fd = openat(file_fd, "foo", O_CREAT | O_RDWR |
+ O_TRUNC | O_NAMEDATTR, 0600);
+\&...
+/* Write foo's attribute value. */
+write(namedattr_fd, "xxxyyy", 6);
+\&...
+/* Read foo's attribute value. */
+lseek(namedattr_fd, 0, SEEK_SET);
+siz = read(namedattr_fd, buf, sizeof(buf));
+\&...
+/* And close "foo". */
+close(namedattr_fd);
+\&...
+/* Rename "foo" to "oldfoo". */
+renameat(nameddir_fd, "foo", nameddir_fd, "oldfoo");
+/* and delete "oldfoo". */
+unlinkat(nameddir_fd, "oldfoo", AT_RESOLVE_BENEATH);
+.Ed
+.Pp
+The
+.Xr runat 1
+command may be used to perform shell commands on named attributes.
+For example:
+.Bd -literal
+$ runat myfile cp /etc/hosts attrhosts # creates attrhosts
+$ runat myfile cat attrhosts # displays contents of attrhosts
+$ runat myfile ls -l # lists the attributes for myfile
+.Ed
+.Pp
+If using the
+.Xr bash 1
+shell, the command
+.Dq cd -@ foo
+enters the named attribute directory for the file object
+.Dq foo .
+.Sh SEE ALSO
+.Xr bash 1 ,
+.Xr runat 1 ,
+.Xr tar 1 ,
+.Xr chdir 2 ,
+.Xr extattr 2 ,
+.Xr lseek 2 ,
+.Xr open 2 ,
+.Xr pathconf 2 ,
+.Xr read 2 ,
+.Xr rename 2 ,
+.Xr truncate 2 ,
+.Xr unlinkat 2 ,
+.Xr write 2 ,
+.Xr zfsprops 7
+.Sh HISTORY
+This interface first appeared in
+.Fx 15.0 .
diff --git a/share/man/man7/networking.7 b/share/man/man7/networking.7
index 869812c05a9b..2174577eb6a3 100644
--- a/share/man/man7/networking.7
+++ b/share/man/man7/networking.7
@@ -1,54 +1,51 @@
-.\"-
-.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Copyright (c) 2024 Alexander Ziaee <concussious@runbox.com>
+.\" Copyright (c) 2024 Alexander Ziaee. Ohio.
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.Dd April 17, 2024
-.Dt "NETWORKING" 7
+.Dd March 21, 2025
+.Dt NETWORKING 7
.Os
.Sh NAME
.Nm networking ,
.Nm wifi
.Nd quickstart guide to connecting to a network
.Sh DESCRIPTION
-In the following examples, it is assumed that we are connecting to Ethernet
-with the first interface found by the
-.Xr em 4
+In the following examples, it is assumed that
+we are connecting to Ethernet with the first interface found by the
+.Xr ix 4
driver, and Wi-Fi with the first interface found by the
-.Xr iwn 4
+.Xr iwlwifi 4
driver, though your hardware will vary.
.Sh EXAMPLES
.Bl -tag -width 0n
-.It Sy Connecting to an Ethernet network with DHCP:
-.Bd -literal -offset 2n
-.Ic # dhclient em0
-.Ed
-.It Sy Connecting to a cellular network with USB tethering:
+.It Sy Example 1: Connecting to an Ethernet network with DHCP
.Pp
-Load the USB tethering driver,
-.Xr urndis 4 :
+Ask for a DHCP lease on the first Intel 10Gb Ethernet interface:
.Bd -literal -offset 2n
-.Ic # kldload urndis
+.Ic # dhclient ix0
.Ed
+.It Sy Example 2: Connecting to a cellular network with USB tethering
.Pp
-Ask for a DHCP lease on the USB tethering interface:
+Ask for a DHCP lease on the first USB tethering interface:
.Bd -literal -offset 2n
.Ic # dhclient ue0
.Ed
-.It Sy Connecting to a Wi-Fi network:
+.It Sy Example 3: Connecting to a Wi-Fi network
.Pp
Identify your Wi-Fi hardware:
.Bd -literal -offset 2n
.Ic % sysctl net.wlan.devices
.Ed
.Pp
-Configure your Wi-Fi hardware as wlan0 interface:
-.Ed
+Create the
+.Sy wlan0
+interface with the first Intel Wi-Fi adapter:
.Bd -literal -offset 2n
-.Ic # sysrc wlans_iwn0="wlan0"
+.Ic # sysrc wlans_iwlwifi0="wlan0"
.Ed
.Pp
-Set that interface to negotiate a DHCP lease with
+Set that interface to ask for a DHCP lease with
.Xr wpa_supplicant 8 :
.Bd -literal -offset 2n
.Ic # sysrc ifconfig_wlan0="WPA SYNCDHCP"
@@ -56,6 +53,7 @@ Set that interface to negotiate a DHCP lease with
.Pp
Enter the details of the Wi-Fi network:
.Bd -literal -offset 2n
+.Ic # cd /etc/
.Ic # wpa_passphrase \(dqmyssid\(dq \(dqmypassphrase\(dq >> wpa_supplicant.conf
.Ed
.Pp
@@ -63,12 +61,11 @@ Restart the network interface daemon:
.Bd -literal -offset 2n
.Ic # service netif restart
.Ed
-.Pp
-.It Sy Scanning for Wi-Fi networks:
+.It Sy Example 4: Scanning for Wi-Fi networks
.Bd -literal -offset 2n
.Ic % ifconfig wlan0 scan
.Ed
-.It Sy Airplane mode:
+.It Sy Example 5: Airplane mode
.Bd -literal -offset 2n
.Ic # service netif stop
.Ed
@@ -93,9 +90,4 @@ commonly using
.Ql \e ,
see the manual page for your shell for more details.
.Pp
-Currently
-.Ql Ic service netif restart
-does not restart routing.
-A common workaround is to issue
-.Ql Ic service netif restart && service routing restart
-instead.
+Stopping the network interface service also stops internal networking.
diff --git a/share/man/man7/orders.7 b/share/man/man7/orders.7
index aef44adde125..c1c2c1200e42 100644
--- a/share/man/man7/orders.7
+++ b/share/man/man7/orders.7
@@ -47,8 +47,8 @@ The following table lists common multiples of bytes.
.It Zettabyte Ta ZB Ta 2^70 Ta 10^21
.It Yottabyte Ta YB Ta 2^80 Ta 10^24
.It Ronnabyte Ta RB Ta 2^90 Ta 10^27
-.It Quettabyte Ta QB Ta 2^100 Ta 10^30.
-El
+.It Quettabyte Ta QB Ta 2^100 Ta 10^30
+.El
.Pp
The following table lists common bit rates as a power of ten.
.Bl -column -offset 2n \
diff --git a/share/man/man7/ports.7 b/share/man/man7/ports.7
index 911135a8b631..b681a326f407 100644
--- a/share/man/man7/ports.7
+++ b/share/man/man7/ports.7
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 1997 David E. O'Brien
.\"
.\" All rights reserved.
@@ -23,7 +25,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd September 24, 2023
+.Dd March 21, 2025
.Dt PORTS 7
.Os
.Sh NAME
@@ -163,7 +165,7 @@ target.
Configure
.Va OPTIONS
for this port using
-.Xr dialog4ports 1 .
+.Xr portconfig 1 Pq Pa ports/ports-mgmt/portconfig .
.It Cm fetch
Fetch all of the files needed to build this port from the sites
listed in
@@ -245,7 +247,7 @@ configured.
Configure
.Va OPTIONS
for this port and all its dependencies using
-.Xr dialog4ports 1 .
+.Xr portconfig 1 Pq Pa ports/ports-mgmt/portconfig .
.It Cm fetch-list
Show the list of files to fetch in order to build the port (but not its
dependencies).
@@ -737,16 +739,16 @@ Additional user documentation:
.It
.Xr pkg 8
.It
-.Lk "https://www.FreeBSD.org/ports" "Searchable index of all ports"
+.Lk "https://ports.FreeBSD.org" "Searchable index of all ports"
.El
.Sh HISTORY
The Ports Collection
appeared in
.Fx 1.0 .
It has since spread to
-.Nx
-and
-.Ox .
+.Nx ,
+.Ox ,
+and macOS.
.Sh AUTHORS
.An -nosplit
This manual page was originated by
diff --git a/share/man/man7/release.7 b/share/man/man7/release.7
index 0a56f0762591..36c14afe0bf1 100644
--- a/share/man/man7/release.7
+++ b/share/man/man7/release.7
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 6, 2023
+.Dd May 20, 2025
.Dt RELEASE 7
.Os
.Sh NAME
@@ -150,7 +150,7 @@ The
.Xr git 1
host used to check out the various trees.
Defaults to
-.Pa https://git.FreeeBSD.org .
+.Pa https://git.FreeBSD.org .
.It Va SRCBRANCH
The
.Li src/
@@ -282,6 +282,10 @@ within the
This is intended for use only when
.Fa /usr/ports
is expected to exist by alternative means.
+.It Va PKGBASE
+Include base system packages for use with
+.Xr pkg 8
+on the install media, instead of legacy tarball distribution sets.
.El
.Sh EMBEDDED BUILDS
The following
@@ -443,6 +447,18 @@ values, run:
cd /usr/src
make -C release list-cloudware
.Ed
+.Sh OCI IMAGES
+The
+.Fx
+release build tools have experimental support for building
+Open Container Initiative (OCI) format container base images.
+This is enabled using a
+.Fa release.conf
+variable:
+.Bl -tag -width Ev
+.It Va WITH_OCIIMAGES
+Set to a non-null value to build OCI base images.
+.El
.Sh MAKEFILE TARGETS
The release makefile
.Pq Pa src/release/Makefile
diff --git a/share/man/man7/security.7 b/share/man/man7/security.7
index ccbeeb4575ce..cdb4d066d3e6 100644
--- a/share/man/man7/security.7
+++ b/share/man/man7/security.7
@@ -1,5 +1,5 @@
.\" Copyright (C) 1998 Matthew Dillon. All rights reserved.
-.\" Copyright (c) 2019 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2019 The FreeBSD Foundation
.\"
.\" Parts of this documentation were written by
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
@@ -26,13 +26,21 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 5, 2023
+.Dd June 1, 2024
.Dt SECURITY 7
.Os
.Sh NAME
.Nm security
.Nd introduction to security under FreeBSD
.Sh DESCRIPTION
+See
+.Xr mitigations 7
+for a description of vulnerability mitigations in
+.Fx .
+This man page documents other
+.Fx
+security related topics.
+.Pp
Security is a function that begins and ends with the system administrator.
While all
.Bx
diff --git a/share/man/man7/simd.7 b/share/man/man7/simd.7
index fd9485524aef..d5092348d9b3 100644
--- a/share/man/man7/simd.7
+++ b/share/man/man7/simd.7
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE
.
-.Dd December 6, 2023
+.Dd November 18, 2024
.Dt SIMD 7
.Os
.Sh NAME
@@ -51,43 +51,43 @@ can be used to override this mechanism.
Enhanced functions are present for the following architectures:
.Bl -column FUNCTION_________ aarch64_ arm_ amd64_ i386_ ppc64_ -offset indent
.It Em FUNCTION Ta Em AARCH64 Ta Em ARM Ta Em AMD64 Ta Em I386 Ta Em PPC64
-.It bcmp Ta Ta Ta S1 Ta S
-.It bcopy Ta Ta S Ta S Ta S Ta SV
-.It bzero Ta Ta S Ta S Ta S
+.It bcmp Ta A Ta Ta S1 Ta S
+.It bcopy Ta A Ta S Ta S Ta S Ta SV
+.It bzero Ta A Ta S Ta S Ta S
.It div Ta Ta Ta S Ta S
-.It index Ta S Ta Ta S1
+.It index Ta A Ta Ta S1
.It ldiv Ta Ta Ta S Ta S
.It lldiv Ta Ta Ta S
-.It memchr Ta S Ta Ta S1
-.It memcmp Ta S Ta S Ta S1 Ta S
-.It memccpy Ta Ta Ta S1
-.It memcpy Ta S Ta S Ta S Ta S Ta SV
-.It memmove Ta S Ta S Ta S Ta S Ta SV
-.It memrchr Ta Ta Ta S1
-.It memset Ta S Ta S Ta S Ta S
-.It rindex Ta S Ta Ta S1 Ta S
-.It stpcpy Ta S Ta Ta S1
+.It memchr Ta A Ta Ta S1
+.It memcmp Ta A Ta S Ta S1 Ta S
+.It memccpy Ta A Ta Ta S1
+.It memcpy Ta A Ta S Ta S Ta S Ta SV
+.It memmove Ta A Ta S Ta S Ta S Ta SV
+.It memrchr Ta A Ta Ta S1
+.It memset Ta A Ta S Ta S Ta S
+.It rindex Ta A Ta Ta S1 Ta S
+.It stpcpy Ta A Ta Ta S1
.It stpncpy Ta Ta Ta S1
-.It strcat Ta Ta Ta S1 Ta S
-.It strchr Ta S Ta Ta S1 Ta S
-.It strchrnul Ta S Ta Ta S1
-.It strcmp Ta S Ta S Ta S1 Ta S
-.It strcpy Ta S Ta Ta S1 Ta S Ta S2
-.It strcspn Ta Ta Ta S2
-.It strlcat Ta Ta Ta S1
-.It strlcpy Ta Ta Ta S1
-.It strlen Ta S Ta S Ta S1
-.It strncat Ta Ta Ta S1
-.It strncmp Ta S Ta S Ta S1 Ta S
+.It strcat Ta A Ta Ta S1 Ta S
+.It strchr Ta A Ta Ta S1 Ta S
+.It strchrnul Ta A Ta Ta S1
+.It strcmp Ta A Ta S Ta S1 Ta S
+.It strcpy Ta A Ta Ta S1 Ta S Ta S2
+.It strcspn Ta S Ta Ta S2
+.It strlcat Ta A Ta Ta S1
+.It strlcpy Ta A Ta Ta S1
+.It strlen Ta A Ta S Ta S1
+.It strncat Ta A Ta Ta S1
+.It strncmp Ta A Ta S Ta S1 Ta S
.It strncpy Ta Ta Ta S1 Ta Ta S2
-.It strnlen Ta S Ta Ta S1
-.It strrchr Ta S Ta Ta S1 Ta S
-.It strpbrk Ta Ta Ta S2
-.It strsep Ta Ta Ta S2
-.It strspn Ta Ta Ta S2
+.It strnlen Ta A Ta Ta S1
+.It strrchr Ta A Ta Ta S1 Ta S
+.It strpbrk Ta S Ta Ta S2
+.It strsep Ta S Ta Ta S2
+.It strspn Ta S Ta Ta S2
.It swab Ta Ta Ta Ta S
-.It timingsafe_bcmp Ta Ta Ta S1
-.It timingsafe_memcmp Ta Ta Ta S
+.It timingsafe_bcmp Ta A Ta Ta S1
+.It timingsafe_memcmp Ta S Ta Ta S
.It wcschr Ta Ta Ta Ta S
.It wcscmp Ta Ta Ta Ta S
.It wcslen Ta Ta Ta Ta S
@@ -100,7 +100,8 @@ Enhanced functions are present for the following architectures:
or PowerPC\ 2.05,
.Sy 3 Ns :\ x86-64-v3,
.Sy 4 Ns :\ x86-64-v4,
-.Sy V Ns :\ PowerPC\ VSX.
+.Sy V Ns :\ PowerPC\ VSX,
+.Sy A Ns :\ Arm\ ASIMD (NEON).
.
.Sh ENVIRONMENT
.Bl -tag
diff --git a/share/man/man7/tests.7 b/share/man/man7/tests.7
index 1fbaad7d42a0..61b0789b9149 100644
--- a/share/man/man7/tests.7
+++ b/share/man/man7/tests.7
@@ -25,7 +25,7 @@
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd August 19, 2020
+.Dd April 1, 2025
.Dt TESTS 7
.Os
.Sh NAME
@@ -157,7 +157,7 @@ The following configuration variables are available in the
.Fx
Test Suite:
.Bl -tag -width "allow_sysctl_side_effects"
-.It allow_devfs_side_effects
+.It Va allow_devfs_side_effects
If defined, enables tests that may destroy and recreate semipermanent device
nodes, like disk devices.
Without this variable, tests may still create and destroy devices nodes that
@@ -166,16 +166,19 @@ them up afterwards.
However, tests that require this variable have a relaxed cleanup requirement;
they must recreate any devices that they destroyed, but not necessarily with
the same devnames.
-.It allow_sysctl_side_effects
+.It Va allow_sysctl_side_effects
Enables tests that change globally significant
.Xr sysctl 8
variables.
The tests will undo any changes in their cleanup phases.
-.It disks
+.It Va allow_network_access
+Enables tests that need to access the network the test host is connected to.
+Such tests may require properly configured Internet access.
+.It Va disks
Must be set to a space delimited list of disk device nodes.
Tests that need destructive access to disks must use these devices.
Tests are not required to preserve any data present on these disks.
-.It fibs
+.It Va fibs
Must be set to a space delimited list of FIBs (routing tables).
Tests that need to modify a routing table may use any of these.
Tests will cleanup any new routes that they create.
diff --git a/share/man/man7/tracing.7 b/share/man/man7/tracing.7
new file mode 100644
index 000000000000..7085bac78385
--- /dev/null
+++ b/share/man/man7/tracing.7
@@ -0,0 +1,100 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd July 12, 2025
+.Dt TRACING 7
+.Os
+.Sh NAME
+.Nm tracing
+.Nd introduction to FreeBSD tracing and performance monitoring
+.Sh DESCRIPTION
+.Fx
+features a large variety of tracing and performance monitoring facilities.
+Use them to measure performance and
+troubleshoot kernel and userland problems both during
+.Xr development 7
+and potentially on production systems.
+The facilities differ in scope, ease of use, overhead, design, and limitations.
+.Ss DTrace
+.Xr dtrace 1
+is the most versatile tracing framework available on
+.Fx
+and is capable of tracing throughout the
+.Fx
+software stack from the kernel to the applications running in userland.
+Refer to
+.Xr dtrace 1
+and
+.Xr SDT 9
+for more details.
+.Pp
+.Xr dwatch 1
+is a user-friendly wrapper for DTrace.
+It simplifies common DTrace usage patterns and requires less expert knowledge
+to operate.
+.Ss Userland Tracing
+.Xr truss 1
+traces system calls.
+It uses
+.Xr sysdecode 3
+to pretty-print system call arguments and
+.Xr ptrace 2
+to trace processes.
+.Pp
+.Xr ktrace 1
+is useful for debugging user programs.
+It enables kernel trace logging for specified processes.
+Like
+.Xr truss 1 ,
+it mainly traces system calls, but instead of using
+.Xr ptrace 2 ,
+it asynchronously logs entries to a trace file configured with
+.Xr ktrace 2
+(typically
+.Pa ktrace.out ) ,
+and it can log other types of kernel events, such as page faults
+and name lookups
+.Po refer to
+.Fl t
+in
+.Xr ktrace 1
+.Pc .
+Also, programs can log to a
+.Xr ktrace 1
+stream using the
+.Xr utrace 2
+system call.
+.Ss Kernel Tracing
+.Xr ktr 4
+is a facility for logging strings in the kernel.
+It comes in handy for some niche purposes during kernel development.
+It lets kernel programmers log events to a global ring buffer,
+which can later be dumped using
+.Xr ktrdump 8 .
+.Ss Hardware-Accelerated Tracing
+.Xr hwt 4
+is a kernel trace framework providing infrastructure
+for hardware-assisted tracing.
+.Ss Hardware Counters
+.Xr pmcstat 8 ,
+and its kernel counterpart,
+.Xr hwpmc 4 ,
+is the
+.Fx
+facility for conducting performance measurements with hardware counters.
+.Ss Boot-Time And Shutdown Tracing
+.Xr boottrace 4
+is a facility for tracing events at boot and shutdown.
+Its target audience are system administrators.
+.Pp
+.Xr tslog 4
+is a developer-oriented tool for tracing boot-time events.
+.Sh HISTORY
+The
+.Nm
+manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
+It first appeared in
+.Fx 15.0 .
diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7
index f04500d0f0dc..ebba551f65d0 100644
--- a/share/man/man7/tuning.7
+++ b/share/man/man7/tuning.7
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 17, 2023
+.Dd January 23, 2025
.Dt TUNING 7
.Os
.Sh NAME
@@ -151,8 +151,7 @@ Striping can also improve
the performance of a file system by splitting I/O operations across two
or more disks.
The
-.Xr gstripe 8 ,
-.Xr gvinum 8 ,
+.Xr gstripe 8
and
.Xr ccdconfig 8
utilities may be used to create simple striped file systems.
@@ -504,29 +503,6 @@ The read-only
.Va kern.openfiles
sysctl may be interrogated to determine the current number of open files
on the system.
-.Pp
-The
-.Va vm.swap_idle_enabled
-sysctl is useful in large multi-user systems where you have lots of users
-entering and leaving the system and lots of idle processes.
-Such systems
-tend to generate a great deal of continuous pressure on free memory reserves.
-Turning this feature on and adjusting the swapout hysteresis (in idle
-seconds) via
-.Va vm.swap_idle_threshold1
-and
-.Va vm.swap_idle_threshold2
-allows you to depress the priority of pages associated with idle processes
-more quickly then the normal pageout algorithm.
-This gives a helping hand
-to the pageout daemon.
-Do not turn this option on unless you need it,
-because the tradeoff you are making is to essentially pre-page memory sooner
-rather than later, eating more swap and disk bandwidth.
-In a small system
-this option will have a detrimental effect but in a large system that is
-already doing moderate paging this option allows the VM system to stage
-whole processes into and out of memory more easily.
.Sh LOADER TUNABLES
Some aspects of the system behavior may not be tunable at runtime because
memory allocations they perform must occur early in the boot process.
@@ -695,10 +671,10 @@ over services you export from your box (web services, email).
.Xr ata 4 ,
.Xr dummynet 4 ,
.Xr eventtimers 4 ,
+.Xr ffs 4 ,
.Xr login.conf 5 ,
.Xr rc.conf 5 ,
.Xr sysctl.conf 5 ,
-.Xr ffs 7 ,
.Xr firewall 7 ,
.Xr hier 7 ,
.Xr ports 7 ,
@@ -710,7 +686,6 @@ over services you export from your box (web services, email).
.Xr gjournal 8 ,
.Xr gpart 8 ,
.Xr gstripe 8 ,
-.Xr gvinum 8 ,
.Xr ifconfig 8 ,
.Xr ipfw 8 ,
.Xr loader 8 ,
diff --git a/share/man/man8/Makefile b/share/man/man8/Makefile
index 1e2c22e97d8e..c408f1b65a80 100644
--- a/share/man/man8/Makefile
+++ b/share/man/man8/Makefile
@@ -1,6 +1,7 @@
-
.include <src.opts.mk>
+MANGROUPS= MAN
+
MAN= \
beinstall.8 \
crash.8 \
@@ -8,29 +9,32 @@ MAN= \
diskless.8 \
intro.8 \
nanobsd.8 \
- rc.8 \
- rc.subr.8 \
rescue.8 \
- ${_uefi.8} \
+ ${_uefi.8}
MLINKS= \
beinstall.8 beinstall.sh.8 \
- nanobsd.8 nanobsd.sh.8 \
- rc.8 rc.d.8 \
- rc.8 rc.firewall.8 \
- rc.8 rc.local.8 \
- rc.8 rc.network.8 \
- rc.8 rc.pccard.8 \
- rc.8 rc.resume.8 \
- rc.8 rc.serial.8 \
- rc.8 rc.shutdown.8
+ nanobsd.8 nanobsd.sh.8
+
+MANGROUPS+= RC
+RC= rc.8 rc.subr.8
+RCLINKS= rc.8 rc.d.8 \
+ rc.8 rc.firewall.8 \
+ rc.8 rc.local.8 \
+ rc.8 rc.network.8 \
+ rc.8 rc.pccard.8 \
+ rc.8 rc.resume.8 \
+ rc.8 rc.serial.8 \
+ rc.8 rc.shutdown.8
+RCPACKAGE= rc
.if ${MK_NIS} != "no"
-MAN+= yp.8
-
-MLINKS+=yp.8 NIS.8 \
- yp.8 nis.8 \
- yp.8 YP.8
+MANGROUPS+= YP
+YP= yp.8
+YPLINKS= yp.8 NIS.8 \
+ yp.8 nis.8 \
+ yp.8 YP.8
+YPPACKAGE= yp
.endif
# This makes more sense for aarch 64 and amd64
diff --git a/share/man/man8/crash.8 b/share/man/man8/crash.8
index 27c9c56533a5..fdb9b7213847 100644
--- a/share/man/man8/crash.8
+++ b/share/man/man8/crash.8
@@ -30,7 +30,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 23, 2011
+.Dd July 25, 2025
.Dt CRASH 8
.Os
.Sh NAME
@@ -71,18 +71,19 @@ Left unstated in all cases is the possibility that hardware or software
error produced the message in some unexpected way.
.Pp
.Bl -diag -compact
-.It "cannot mount root"
-This panic message results from a failure to mount the root file system
-during the bootstrap process.
-Either the root file system has been corrupted,
-or the system is attempting to use the wrong device as root file system.
-Usually, an alternate copy of the system binary or an alternate root
-file system can be used to bring up the system to investigate.
-Most often
-this is done by the use of the boot floppy you used to install the system,
-and then using the
-.Dq fixit
-floppy.
+.It Mounting from <device> failed with error <err>
+The system was unable to mount the configured root filesystem.
+Either the root filesystem has been corrupted,
+or the system is attempting to use the wrong device as root filesystem.
+.Pp
+This is not a panic message; rather it is followed by an interactive
+.Sy mountroot>
+prompt where the operator can list detected devices and filesystems,
+and select an alternative root filesystem to mount.
+Alternatively, the system can be booted from recovery media to repair
+the situation.
+The system install media provides a live environment which is suitable
+for this task.
.Pp
.It "init: not found"
This is not a panic message, as reboots are likely to be futile.
@@ -108,11 +109,6 @@ after a crash, hardware failures, or other condition that should not
normally occur.
A file system check will normally correct the problem.
.Pp
-.It "timeout table full"
-This really should not be a panic, but until the data structure
-involved is made to be extensible, running out of entries causes a crash.
-If this happens, make the timeout table bigger.
-.Pp
.\" .It "trap type %d, code = %x, v = %x"
.\" An unexpected trap has occurred within the system; the trap types are:
.\" .Bl -column xxxx -offset indent
diff --git a/share/man/man8/debug.sh.8 b/share/man/man8/debug.sh.8
index 2c137ff3fd42..bf0fdbd6bcf5 100644
--- a/share/man/man8/debug.sh.8
+++ b/share/man/man8/debug.sh.8
@@ -12,7 +12,7 @@
.\" Please send copies of changes and bug-fixes to:
.\" sjg@crufty.net
.\"
-.Dd January 31, 2024
+.Dd October 22, 2024
.Dt DEBUG.SH 8
.Os
.Sh NAME
@@ -30,6 +30,8 @@
.It
.Ic Debugging
.It
+.Ic DebugAdd Ar tag
+.It
.Ic DebugEcho Op Ar message
.It
.Ic DebugLog Op Ar message
@@ -99,7 +101,7 @@ are ignored, they just allow for symmetry with calls to
The optional
.Ar rc
value will be returned rather than the default of 0.
-Thus if
+Thus if
.Fn DebugOff
is the last operation in a function,
.Ar rc
@@ -110,6 +112,13 @@ It is useful for bounding complex debug actions, rather than
using lots of
.Ic $DEBUG_DO
lines.
+.It Ic DebugAdd Ar tag
+Add
+.Ar tag
+to
+.Va DEBUG_SH
+to influence later output,
+possibly in a child process.
.It Ic DebugEcho
is just shorthand for:
.Bd -literal -offset indent
diff --git a/share/man/man8/diskless.8 b/share/man/man8/diskless.8
index 8839e27e11ba..cc49854ae850 100644
--- a/share/man/man8/diskless.8
+++ b/share/man/man8/diskless.8
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 1994 Gordon W. Ross, Theo de Raadt
.\" Updated by Luigi Rizzo, Robert Watson
.\" All rights reserved.
@@ -24,12 +27,12 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd May 3, 2020
+.Dd August 11, 2024
.Dt DISKLESS 8
.Os
.Sh NAME
.Nm diskless
-.Nd booting a system over the network
+.Nd booting a system over the network with PXE
.Sh DESCRIPTION
The ability to boot a machine over the network is useful for
.Em diskless
diff --git a/share/man/man8/nanobsd.8 b/share/man/man8/nanobsd.8
index 140a63b3d2f3..838f9ddc9afa 100644
--- a/share/man/man8/nanobsd.8
+++ b/share/man/man8/nanobsd.8
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2006 Daniel Gerzo <danger@FreeBSD.org>
.\" All rights reserved.
.\"
@@ -22,16 +25,15 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 19, 2016
+.Dd July 14, 2025
.Dt NANOBSD 8
.Os
.Sh NAME
.Nm nanobsd.sh
-.Nd utility used to create a FreeBSD system image suitable for embedded
-applications
+.Nd create an embedded FreeBSD system image
.Sh SYNOPSIS
.Nm
-.Op Fl bfhiKknqvwX
+.Op Fl BbfhIiKknqvWwX
.Op Fl c Ar config-file
.Sh DESCRIPTION
The
@@ -47,6 +49,8 @@ installation and maintenance.
.Pp
The following options are available:
.Bl -tag -width ".Fl c Ar config-file" -offset indent
+.It Fl B
+Skip the install stages (both for kernel and world).
.It Fl b
Skip the build stages (both for kernel and world).
.It Fl c Ar config-file
@@ -55,6 +59,8 @@ Specify the configuration file to use.
Skip the code slice extraction.
.It Fl h
Display usage information.
+.It Fl I
+Build the disk image from an existing build/install.
.It Fl i
Skip the disk image build stage.
.It Fl K
@@ -75,13 +81,17 @@ used for each build stage (world and kernel).
Make output more quiet.
.It Fl v
Make output more verbose.
+.It Fl W
+Skip the
+.Cm installworld
+stage of the build.
.It Fl w
Skip the
.Cm buildworld
stage of the build.
.It Fl X
Make
-.Cm native-xtools.
+.Cm native-xtools .
.El
.Pp
The features of
diff --git a/share/man/man8/rc.8 b/share/man/man8/rc.8
index fda04bceaf4c..b7bd7b2de1f0 100644
--- a/share/man/man8/rc.8
+++ b/share/man/man8/rc.8
@@ -28,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 31, 2024
+.Dd September 20, 2024
.Dt RC 8
.Os
.Sh NAME
@@ -451,18 +451,6 @@ is not set, when going from single-user to multi-user mode for example,
the script does not do anything.
.Pp
The
-.Pa /etc/rc.d/local
-script can execute scripts from multiple
-.Nm rc.d/
-directories.
-The default location includes
-.Pa /usr/local/etc/rc.d/ ,
-but these may be overridden with the
-.Va local_startup
-.Xr rc.conf 5
-variable.
-.Pp
-The
.Pa /etc/rc.d/serial
script is used to set any special configurations for serial devices.
.Pp
diff --git a/share/man/man8/rc.subr.8 b/share/man/man8/rc.subr.8
index 0906ecb2e787..1fd5041cecd8 100644
--- a/share/man/man8/rc.subr.8
+++ b/share/man/man8/rc.subr.8
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 10, 2024
+.Dd October 23, 2024
.Dt RC.SUBR 8
.Os
.Sh NAME
@@ -73,7 +73,7 @@
.It
.Ic rc_log Ar message
.It
-.It rc_trace Ar level Ar message
+.Ic rc_trace Ar level Ar message
.It
.Ic rc_usage Ar command ...
.It
@@ -134,7 +134,7 @@ The
.Ar action
argument
may be one of the following:
-.Bl -tag -width ".Cm remove"
+.Bl -tag -width "remove"
.It Cm add
.Ar file
is now being backed up by or possibly re-entered into this backup mechanism.
@@ -487,7 +487,7 @@ scripts to be implemented in a small amount of shell code.
.Ar argument
is searched for in the list of supported commands, which may be one
of:
-.Bl -tag -width ".Cm restart" -offset indent
+.Bl -tag -width "restart" -offset indent
.It Cm start
Start the service.
This should check that the service is to be started as specified by
@@ -523,7 +523,7 @@ If
or
.Va procname
is set, also support:
-.Bl -tag -width ".Cm restart" -offset indent
+.Bl -tag -width "status" -offset indent
.It Cm poll
Wait for the command to exit.
.It Cm status
@@ -535,7 +535,7 @@ Other supported commands are listed in the optional variable
.Pp
.Ar argument
may have one of the following prefixes which alters its operation:
-.Bl -tag -width ".Li force" -offset indent
+.Bl -tag -width "force" -offset indent
.It Li fast
Skip the check for an existing running process,
and sets
@@ -579,7 +579,7 @@ but only certain small classes of them.
.Ic run_rc_command
uses the following shell variables to control its behaviour.
Unless otherwise stated, these are optional.
-.Bl -tag -width ".Va procname" -offset indent
+.Bl -tag -width "procname" -offset indent
.It Va name
The name of this script.
This is not optional.
@@ -773,6 +773,8 @@ Login class to use with
.Va ${name}_limits .
Defaults to
.Dq Li daemon .
+.It Va ${name}_offcmd
+Shell commands to run during start if a service is not enabled.
.It Va ${name}_oomprotect
.Xr protect 1
.Va command
@@ -826,8 +828,15 @@ This is a generic version of
or
.Va ${name}_nice .
.It Va ${name}_setup
-Command to be run prior to
-.Va command .
+Optional command to be run during
+.Cm start ,
+.Cm restart ,
+and
+.Cm reload
+prior to the respective
+.Ar argument Ns Va _precmd .
+If the command fails for any reason it will output a warning,
+but execution will continue.
.It Ar argument Ns Va _cmd
Shell commands which override the default method for
.Ar argument .
@@ -867,17 +876,16 @@ if
.Ar argument Ns Va _cmd
is not defined, then a default method is provided by
.Ic run_rc_command :
-.Bl -tag -width ".Sy Argument" -offset indent
-.It Sy Argument
-.Sy Default method
-.It Cm start
+.Bl -column "Argument" "Default Method" -offset indent
+.It Sy Argument Ta Sy Default method
+.It Cm start Ta
If
.Va command
is not running and
.Ic checkyesno Va rcvar
succeeds, start
.Va command .
-.It Cm stop
+.It Cm stop Ta
Determine the PIDs of
.Va command
with
@@ -889,7 +897,7 @@ or
those PIDs, and run
.Ic wait_for_pids
on those PIDs.
-.It Cm reload
+.It Cm reload Ta
Similar to
.Cm stop ,
except that it uses
@@ -906,21 +914,21 @@ It can be enabled via
if appropriate:
.Pp
.Dl "extra_commands=reload"
-.It Cm restart
+.It Cm restart Ta
Runs the
.Cm stop
method, then the
.Cm start
method.
-.It Cm status
+.It Cm status Ta
Show the PID of
.Va command ,
or some other script specific status operation.
-.It Cm poll
+.It Cm poll Ta
Wait for
.Va command
to exit.
-.It Cm rcvar
+.It Cm rcvar Ta
Display which
.Xr rc.conf 5
variable is used (if any).
@@ -936,7 +944,7 @@ The following variables are available to the methods
as well as after
.Ic run_rc_command
has completed:
-.Bl -tag -width ".Va rc_service" -offset indent
+.Bl -tag -width "rc_service" -offset indent
.It Va rc_arg
Argument provided to
.Ic run_rc_command ,
@@ -1009,41 +1017,27 @@ and
to enable tracing if any of those tags appear in
.Va DEBUG_SH .
.Pp
-The startup behaviour of
+.Ic run_rc_script
+executes
.Ar file
-depends upon the following checks:
+unless:
.Bl -enum
.It
-If
.Ar file
ends in
-.Pa .sh ,
-it is sourced into the current shell.
+.Pa .sh
+and lives in
+.Pa /etc/rc.d .
.It
-If
.Ar file
appears to be a backup or scratch file
-(e.g., with a suffix of
-.Pa ~ , # , .OLD ,
+.Po e.g., with a suffix of
+.Pa ~ , # , .OLD , ,v ,
or
-.Pa .orig ) ,
-ignore it.
+.Pa .orig Pc .
.It
-If
.Ar file
-is not executable, ignore it.
-.It
-If the
-.Xr rc.conf 5
-variable
-.Va rc_fast_and_loose
-is empty,
-source
-.Ar file
-in a sub shell,
-otherwise source
-.Ar file
-into the current shell.
+is not executable.
.El
.It Ic run_rc_scripts Oo options Oc file ...
Call
@@ -1164,7 +1158,7 @@ and then
.Ar message .
.El
.Sh FILES
-.Bl -tag -width ".Pa /etc/rc.subr" -compact
+.Bl -tag -width "/etc/rc.subr" -compact
.It Pa /etc/rc.subr
The
.Nm
@@ -1172,8 +1166,8 @@ file resides in
.Pa /etc .
.El
.Sh SEE ALSO
-.Xr debug.sh 8 ,
.Xr rc.conf 5 ,
+.Xr debug.sh 8 ,
.Xr rc 8
.Sh HISTORY
The
diff --git a/share/man/man8/uefi.8 b/share/man/man8/uefi.8
index 42642bb48260..e29bed134850 100644
--- a/share/man/man8/uefi.8
+++ b/share/man/man8/uefi.8
@@ -45,7 +45,7 @@ The
boot process loads system bootstrap code located in an EFI System Partition
(ESP).
The ESP is a GPT or MBR partition with a specific identifier that contains an
-.Xr msdosfs 5
+.Xr msdosfs 4
FAT file system with a specified file hierarchy.
.Bl -column -offset indent "Partition Scheme" "ESP Identifier"
.It Sy "Partition Scheme" Ta Sy "ESP Identifier"
@@ -108,9 +108,9 @@ Default kernel
Typical non-default kernel (optional)
.El
.Sh SEE ALSO
+.Xr msdosfs 4 ,
.Xr vt 4 ,
.Xr boot.config 5 ,
-.Xr msdosfs 5 ,
.Xr boot 8 ,
.Xr efibootmgr 8 ,
.Xr efidp 8 ,
@@ -126,7 +126,7 @@ boot support for amd64 first appeared in
.Fx 10.1 ;
for arm64 in
.Fx 11.0 ;
-for armv6 and armv7 in
+for armv7 in
.Fx 12.0 ;
and for riscv in
.Fx 13.0 .
diff --git a/share/man/man9/BUS_CHILD_DETACHED.9 b/share/man/man9/BUS_CHILD_DETACHED.9
index 4cc00a49465b..8b59d1362d3d 100644
--- a/share/man/man9/BUS_CHILD_DETACHED.9
+++ b/share/man/man9/BUS_CHILD_DETACHED.9
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 21, 2012
+.Dd January 9, 2025
.Dt BUS_CHILD_DETACHED 9
.Os
.Sh NAME
@@ -39,7 +39,10 @@
.Sh DESCRIPTION
The
.Fn BUS_CHILD_DETACHED
-method is invoked by the new-bus framework after a device is detached.
+method is invoked by the new-bus framework after a device is detached
+or if a driver's attach routine
+.Pq see Xr DEVICE_ATTACH 9
+fails.
A bus driver can provide an implementation of this method to
reclaim any resources allocated on behalf of the child or
to cleanup state not properly released by a
diff --git a/share/man/man9/BUS_CONFIG_INTR.9 b/share/man/man9/BUS_CONFIG_INTR.9
index cf6ecbb4b823..aaeb6c3ec089 100644
--- a/share/man/man9/BUS_CONFIG_INTR.9
+++ b/share/man/man9/BUS_CONFIG_INTR.9
@@ -23,12 +23,13 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 15, 2017
+.Dd January 16, 2025
.Dt BUS_CONFIG_INTR 9
.Os
.\"
.Sh NAME
-.Nm BUS_CONFIG_INTR
+.Nm BUS_CONFIG_INTR ,
+.Nm bus_config_intr
.Nd "configure interrupt polarity and trigger mode"
.\"
.Sh SYNOPSIS
@@ -36,9 +37,13 @@
.In sys/bus.h
.Ft int
.Fo BUS_CONFIG_INTR
+.Fa "device_t bus" "device_t dev" "int irq" "enum intr_trigger trig"
+.Fa "enum intr_polarity pol"
+.Fc
+.Ft int
+.Fo bus_config_intr
.Fa "device_t dev" "int irq" "enum intr_trigger trig" "enum intr_polarity pol"
.Fc
-.\"
.Sh DESCRIPTION
The
.Fn BUS_CONFIG_INTR
@@ -53,6 +58,11 @@ that it is called prior to
.Xr BUS_SETUP_INTR 9 .
.Pp
The
+.Fn bus_config_intr
+function is a simple wrapper around
+.Fn BUS_CONFIG_INTR .
+.Pp
+The
.Fa trig
argument can be one of:
.Bl -tag -width ".Dv INTR_TRIGGER_CONFORM"
diff --git a/share/man/man9/BUS_HINTED_CHILD.9 b/share/man/man9/BUS_HINTED_CHILD.9
new file mode 100644
index 000000000000..860ee3a995e3
--- /dev/null
+++ b/share/man/man9/BUS_HINTED_CHILD.9
@@ -0,0 +1,37 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 John Baldwin <jhb@FreeBSD.org>
+.Dd February 5, 2025
+.Dt BUS_HINTED_CHILD 9
+.Os
+.Sh NAME
+.Nm BUS_HINTED_CHILD
+.Nd notify a bus device about a potential child device identified by hints
+.Sh SYNOPSIS
+.In sys/param.h
+.In sys/bus.h
+.Ft void
+.Fn BUS_HINTED_CHILD "device_t dev" "const char *dname" "int dunit"
+.Sh DESCRIPTION
+The
+.Fn BUS_HINTED_CHILD
+method is invoked by the
+.Xr bus_enumerate_hinted_children 9
+function for each set of named hints whose
+.Dq at
+hint matches the bus device
+.Fa dev .
+Typically, this method should determine if the set of hints for the given
+device name and unit sufficiently describe a new device.
+If so, a new device should be added via
+.Xr BUS_ADD_CHILD 9 .
+.Sh SEE ALSO
+.Xr BUS_ADD_CHILD 9 ,
+.Xr bus_enumerate_hinted_children 9 ,
+.Xr device 9
+.Sh HISTORY
+The
+.Fn BUS_HINTED_CHILD
+method first appeared in
+.Fx 6.2 .
diff --git a/share/man/man9/DEVICE_ATTACH.9 b/share/man/man9/DEVICE_ATTACH.9
index 0946e1f13b7c..8e7c46252a6f 100644
--- a/share/man/man9/DEVICE_ATTACH.9
+++ b/share/man/man9/DEVICE_ATTACH.9
@@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 15, 2017
+.Dd February 5, 2025
.Dt DEVICE_ATTACH 9
.Os
.Sh NAME
@@ -46,19 +46,20 @@ The
.Fn DEVICE_ATTACH
method should initialize the hardware and allocate other
system resources (such as
-.Xr devfs 5
+.Xr devfs 4
entries).
.Pp
Devices which implement buses should use this method to probe for
the existence of devices attached to the bus and add them as
children.
If this is combined with the use of
-.Xr bus_generic_attach 9
+.Xr bus_attach_children 9
the child devices will be automatically probed and attached.
.Sh RETURN VALUES
Zero is returned on success, otherwise an appropriate error is returned.
.Sh SEE ALSO
-.Xr devfs 5 ,
+.Xr devfs 4 ,
+.Xr bus_attach_children 9 ,
.Xr device 9 ,
.Xr DEVICE_DETACH 9 ,
.Xr DEVICE_IDENTIFY 9 ,
diff --git a/share/man/man9/DEVICE_IDENTIFY.9 b/share/man/man9/DEVICE_IDENTIFY.9
index 4892e66eb214..31063ae60dff 100644
--- a/share/man/man9/DEVICE_IDENTIFY.9
+++ b/share/man/man9/DEVICE_IDENTIFY.9
@@ -26,44 +26,46 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 15, 2017
+.Dd February 5, 2025
.Dt DEVICE_IDENTIFY 9
.Os
.Sh NAME
.Nm DEVICE_IDENTIFY
-.Nd identify a device, register it
+.Nd identify new child devices and register them
.Sh SYNOPSIS
.In sys/param.h
.In sys/bus.h
.Ft void
.Fn DEVICE_IDENTIFY "driver_t *driver" "device_t parent"
.Sh DESCRIPTION
-The identify function for a device is only needed for devices on buses
-that cannot identify their children independently, e.g.\& the ISA bus.
-It is used to recognize the device (usually done by accessing non-ambiguous
-registers in the hardware) and to tell the kernel about it and thus
-creating a new device instance.
+The identify method of a device driver is used to add devices that cannot be
+enumerated by the standard method on a bus device.
+Devices can be enumerated in various ways including accessing non-ambiguous
+device registers and parsing firmware tables.
+Software-only pseudo devices are also often enumerated via identify methods.
.Pp
+For each newly identified device,
+a new device instance should be created by invoking the
.Xr BUS_ADD_CHILD 9
-is used to register the device as a child of the bus.
-The device's resources (such as IRQ and I/O ports) are registered
-with the kernel by calling
-.Fn bus_set_resource
-for each resource (refer to
+method.
+If the identify method is able to discover other properties about the new
+device, those should also be set.
+For example, device resources should be added to the device by calling
.Xr bus_set_resource 9
-for more information).
+for each resource.
.Pp
-Since the device tree and the device driver tree are disjoint, the
-.Fn DEVICE_IDENTIFY
-routine needs to take this into account.
-If you load and unload your device driver that has the identify
-routine, the child node has the potential for adding the same node
-multiple times unless specific measure are taken to preclude that
-possibility.
+An identify method might be invoked multiple times.
+If a device driver is unloaded and loaded,
+the identify method will be called a second time after being reloaded.
+As a result, the identify method should avoid duplicate devices.
+Devices added by identify methods typically use a fixed device name
+in which case
+.Xr device_find_child 9
+can be used to detect existing devices.
.Sh EXAMPLES
The following pseudo-code shows an example of a function that
probes for a piece of hardware and registers it and its resource
-(an I/O port) with the kernel.
+(an I/O port) with the parent bus device.
.Bd -literal
void
foo_identify(driver_t *driver, device_t parent)
@@ -72,21 +74,18 @@ foo_identify(driver_t *driver, device_t parent)
retrieve_device_information;
if (devices matches one of your supported devices &&
- not already in device tree) {
- child = BUS_ADD_CHILD(parent, 0, "foo", -1);
+ device_get_child(parent, "foo", DEVICE_UNIT_ANY) == NULL) {
+ child = BUS_ADD_CHILD(parent, 0, "foo", DEVICE_UNIT_ANY);
bus_set_resource(child, SYS_RES_IOPORT, 0, FOO_IOADDR, 1);
}
}
.Ed
.Sh SEE ALSO
.Xr BUS_ADD_CHILD 9 ,
+.Xr bus_identify_children 9 ,
.Xr bus_set_resource 9 ,
.Xr device 9 ,
-.Xr device_add_child 9 ,
-.Xr DEVICE_ATTACH 9 ,
-.Xr DEVICE_DETACH 9 ,
-.Xr DEVICE_PROBE 9 ,
-.Xr DEVICE_SHUTDOWN 9
+.Xr device_find_child 9
.Sh AUTHORS
This manual page was written by
.An Alexander Langer Aq Mt alex@FreeBSD.org .
diff --git a/share/man/man9/MD5.9 b/share/man/man9/MD5.9
deleted file mode 100644
index 4418cc40b976..000000000000
--- a/share/man/man9/MD5.9
+++ /dev/null
@@ -1,76 +0,0 @@
-.\" $OpenBSD: md5.9,v 1.1 1996/04/17 21:40:14 mickey Exp $
-.\"
-.\" Copyright (c) 1996 Michael Shalayeff
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Michael Shalayeff
-.\" 3. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd April 17, 1996
-.Dt MD5 9
-.Os
-.Sh NAME
-.Nm MD5 ,
-.Nm MD5Init ,
-.Nm MD5Transform
-.Nd message digest routines
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/md5.h
-.Ft void
-.Fn MD5Init "MD5_CTX *buf"
-.Ft void
-.Fn MD5Transform "uint32_t buf[4]" "const unsigned char block[64]"
-.Sh DESCRIPTION
-The
-.Nm
-module implements the RSA Data Security, Inc.\& MD5 Message-Digest Algorithm
-(MD5).
-It produces 128-bit MD5 Digest of data.
-.Bl -hang -width MD5Transformxxx
-.It Pa MD5Init
-must be called just before
-.Fn MD5Transform
-will be used to produce a digest.
-The
-.Fa buf
-argument is the storage for the digest being produced on subsequent
-calls to the
-.Fn MD5Transform
-routine.
-.It Pa MD5Transform
-is the core of the MD5 algorithm, this alters an existing MD5 hash
-kept in
-.Fa buf
-to reflect the addition of 64 characters
-of new data passed in
-.Fa block
-argument.
-.El
-.Sh COPYRIGHTS
-The code for MD5 transform was taken from Colin Plumb's
-implementation, which has been placed in the public domain.
-The MD5 cryptographic checksum was devised by Ronald Rivest, and is
-documented in RFC 1321, "The MD5 Message Digest Algorithm".
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index dfc9bd996504..5bcde3030ebc 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -1,6 +1,7 @@
-
.include <src.opts.mk>
+PACKAGE= kernel
+
MAN= accept_filter.9 \
accf_data.9 \
accf_dns.9 \
@@ -29,6 +30,7 @@ MAN= accept_filter.9 \
BUS_ADD_CHILD.9 \
bus_adjust_resource.9 \
bus_alloc_resource.9 \
+ bus_attach_children.9 \
BUS_BIND_INTR.9 \
bus_child_present.9 \
BUS_CHILD_DELETED.9 \
@@ -36,10 +38,8 @@ MAN= accept_filter.9 \
BUS_CHILD_LOCATION.9 \
BUS_CHILD_PNPINFO.9 \
BUS_CONFIG_INTR.9 \
- bus_delayed_attach_children.9 \
BUS_DESCRIBE_INTR.9 \
bus_dma.9 \
- bus_generic_attach.9 \
bus_generic_detach.9 \
bus_generic_new_pass.9 \
bus_generic_print_child.9 \
@@ -48,6 +48,7 @@ MAN= accept_filter.9 \
BUS_GET_CPUS.9 \
BUS_GET_PROPERTY.9 \
bus_get_resource.9 \
+ BUS_HINTED_CHILD.9 \
bus_map_resource.9 \
BUS_NEW_PASS.9 \
BUS_PRINT_CHILD.9 \
@@ -62,12 +63,15 @@ MAN= accept_filter.9 \
callout.9 \
casuword.9 \
cd.9 \
+ cdefs.9 \
cnv.9 \
condvar.9 \
config_intrhook.9 \
contigmalloc.9 \
copy.9 \
+ coredumper_register.9 \
counter.9 \
+ cpu_machdep.9 \
cpuset.9 \
cr_bsd_visible.9 \
cr_cansee.9 \
@@ -218,7 +222,6 @@ MAN= accept_filter.9 \
mbchain.9 \
mbuf.9 \
mbuf_tags.9 \
- MD5.9 \
mdchain.9 \
memcchr.9 \
memguard.9 \
@@ -393,7 +396,6 @@ MAN= accept_filter.9 \
vm_map_max.9 \
vm_map_protect.9 \
vm_map_remove.9 \
- vm_map_simplify_entry.9 \
vm_map_stack.9 \
vm_map_submap.9 \
vm_map_sync.9 \
@@ -435,6 +437,7 @@ MAN= accept_filter.9 \
VOP_GETEXTATTR.9 \
VOP_GETPAGES.9 \
VOP_INACTIVE.9 \
+ VOP_INOTIFY.9 \
VOP_IOCTL.9 \
VOP_LINK.9 \
VOP_LISTEXTATTR.9 \
@@ -672,7 +675,12 @@ MLINKS+=buf_ring.9 buf_ring_alloc.9 \
buf_ring.9 buf_ring_peek.9
MLINKS+=bus_activate_resource.9 bus_deactivate_resource.9
MLINKS+=bus_alloc_resource.9 bus_alloc_resource_any.9
+MLINKS+=bus_attach_children.9 bus_delayed_attach_children.9 \
+ bus_attach_children.9 bus_detach_children.9 \
+ bus_attach_children.9 bus_enumerate_hinted_children.9 \
+ bus_attach_children.9 bus_identify_children.9
MLINKS+=BUS_BIND_INTR.9 bus_bind_intr.9
+MLINKS+=BUS_CONFIG_INTR.9 bus_config_intr.9
MLINKS+=BUS_DESCRIBE_INTR.9 bus_describe_intr.9
MLINKS+=bus_dma.9 busdma.9 \
bus_dma.9 bus_dmamap_create.9 \
@@ -691,6 +699,9 @@ MLINKS+=bus_dma.9 busdma.9 \
bus_dma.9 bus_dmamem_free.9 \
bus_dma.9 bus_dma_tag_create.9 \
bus_dma.9 bus_dma_tag_destroy.9
+MLINKS+=bus_generic_print_child.9 bus_print_child_domain.9 \
+ bus_generic_print_child.9 bus_print_child_footer.9 \
+ bus_generic_print_child.9 bus_print_child_header.9
MLINKS+=bus_generic_read_ivar.9 bus_generic_write_ivar.9
MLINKS+=BUS_GET_CPUS.9 bus_get_cpus.9
MLINKS+=bus_map_resource.9 bus_unmap_resource.9 \
@@ -885,8 +896,7 @@ MLINKS+=config_intrhook.9 config_intrhook_disestablish.9 \
config_intrhook.9 config_intrhook_drain.9 \
config_intrhook.9 config_intrhook_establish.9 \
config_intrhook.9 config_intrhook_oneshot.9
-MLINKS+=contigmalloc.9 contigmalloc_domainset.9 \
- contigmalloc.9 contigfree.9
+MLINKS+=contigmalloc.9 contigmalloc_domainset.9
MLINKS+=casuword.9 casueword.9 \
casuword.9 casueword32.9 \
casuword.9 casuword32.9
@@ -896,6 +906,7 @@ MLINKS+=copy.9 copyin.9 \
copy.9 copyout.9 \
copy.9 copyout_nofault.9 \
copy.9 copystr.9
+MLINKS+=coredumper_register.9 coredumper_unregister.9
MLINKS+=counter.9 counter_u64_alloc.9 \
counter.9 counter_u64_free.9 \
counter.9 counter_u64_add.9 \
@@ -909,6 +920,27 @@ MLINKS+=counter.9 counter_u64_alloc.9 \
counter.9 SYSCTL_ADD_COUNTER_U64.9 \
counter.9 SYSCTL_COUNTER_U64_ARRAY.9 \
counter.9 SYSCTL_ADD_COUNTER_U64_ARRAY.9
+MLINKS+=cpu_machdep.9 cpu_copy_thread.9 \
+ cpu_machdep.9 cpu_exec_vmspace_reuse.9 \
+ cpu_machdep.9 cpu_exit.9 \
+ cpu_machdep.9 cpu_fetch_syscall_args.9 \
+ cpu_machdep.9 cpu_fork.9 \
+ cpu_machdep.9 cpu_fork_kthread_handler.9 \
+ cpu_machdep.9 cpu_idle.9 \
+ cpu_machdep.9 cpu_idle_wakeup.9 \
+ cpu_machdep.9 cpu_procctl.9 \
+ cpu_machdep.9 cpu_ptrace.9 \
+ cpu_machdep.9 cpu_set_syscall_retval.9 \
+ cpu_machdep.9 cpu_set_upcall.9 \
+ cpu_machdep.9 cpu_set_user_tls.9 \
+ cpu_machdep.9 cpu_switch.9 \
+ cpu_machdep.9 cpu_sync_core.9 \
+ cpu_machdep.9 cpu_thread_alloc.9 \
+ cpu_machdep.9 cpu_thread_clean.9 \
+ cpu_machdep.9 cpu_thread_exit.9 \
+ cpu_machdep.9 cpu_thread_free.9 \
+ cpu_machdep.9 cpu_throw.9 \
+ cpu_machdep.9 cpu_update_pcb.9
MLINKS+=cpuset.9 CPUSET_T_INITIALIZER.9 \
cpuset.9 CPUSET_FSET.9 \
cpuset.9 CPU_CLR.9 \
@@ -1020,6 +1052,9 @@ MLINKS+=device_set_desc.9 device_get_desc.9 \
device_set_desc.9 device_set_descf.9 \
device_set_desc.9 device_set_desc_copy.9
MLINKS+=device_set_flags.9 device_get_flags.9
+MLINKS+=device_probe_and_attach.9 device_attach.9 \
+ device_probe_and_attach.9 device_detach.9 \
+ device_probe_and_attach.9 device_probe.9
MLINKS+=devstat.9 devicestat.9 \
devstat.9 devstat_new_entry.9 \
devstat.9 devstat_end_transaction.9 \
@@ -1336,13 +1371,15 @@ MLINKS+=ifnet.9 if_addmulti.9 \
ifnet.9 ifa_ifwithnet.9 \
ifnet.9 ifa_ref.9 \
ifnet.9 ifaddr.9 \
- ifnet.9 ifaddr_byindex.9 \
ifnet.9 ifaof_ifpforaddr.9 \
ifnet.9 ifioctl.9 \
ifnet.9 ifpromisc.9 \
ifnet.9 ifqueue.9 \
ifnet.9 ifunit.9 \
ifnet.9 ifunit_ref.9
+# IfAPI
+MLINKS+=ifnet.9 ifapi.9
+
MLINKS+=insmntque.9 insmntque1.9
MLINKS+=intr_event.9 intr_event_add_handler.9 \
intr_event.9 intr_event_create.9 \
@@ -1431,9 +1468,14 @@ MLINKS+=lock.9 lockdestroy.9 \
lock.9 lockmgr_args_rw.9 \
lock.9 lockmgr_assert.9 \
lock.9 lockmgr_disown.9 \
+ lock.9 lockmgr_disowned.9 \
+ lock.9 lockmgr_lock_flags.9 \
lock.9 lockmgr_printinfo.9 \
lock.9 lockmgr_recursed.9 \
lock.9 lockmgr_rw.9 \
+ lock.9 lockmgr_slock.9 \
+ lock.9 lockmgr_unlock.9 \
+ lock.9 lockmgr_xlock.9 \
lock.9 lockstatus.9
MLINKS+=LOCK_PROFILING.9 MUTEX_PROFILING.9
MLINKS+=make_dev.9 destroy_dev.9 \
@@ -1542,8 +1584,6 @@ MLINKS+=\
mbuf_tags.9 m_tag_next.9 \
mbuf_tags.9 m_tag_prepend.9 \
mbuf_tags.9 m_tag_unlink.9
-MLINKS+=MD5.9 MD5Init.9 \
- MD5.9 MD5Transform.9
MLINKS+=mdchain.9 md_append_record.9 \
mdchain.9 md_done.9 \
mdchain.9 md_get_int64.9 \
@@ -1573,8 +1613,6 @@ MLINKS+=microuptime.9 binuptime.9 \
microuptime.9 getsbinuptime.9 \
microuptime.9 nanouptime.9 \
microuptime.9 sbinuptime.9
-MLINKS+=mi_switch.9 cpu_switch.9 \
- mi_switch.9 cpu_throw.9
MLINKS+=mod_cc.9 CCV.9 \
mod_cc.9 DECLARE_CC_MODULE.9
MLINKS+=mtx_pool.9 mtx_pool_alloc.9 \
@@ -1605,7 +1643,8 @@ MLINKS+=mutex.9 mtx_assert.9 \
mutex.9 mtx_unlock_flags.9 \
mutex.9 mtx_unlock_spin.9 \
mutex.9 mtx_unlock_spin_flags.9
-MLINKS+=namei.9 NDFREE.9 \
+MLINKS+=namei.9 NDFREE_PNBUF.9 \
+ namei.9 NDINIT_AT.9 \
namei.9 NDINIT.9
MLINKS+=netisr.9 netisr_clearqdrops.9 \
netisr.9 netisr_default_flow2cpu.9 \
@@ -1756,10 +1795,12 @@ MLINKS+=panic.9 vpanic.9 \
panic.9 KERNEL_PANICKED.9
MLINKS+=pci.9 pci_alloc_msi.9 \
pci.9 pci_alloc_msix.9 \
+ pci.9 pci_clear_pme.9 \
pci.9 pci_disable_busmaster.9 \
pci.9 pci_disable_io.9 \
pci.9 pci_enable_busmaster.9 \
pci.9 pci_enable_io.9 \
+ pci.9 pci_enable_pme.9 \
pci.9 pci_find_bsf.9 \
pci.9 pci_find_cap.9 \
pci.9 pci_find_dbsf.9 \
@@ -1772,6 +1813,7 @@ MLINKS+=pci.9 pci_alloc_msi.9 \
pci.9 pci_get_powerstate.9 \
pci.9 pci_get_vpd_ident.9 \
pci.9 pci_get_vpd_readonly.9 \
+ pci.9 pci_has_pm.9 \
pci.9 pci_iov_attach.9 \
pci.9 pci_iov_attach_name.9 \
pci.9 pci_iov_detach.9 \
@@ -2244,6 +2286,7 @@ MLINKS+=taskqueue.9 TASK_INIT.9 \
taskqueue.9 taskqueue_drain_timeout.9 \
taskqueue.9 taskqueue_enqueue.9 \
taskqueue.9 taskqueue_enqueue_timeout.9 \
+ taskqueue.9 taskqueue_enqueue_timeout_sbt.9 \
taskqueue.9 TASKQUEUE_FAST_DEFINE.9 \
taskqueue.9 TASKQUEUE_FAST_DEFINE_THREAD.9 \
taskqueue.9 taskqueue_free.9 \
@@ -2378,8 +2421,6 @@ MLINKS+=vm_page_alloc.9 vm_page_alloc_after.9 \
vm_page_alloc.9 vm_page_alloc_contig_domain.9 \
vm_page_alloc.9 vm_page_alloc_domain.9 \
vm_page_alloc.9 vm_page_alloc_domain_after.9 \
- vm_page_alloc.9 vm_page_alloc_freelist.9 \
- vm_page_alloc.9 vm_page_alloc_freelist_domain.9 \
vm_page_alloc.9 vm_page_alloc_noobj.9 \
vm_page_alloc.9 vm_page_alloc_noobj_contig.9 \
vm_page_alloc.9 vm_page_alloc_noobj_contig_domain.9 \
@@ -2424,6 +2465,7 @@ MLINKS+=VOP_CREATE.9 VOP_MKDIR.9 \
MLINKS+=VOP_FSYNC.9 VOP_FDATASYNC.9
MLINKS+=VOP_GETPAGES.9 VOP_PUTPAGES.9
MLINKS+=VOP_INACTIVE.9 VOP_RECLAIM.9
+MLINKS+=VOP_INOTIFY.9 VOP_INOTIFY_ADD_WATCH.9
MLINKS+=VOP_LOCK.9 vn_lock.9 \
VOP_LOCK.9 VOP_ISLOCKED.9 \
VOP_LOCK.9 VOP_UNLOCK.9
diff --git a/share/man/man9/OF_device_from_xref.9 b/share/man/man9/OF_device_from_xref.9
index 85a19df6641b..0b858866b654 100644
--- a/share/man/man9/OF_device_from_xref.9
+++ b/share/man/man9/OF_device_from_xref.9
@@ -23,19 +23,22 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 9, 2018
+.Dd April 3, 2025
.Dt OF_DEVICE_FROM_XREF 9
.Os
.Sh NAME
.Nm OF_device_from_xref ,
.Nm OF_xref_from_device ,
.Nm OF_device_register_xref
+.Nm OF_device_unregister_xref
.Nd "manage mappings between xrefs and devices"
.Sh SYNOPSIS
.In dev/ofw/ofw_bus.h
.In dev/ofw/ofw_bus_subr.h
.Ft int
.Fn OF_device_register_xref "phandle_t xref" "device_t dev"
+.Ft void
+.Fn OF_device_unregister_xref "phandle_t xref" "device_t dev"
.Ft device_t
.Fn OF_device_from_xref "phandle_t xref"
.Ft phandle_t
@@ -57,6 +60,15 @@ If a mapping entry for
already exists, it is replaced with the new one.
The function always returns 0.
.Pp
+.Fn OF_device_unregister_xref
+removes a map entry from the effective phandle
+.Fa xref
+to device
+.Fa dev .
+If a mapping entry for
+.Fa xref
+does not exists, it silently returns.
+.Pp
.Fn OF_device_from_xref
returns a device_t instance associated with the effective phandle
.Fa xref .
diff --git a/share/man/man9/OF_node_from_xref.9 b/share/man/man9/OF_node_from_xref.9
index bd5e2bcab68f..755c82951382 100644
--- a/share/man/man9/OF_node_from_xref.9
+++ b/share/man/man9/OF_node_from_xref.9
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2018 Oleksandr Tymoshenko <gonzo@FreeBSD.org>
.\"
.\" All rights reserved.
@@ -70,9 +72,9 @@ If one cannot be found or the OpenFirmware implementation
does not support effective phandles, the function returns
the input value.
.Pp
-.Fn OF_xref_from_xref
+.Fn OF_xref_from_node
returns the effective phandle for the kernel phandle
-.Fa xref .
+.Fa node .
If one cannot be found or the OpenFirmware implementation
does not support effective phandles, the function returns
the input value.
diff --git a/share/man/man9/PCI_IOV_ADD_VF.9 b/share/man/man9/PCI_IOV_ADD_VF.9
index d13cb6e1ddc9..512b0b8668cc 100644
--- a/share/man/man9/PCI_IOV_ADD_VF.9
+++ b/share/man/man9/PCI_IOV_ADD_VF.9
@@ -31,7 +31,7 @@
.Nd inform a PF driver that a VF is being created
.Sh SYNOPSIS
.In sys/bus.h
-.In machine/stdarg.h
+.In sys/stdarg.h
.In sys/nv.h
.In dev/pci/pci_iov.h
.Ft int
diff --git a/share/man/man9/PCI_IOV_INIT.9 b/share/man/man9/PCI_IOV_INIT.9
index 66b1e693cedb..8ce94800f6d1 100644
--- a/share/man/man9/PCI_IOV_INIT.9
+++ b/share/man/man9/PCI_IOV_INIT.9
@@ -31,7 +31,7 @@
.Nd enable SR-IOV on a PF device
.Sh SYNOPSIS
.In sys/bus.h
-.In machine/stdarg.h
+.In sys/stdarg.h
.In sys/nv.h
.In dev/pci/pci_iov.h
.Ft int
diff --git a/share/man/man9/VOP_ADVISE.9 b/share/man/man9/VOP_ADVISE.9
index 3decc0c2eac8..c6e8791615ce 100644
--- a/share/man/man9/VOP_ADVISE.9
+++ b/share/man/man9/VOP_ADVISE.9
@@ -39,7 +39,7 @@
.Sh DESCRIPTION
This call applies advice for a range of a file's data.
It is used to implement the
-.Xr posix_fadvise
+.Xr posix_fadvise 2
system call.
.Pp
Its arguments are:
diff --git a/share/man/man9/VOP_ALLOCATE.9 b/share/man/man9/VOP_ALLOCATE.9
index fce2ea183273..4fcbe773f236 100644
--- a/share/man/man9/VOP_ALLOCATE.9
+++ b/share/man/man9/VOP_ALLOCATE.9
@@ -45,7 +45,7 @@
.Sh DESCRIPTION
This call allocates storage for a range of offsets in a file.
It is used to implement the
-.Xr posix_fallocate
+.Xr posix_fallocate 2
system call.
.Pp
Its arguments are:
diff --git a/share/man/man9/VOP_ATTRIB.9 b/share/man/man9/VOP_ATTRIB.9
index a3bf2c0f8898..d7c55bd683d8 100644
--- a/share/man/man9/VOP_ATTRIB.9
+++ b/share/man/man9/VOP_ATTRIB.9
@@ -37,12 +37,26 @@
.In sys/param.h
.In sys/vnode.h
.Ft int
-.Fn VOP_GETATTR "struct vnode *vp" "struct vattr *vap" "struct ucred *cred"
+.Fo VOP_GETATTR
+.Fa struct vnode *vp
+.Fa flags
+.Fa struct vattr *vap
+.Fa struct ucred *cred
+.Fc
.Ft int
-.Fn VOP_SETATTR "struct vnode *vp" "struct vattr *vap" "struct ucred *cred"
+.Fo VOP_SETATTR
+.Fa struct vnode *vp
+.Fa struct vattr *vap
+.Fa struct ucred *cred
+.Fc
.Ft int
-.Fn VOP_STAT "struct vnode *vp" "struct stat *sb" "struct ucred *active_cred" \
-"struct ucred *file_cred"
+.Fo VOP_STAT
+.Fa struct vnode *vp
+.Fa struct stat *sb
+.Fa flags
+.Fa struct ucred *active_cred
+.Fa struct ucred *file_cred
+.Fc
.Sh DESCRIPTION
These entry points manipulate various attributes of a file or directory,
including file permissions, owner, group, size,
diff --git a/share/man/man9/VOP_INOTIFY.9 b/share/man/man9/VOP_INOTIFY.9
new file mode 100644
index 000000000000..43b644682153
--- /dev/null
+++ b/share/man/man9/VOP_INOTIFY.9
@@ -0,0 +1,60 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Klara, Inc.
+.\"
+.Dd May 27, 2025
+.Dt VOP_INOTIFY 9
+.Os
+.Sh NAME
+.Nm VOP_INOTIFY
+.Nd vnode inotify interface
+.Sh SYNOPSIS
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fo VOP_INOTIFY
+.Fa struct vnode *vp
+.Fa struct vnode *dvp
+.Fa struct componentname *cnp
+.Fa int event
+.Fa uint32_t cookie
+.Fc
+.Ft int
+.Fo VOP_INOTIFY_ADD_WATCH
+.Fa struct vnode *vp
+.Fa struct inotify_softc *sc
+.Fa uint32_t mask
+.Fa uint32_t *wdp
+.Fa struct thread *td
+.Fc
+.Sh DESCRIPTION
+The
+.Fn VOP_INOTIFY
+operation notifies the
+.Xr inotify 2
+subsystem of a file system event on a vnode.
+The
+.Fa dvp
+and
+.Fa cnp
+arguments are optional and are only used to obtain a file name for the event.
+If they are omitted, the inotify subsystem will use the file name cache to
+find a name for the vnode, but this is more expensive.
+.Pp
+The
+.Fn VOP_INOTIFY_ADD_WATCH
+operation is for internal use by the inotify subsystem to add a watch to a
+vnode.
+.Sh LOCKS
+The
+.Fn VOP_INOTIFY
+operation does not assume any particular vnode lock state.
+The
+.Fn VOP_INOTIFY_ADD_WATCH
+operation should be called with the vnode locked.
+.Sh RETURN VALUES
+Zero is returned on success, otherwise an error code is returned.
+.Sh SEE ALSO
+.Xr inotify 2 ,
+.Xr vnode 9
diff --git a/share/man/man9/VOP_READ_PGCACHE.9 b/share/man/man9/VOP_READ_PGCACHE.9
index f8f67eb00f13..8a99365eba28 100644
--- a/share/man/man9/VOP_READ_PGCACHE.9
+++ b/share/man/man9/VOP_READ_PGCACHE.9
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2021 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2021 The FreeBSD Foundation
.\"
.\" This documentation was written by
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
diff --git a/share/man/man9/VOP_SETLABEL.9 b/share/man/man9/VOP_SETLABEL.9
index e5cf99bebd86..4ab7dd9beaba 100644
--- a/share/man/man9/VOP_SETLABEL.9
+++ b/share/man/man9/VOP_SETLABEL.9
@@ -113,13 +113,13 @@ Depending on the underlying implementation of
.Fn VOP_SETLABEL ,
other errors may also be possible.
.Sh SEE ALSO
+.Xr mac 9 ,
+.Xr mount 9 ,
+.Xr vnode 9 ,
.Xr VOP_CLOSEEXTATTR 9 ,
.Xr VOP_OPENEXTATTR 9 ,
.Xr VOP_READEXTATTR 9 ,
-.Xr VOP_WRITEXTATTR 9 ,
-.Xr mac 9 ,
-.Xr mount 9 ,
-.Xr vnode 9
+.Xr VOP_WRITEXTATTR 9
.Sh AUTHORS
This manual page was written by
.An Robert Watson .
diff --git a/share/man/man9/accf_http.9 b/share/man/man9/accf_http.9
index f48894807312..f71bb7811dc0 100644
--- a/share/man/man9/accf_http.9
+++ b/share/man/man9/accf_http.9
@@ -28,7 +28,7 @@
.Os
.Sh NAME
.Nm accf_http
-.Nd "buffer incoming connections until a certain complete HTTP requests arrive"
+.Nd "buffer incoming connections until a certain complete HTTP request arrives"
.Sh SYNOPSIS
.Nm options INET
.Nm options ACCEPT_FILTER_HTTP
diff --git a/share/man/man9/accf_tls.9 b/share/man/man9/accf_tls.9
index 331ea2aa4fb8..d4dbc299e5bb 100644
--- a/share/man/man9/accf_tls.9
+++ b/share/man/man9/accf_tls.9
@@ -26,7 +26,7 @@
.Os
.Sh NAME
.Nm accf_tls
-.Nd "buffer incoming connections until a TLS handshake like requests arrive"
+.Nd "buffer incoming connections until a TLS handshake like request arrives"
.Sh SYNOPSIS
.Nm options INET
.Nm options ACCEPT_FILTER_TLS
diff --git a/share/man/man9/atomic.9 b/share/man/man9/atomic.9
index 98d392dd6032..df24cd4a4d2b 100644
--- a/share/man/man9/atomic.9
+++ b/share/man/man9/atomic.9
@@ -20,7 +20,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 16, 2023
+.Dd December 16, 2024
.Dt ATOMIC 9
.Os
.Sh NAME
@@ -60,7 +60,7 @@
.Ft void
.Fn atomic_interrupt_fence "void"
.Ft <type>
-.Fn atomic_load_[acq_]<type> "volatile <type> *p"
+.Fn atomic_load_[acq_]<type> "const volatile <type> *p"
.Ft <type>
.Fn atomic_readandclear_<type> "volatile <type> *p"
.Ft void
@@ -480,10 +480,14 @@ and
.Fn atomic_testandclear
functions are only implemented for the types
.Dq Li int ,
-.Dq Li long
+.Dq Li long ,
+.Dq ptr ,
+.Dq Li 32 ,
and
-.Dq Li 32
-and do not have any variants with memory barriers at this time.
+.Dq Li 64
+and generally do not have any variants with memory barriers at this time
+except for
+.Fn atomic_testandset_acq_long .
.Pp
The type
.Dq Li 64
diff --git a/share/man/man9/bitset.9 b/share/man/man9/bitset.9
index a4e360a678d7..b77cfec63e26 100644
--- a/share/man/man9/bitset.9
+++ b/share/man/man9/bitset.9
@@ -193,7 +193,7 @@ These macros are meant to be used in the kernel and are visible if
or
.In sys/bitset.h
are included in a program.
-Userland programs must define
+Userland programs must define
.Dv _WANT_FREEBSD_BITSET
before including these files to make the macros visible.
.Pp
diff --git a/share/man/man9/bus_attach_children.9 b/share/man/man9/bus_attach_children.9
new file mode 100644
index 000000000000..5e3ca4c5e906
--- /dev/null
+++ b/share/man/man9/bus_attach_children.9
@@ -0,0 +1,152 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 John Baldwin <jhb@FreeBSD.org>
+.Dd February 5, 2025
+.Dt BUS_ATTACH_CHILDREN 9
+.Os
+.Sh NAME
+.Nm bus_attach_children ,
+.Nm bus_delayed_attach_children ,
+.Nm bus_detach_children ,
+.Nm bus_enumerate_hinted_children ,
+.Nm bus_identify_children
+.Nd manage child devices of a bus device
+.Sh SYNOPSIS
+.In sys/param.h
+.In sys/bus.h
+.Ft void
+.Fn bus_attach_children "device_t dev"
+.Ft void
+.Fn bus_delayed_attach_children "device_t bus"
+.Ft int
+.Fn bus_detach_children "device_t dev"
+.Ft void
+.Fn bus_enumerate_hinted_children "device_t bus"
+.Ft void
+.Fn bus_identify_children "device_t dev"
+.Sh DESCRIPTION
+These functions manage state transitions of child devices for
+.Fa dev .
+.Pp
+.Fn bus_enumerate_hinted_children
+walks the kernel environment to identify any device hints that describe a
+device attached to
+.Fa dev .
+For each set of matching hints,
+the
+.Xr BUS_HINTED_CHILD 9
+method is invoked.
+This function is typically called from a bus driver's
+.Xr DEVICE_ATTACH 9
+method to add hinted devices.
+Note that most bus drivers do not use hints to identify child devices.
+This is typically used for legacy buses such as ISA that do not provide
+a mechanism for enumerating devices.
+.Pp
+.Fn bus_identify_children
+iterates over all eligible device drivers for children of
+.Fa dev
+invoking the
+.Xr DEVICE_IDENTIFY 9
+method.
+This allows device drivers to add child devices that are enumerated via
+alternate mechanisms such as firmware tables.
+This function is typically called from a bus driver's
+.Xr DEVICE_ATTACH 9
+method.
+.Pp
+.Fn bus_attach_children
+attaches device drivers to all children of
+.Fa dev .
+This function invokes
+.Xr device_probe_and_attach 9
+on each child device ignoring errors.
+It makes a best-effort pass to attach device drivers to all children.
+Child devices are attached in increasing order.
+Child devices with the same order are attached in FIFO order based
+on the time when the device was created via
+.Xr device_add_child 9 .
+This function is typically called from a bus driver's
+.Xr DEVICE_ATTACH 9
+method after adding devices.
+.Pp
+.Fn bus_delayed_attach_children
+attaches device drivers to all children of
+.Fa dev
+after interrupts are enabled.
+This function schedules a call to
+.Fn bus_attach_children
+after interrupts are enabled via
+.Xr config_intrhook_establish 9 .
+If interrupts are already enabled
+(for example, when loading a device driver after booting),
+.Fn bus_attach_children
+is called immediately.
+.Pp
+.Fn bus_detach_children
+detaches device drivers from all children of
+.Fa dev
+by calling
+.Xr device_detach 9
+on each child device.
+Unlike
+.Fn bus_attach_children ,
+this function does not make a best-effort pass.
+If a child device fails to detach,
+.Fn bus_detach_children
+immediately fails returning the error from the child's failed detach.
+Child devices are detached in reverse order compared to
+.Fn bus_attach_children .
+That is,
+child devices are detached in decreasing order,
+and child devices with the same order are detached in LIFO order.
+Detached devices are not deleted.
+.Pp
+.Fn bus_detach_children
+is typically called at the start of a bus driver's
+.Xr DEVICE_ATTACH 9
+method to give child devices a chance to veto the detach request.
+It is usually paired with a later call to
+.Fn device_delete_children 9
+to delete child devices.
+If no additional logic is required between the two function calls,
+a bus driver can use
+.Xr bus_generic_detach 9
+to detach and delete children.
+.Sh RETURN VALUES
+.Sh SEE ALSO
+.Xr config_intrhook_establish 9 ,
+.Xr device_add_child 9 ,
+.Xr DEVICE_ATTACH 9 ,
+.Xr device_delete_children 9 ,
+.Xr DEVICE_DETACH 9 ,
+.Xr device_detach 9 ,
+.Xr DEVICE_IDENTIFY 9 ,
+.Xr device_probe_and_attach 9
+.Sh HISTORY
+.Fn bus_enumerate_hinted_children
+first appeared in
+.Fx 6.2 .
+.Pp
+.Fn bus_delayed_attach_children
+first appeared in
+.Fx 12.2 .
+.Pp
+.Fn bus_identify_children
+first appeared in
+.Fx 15.0 .
+Its functionality is available in older releases via the deprecated
+.Fn bus_generic_probe .
+.Pp
+.Fn bus_attach_children
+first appeared in
+.Fx 15.0 .
+Its functionality is available in older releases via the deprecated
+.Fn bus_generic_attach .
+.Pp
+.Fn bus_detach_children
+first appeared in
+.Fx 15.0 .
+Its functionality is available in older releases via
+.Fn bus_generic_detach .
diff --git a/share/man/man9/bus_delayed_attach_children.9 b/share/man/man9/bus_delayed_attach_children.9
deleted file mode 100644
index 40a7357831a5..000000000000
--- a/share/man/man9/bus_delayed_attach_children.9
+++ /dev/null
@@ -1,53 +0,0 @@
-.\" -*- nroff -*-
-.\"
-.\" Copyright (c) 2019 M. Warner Losh
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
-.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd December 13, 2019
-.Dt BUS_DELAYED_ATTACH_CHILDREN 9
-.Os
-.Sh NAME
-.Nm bus_delayed_attach_children
-.Nd "request that the children be attached when interrupts are enabled"
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/bus.h
-.Pp
-.Ft int
-.Fn bus_delayed_attach_children "device_t dev"
-.Sh DESCRIPTION
-The
-.Fn bus_delayed_attach_children
-function requests that the children of this device
-be attached when interrupts are running.
-If interrupts are currently running, this happens immediately.
-If interrupts are not yet running, this happens after interrupts are enabled, but
-before the system mounts root.
-.Sh RETURN VALUES
-A zero return value indicates success.
-.Sh SEE ALSO
-.Xr bus 9 ,
-.Xr device 9 ,
-.Xr driver 9
-.Sh AUTHORS
-This manual page was written by
-.An Warner Losh Aq Mt imp@FreeBSD.org .
diff --git a/share/man/man9/bus_generic_attach.9 b/share/man/man9/bus_generic_attach.9
deleted file mode 100644
index 67d125c2943c..000000000000
--- a/share/man/man9/bus_generic_attach.9
+++ /dev/null
@@ -1,56 +0,0 @@
-.\" -*- nroff -*-
-.\"
-.\" Copyright (c) 1998 Doug Rabson
-.\"
-.\" All rights reserved.
-.\"
-.\" This program is free software.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
-.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd January 15, 2017
-.Dt BUS_GENERIC_ATTACH 9
-.Os
-.Sh NAME
-.Nm bus_generic_attach
-.Nd generic implementation of
-.Dv DEVICE_ATTACH
-for buses
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/bus.h
-.Ft int
-.Fn bus_generic_attach "device_t dev"
-.Sh DESCRIPTION
-This function provides an implementation of the
-.Xr DEVICE_ATTACH 9
-method which can be used by most bus code.
-It simply calls
-.Xr device_probe_and_attach 9
-for each child device attached to the bus.
-.Sh RETURN VALUES
-Zero is returned on success, otherwise an appropriate error is returned.
-.Sh SEE ALSO
-.Xr device 9 ,
-.Xr driver 9
-.Sh AUTHORS
-This manual page was written by
-.An Doug Rabson .
diff --git a/share/man/man9/bus_generic_detach.9 b/share/man/man9/bus_generic_detach.9
index 590cd26486e4..b7a2aa6e6105 100644
--- a/share/man/man9/bus_generic_detach.9
+++ b/share/man/man9/bus_generic_detach.9
@@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 15, 2017
+.Dd February 5, 2025
.Dt BUS_GENERIC_DETACH 9
.Os
.Sh NAME
@@ -44,13 +44,23 @@ This function provides an implementation of the
.Xr DEVICE_DETACH 9
method
which can be used by most bus code.
-It simply calls the
-.Xr DEVICE_DETACH 9
-method of each child device attached to the bus.
+It uses
+.Xr bus_detach_children 9
+to detach drivers from all child devices giving them a chance to veto the
+detach request.
+If
+.Fn bus_detach_children
+succeeds,
+.Fn bus_generic_detach
+calls
+.Xr device_delete_children 9
+to delete all child devices.
.Sh RETURN VALUES
Zero is returned on success, otherwise an appropriate error is returned.
.Sh SEE ALSO
+.Xr bus_detach_children 9 ,
.Xr device 9 ,
+.Xr device_delete_children 9 ,
.Xr driver 9
.Sh AUTHORS
This manual page was written by
diff --git a/share/man/man9/bus_generic_print_child.9 b/share/man/man9/bus_generic_print_child.9
index 8c3bd4b0fc71..8a72c8e743ec 100644
--- a/share/man/man9/bus_generic_print_child.9
+++ b/share/man/man9/bus_generic_print_child.9
@@ -26,37 +26,88 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 15, 2017
+.Dd February 5, 2025
.Dt BUS_GENERIC_PRINT_CHILD 9
.Os
.Sh NAME
-.Nm bus_generic_print_child
+.Nm bus_generic_print_child ,
+.Nm bus_print_child_domain ,
+.Nm bus_print_child_footer ,
+.Nm bus_print_child_header
.Nd generic implementation of
-.Dv DEVICE_PRINT_CHILD
-for buses
+.Xr BUS_PRINT_CHILD 9
.Sh SYNOPSIS
.In sys/param.h
.In sys/bus.h
.Ft int
.Fn bus_generic_print_child "device_t dev" "device_t child"
+.Ft int
+.Fn bus_print_child_domain "device_t dev" "device_t child"
+.Ft int
+.Fn bus_print_child_footer "device_t dev" "device_t child"
+.Ft int
+.Fn bus_print_child_header "device_t dev" "device_t child"
.Sh DESCRIPTION
-This implementation prints out the default device announcement message.
-Given device 'foo0' on bus 'bar0' where foo0 has the name "FooCard 1234" the
+.Fn bus_generic_print_child
+prints out the default device announcement message.
+Given device
+.Sq foo0
+on bus
+.Sq bar0
+where foo0 has the description
+.Dq FooCard 1234
+and is associated with the NUMA domain 1,
+the
following would be printed:
+.Bd -literal -offset indent
+foo0: <FooCard 1234> numa-domain 1 on bar0
+.Ed
.Pp
-foo0: <FooCard 1234> on bar0
-.Pp
-bus_generic_print_child itself calls two functions
-.Fn bus_print_child_header
+.Fn bus_generic_print_child
+calls the three helper functions
+.Fn bus_print_child_header ,
+.Fn bus_print_child_domain ,
and
.Fn bus_print_child_footer .
-The former prints "foo0: <FooCard 1234>" and the latter "on bar0".
-These routines should be used if possible in your own code if
+.Pp
+.Fn bus_print_child_header
+outputs the device name and unit followed by the device description
+in angle brackets
+.Po
+.Dq foo0: <FooCard 1234>
+.Pc .
+.Pp
+.Fn bus_print_child_domain
+outputs
+.Dq \& numa-domain
+followed by the domain number if
+.Fn bus_get_domain
+returns a valid domain for the device
+.Po
+.Dq numa-domain 1
+.Pc .
+If
+.Fa dev
+is not associated witha valid domain,
+nothing is output.
+.Pp
+.Fn bus_print_child_footer
+outputs the string
+.Dq \& on
+followed by the parent device's name and unit
+.Po
+.Dq \& on bar0
+.Pc .
+.Pp
+These functions can be used to implement
+.Xr BUS_PRINT_CHILD 9
+in a bus driver if
.Fn bus_generic_print_child
-does not completely suit your needs.
+is not sufficient.
.Sh RETURN VALUES
The number of characters output.
.Sh SEE ALSO
+.Xr BUS_PRINT_CHILD 9 ,
.Xr device 9
.Sh AUTHORS
This manual page was written by
diff --git a/share/man/man9/cdefs.9 b/share/man/man9/cdefs.9
new file mode 100644
index 000000000000..cc56e34d070a
--- /dev/null
+++ b/share/man/man9/cdefs.9
@@ -0,0 +1,487 @@
+.\"-
+.\" Copyright (c) 2024 M. Warner Losh <imp@FreeBSD.org>
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd May 9, 2025
+.Dt CDEFS 9
+.Os
+.Sh NAME
+.Nm cdefs
+.Nd compiler portability macro definitions
+.Sh DESCRIPTION
+.In sys/cdefs.h
+defines macros for compiler, C language standard portability, POSIX standards
+compliance and symbol visibility.
+It defines programming interfaces for the system header files to adopt to the
+many environments
+.Fx
+supports compilation for.
+It defines convenience macros for the
+.Fx
+sources, tailored to the base
+system's needs.
+.Pp
+Most of these macros are for use inside the
+.Fx
+sources only.
+They are not intended as a general portability layer.
+.Sh Supported Compilers
+.Bl -tag -offset 2n -width 0
+.It Compilers supported for building programs on Fx :
+.Bl -column -offset 0n indent-two
+.It Sy Compiler Ta Sy Versions
+.It gcc Ta 9, 10, 11, 12, 13, 14
+.It clang Ta 10, 11, 12, 13, 14, 15, 16, 17, 18
+.It TinyC (tcc) Ta 0.9
+.It pcc Ta 1.1
+.El
+.Pp
+Due to testing constraints, tcc and pcc may not always work.
+.It Compilers supported for building Fx itself:
+.Bl -column -offset 0n indent-two
+.It Sy Compiler Ta Sy Major Versions Supported
+.It gcc Ta 12, 13, 14
+.It clang Ta 16, 17, 18
+.El
+.Pp
+Please note: Not every single minor versions of these compilers
+will work or are supported.
+.El
+.Sh Macros and Magic for Programming Environment
+.Nm
+defines (or refrains from defining) a number of macros to increase portability
+of compiled programs.
+These are to allow more advanced language features to appear in header files.
+The header files assume a compiler that accepts C prototype function
+declarations.
+They also assume that the compiler accepts ANSI C89 keywords for all language
+dialects.
+.Ss General Macros
+General macros that facilitate multiple language environments and language
+dialects.
+.Bl -column "---------------"
+.It Sy Macro Ta Sy Description
+.It Dv __volatile Ta expands to volatile in C++ and C89 and newer environments,
+__volatile in pre-ANSI environments that support this extension or nothing
+otherwise.
+.It Dv __inline Ta expands to inline in C++ and C89 and newer environments,
+__inline in pre-ANSI environments that support this extension or nothing
+otherwise.
+.It Dv __restrict Ta expands to restrict in C99 and newer environments, or
+__restrict otherwise.
+.It Dv __CONCAT Ta used to paste two pre-processor tokens.
+.It Dv __STRING Ta used to convert the argument to a string.
+.It Dv __BEGIN_DECLS Ta Start a group of functions.
+.It Dv __END_DECLS Ta End a group of functions.
+In a C environment, these are defined as nothing.
+In a C++ environment, these declare the functions to have
+.Dq C
+linkage.
+.El
+.Ss Function, Structure and Variable Modifiers
+.Bl -column "---------------"
+.It Sy Macro Ta Sy Description
+.It Sy __weak_symbol Ta Declare the symbol to be a weak symbol
+.It Sy __dead2 Ta Function will not return
+.It Sy __pure2 Ta Function has no side effects
+.It Sy __unused Ta To Variable may be unused (usually arguments), so do not
+warn about it
+.It Sy __used Ta Function really is used, so emit it even if it appears unused.
+.It Sy __deprecated Ta Function interface has been deprecated, and clients
+should migrate to a new interface.
+A warning will be issued for clients of this interface.
+.It Sy __deprecated1(msg) Ta Function interface has been deprecated, and clients
+should migrate to a new interface.
+The string
+.Fa msg
+will be included in a warning issued for clients of this interface.
+.It Sy __packed Ta \&Do not have space between structure elements for natural alignment.
+Used when communicating with external protocols.
+.It Sy __aligned(x) Ta Specify in bytes the minimum alignment for the specified field, structure or variable
+.It Sy __section(x) Ta Place function or variable in section Fa x
+.It Sy __writeonly Ta Hint that the variable is only assigned to, but do not warn about it.
+Useful for macros and other places the eventual use of the result is unknown.
+.It Sy __alloc_size(x) Ta The function always returns at least the number of
+bytes determined by argument number Fa x
+.It Sy __alloc_size2(x,n) Ta The function always returns an array, whose size
+is at least the number of bytes determined by argument number Fa x times the
+number of elements specified by argument number Fa n
+.It Sy __alloc_align(x) Ta Function either returns a pointer aligned to Fa x bytes
+or Dv NULL.
+.It Sy __min_size Ta Declare the array to have a certain, minimum size
+.It Sy __malloc_like Ta Function behaves like the
+.Dq malloc
+family of functions.
+.It Sy __pure Ta Function has no side effects
+.It Sy __always_inline Ta Always inline this function when called
+.It Sy __fastcall Ta Use the
+.Dq fastcall
+ABI to call and name mangle this function.
+.It Sy __result_use_check Ta Warn if function caller does not use its return value
+.It Sy __nodiscard Ta Equivalent to the standard
+.Dq [[nodiscard]]
+attribute.
+If applied to a function, warn if function caller does not use its
+return value.
+The warning may be silenced using a cast to
+.Vt void ,
+or in C++, using an assignment to
+.Va std::ignore .
+If applied to a struct, C++ class or enum, this applies to all functions
+returning values of that type.
+If applied to a C++ constructor, this applies to creating instances of
+the class using that constructor.
+.It Sy __returns_twice Ta Returns multiple times, like
+.Xr fork 2
+.It Sy __unreachable Ta This code is not reachable at runtime
+.It Sy __predict_true(x) Ta Hint to the compiler that
+.Fa x
+is true most of the time.
+Should only be used when performance is improved for a frequently called bit of code.
+.It Sy __predict_false(x) Ta Hint to the compiler that
+.Fa x
+is false most of the time.
+Should only be used when performance is improved for a frequently called bit of code.
+.It Sy __null_sentinel Ta The varadic function contains a parameter that is
+a NULL sentinel to mark the end of its arguments.
+.It Sy __exported Ta
+.It Sy __hidden Ta
+.It Sy __printflike(fmtarg,firstvararg) Ta Function is similar to
+.Fn printf
+which specifies the format argument with
+.Fa fmtarg
+and where the arguments formatted by that format start with the
+.Fa firstvararg ,
+with 0 meaning that
+.Dv va_arg
+is used and cannot be checked.
+.It Sy __scanflike(fmtarg,firstvararg) Ta Function is similar to
+.Fn scanf
+which specifies the format argument with
+.Fa fmtarg
+and where the arguments formatted by that format start with the
+.Fa firstvararg ,
+with 0 meaning that
+.Dv va_arg
+is used and cannot be checked.
+.It Sy __format_arg(f) Ta Specifies that arg
+.Fa f
+contains a string that will be passed to a function like
+.Fn printf
+or
+.Fa scanf
+after being translated in some way.
+.It Sy __strfmonlike(fmtarg,firstvararg) Ta Function is similar to
+.Fn scanf
+which specifies the format argument with
+.Fa fmtarg
+and where the arguments formatted by that format start with the
+.Fa firstvararg ,
+with 0 meaning that
+.Dv va_arg
+is used and cannot be checked.
+.It Sy __strtimelike(fmtarg,firstvararg) Ta Function is similar to
+.Fn scanf
+which specifies the format argument with
+.Fa fmtarg
+and where the arguments formatted by that format start with the
+.Fa firstvararg ,
+with 0 meaning that
+.Dv va_arg
+is used and cannot be checked.
+.It Sy __printf0like(fmtarg,firstvararg) Ta Exactly the same
+as
+.Sy __printflike
+except
+.Fa fmtarg
+may be
+.Dv NULL.
+.It Sy __strong_reference(sym,aliassym) Ta
+.It Sy __weak_reference(sym,alias) Ta
+.It Sy __warn_references(sym,msg) Ta
+.It Sy __sym_compat(sym,impl,verid) Ta
+.It Sy __sym_default(sym,impl,verid) Ta
+.It Sy __GLOBAL(sym) Ta
+.It Sy __WEAK(sym) Ta
+.It Sy __DECONST(type,var) Ta
+.It Sy __DEVOLATILE(type,var) Ta
+.It Sy __DEQUALIFY(type,var) Ta
+.It Sy __RENAME(x) Ta
+.It Sy __arg_type_tag Ta
+.It Sy __datatype_type_tag Ta
+.It Sy __align_up(x,y) Ta
+.It Sy __align_down(x,y) Ta
+.It Sy __is_aligned(x,y) Ta
+.El
+.Ss Locking and Debugging Macros
+Macros for lock annotation and debugging, as well as some general debugging
+macros for address sanitizers.
+.Bl -column "---------------"
+.It Sy __lock_annotate(x) Ta
+.It Sy __lockable Ta
+.It Sy __locks_exclusive Ta
+.It Sy __locks_shared Ta
+.It Sy __trylocks_exclusive Ta
+.It Sy __trylocks_shared Ta
+.It Sy __unlocks Ta
+.It Sy __asserts_exclusive Ta
+.It Sy __asserts_shared Ta
+.It Sy __requires_exclusive Ta
+.It Sy __requires_shared Ta
+.It Sy __requires_unlocked Ta
+.It Sy __no_lock_analysis Ta
+.It Sy __nosanitizeaddress Ta
+.It Sy __nosanitizememory Ta
+.It Sy __nosanitizethread Ta
+.It Sy __nostackprotector Ta
+.It Sy __guarded_by(x) Ta
+.It Sy __pt_guarded_by(x) Ta
+.El
+.Ss Emulated Keywords
+As C evolves, many of the old macros we once used have been incorporated into
+the standard language.
+As this happens, we add support for these keywords as macros for older
+compilation environments.
+Sometimes this results in a nop in the older environment.
+.Bl -column "---------------"
+.It Sy Keyword Ta Sy Description
+.It Sy _Alignas(x) Ta
+.It Sy _Alignof(x) Ta
+.It Sy _Noreturn Ta Expands to
+.Dq [[noreturn]]
+in C++-11 and newer compilation environments, otherwise
+.Dq __dead2
+.It Sy _Static_assert(x, y) Ta Compile time assertion that
+.Fa x
+is true, otherwise emit
+.Fa y
+as the error message.
+.It Sy _Thread_local Ta Designate variable as thread local storage
+.It Sy __generic Ta implement _Generic-like features which aren't entirely possible to emulate the _Generic keyword
+.It Sy __noexcept Ta to emulate the C++11 argument-less noexcept form
+.It Sy __noexcept_if Ta to emulate the C++11 conditional noexcept form
+.It Sy _Nonnull Ta
+.It Sy _Nullable Ta
+.It Sy _Null_unspecified Ta
+.El
+.Ss Support Macros
+The following macros are defined, or have specific values, to denote certain
+things about the build environment.
+.Bl -column "---------------"
+.It Sy Macro Ta Sy Description
+.It Sy __LONG_LONG_SUPPORTED Ta Variables may be declared
+.Dq long long .
+This is defined for C99 or newer and C++ environments.
+.It Sy __STDC_LIMIT_MACROS Ta
+.It Sy __STDC_CONSTANT_MACROS Ta
+.El
+.Ss Convenience Macros
+These macros make it easier to do a number of things, even though strictly
+speaking the standard places their normal form in another header.
+.Bl -column "---------------"
+.It Sy Macro Ta Sy Description
+.It Sy __offsetof(type,field) Ta
+.It Sy __rangeof(type,start,end) Ta
+.It Sy __containerof(x,s,m) Ta
+.El
+.Ss ID Strings
+This section is deprecated, but is kept around because too much contrib software
+still uses these.
+.Bl -column "---------------"
+.It Sy Macro Ta Sy Description
+.It Sy __IDSTRING(name,string) Ta
+.It Sy __FBSDID(s) Ta
+.It Sy __RCSID(s) Ta
+.It Sy __RCSID_SOURCE(s) Ta
+.It Sy __SCCSID(s) Ta
+.It Sy __COPYRIGHT(s) Ta
+.El
+.Sh Supported C Environments
+.Fx
+supports a number C standard environments.
+Selection of the language dialect is a compiler-dependent command line option,
+though it is usually
+.Fl std=XX
+where XX is the standard to set for compiling, such as c89 or c23.
+.Fx
+provides a number of selection macros to control visibility of symbols.
+Please see the section on Selection Macros for the specifics.
+.Pp
+.Bl -tag
+.It K \*(Am R
+Pre-ANSI Kernighan and Ritchie C.
+Sometimes called
+.Dq knr
+or
+.Dq C78
+to distinguish it from newer standards.
+Support for this compilation environment is dependent on compilers supporting
+this configuration.
+Most of the old forms of C have been deprecated or removed in
+.St -isoC-2023 .
+Compilers make compiling in this mode increasingly difficult and support for it
+may ultimately be removed from the tree.
+.It St -ansiC
+.Dv __STDC__
+is defined, however
+.Dv __STDC_VERSION__
+is not.
+.Pp
+Strict environment selected with
+.Dv _ANSI_SOURCE .
+.It St -isoC-99
+.Dv __STDC_VERSION__ = 199901L
+.Pp
+Strict environment selected with
+.Dv _C99_SOURCE .
+.It St -isoC-2011
+.Dv __STDC_VERSION__ = 201112L
+.Pp
+Strict environment selected with
+.Dv _C11_SOURCE .
+.It ISO/IEC 9899:2018 (“ISO C17”)
+.Dv __STDC_VERSION__ = 201710L
+.Pp
+Strict environment selected with
+.Dv _C11_SOURCE
+since there are no new C17 only symbols or macros.
+.Pp
+This version of the standard did not introduce any new features, only made
+minor, technical corrections.
+.It St -isoC-2023
+.Dv __STDC_VERSION__ = 202311L
+Strict environment selected with
+.Dv _C23_SOURCE
+though ISO C23 support is only partially implemented.
+.El
+.Pp
+For more information on C standards, see
+.Xr c 7 .
+.Ss Programming Environment Selection Macros
+Defining the macros outlined below requests that the system header files provide
+only the functions, structures and macros (symbols) defined by the appropriate
+standard, while suppressing all extensions.
+However, system headers not defined by that standard may define extensions.
+You may only define one of the following for any compilation unit.
+.Bl -column "---------------"
+.It Sy Macro Ta Sy Environment
+.It Dv _POSIX_SOURCE Ta St -p1003.1-88 including St -ansiC
+.It Dv _POSIX_C_SOURCE = 1 Ta St -p1003.1-88 including St -ansiC
+.It Dv _POSIX_C_SOURCE = 2 Ta St -p1003.1-90 including St -ansiC
+.It Dv _POSIX_C_SOURCE = 199309 Ta St -p1003.1b-93 including St -ansiC
+.It Dv _POSIX_C_SOURCE = 199506 Ta St -p1003.1c-95 including St -ansiC
+.It Dv _POSIX_C_SOURCE = 200112 Ta St -p1003.1-2001 including St -isoC-99
+.It Dv _POSIX_C_SOURCE = 200809 Ta St -p1003.1-2008 including St -isoC-99
+.It Dv _POSIX_C_SOURCE = 202405 Ta St -p1003.1-2024 including ISO/IEC 9899:2018 ("ISO C17"),
+.It Dv _XOPEN_SOURCE defined Ta St -p1003.1-90 with XPG Extensions to St -susv1 including St -ansiC .
+However,
+.Fx
+implements this as a NOP because too much software breaks with the correct strict environment.
+.It Dv _XOPEN_SOURCE = 500 Ta St -p1003.1c-95 and XPG extensions to St -susv2 including St -ansiC
+.It Dv _XOPEN_SOURCE = 600 Ta St -p1003.1-2001 and XPG extensions to St -susv3 including St -isoC-99
+.It Dv _XOPEN_SOURCE = 700 Ta St -p1003.1-2008 and XPG extensions to St -susv4 including St -isoC-99
+.It Dv _XOPEN_SOURCE = 800 Ta St -p1003.1-2024 and XPG extensions to Version 5 of the Single UNIX Specification (“SUSv5”) including ISO/IEC 9899:2018 (“ISO C17”)
+.It Dv _ANSI_SOURCE Ta St -ansiC
+.It Dv _C99_SOURCE Ta St -isoC-99
+.It Dv _C11_SOURCE Ta St -isoC-2011
+.It Dv _C23_SOURCE Ta St -isoC-2023
+.It Dv _BSD_SOURCE Ta Everything, including Fx extensions
+.El
+.Pp
+Note:
+.St -p1003.1-2024
+and XPG extensions to Version 5 of the Single UNIX Specification ("SUSv5")
+support is incomplete.
+.Pp
+When both POSIX and C environments are selected, the POSIX environment selects
+which C environment is used.
+However, when C11 dialect is selected with
+.St -p1003.1-2008 ,
+definitions for
+.St -isoC-2011
+are also included.
+Likewise, when C23 dialog is selected with
+.St -p1003.1-2008
+or
+.St -p1003.1-2024 ,
+definitions for
+.St -isoC-2023
+are also included.
+.Ss Header Visibility Macros
+These macros are set by
+.Nm
+to control the visibility of different standards.
+Users must not define these, and doing so will produced undefined results.
+They are documented here for developers working on system's header files.
+.Bl -column "---------------"
+.It Dv __XSI_VISIBLE Ta Restricts the visibility of XOPEN Single Unix Standard version.
+Possible values are 500, 600, 700 or 800, corresponding to Issue 5, 6, 7, or 8
+of the Single Unix Standard.
+These are extra functions in addition to the normal POSIX ones.
+.It Dv __POSIX_VISIBLE Ta Make symbols associated with certain standards versions visible.
+Set to the value assigned to
+.Dv _POSIX_C_SOURCE
+by convention with 199009 for
+.St -p1003.1-88
+and 199209
+.St -p1003.1-90 .
+.It Dv __ISO_C_VISIBLE Ta The C level that's visible.
+Possible values include 1990, 1999, 2011, 2017 and 2023 for
+.St -isoC-90 ,
+.St -isoC-99 ,
+.St -isoC-2011 ,
+ISO/IEC 9899:2018 ("ISO C17"), and
+.St -isoC-2023 ,
+respectively.
+.It Dv __BSD_VISIBLE Ta 1 if the
+.Fx
+extensions are visible, 0 otherwise.
+.It Dv __EXT1_VISIBLE Ta 1 if the
+.St -isoC-2011
+Appendix K 3.7.4.1
+extensions are visible, 0 otherwise.
+.El
+.Sh Supported C++ Environments
+.Fx
+supports C++11 and newer standards fully.
+.Bl -tag
+.It ISO/IEC 14882:1998 ("C++98")
+.Dv __cplusplus = 199711
+.Pp
+The first standardized version of C++.
+Unlike K \*(Am R support in C, compilers dropped support for versions of
+the language prior to C++98.
+.It ISO/IEC 14882:2003 ("C++03")
+.Dv __cplusplus = 199711
+.Pp
+Note, this is the same value as C++98.
+C++03 did not define a new value for
+.Dv __cplusplus .
+There is no way, at compile time, to detect the difference.
+The standard resolved a number of defect reports and slightly
+expanded value initialization.
+Most compilers support it the same as C++98.
+.It ISO/IEC 14882:2011 ("C++11")
+.Dv __cplusplus = 201103
+.It ISO/IEC 14882:2014 ("C++14")
+.Dv __cplusplus = 201402
+.It ISO/IEC 14882:2017 ("C++17")
+.Dv __cplusplus = 201703
+.It ISO/IEC 14882:2020 ("C++20")
+.Dv __cplusplus = 202002
+.It ISO/IEC 14882:2023 ("C++23")
+.Dv __cplusplus = 202302
+.El
+.Pp
+.Fx
+uses llvm project's libc++.
+However, they are removing support for C++ prior to C++11.
+While programs can still build with earlier environments for now, these changes
+mean that
+.Fl pedantic-errors
+cannot be reliably enabled for standards older than C++11.
+.Sh HISTORY
+.In sys/cdefs.h
+first appeared in
+.Bx 4.3 NET/2 .
diff --git a/share/man/man9/cnv.9 b/share/man/man9/cnv.9
index de37c8271eb9..fa5310e174e1 100644
--- a/share/man/man9/cnv.9
+++ b/share/man/man9/cnv.9
@@ -23,14 +23,14 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd June 18, 2018
+.Dd January 3, 2025
.Dt CNV 9
.Os
.Sh NAME
.Nm cnvlist_get ,
.Nm cnvlist_take ,
.Nm cnvlist_free
-.Nd "API for managing name/value pairs by cookie."
+.Nd "API for managing name/value pairs by cookie"
.Sh LIBRARY
.Lb libnv
.Sh SYNOPSIS
@@ -115,7 +115,7 @@ The
.Nm libnv
library permits easy management of name/value pairs and can send and receive
them over sockets.
-For more information, also see
+For more information, see
.Xr nv 9 .
.Pp
The concept of cookies is explained in
@@ -128,25 +128,28 @@ from
.Pp
The
.Fn cnvlist_name
-function returns the name of an element associated with the given cookie.
+function returns the name of an element associated with
+.Fa cookie .
.Pp
The
.Fn cnvlist_type
-function returns the type of an element associated with the given cookie.
+function returns the type of an element associated with
+.Fa cookie .
Types which can be returned are described in
.Xr nv 9 .
.Pp
The
.Nm cnvlist_get
-family of functions obtains the value associated with the given cookie.
+functions return the value associated with
+.Fa cookie .
Returned strings, nvlists, descriptors, binaries, or arrays must not be modified
-by the user, since they still belong to the nvlist.
+by the user since they still belong to the nvlist.
The nvlist must not be in an error state.
.Pp
The
.Nm cnvlist_take
-family of functions returns the value associated with the given cookie and
-removes the element from the nvlist.
+functions return the value associated with the given cookie and
+remove the element from the nvlist.
When the value is a string, binary, or array value, the caller is responsible
for freeing the returned memory with
.Fn free 3 .
@@ -154,18 +157,21 @@ When the value is an nvlist, the caller is responsible for destroying the
returned nvlist with
.Fn nvlist_destroy .
When the value is a descriptor, the caller is responsible for closing the
-returned descriptor with the
+returned descriptor with
.Fn close 2 .
.Pp
The
.Nm cnvlist_free
-family of functions removes an element of the supplied cookie and frees all
-resources.
-If an element of the given cookie has the wrong type or does not exist, the
+functions remove the element identified by
+.Fa cookie
+and free any associated resources.
+If the element identified by
+.Fa cookie
+has the wrong type or does not exist, the
program
-is aborted.
+aborts.
.Sh EXAMPLES
-The following example demonstrates how to deal with cnvlist API.
+The following example demonstrates how to deal with the cnvlist API.
.Bd -literal
int type;
void *cookie, *scookie, *bcookie;
diff --git a/share/man/man9/contigmalloc.9 b/share/man/man9/contigmalloc.9
index f52cb7bde0ed..2e5d55ae8ba1 100644
--- a/share/man/man9/contigmalloc.9
+++ b/share/man/man9/contigmalloc.9
@@ -23,11 +23,11 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd October 30, 2018
+.Dd July 26, 2024
.Dt CONTIGMALLOC 9
.Os
.Sh NAME
-.Nm contigmalloc , contigfree
+.Nm contigmalloc
.Nd manage contiguous kernel physical memory
.Sh SYNOPSIS
.In sys/types.h
@@ -42,12 +42,6 @@
.Fa "unsigned long alignment"
.Fa "vm_paddr_t boundary"
.Fc
-.Ft void
-.Fo contigfree
-.Fa "void *addr"
-.Fa "unsigned long size"
-.Fa "struct malloc_type *type"
-.Fc
.In sys/param.h
.In sys/domainset.h
.Ft "void *"
@@ -109,10 +103,10 @@ Other flags (if present) are ignored.
.Pp
The
.Fn contigfree
-function deallocates memory allocated by a previous call to
-.Fn contigmalloc
-or
-.Fn contigmalloc_domainset .
+function is deprecated.
+Use
+.Xr free 9
+instead.
.Sh IMPLEMENTATION NOTES
The
.Fn contigmalloc
@@ -123,12 +117,6 @@ However, unless
is specified, it may select a page for reclamation that must first be
written to backing storage, causing it to sleep.
.Pp
-The
-.Fn contigfree
-function does not accept
-.Dv NULL
-as an address input, unlike
-.Xr free 9 .
.Sh RETURN VALUES
The
.Fn contigmalloc
diff --git a/share/man/man9/coredumper_register.9 b/share/man/man9/coredumper_register.9
new file mode 100644
index 000000000000..f4c9eb4a1bf6
--- /dev/null
+++ b/share/man/man9/coredumper_register.9
@@ -0,0 +1,168 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Kyle Evans <kevans@FreeBSD.org>
+.\"
+.Dd July 23, 2025
+.Dt COREDUMPER_REGISTER 9
+.Os
+.Sh NAME
+.Nm coredumper_register ,
+.Nm coredumper_unregister
+.Nd loadable user coredumper support
+.Sh SYNOPSIS
+.In sys/ucoredump.h
+.Ft void
+.Fn coredumper_register "struct coredumper *cd"
+.Ft void
+.Fn coredumper_unregister "struct coredumper *cd"
+.Pp
+.Ft int
+.Fn coredumper_probe_fn "struct thread *td"
+.Ft int
+.Fn coredumper_handle_fn "struct thread *td" "off_t limit"
+.Bd -literal
+/* Incomplete, but the useful members are depicted here. */
+struct coredumper {
+ const char *cd_name;
+ coredumper_probe_fn *cd_probe;
+ coredumper_handle_fn *cd_handle;
+};
+.Ed
+.Pp
+.Ft int
+.Fn coredump_init_fn "const struct coredump_writer *" \
+"const struct coredump_params *"
+.Ft int
+.Fn coredump_write_fn "const struct coredump_writer *" "const void *" "size_t" \
+"off_t" "enum uio_seg" "struct ucred *" "size_t *" "struct thread *"
+.Ft int
+.Fn coredump_extend_fn "const struct coredump_writer *" "off_t" "struct ucred *"
+.Bd -literal
+struct coredump_writer {
+ void *ctx;
+ coredump_init_fn *init_fn;
+ coredump_write_fn *write_fn;
+ coredump_extend_fn *extend_fn;
+};
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+mechanism provides a path for kernel modules to register a new user process core
+dumper.
+The expected use of
+.Nm
+is for a module to define the fields of the struct coredumper listed above, then
+call
+.Fn coredumper_register
+at
+.Dv MOD_LOAD
+time.
+A corresponding
+.Fn coredumper_unregister
+should be called at
+.Dv MOD_UNLOAD
+time.
+Note that
+.Fn coredumper_unregister
+will block until the specified coredumper is no longer processing coredumps.
+.Pp
+When a user process is preparing to start dumping core, the kernel will execute
+the
+.Fn cd_probe
+function for each coredumper currently registered.
+The
+.Fn cd_probe
+function is expected to return either -1 if it would decline to dump the
+process, or a priority level greater than 0.
+The coredumper with the highest priority will handle the coredump.
+The following default priorities are defined:
+.Bl -tag -width indent
+.It Dv COREDUMPER_NOMATCH
+This dumper declines dumping the process.
+.It Dv COREDUMPER_GENERIC
+This dumper will dump the process at the lowest priority.
+This priority is not recommended, as the default vnode dumper will bid at
+.Dv COREDUMPER_GENERIC
+as well.
+.It Dv COREDUMPER_SPECIAL
+This dumper provides special behavior, and will dump the process at a higher
+priority.
+.It Dv COREDUMPER_HIGHPRIORITY
+This dumper would prefer to handle this coredump.
+This may be used by, for instance, a custom or vendor-specific coredump
+mechanism that wishes to preempt others.
+.El
+.Pp
+Note that this system has been designed such that the
+.Fn cd_probe
+function can examine the process in question and make an informed decision.
+Different processes being dumped could probe at different priorities in the
+same coredumper.
+.Pp
+Once the highest priority coredumper has been selected, the
+.Fn cd_handle
+function will be invoked.
+The
+.Fn cd_handle
+will receive both the thread and the
+.Dv RLIMIT_CORE
+.Xr setrlimit 2
+.Fa limit .
+The proc lock will be held on entry, and should be unlocked before the handler
+returns.
+The
+.Fa limit
+is typically passed to the
+.Fn sv_coredump
+that belongs to the process's
+.Va p_sysent .
+.Pp
+The
+.Fn cd_handle
+function should return either 0 if the dump was successful, or an appropriate
+.Xr errno 2
+otherwise.
+.Ss Customized Coredump Writers
+Custom coredumpers can define their own
+.Dv coredump_writer
+to pass to
+.Fn sv_coredump .
+.Pp
+The
+.Va ctx
+member is opaque and only to be used by the coredumper itself.
+.Pp
+The
+.Va init_fn
+function, if it's provided, will be called by the
+.Fn sv_coredump
+implementation before any data is to be written.
+This allows the writer implementation to record any coredump parameters that it
+might need to capture, or setup the object to be written to.
+.Pp
+The
+.Va write_fn
+function will be called by the
+.Fn sv_coredump
+implementation to write out data.
+The
+.Va extend_fn
+function will be called to enlarge the coredump, in the sense that a hole is
+created in any difference between the current size and the new size.
+For convenience, the
+.Fn core_vn_write
+and
+.Fn core_vn_extend
+functions used by the vnode coredumper are exposed in
+.In sys/ucordumper.h ,
+and the
+.Dv coredump_vnode_ctx
+defined there should be populated with the vnode to write to.
+.Sh SEE ALSO
+.Xr setrlimit 2 ,
+.Xr core 5
+.Sh AUTHORS
+This manual page was written by
+.An Kyle Evans Aq Mt kevans@FreeBSD.org .
diff --git a/share/man/man9/counter.9 b/share/man/man9/counter.9
index 1d3f3281ac0b..05af87e8263e 100644
--- a/share/man/man9/counter.9
+++ b/share/man/man9/counter.9
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd March 11, 2021
+.Dd June 19, 2025
.Dt COUNTER 9
.Os
.Sh NAME
@@ -49,8 +49,14 @@
.Fn counter_u64_fetch "counter_u64_t c"
.Ft void
.Fn counter_u64_zero "counter_u64_t c"
+.Ft struct counter_rate *
+.Fn counter_rate_alloc "int flags" "int period"
.Ft int64_t
.Fn counter_ratecheck "struct counter_rate *cr" "int64_t limit"
+.Ft uint64_t
+.Fn counter_rate_get "struct counter_rate *cr"
+.Ft void
+.Fn counter_rate_free "struct counter_rate *cr"
.Fn COUNTER_U64_SYSINIT "counter_u64_t c"
.Fn COUNTER_U64_DEFINE_EARLY "counter_u64_t c"
.In sys/sysctl.h
@@ -133,6 +139,13 @@ value for any moment.
Clear the counter
.Fa c
and set it to zero.
+.It Fn counter_rate_alloc flags period
+Allocate a new struct counter_rate.
+.Fa flags
+is passed to
+.Xr malloc 9 .
+.Fa period
+is the time over which the rate is checked.
.It Fn counter_ratecheck cr limit
The function is a multiprocessor-friendly version of
.Fn ppsratecheck
@@ -140,11 +153,17 @@ which uses
.Nm
internally.
Returns non-negative value if the rate is not yet reached during the current
-second, and a negative value otherwise.
-If the limit was reached on previous second, but was just reset back to zero,
-then
+period, and a negative value otherwise.
+If the limit was reached during the previous period, but was just reset back
+to zero, then
.Fn counter_ratecheck
returns number of events since previous reset.
+.It Fn counter_rate_get cr
+The number of hits to this check within the current period.
+.It Fn counter_rate_free cr
+Free the
+.Fa cr
+counter.
.It Fn COUNTER_U64_SYSINIT c
Define a
.Xr SYSINIT 9
diff --git a/share/man/man9/cpu_machdep.9 b/share/man/man9/cpu_machdep.9
new file mode 100644
index 000000000000..415d86a8b766
--- /dev/null
+++ b/share/man/man9/cpu_machdep.9
@@ -0,0 +1,425 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2024 (holder)
+.\"
+.\" This software was developed by SRI International, the University of
+.\" Cambridge Computer Laboratory (Department of Computer Science and
+.\" Technology), and Capabilities Limited under Defense Advanced Research
+.\" Projects Agency (DARPA) Contract No. FA8750-24-C-B047 ("DEC").
+.\"
+.Dd January 31, 2025
+.Dt cpu_machdep 9
+.Os
+.Sh NAME
+.Nm cpu_machdep ,
+.Nm cpu_copy_thread ,
+.Nm cpu_exec_vmspace_reuse ,
+.Nm cpu_exit ,
+.Nm cpu_fetch_syscall_args ,
+.Nm cpu_fork ,
+.Nm cpu_fork_kthread_handler ,
+.Nm cpu_idle ,
+.Nm cpu_idle_wakeup ,
+.Nm cpu_procctl ,
+.Nm cpu_set_syscall_retval ,
+.Nm cpu_set_upcall ,
+.Nm cpu_set_user_tls ,
+.Nm cpu_switch ,
+.Nm cpu_sync_core ,
+.Nm cpu_thread_alloc ,
+.Nm cpu_thread_clean ,
+.Nm cpu_thread_exit ,
+.Nm cpu_thread_free ,
+.Nm cpu_throw ,
+.Nm cpu_update_pcb
+.Nd machine-dependent interfaces to handle CPU and thread state
+.Sh SYNOPSIS
+.In sys/proc.h
+.In sys/ptrace.h
+.Ft void
+.Fn cpu_copy_thread "struct thread *td" "struct thread *td0"
+.Ft bool
+.Fn cpu_exec_vmspace_reuse "struct proc *p" "struct vm_map *map"
+.Ft void
+.Fn cpu_exit "struct thread *td"
+.Ft int
+.Fn cpu_fetch_syscall_args "struct thread *td"
+.Ft void
+.Fo cpu_fork
+.Fa "struct thread *td1" "struct proc *p2" "struct thread *td2" "int flags"
+.Fc
+.Ft void
+.Fo cpu_fork_kthread_handler
+.Fa "struct thread *td" "void (*func)(void *)" "void *arg"
+.Fc
+.Ft void
+.Fn cpu_idle "int busy"
+.Ft int
+.Fn cpu_idle_wakeup "int cpu"
+.Ft int
+.Fo cpu_procctl
+.Fa "struct thread *td" "int idtype" "id_t id" "int com" "void *data"
+.Fc
+.Ft int
+.Fn cpu_ptrace "struct thread *_td" "int req" "void *addr" "int data"
+.Ft void
+.Fn cpu_set_syscall_retval "struct thread *td" "int error"
+.Ft int
+.Fo cpu_set_upcall
+.Fa "struct thread *td" "void (*entry)(void *)" "void *arg" "stack_t *stack"
+.Fc
+.Ft int
+.Fn cpu_set_user_tls "struct thread *td" "void *tls_base" "int thr_flags"
+.Ft void
+.Fn cpu_switch "struct thread *old" "struct thread *new" "struct mtx *mtx"
+.Ft void
+.Fn cpu_sync_core "void"
+.Ft void
+.Fn cpu_thread_alloc "struct thread *td"
+.Ft void
+.Fn cpu_thread_clean "struct thread *td"
+.Ft void
+.Fn cpu_thread_exit "struct thread *td"
+.Ft void
+.Fn cpu_thread_free "struct thread *td"
+.Ft void
+.Fn cpu_throw "struct thread *old" "struct thread *new"
+.Ft void
+.Fn cpu_update_pcb "struct thread *td"
+.Sh DESCRIPTION
+These functions provide architecture-specific implementations of
+machine-independent abstractions.
+.Pp
+.Fn cpu_exec_vmspace_reuse
+returns true if
+.Fn exec_new_vmspace
+can reuse an existing
+.Vt struct vmspace
+.Pq Fa map
+for the process
+.Fa p
+during
+.Xr execve 2 .
+This is only invoked if
+.Fa map
+is not shared with any other consumers.
+If this returns false,
+.Fn exec_new_vmspace
+will create a new
+.Vt struct vmspace .
+.Pp
+.Fn cpu_exit
+releases machine-dependent resources other than the address space for the
+process containing
+.Fa td
+during process exit.
+.Pp
+.Fn cpu_fork
+copies and updates machine-dependent state
+(for example, the pcb and user registers) from the forking thread
+.Fa td1
+in an existing process to the new thread
+.Fa td2
+in the new process
+.Fa p2 .
+This function must set up the new thread's kernel stack and pcb so that
+.Fa td2
+calls
+.Fn fork_exit
+when it begins execution passing a pointer to
+.Fn fork_return
+as the
+.Fa callout
+argument and
+.Fa td2
+as the
+.Fa arg
+argument.
+.Pp
+.Fn cpu_fork_kthread_handler
+adjusts a new thread's initial pcb and/or kernel stack to pass
+.Fa func
+and
+.Fa arg
+as the
+.Fa callout
+and
+.Fa arg
+arguments to
+.Fn fork_exit .
+This must be called before a new thread is scheduled to run and is
+used to set the
+.Dq main
+function for kernel threads.
+.Pp
+.Fn cpu_copy_thread
+copies machine-dependent state (for example, the pcb and user registers) from
+.Fa td
+to
+.Fa td0
+when creating a new thread in the same process.
+This function must set up the new thread's kernel stack and pcb so that
+.Fa td0
+calls
+.Fn fork_exit
+when it begins execution passing a pointer to
+.Fn fork_return
+as the
+.Fa callout
+argument and
+.Fa td0
+as the
+.Fa arg
+argument.
+.Pp
+.Fn cpu_set_upcall
+updates a new thread's initial user register state to call
+.Fa entry
+with
+.Fa arg
+as the sole argument using the user stack described in
+.Fa stack .
+.Pp
+.Fn cpu_set_user_tls
+sets a new thread's initial user thread pointer register to
+reference the user TLS base pointer
+.Fa tls_base .
+The
+.Fa thr_flags
+argument provides flags bits, from the same namespace as
+.Va flags
+member of the
+.Vt struct thr_param
+argument to the
+.Xr thr_new 2
+syscall.
+.Pp
+.Fn cpu_update_pcb
+updates the pcb of the current thread with current user register values.
+This is invoked before writing out register notes in a core dump.
+This function typically only has to update user registers for the current
+thread that are saved in the pcb during context switches rather than
+in the trapframe on kernel entry.
+.Pp
+Note that when
+.Fn cpu_update_pcb
+is used,
+threads in a process other than the current thread are stopped,
+typically by
+.Fn thread_single .
+The pcbs of those stopped threads should already be updated by
+.Fn cpu_switch .
+.Pp
+.Fn cpu_fetch_syscall_args
+fetches the current system call arguments for the native FreeBSD ABI from the
+current thread's user register state and/or user stack.
+The arguments are saved in the
+.Fa td_sa
+member of
+.Fa td .
+.Pp
+.Fn cpu_set_syscall_retval
+updates the user register state for
+.Fa td
+to store system call error and return values.
+If
+.Fa error
+is 0,
+indicate success and return the two values in
+.Fa td_retval .
+If
+.Fa error
+is
+.Dv ERESTART,
+adjust the user PC to re-invoke the current system call after returning
+to user mode.
+If
+.Fa error
+is
+.Dv EJUSTRETURN ,
+leave the current user register state unchanged.
+For any other value of
+.Fa error ,
+indicate error and return
+.Fa error
+as the error code.
+.Pp
+.Fn cpu_idle
+waits for the next interrupt to occur on the current CPU.
+If an architecture supports low power idling,
+this function should place the CPU into a low power state while waiting.
+.Fa busy
+is a hint from the scheduler.
+If
+.Fa busy
+is non-zero,
+the scheduler expects a short sleep,
+so the CPU should prefer low-latency over maximum power savings.
+If
+.Fa busy
+is zero,
+the CPU should maximumize power savings including deferring unnecessary
+clock interrupts via
+.Fn cpu_idleclock .
+.Pp
+.Fn cpu_idle_wakeup
+awakens the idle CPU with the ID
+.Fa cpu
+from a low-power state.
+.Pp
+.Fn cpu_procctl
+handles any machine-dependent
+.Xr procctl 2
+requests.
+.Pp
+.Fn cpu_ptrace
+handles any machine-dependent
+.Xr ptrace 2
+requests.
+.Pp
+.Fn cpu_switch
+switches the current CPU between threads by swapping register state.
+This function saves the current CPU register state in the pcb of
+.Fa old
+and loads register values from the pcb of
+.Fa new
+before returning.
+While the pcb generally contains caller-save kernel register state,
+it can also contain user registers that are not saved in the trapframe.
+.Pp
+After saving the current CPU register state of
+.Fa old ,
+.Fn cpu_switch
+stores
+.Fa mtx
+in the
+.Fa td_lock
+member of
+.Fa old
+transferring ownership of the old thread.
+No data belonging to
+.Fa old
+can be accessed after that store.
+Specifically, the old thread's kernel stack must not be accessed after
+this point.
+.Pp
+When
+.Dv SCHED_ULE
+is being used,
+this function must wait (via spinning) for the
+.Fa td_lock
+member of
+.Fa new
+to change to a value not equal to
+.Va &blocked_lock
+before loading register values from
+.Fa new
+or accessing its kernel stack.
+.Pp
+From the caller's perspective,
+.Fn cpu_switch
+returns when
+.Fa old
+is rescheduled in the future,
+possibly on a different CPU.
+However, the implementation of
+.Fn cpu_switch
+returns immediately on the same CPU into the previously-saved context of
+.Fa new .
+.Pp
+.Fn cpu_throw
+is similar to
+.Fn cpu_switch
+but does not save any state for
+.Fa old
+or write to the old thread's
+.Fa td_lock
+member.
+.Pp
+.Fn cpu_sync_core
+ensures that all possible speculation and out-of-order execution is
+serialized on the current CPU.
+Note that this is called from an IPI handler so only has to handle
+additional serialization beyond that provided by handling an IPI.
+.Ss Thread Object Lifecycle
+These functions support the management of machine-dependent thread
+state in conjunction with a thread object's lifecycle.
+.Pp
+The general model is that a thread object is allocated each time a
+new kernel thread is created either by system calls like
+.Xr fork 2
+or
+.Xr thr_new 2
+or when kernel-only threads are created via
+.Xr kproc_create 9 ,
+.Xr kproc_kthread_add 9 ,
+or
+.Xr kthread_add 9 .
+When a kernel thread exits,
+the thread object is freed.
+However, there is one special case to support an optimization where each
+free process object caches a thread object.
+When a process exits, the last thread object is not freed but remains
+attached to the process.
+When the process object is later reused for a new process in
+.Xr fork 2 ,
+the kernel recycles that last thread object and uses it as the initial
+thread in the new process.
+When a thread is recycled, some of the steps in the thread allocation
+and free cycle are skipped as an optimization.
+.Pp
+.Fn cpu_thread_alloc
+initializes machine-dependent fields in
+.Fa td
+after allocating a new kernel stack.
+This function typically sets the
+.Fa td_pcb
+and initial
+.Fa td_frame
+pointers.
+.Fn cpu_thread_alloc
+is called both when allocating a new thread object and
+when a recycled thread allocates a new kernel stack.
+Note that this function is
+.Em not
+called if a recycled thread reuses its existing kernel stack.
+.Pp
+.Fn cpu_thread_clean
+releases any machine-dependent resources for the last thread in a
+process during
+.Xr wait 2 .
+The thread is a candidate for recycling so should be reset to run as a
+new thread in case it is recycled by a future
+.Xr fork 2 .
+.Pp
+.Fn cpu_thread_exit
+cleans any machine-dependent state in
+.Fa td
+while it is exiting.
+This is called by the exiting thread so cannot free state needed during
+in-kernel execution.
+.Pp
+.Fn cpu_thread_free
+releases any machine-dependent state in
+.Fa td
+when it is being freed.
+This is called for any thread that was not the last thread in a process
+once it has finished execution.
+.Sh SEE ALSO
+.Xr fork 2 ,
+.Xr procctl 2 ,
+.Xr ptrace 2 ,
+.Xr thr_new 2 ,
+.Xr wait 2 ,
+.Xr kproc_create 9 ,
+.Xr kproc_kthread_add 9 ,
+.Xr kthread_add 9 ,
+.Xr mi_switch 9
+.Sh AUTHORS
+This manual page was
+developed by SRI International, the University of Cambridge Computer
+Laboratory (Department of Computer Science and Technology), and
+Capabilities Limited under contract
+.Pq FA8750-24-C-B047
+.Pq Do DEC Dc .
diff --git a/share/man/man9/cr_bsd_visible.9 b/share/man/man9/cr_bsd_visible.9
index f2d42f3835dc..d16f4bb6dd8f 100644
--- a/share/man/man9/cr_bsd_visible.9
+++ b/share/man/man9/cr_bsd_visible.9
@@ -107,11 +107,11 @@ and
are not in the same jail.
.El
.Sh SEE ALSO
-.Xr cr_canseeotheruids 9 ,
-.Xr cr_canseeothergids 9 ,
+.Xr cr_cansee 9 ,
.Xr cr_canseejailproc 9 ,
-.Xr priv_check_cred 9 ,
-.Xr cr_cansee 9
+.Xr cr_canseeothergids 9 ,
+.Xr cr_canseeotheruids 9 ,
+.Xr priv_check_cred 9
.Sh AUTHORS
This function and its manual page were written by
.An Olivier Certner Aq Mt olce.freebsd@certner.fr .
diff --git a/share/man/man9/cr_cansee.9 b/share/man/man9/cr_cansee.9
index d5cdfdd6f8e5..a93afb8e5c89 100644
--- a/share/man/man9/cr_cansee.9
+++ b/share/man/man9/cr_cansee.9
@@ -77,7 +77,7 @@ The MAC subsystem denied visibility.
denied visibility according to the BSD security policies in force.
.El
.Sh SEE ALSO
-.Xr prison_check 9 ,
-.Xr mac 9 ,
.Xr cr_bsd_visible 9 ,
-.Xr p_cansee 9
+.Xr mac 9 ,
+.Xr p_cansee 9 ,
+.Xr prison_check 9
diff --git a/share/man/man9/cr_canseeothergids.9 b/share/man/man9/cr_canseeothergids.9
index 109d41a8545d..530335d5d5f7 100644
--- a/share/man/man9/cr_canseeothergids.9
+++ b/share/man/man9/cr_canseeothergids.9
@@ -79,5 +79,5 @@ Otherwise, it returns
.Er ESRCH .
.Sh SEE ALSO
.Xr cr_bsd_visible 9 ,
-.Xr realgroupmember 9 ,
-.Xr priv_check_cred 9
+.Xr priv_check_cred 9 ,
+.Xr realgroupmember 9
diff --git a/share/man/man9/crypto_request.9 b/share/man/man9/crypto_request.9
index 45c3b62eea26..af62b9089561 100644
--- a/share/man/man9/crypto_request.9
+++ b/share/man/man9/crypto_request.9
@@ -28,7 +28,7 @@
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
-.Dd November 2, 2022
+.Dd May 8, 2025
.Dt CRYPTO_REQUEST 9
.Os
.Sh NAME
@@ -466,17 +466,6 @@ Set by drivers prior to completing a request via
.Fn crypto_done .
.It Fa crp_flags
A bitmask of flags.
-The following flags are available in addition to flags discussed previously:
-.Bl -tag -width CRYPTO_F_DONE
-.It Dv CRYPTO_F_DONE
-Set by
-.Fa crypto_done
-before calling
-.Fa crp_callback .
-This flag is not very useful and will likely be removed in the future.
-It can only be safely checked from the callback routine at which point
-it is always set.
-.El
.It Fa crp_cipher_key
Pointer to a request-specific encryption key.
If this value is not set,
diff --git a/share/man/man9/dev_clone.9 b/share/man/man9/dev_clone.9
index f5f59e3c6666..56bdd1a9a248 100644
--- a/share/man/man9/dev_clone.9
+++ b/share/man/man9/dev_clone.9
@@ -42,7 +42,7 @@ EVENTHANDLER_REGISTER(dev_clone, clone_handler, arg, priority);
.Sh DESCRIPTION
A device driver may register a listener that will be notified each time
a name lookup on the
-.Xr devfs 5
+.Xr devfs 4
mount point fails to find the vnode.
A listener shall be registered for the
.Va dev_clone
@@ -72,5 +72,5 @@ that were started before
.Fn drain_dev_clone_events
call, are finished before it returns control.
.Sh SEE ALSO
-.Xr devfs 5 ,
+.Xr devfs 4 ,
.Xr namei 9
diff --git a/share/man/man9/dev_refthread.9 b/share/man/man9/dev_refthread.9
index e12b5f49a0e5..f615725b0a47 100644
--- a/share/man/man9/dev_refthread.9
+++ b/share/man/man9/dev_refthread.9
@@ -47,7 +47,7 @@ The
and
.Fn dev_relthread
routines provide a safe way to access
-.Xr devfs 5
+.Xr devfs 4
devices that may be concurrently destroyed by
.Fn destroy_dev
(e.g., removable media).
@@ -143,7 +143,7 @@ and do not initialize the value pointed to by the
parameter in any way.
.Ef
.Sh SEE ALSO
-.Xr devfs 5 ,
+.Xr devfs 4 ,
.Xr destroy_dev 9
.Sh CAVEATS
Do not invoke
diff --git a/share/man/man9/devclass.9 b/share/man/man9/devclass.9
index d3c83133ae17..cbf81f3b0fa3 100644
--- a/share/man/man9/devclass.9
+++ b/share/man/man9/devclass.9
@@ -46,10 +46,11 @@ Each
has a name and there cannot be two devclasses with the same name.
This ensures that unique unit numbers are allocated to device
instances.
+All instances with the same name are treated as being the same.
.Pp
-Beware that this means
-.Vt devclass
-must be the same for different bus attachments of the same device driver.
+When no specific unit number is needed,
+.Vt DEVICE_UNIT_ANY
+is used.
.Sh SEE ALSO
.Xr devclass_add_driver 9 ,
.Xr devclass_delete_driver 9 ,
diff --git a/share/man/man9/devfs_set_cdevpriv.9 b/share/man/man9/devfs_set_cdevpriv.9
index 3258ca082e5f..0cbfd3eebeb7 100644
--- a/share/man/man9/devfs_set_cdevpriv.9
+++ b/share/man/man9/devfs_set_cdevpriv.9
@@ -62,7 +62,7 @@ Currently, functioning of these functions is restricted to the context
of the
.Fa cdevsw
switch method calls performed as
-.Xr devfs 5
+.Xr devfs 4
operations in response to system calls that use filedescriptors.
.Pp
The
@@ -151,7 +151,7 @@ any blockable locking inside the callback
.Sh SEE ALSO
.Xr close 2 ,
.Xr open 2 ,
-.Xr devfs 5
+.Xr devfs 4
.Sh HISTORY
The
.Fn devfs_cdevpriv
diff --git a/share/man/man9/device_add_child.9 b/share/man/man9/device_add_child.9
index 423869d6ff6b..dfd0d19049bc 100644
--- a/share/man/man9/device_add_child.9
+++ b/share/man/man9/device_add_child.9
@@ -51,7 +51,7 @@ arguments specify the name and unit number of the device.
If the name is unknown then the caller should pass
.Dv NULL .
If the unit is unknown then the caller should pass
-.Dv -1
+.Dv DEVICE_UNIT_ANY
and the system will choose the next available unit number.
.Pp
The name of the device is used to determine which drivers might be
@@ -70,7 +70,7 @@ be specified as the device name.
.Pp
Normally unit numbers will be chosen automatically by the system and a
unit number of
-.Dv -1
+.Dv DEVICE_UNIT_ANY
should be given.
When a specific unit number is desired (e.g.,\& for wiring a particular
piece of hardware to a pre-configured unit number), that unit should
diff --git a/share/man/man9/device_delete_child.9 b/share/man/man9/device_delete_child.9
index f6c08cb52e16..819c7f5e36b9 100644
--- a/share/man/man9/device_delete_child.9
+++ b/share/man/man9/device_delete_child.9
@@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd June 16, 1998
+.Dd February 5, 2025
.Dt DEVICE_DELETE_CHILD 9
.Os
.Sh NAME
@@ -41,13 +41,26 @@
The specified device is removed from
.Fa dev
and deleted.
-If the device is currently attached, it is first detached (see
-.Xr DEVICE_ATTACH 9
-and
-.Xr DEVICE_DETACH 9 ) .
+If the device is currently attached, it is first detached via
+.Xr device_detach 9 .
+If
+.Fn device_detach
+fails,
+its error value is returned.
+Otherwise,
+all descendant devices of
+.Fa child
+are deleted and zero is returned.
+.Pp
+The
+.Xr BUS_CHILD_DELETED 9
+method is invoked for each device that is deleted.
+This permits the parent device's driver to tear down any state associated
+with child devices such as ivars.
.Sh RETURN VALUES
Zero is returned on success, otherwise an error is returned.
.Sh SEE ALSO
+.Xr BUS_CHILD_DELETED 9 ,
.Xr device_add_child 9
.Sh AUTHORS
This manual page was written by
diff --git a/share/man/man9/device_probe_and_attach.9 b/share/man/man9/device_probe_and_attach.9
index 5d5de52cee66..0c438be3a483 100644
--- a/share/man/man9/device_probe_and_attach.9
+++ b/share/man/man9/device_probe_and_attach.9
@@ -26,33 +26,139 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd June 16, 1998
+.Dd February 5, 2025
.Dt DEVICE_PROBE_AND_ATTACH 9
.Os
.Sh NAME
+.Nm device_attach ,
+.Nm device_detach ,
+.Nm device_probe ,
.Nm device_probe_and_attach
-.Nd initialise a device
+.Nd manage device's connection to a device driver
.Sh SYNOPSIS
.In sys/param.h
.In sys/bus.h
.Ft int
+.Fn device_attach "device_t dev"
+.Ft int
+.Fn device_detach "device_t dev"
+.Ft int
+.Fn device_probe "device_t dev"
+.Ft int
.Fn device_probe_and_attach "device_t dev"
.Sh DESCRIPTION
-This function is called during autoconfiguration to initialise the
-devices in the system.
-For each device, the
+These functions manage the relationship between a device and device drivers.
+.Pp
+.Fn device_probe
+invokes the
.Xr DEVICE_PROBE 9
-method of each suitable driver is called and if a probe succeeds, a
-description of the device is printed and the
+method of each suitable driver and to find the driver with the best match for
+.Fa dev .
+If a matching driver is found,
+.Fa dev
+is set to the
+.Dv DS_ALIVE
+state and zero is returned.
+If
+.Fa dev
+is already attached to a device driver or has been disabled via
+.Xr device_disable 9 ,
+then it will not be probed and -1 is returned.
+.Pp
+.Fn device_attach
+fully attaches a device driver to
+.Fa dev .
+This function prints a description of the device and invokes the
+.Xr DEVICE_ATTACH 9
+method.
+If the
+.Xr DEVICE_ATTACH 9
+method succeeds,
+.Fa dev
+is set to the
+.Dv DS_ATTACHED
+state and zero is returned.
+If the
.Xr DEVICE_ATTACH 9
-method is called.
-If the device is disabled using
-.Xr device_disable 9
-then it will not be probed.
+method fails,
+.Xr BUS_CHILD_DETACHED 9
+is called and an error value is returned.
+.Pp
+If the device name and unit are disabled by a hint,
+.Fn device_attach
+disables the device, demotes it to the
+.Dv DS_NOTPRESENT
+state,
+and returns
+.Dv ENXIO .
+The device retains its device name and unit and can be re-enabled via
+.Xr devctl 8 .
+.Pp
+.Fn device_probe_and_attach
+is a wrapper function around
+.Fn device_probe
+and
+.Fn device_attach
+that fully initialises a device.
+If
+.Fa dev
+is already attached or disabled,
+.Fn device_probe_and_attach
+leaves the device unchanged and returns zero.
+Otherwise,
+.Fn device_probe
+is used to identify a device driver for
+.Fa dev
+and
+.Fn device_attach
+finalizes attaching the driver to
+.Fa dev .
+Device drivers should generally use this function to initialize a device
+rather than direct calls to
+.Fn device_probe
+and
+.Fn device_attach .
+.Pp
+.Fn device_detach
+detaches the device driver from
+.Fa dev .
+This function invokes the
+.Xr DEVICE_DETACH 9
+method to tear down device driver state for
+.Fa dev .
+If the method fails,
+its error value is returned and
+.Fa dev
+remains attached.
+If the method succeeds,
+otherwise,
+.Xr BUS_CHILD_DETACHED 9
+is called,
+the device is set to the
+.Dv DS_NOTPRESENT
+state,
+and zero is returned.
+If a device is busy,
+.Fn device_detach
+fails with
+.Dv EBUSY
+and leaving
+.Fa dev
+unchanged.
.Sh RETURN VALUES
Zero is returned on success, otherwise an appropriate error is returned.
+In addition,
+.Fn device_probe
+returns -1 if
+.Fa dev
+is disabled or already attached.
.Sh SEE ALSO
+.Xr devctl 8 ,
+.Xr BUS_CHILD_DETACHED 9 ,
.Xr device 9 ,
+.Xr DEVICE_ATTACH 9 ,
+.Xr DEVICE_DETACH 9 ,
+.Xr DEVICE_PROBE 9 ,
.Xr driver 9
.Sh AUTHORS
This manual page was written by
diff --git a/share/man/man9/disk.9 b/share/man/man9/disk.9
index 047abb96c619..41436427cbc2 100644
--- a/share/man/man9/disk.9
+++ b/share/man/man9/disk.9
@@ -51,7 +51,7 @@ disk-like storage devices to advertise the device to other kernel
components, including
.Xr GEOM 4
and
-.Xr devfs 5 .
+.Xr devfs 4 .
.Pp
Each disk device is described by a
.Vt "struct disk"
@@ -242,8 +242,8 @@ Typically used to store a pointer to the drivers
structure for this disk device.
.El
.Sh SEE ALSO
-.Xr GEOM 4 ,
-.Xr devfs 5
+.Xr devfs 4 ,
+.Xr GEOM 4
.Sh HISTORY
The
.Nm kernel disk storage API
diff --git a/share/man/man9/dnv.9 b/share/man/man9/dnv.9
index 8c89d6599801..16f603df8392 100644
--- a/share/man/man9/dnv.9
+++ b/share/man/man9/dnv.9
@@ -23,13 +23,13 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 26, 2016
+.Dd January 3, 2025
.Dt DNV 9
.Os
.Sh NAME
.Nm dnvlist_get ,
.Nm dnvlist_take
-.Nd "API for getting name/value pairs. Nonexistent pairs do not raise an error."
+.Nd "API for getting name/value pairs with a default value"
.Sh LIBRARY
.Lb libnv
.Sh SYNOPSIS
@@ -63,26 +63,32 @@ The
.Nm libnv
library permits easy management of name/value pairs and can send and receive
them over sockets.
-For more information, also see
+For more information, see
.Xr nv 9 .
.Pp
The
.Nm dnvlist_get
-family of functions returns the value associated with the specified name.
-If an element of the specified name does not exist, the function returns the
+functions return the value associated with
+.Fa name .
+If an element named
+.Fa name
+does not exist, the function returns the
value provided in
.Fa defval .
Returned strings, nvlists, descriptors, binaries, or arrays must not be modified
-by the user.
-They still belong to the nvlist.
+by the user since they still belong to the nvlist.
If the nvlist is in an error state, attempts to use any of these functions will
cause the program to abort.
.Pp
The
.Nm dnvlist_take
-family of functions returns the value associated with the specified name and
-removes the element from the nvlist.
-If an element of the supplied name does not exist, the value provided in
+functions return the value associated with
+.Fa name
+and removes the associated element from
+.Fa nvl .
+If an element named
+.Fa name
+does not exist, the value provided in
.Nm defval
is returned.
When the value is a string, binary, or array value, the caller is
diff --git a/share/man/man9/domain.9 b/share/man/man9/domain.9
index eaa279cef996..dab8cff89e12 100644
--- a/share/man/man9/domain.9
+++ b/share/man/man9/domain.9
@@ -183,7 +183,6 @@ has an empty slot in its
.Va dom_protosw .
Dynamically added protocol can later be unloaded with
.Fn protosw_unregister .
-.Ed
.Sh RETURN VALUES
The
.Fn domain_add
diff --git a/share/man/man9/domainset.9 b/share/man/man9/domainset.9
index 816ce29f04f7..702c9f83a88b 100644
--- a/share/man/man9/domainset.9
+++ b/share/man/man9/domainset.9
@@ -22,7 +22,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 14, 2021
+.Dd June 24, 2025
.Dt DOMAINSET 9
.Os
.Sh NAME
@@ -54,6 +54,8 @@ struct domainset {
.Ft struct domainset *
.Fn domainset_create "const struct domainset *key"
.Ft int
+.Fn domainset_populate "struct domainset *domain" "domainset_t *mask" "int policy" "size_t mask_size"
+.Ft int
.Fn sysctl_handle_domainset "SYSCTL_HANDLER_ARGS"
.Sh DESCRIPTION
The
@@ -137,6 +139,7 @@ These policies should be used in preference to
to avoid blocking indefinitely on a
.Dv M_WAITOK
request.
+.Pp
The
.Fn domainset_create
function takes a partially filled in domainset as a key and returns a
@@ -148,6 +151,17 @@ is an immutable type that is shared among all matching keys and must
not be modified after return.
.Pp
The
+.Fn domainset_populate
+function fills a
+.Vt domainset
+struct using a domain mask and policy.
+It is used for validating and
+translating a domain mask and policy into a
+.Vt domainset
+struct when creating a custom domainset using
+.Vt domainset_create .
+.Pp
+The
.Fn sysctl_handle_domainset
function is provided as a convenience for modifying or viewing domainsets
that are not accessible via
diff --git a/share/man/man9/firmware.9 b/share/man/man9/firmware.9
index 883f0a2634d4..43f965a20fb7 100644
--- a/share/man/man9/firmware.9
+++ b/share/man/man9/firmware.9
@@ -201,7 +201,7 @@ whether compiled in, or preloaded by
or manually loaded with
.Xr kldload 8 .
However, a system can implement additional mechanisms to bring
-these images in memory before calling
+these images into memory before calling
.Fn firmware_register .
.Pp
When
@@ -341,13 +341,13 @@ uses the following algorithm to find firmware images:
.It
If an existing firmware image is registered for
.Fa imagename,
-.that image is returned.
+that image is returned.
.It
If
.Fa imagename
matches the trailing subpath of a registered image with a full path, that image is returned.
.It
-he kernel linker searches for a kernel module named
+The kernel linker searches for a kernel module named
.Fa imagename .
If a kernel module is found, it is loaded, and
the list of registered firmware images is searched again.
diff --git a/share/man/man9/g_provider.9 b/share/man/man9/g_provider.9
index d421af3b1264..940772b26fa5 100644
--- a/share/man/man9/g_provider.9
+++ b/share/man/man9/g_provider.9
@@ -50,7 +50,7 @@ The
function creates a new provider on given geom
.Fa gp .
The name of the provider, which will appear as device in
-.Xr devfs 5 ,
+.Xr devfs 4 ,
is created
in a
.Xr printf 3 Ns
diff --git a/share/man/man9/groupmember.9 b/share/man/man9/groupmember.9
index b7865a35fdc9..e7e28bae3ac9 100644
--- a/share/man/man9/groupmember.9
+++ b/share/man/man9/groupmember.9
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\"
-.Dd August 18, 2023
+.Dd October 31, 2024
.Dt GROUPMEMBER 9
.Os
.Sh NAME
@@ -35,9 +35,9 @@
.In sys/param.h
.In sys/ucred.h
.Ft bool
-.Fn groupmember "gid_t gid" "struct ucred *cred"
+.Fn groupmember "gid_t gid" "const struct ucred *cred"
.Ft bool
-.Fn realgroupmember "gid_t gid" "struct ucred *cred"
+.Fn realgroupmember "gid_t gid" "const struct ucred *cred"
.Sh DESCRIPTION
The
.Fn groupmember
@@ -69,7 +69,7 @@ or
.Dv false
otherwise.
.Sh SEE ALSO
-.Xr getgroups 2
+.Xr getgroups 2 ,
.Xr setgroups 2
.Sh AUTHORS
This manual page was initially written by
diff --git a/share/man/man9/ieee80211.9 b/share/man/man9/ieee80211.9
index 100b4e7540a5..40c8c243a77c 100644
--- a/share/man/man9/ieee80211.9
+++ b/share/man/man9/ieee80211.9
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 26, 2021
+.Dd April 24, 2024
.Dt IEEE80211 9
.Os
.Sh NAME
@@ -514,6 +514,8 @@ General capabilities are specified by
.Vt ic_caps .
Hardware cryptographic capabilities are specified by
.Vt ic_cryptocaps .
+Software cryptographic capabilities are specified by
+.Vt ic_sw_cryptocaps .
802.11n capabilities, if any, are specified by
.Vt ic_htcaps .
The
diff --git a/share/man/man9/ifnet.9 b/share/man/man9/ifnet.9
index b835c51c546f..3c45e4f29e2d 100644
--- a/share/man/man9/ifnet.9
+++ b/share/man/man9/ifnet.9
@@ -26,10 +26,11 @@
.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 24, 2022
+.Dd December 10, 2024
.Dt IFNET 9
.Os
.Sh NAME
+.Nm if_t ,
.Nm ifnet ,
.Nm ifaddr ,
.Nm ifqueue ,
@@ -44,46 +45,44 @@
.In net/if_types.h
.\"
.Ss "Interface Manipulation Functions"
-.Ft "struct ifnet *"
+.Ft "if_t"
.Fn if_alloc "u_char type"
-.Ft "struct ifnet *"
+.Ft "if_t"
.Fn if_alloc_dev "u_char type" "device_t dev"
-.Ft "struct ifnet *"
+.Ft "if_t"
.Fn if_alloc_domain "u_char type" "int numa_domain"
.Ft void
-.Fn if_attach "struct ifnet *ifp"
+.Fn if_attach "if_t ifp"
.Ft void
-.Fn if_detach "struct ifnet *ifp"
+.Fn if_detach "if_t ifp"
.Ft void
-.Fn if_free "struct ifnet *ifp"
+.Fn if_free "if_t ifp"
.Ft void
-.Fn if_free_type "struct ifnet *ifp" "u_char type"
+.Fn if_free_type "if_t ifp" "u_char type"
.Ft void
-.Fn if_down "struct ifnet *ifp"
+.Fn if_down "if_t ifp"
.Ft int
.Fn ifioctl "struct socket *so" "u_long cmd" "caddr_t data" "struct thread *td"
.Ft int
-.Fn ifpromisc "struct ifnet *ifp" "int pswitch"
+.Fn ifpromisc "if_t ifp" "int pswitch"
.Ft int
-.Fn if_allmulti "struct ifnet *ifp" "int amswitch"
-.Ft "struct ifnet *"
+.Fn if_allmulti "if_t ifp" "int amswitch"
+.Ft "if_t"
.Fn ifunit "const char *name"
-.Ft "struct ifnet *"
+.Ft "if_t"
.Fn ifunit_ref "const char *name"
.Ft void
-.Fn if_up "struct ifnet *ifp"
+.Fn if_up "if_t ifp"
.\"
.Ss "Interface Address Functions"
.Ft "struct ifaddr *"
-.Fn ifaddr_byindex "u_short idx"
-.Ft "struct ifaddr *"
.Fn ifa_ifwithaddr "struct sockaddr *addr"
.Ft "struct ifaddr *"
.Fn ifa_ifwithdstaddr "struct sockaddr *addr" "int fib"
.Ft "struct ifaddr *"
.Fn ifa_ifwithnet "struct sockaddr *addr" "int ignore_ptp" "int fib"
.Ft "struct ifaddr *"
-.Fn ifaof_ifpforaddr "struct sockaddr *addr" "struct ifnet *ifp"
+.Fn ifaof_ifpforaddr "struct sockaddr *addr" "if_t ifp"
.Ft void
.Fn ifa_ref "struct ifaddr *ifa"
.Ft void
@@ -91,35 +90,221 @@
.\"
.Ss "Interface Multicast Address Functions"
.Ft int
-.Fn if_addmulti "struct ifnet *ifp" "struct sockaddr *sa" "struct ifmultiaddr **ifmap"
+.Fn if_addmulti "if_t ifp" "struct sockaddr *sa" "struct ifmultiaddr **ifmap"
.Ft int
-.Fn if_delmulti "struct ifnet *ifp" "struct sockaddr *sa"
+.Fn if_delmulti "if_t ifp" "struct sockaddr *sa"
.Ft "struct ifmultiaddr *"
-.Fn if_findmulti "struct ifnet *ifp" "struct sockaddr *sa"
+.Fn if_findmulti "if_t ifp" "struct sockaddr *sa"
+.Ss "Output queue accessors"
+.Fn if_dequeue "if_t ifp" "struct mbuf *m"
.Ss "Output queue macros"
.Fn IF_DEQUEUE "struct ifqueue *ifq" "struct mbuf *m"
.\"
+.Ss "if_t accesors"
+.Ft uint64_t
+.Fn if_setbaudrate "if_t ifp" "uint64_t baudrate"
+.Ft uint64_t
+.Fn if_getbaudrate "const if_t ifp"
+.Ft int
+.Fn if_setcapabilities "if_t ifp" "int capabilities"
+.Ft int
+.Fn if_setcapabilitiesbit "if_t ifp" "int setbit" "int clearbit"
+.Ft int
+.Fn if_getcapabilities "const if_t ifp"
+.Ft int
+.Fn if_togglecapenable "if_t ifp" "int togglecap"
+.Ft int
+.Fn if_setcapenable "if_t ifp" "int capenable"
+.Ft int
+.Fn if_setcapenablebit "if_t ifp" "int setcap" "int clearcap"
+.Ft int
+.Fn if_getcapenable "const if_t ifp"
+.Ft int
+.Fn if_setcapabilities2 "if_t ifp" "int capabilities"
+.Ft int
+.Fn if_setcapabilities2bit "if_t ifp" "int setbit" "int clearbit"
+.Ft int
+.Fn if_getcapabilities2 "const if_t ifp"
+.Ft int
+.Fn if_togglecapenable2 "if_t ifp" "int togglecap"
+.Ft int
+.Fn if_setcapenable2 "if_t ifp" "int capenable"
+.Ft int
+.Fn if_setcapenable2bit "if_t ifp" "int setcap" "int clearcap"
+.Ft int
+.Fn if_getcapenable2 "const if_t ifp"
+.Ft int
+.Fn if_getdunit "const if_t ifp"
+.Ft int
+.Fn if_getindex "const if_t ifp"
+.Ft int
+.Fn if_getidxgen "const if_t ifp"
+.Ft const char *
+.Fn if_getdname "const if_t ifp"
+.Ft void
+.Fn if_setdname "if_t ifp" "const char *name"
+.Ft const char *
+.Fn if_name "if_t ifp"
+.Ft int
+.Fn if_setname "if_t ifp" "const char *name"
+.Ft void
+.Fn if_setdescr "if_t ifp" "char *descrbuf"
+.Ft char *
+.Fn if_allocdescr "size_t sz" "int malloc_flag"
+.Ft void
+.Fn if_freedescr "char *descrbuf"
+.Ft int
+.Fn if_getalloctype "const if_t ifp"
+.Ft int
+.Fn if_gettype "const if_t ifp"
+.Ft int
+.Fn if_setdev "if_t ifp" "void *dev"
+.Ft int
+.Fn if_setdrvflagbits "if_t ifp" "int if_setflags" "int clear_flags"
+.Ft int
+.Fn if_getdrvflags "const if_t ifp"
+.Ft int
+.Fn if_setdrvflags "if_t ifp" "int flags"
+.Ft int
+.Fn if_getlinkstate "if_t ifp"
+.Ft int
+.Fn if_clearhwassist "if_t ifp"
+.Ft int
+.Fn if_sethwassistbits "if_t ifp" "int toset" "int toclear"
+.Ft int
+.Fn if_sethwassist "if_t ifp" "int hwassist_bit"
+.Ft int
+.Fn if_gethwassist "const if_t ifp"
+.Ft int
+.Fn if_togglehwassist "if_t ifp" "int toggle_bits"
+.Ft int
+.Fn if_setsoftc "if_t ifp" "void *softc"
+.Ft void *
+.Fn if_getsoftc "if_t ifp"
+.Ft void
+.Fn if_setllsoftc "if_t ifp" "void *softc"
+.Ft void *
+.Fn if_getllsoftc "if_t ifp"
+.Ft u_int
+.Fn if_getfib "if_t ifp"
+.Ft uint8_t
+.Fn if_getaddrlen "if_t ifp"
+.Ft int
+.Fn if_gethwaddr "const if_t ifp" "struct ifreq *"
+.Ft const uint8_t *
+.Fn if_getbroadcastaddr "const if_t ifp"
+.Ft void
+.Fn if_setbroadcastaddr "if_t ifp" "const uint8_t *"
+.Ft int
+.Fn if_setmtu "if_t ifp" "int mtu"
+.Ft int
+.Fn if_getmtu "const if_t ifp"
+.Ft int
+.Fn if_getmtu_family "const if_t ifp" "int family"
+.Ft void
+.Fn if_notifymtu "if_t ifp"
+.Ft int
+.Fn if_setflagbits "if_t ifp" "int set" "int clear"
+.Ft int
+.Fn if_setflags "if_t ifp" "int flags"
+.Ft int
+.Fn if_getflags "const if_t ifp"
+.Ft int
+.Fn if_getnumadomain "if_t ifp"
+.Ft int
+.Fn if_sendq_empty "if_t ifp"
+.Ft int
+.Fn if_setsendqready "if_t ifp"
+.Ft int
+.Fn if_setsendqlen "if_t ifp" "int tx_desc_count"
+.Ft int
+.Fn if_sethwtsomax "if_t ifp" "u_int if_hw_tsomax"
+.Ft int
+.Fn if_sethwtsomaxsegcount "if_t ifp" "u_int if_hw_tsomaxsegcount"
+.Ft int
+.Fn if_sethwtsomaxsegsize "if_t ifp" "u_int if_hw_tsomaxsegsize"
+.Ft u_int
+.Fn if_gethwtsomax "const if_t ifp"
+.Ft u_int
+.Fn if_gethwtsomaxsegcount "const if_t ifp"
+.Ft u_int
+.Fn if_gethwtsomaxsegsize "const if_t ifp"
+.Ft void
+.Fn if_setnetmapadapter "if_t ifp" "struct netmap_adapter *na"
+.Ft struct netmap_adapter *
+.Fn if_getnetmapadapter "if_t ifp"
+.Ft void
+.Fn if_input "if_t ifp" "struct mbuf* sendmp"
+.Ft int
+.Fn if_sendq_prepend "if_t ifp" "struct mbuf *m"
+.Ft struct mbuf *
+.Fn if_dequeue "if_t ifp"
+.Ft int
+.Fn if_setifheaderlen "if_t ifp" "int len"
+.Ft void
+.Fn if_setrcvif "struct mbuf *m" "if_t ifp"
+.Ft void
+.Fn if_setvtag "struct mbuf *m" "u_int16_t tag"
+.Ft u_int16_t
+.Fn if_getvtag "struct mbuf *m"
+.Ft int
+.Fn if_vlantrunkinuse "if_t ifp"
+.Ft caddr_t
+.Fn if_getlladdr "const if_t ifp"
+.Ft struct vnet *
+.Fn if_getvnet "const if_t ifp"
+.Ft void *
+.Fn if_gethandle "u_char"
+.Ft void
+.Fn if_bpfmtap "if_t ifp" "struct mbuf *m"
+.Ft void
+.Fn if_etherbpfmtap "if_t ifp" "struct mbuf *m"
+.Ft void
+.Fn if_vlancap "if_t ifp"
+.Ft int
+.Fn if_transmit "if_t ifp" "struct mbuf *m"
+.Ft void
+.Fn if_init "if_t ifp" "void *ctx"
+.Ft int
+.Fn if_resolvemulti "if_t ifp" "struct sockaddr **" "struct sockaddr *"
+.Ft uint64_t
+.Fn if_getcounter "if_t ifp" "ift_counter counter"
+.Ft struct label *
+.Fn if_getmaclabel "if_t ifp"
+.Ft void
+.Fn if_setmaclabel "if_t ifp" "struct label *label"
+.Ft struct bpf_if *
+.Fn if_getbpf "if_t ifp"
+.Ft uint8_t
+.Fn if_getpcp "if_t ifp"
+.Ft void *
+.Fn if_getl2com "if_t ifp"
+.Ft struct ifvlantrunk *
+.Fn if_getvlantrunk "if_t ifp"
+.Ft bool
+.Fn if_altq_is_enabled "if_t ifp"
+.\"
.Ss "struct ifnet Member Functions"
.Ft void
-.Fn \*(lp*if_input\*(rp "struct ifnet *ifp" "struct mbuf *m"
+.Fn \*(lp*if_input\*(rp "if_t ifp" "struct mbuf *m"
.Ft int
.Fo \*(lp*if_output\*(rp
-.Fa "struct ifnet *ifp" "struct mbuf *m"
+.Fa "if_t ifp" "struct mbuf *m"
.Fa "const struct sockaddr *dst" "struct route *ro"
.Fc
.Ft void
-.Fn \*(lp*if_start\*(rp "struct ifnet *ifp"
+.Fn \*(lp*if_start\*(rp "if_t ifp"
.Ft int
-.Fn \*(lp*if_transmit\*(rp "struct ifnet *ifp" "struct mbuf *m"
+.Fn \*(lp*if_transmit\*(rp "if_t ifp" "struct mbuf *m"
.Ft void
-.Fn \*(lp*if_qflush\*(rp "struct ifnet *ifp"
+.Fn \*(lp*if_qflush\*(rp "if_t ifp"
.Ft int
-.Fn \*(lp*if_ioctl\*(rp "struct ifnet *ifp" "u_long cmd" "caddr_t data"
+.Fn \*(lp*if_ioctl\*(rp "if_t ifp" "u_long cmd" "caddr_t data"
.Ft void
.Fn \*(lp*if_init\*(rp "void *if_softc"
.Ft int
.Fo \*(lp*if_resolvemulti\*(rp
-.Fa "struct ifnet *ifp" "struct sockaddr **retsa" "struct sockaddr *addr"
+.Fa "if_t ifp" "struct sockaddr **retsa" "struct sockaddr *addr"
.Fc
.Ss "struct ifaddr member function"
.Ft void
@@ -196,8 +381,6 @@ address
.Xr link_addr 3 )
describing the link layer implemented by the interface (if any)
is accessed by the
-.Fn ifaddr_byindex
-function or
.Va if_addr
structure.
(Some trivial interfaces do not provide any link layer addresses;
@@ -216,232 +399,98 @@ Interfaces are also associated with an output queue, defined as a
.Vt "struct ifqueue" ;
this structure is used to hold packets while the interface is in the
process of sending another.
-.Ss The ifnet Structure
-The fields of
-.Vt "struct ifnet"
+.Ss The ifnet accessors
+The accessors for
+.Vt "if_t"
are as follows:
-.Bl -tag -width ".Va if_capabilities" -offset indent
-.It Va if_softc
-.Pq Vt "void *"
-A pointer to the driver's private state block.
-(Initialized by driver.)
-.It Va if_l2com
-.Pq Vt "void *"
-A pointer to the common data for the interface's layer 2 protocol.
-(Initialized by
-.Fn if_alloc . )
-.It Va if_vnet
-.Pq Vt "struct vnet *"
-A pointer to the virtual network stack instance.
-(Initialized by
-.Fn if_attach . )
-.It Va if_home_vnet
-.Pq Vt "struct vnet *"
-A pointer to the parent virtual network stack, where this
-.Vt "struct ifnet"
-originates from.
-(Initialized by
-.Fn if_attach . )
-.It Va if_link
-.Pq Fn TAILQ_ENTRY ifnet
-.Xr queue 3
-macro glue.
-.It Va if_xname
-.Pq Vt "char *"
-The name of the interface,
-(e.g.,
-.Dq Li fxp0
-or
-.Dq Li lo0 ) .
-(Initialized by driver
-(usually via
-.Fn if_initname ) . )
-.It Va if_dname
-.Pq Vt "const char *"
-The name of the driver.
-(Initialized by driver
-(usually via
-.Fn if_initname ) . )
-.It Va if_dunit
+.Bl -tag -width indent -offset indent
+.It Fn if_getbaudrate Fn if_setbaudrate
+.Pq Vt u_long
+The line rate of the interface, in bits per second.
+.It Fn if_setcapabilities Fn if_setcapabilitiesbit Fn if_getcapabilities
+.Pq Vt int
+Flags describing the capabilities the interface supports (see below).
+.It Fn if_getcapenable Fn if_setcapenable Fn if_setcapenablebit Fn if_togglecapenable
+.Pq Vt int
+Flags describing the enabled capabilities of the interface (see below).
+.It Fn if_getcapabilities2 Fn if_setcapabilities2 Fn if_setcapabilities2bit
+.It Fn if_getcapenable2 Fn if_setcapenable2 Fn if_setcapenable2bit Fn if_togglecapenable2
+.It Fn if_getdunit
.Pq Vt int
A unique number assigned to each interface managed by a particular
driver.
Drivers may choose to set this to
.Dv IF_DUNIT_NONE
if a unit number is not associated with the device.
-(Initialized by driver
-(usually via
-.Fn if_initname ) . )
-.It Va if_refcount
-.Pq Vt u_int
-The reference count.
-(Initialized by
-.Fn if_alloc . )
-.It Va if_addrhead
-.Pq Vt "struct ifaddrhead"
-The head of the
-.Xr queue 3
-.Li TAILQ
-containing the list of addresses assigned to this interface.
-.It Va if_pcount
-.Pq Vt int
-A count of promiscuous listeners on this interface, used to
-reference-count the
-.Dv IFF_PROMISC
-flag.
-.It Va if_carp
-.Pq Vt "struct carp_if *"
-A pointer to the CARP interface structure,
-.Xr carp 4 .
-(Initialized by the driver-specific
-.Fn if_ioctl
-routine.)
-.It Va if_bpf
-.Pq Vt "struct bpf_if *"
-Opaque per-interface data for the packet filter,
-.Xr bpf 4 .
-(Initialized by
-.Fn bpf_attach . )
-.It Va if_index
+(Initialized by driver, usually via
+.Fn if_initname . )
+.It Fn if_getindex
.Pq Vt u_short
-A unique number assigned to each interface in sequence as it is
-attached.
+Return the unique number assigned to the device when attached.
This number can be used in a
.Vt "struct sockaddr_dl"
to refer to a particular interface by index
(see
.Xr link_addr 3 ) .
-(Initialized by
-.Fn if_alloc . )
-.It Va if_vlantrunk
-.Pq Vt struct ifvlantrunk *
-A pointer to 802.1Q trunk structure,
-.Xr vlan 4 .
-(Initialized by the driver-specific
-.Fn if_ioctl
-routine.)
-.It Va if_flags
-.Pq Vt int
-Flags describing operational parameters of this interface (see below).
-(Manipulated by generic code.)
-.It Va if_drv_flags
-.Pq Vt int
-Flags describing operational status of this interface (see below).
-(Manipulated by driver.)
-.It Va if_capabilities
-.Pq Vt int
-Flags describing the capabilities the interface supports (see below).
-.It Va if_capenable
-.Pq Vt int
-Flags describing the enabled capabilities of the interface (see below).
-.It Va if_linkmib
-.Pq Vt "void *"
-A pointer to an interface-specific MIB structure exported by
-.Xr ifmib 4 .
-(Initialized by driver.)
-.It Va if_linkmiblen
-.Pq Vt size_t
-The size of said structure.
-(Initialized by driver.)
-.It Va if_data
-.Pq Vt "struct if_data"
-More statistics and information; see
-.Sx "The if_data structure" ,
-below.
-(Initialized by driver, manipulated by both driver and generic
-code.)
-.It Va if_multiaddrs
-.Pq Vt struct ifmultihead
-The head of the
-.Xr queue 3
-.Li TAILQ
-containing the list of multicast addresses assigned to this interface.
-.It Va if_amcount
-.Pq Vt int
-A number of multicast requests on this interface, used to
-reference-count the
-.Dv IFF_ALLMULTI
-flag.
-.It Va if_addr
-.Pq Vt "struct ifaddr *"
-A pointer to the link-level interface address.
-(Initialized by
-.Fn if_alloc . )
-.\" .It Va if_llsoftc
-.\" .Pq Vt "void *"
-.\" The purpose of the field is unclear.
-.It Va if_snd
-.Pq Vt "struct ifaltq"
-The output queue.
-(Manipulated by driver.)
-.It Va if_broadcastaddr
-.Pq Vt "const u_int8_t *"
-A link-level broadcast bytestring for protocols with variable address
-length.
-.It Va if_bridge
-.Pq Vt "void *"
-A pointer to the bridge interface structure,
-.Xr if_bridge 4 .
-(Initialized by the driver-specific
-.Fn if_ioctl
-routine.)
-.It Va if_label
-.Pq Vt "struct label *"
-A pointer to the MAC Framework label structure,
-.Xr mac 4 .
-(Initialized by
-.Fn if_alloc . )
-.It Va if_afdata
-.Pq Vt "void *"
-An address family dependent data region.
-.It Va if_afdata_initialized
-.Pq Vt int
-Used to track the current state of address family initialization.
-.It Va if_afdata_lock
-.Pq Vt "struct rwlock"
-An
-.Xr rwlock 9
-lock used to protect
-.Va if_afdata
-internals.
-.It Va if_linktask
-.Pq Vt "struct task"
-A
-.Xr taskqueue 9
-task scheduled for link state change events of the interface.
-.It Va if_addr_lock
-.Pq Vt "struct rwlock"
-An
-.Xr rwlock 9
-lock used to protect interface-related address lists.
-.It Va if_clones
-.Pq Fn LIST_ENTRY ifnet
-.Xr queue 3
-macro glue for the list of clonable network interfaces.
-.It Va if_groups
-.Pq Fn TAILQ_HEAD "" "ifg_list"
-The head of the
-.Xr queue 3
-.Li TAILQ
-containing the list of groups per interface.
-.It Va if_pf_kif
-.Pq Vt "void *"
-A pointer to the structure used for interface abstraction by
-.Xr pf 4 .
-.It Va if_lagg
-.Pq Vt "void *"
-A pointer to the
-.Xr lagg 4
-interface structure.
-.It Va if_alloctype
-.Pq Vt u_char
+This is initialized by
+.Fn if_alloc .
+.It Fn if_getidxgen
+.It Fn if_getdname Fn if_setdname
+.Pq Ft "const char *"
+The name of the driver.
+This is initialized by driver
+(usually via
+.Fn if_initname ) .
+.It Fn if_name Fn if_setname
+.Pq Vt "char *"
+The name of the interface,
+(e.g.,
+.Ql fxp0
+or
+.Dq Li lo0 ) .
+This is initialized by driver, usually via
+.Fn if_initname .
+.It Fn if_getalloctype
+.Pq Ft u_char
The type of the interface as it was at the time of its allocation.
It is used to cache the type passed to
.Fn if_alloc ,
but unlike
.Va if_type ,
it would not be changed by drivers.
-.It Va if_numa_domain
+.It Fn if_gettype
+.It Fn if_setdev
+.It Fn if_getdrvflags Fn if_setdrvflags Fn if_setdrvflagbits
+.It Fn if_getlinkstate
+.It Fn if_clearhwassist Fn if_sethwassistbits
+.Fn if_gethwassist Fn if_sethwassist Fn if_togglehwassist
+.Pq Vt u_long
+A detailed interpretation of the capabilities
+to offload computational tasks for
+.Em outgoing
+packets.
+The interface driver must keep this field in accord with
+the current value of
+.Va if_capenable .
+.It Fn if_getsoftc Fn if_setsoftc
+.Pq Ft "void *"
+A pointer to the driver's private state block.
+This is initialized by driver at attach.
+.It Fn if_setllsoftc
+.It Fn if_getllsoftc
+.It Fn if_getfib
+.It Fn if_getaddrlen
+.It Fn if_gethwaddr
+.It Fn if_getbroadcastaddr Fn if_setbroadcastaddr
+Access the interface broadcast addess.
+.It Fn if_setmtu
+.It Fn if_getmtu
+Access the interface MTU.
+.It Fn if_setflags Fn if_getflags Fn if_setflagbits
+.Pq Vt int
+Flags describing operational parameters of this interface (see below).
+These flags are manipulated by generic code.
+.It Fn if_getnumadomain
.Pq Vt uint8_t
The NUMA domain of the hardware device associated with the interface.
This is filled in with a wildcard value unless the kernel is NUMA
@@ -450,6 +499,63 @@ using
.Fn if_alloc_dev
or
.Fn if_alloc_domain .
+.It Fn if_sendq_empty
+.It Fn if_setsendqready
+.It Fn if_setsendqlen
+.It Fn if_sethwtsomax Fn if_gethwtsomax
+.It Fn if_sethwtsomaxsegcount Fn if_gethwtsomaxsegcount
+.It Fn if_sethwtsomaxsegsize Fn if_gethwtsomaxsegsize
+.It Fn if_setnetmapadapter Fn if_getnetmapadapter
+.It Fn if_setifheaderlen
+.It Fn if_setrcvif
+.It Fn if_setvtag Fn if_getvtag
+.It Fn if_vlantrunkinuse
+.It Fn if_getlladdr
+.It Fn if_getvnet
+.Pq Vt "struct vnet *"
+A pointer to the virtual network stack instance.
+This is initialized by
+.Fn if_attach .
+.It Fn if_gethandle
+.It Fn if_vlancap
+.It Fn if_getcounter
+.It Fn if_getmaclabel Fn if_setmaclabel
+.It Fn if_getbpf
+.Pq Ft "struct bpf_if *"
+Opaque per-interface data for the packet filter,
+.Xr bpf 4 .
+This is initialized by
+.Fn bpf_attach .
+.It Fn if_getpcp
+.It Fn if_getl2com
+A pointer to the common data for the interface's layer 2 protocol.
+This is initialized by
+.Fn if_alloc .
+.Fn if_getvlantrunk "if_t ifp"
+.Pq Ft struct ifvlantrunk *
+A pointer to 802.1Q trunk structure,
+.Xr vlan 4 .
+This is initialized by the driver-specific
+.Fn if_ioctl
+routine.
+.It Fn if_getdrvflags Fn if_setdrvflags Fn if_setdrvflagbits
+.Pq Ft int
+Flags describing operational status of this interface (see below).
+These flags are manipulated by driver.
+.It Fn if_addmulti Fn if_delmulti Fn if_findmulti
+Add, remove, and find multicast addresses assigned to this interface.
+.It Fn if_getifaddr
+.Pq Vt "struct ifaddr *"
+Get a pointer to the interface's link-level address.
+.It Fn if_getbroadcastaddr Fn if_setbroadcastaddr
+.Pq Ft "const u_int8_t *"
+A link-level broadcast bytestring for protocols with variable address
+length.
+.It Fn if_getafdata
+.Pq Ft "void *"
+An address family dependent data region.
+.It Fn if_addgroup Fn if_delgroup
+Add and delete groups from the interface.
.El
.Pp
References to
@@ -612,6 +718,10 @@ This interface is in the permanently promiscuous mode (implies
.It Dv IFF_ALLMULTI
.Aq D*
This interface is in all-multicasts mode (used by multicast routers).
+.It Dv IFF_PALLMULTI
+.Aq D
+This interface is in the permanently all-multicasts mode (implies
+.Dv IFF_ALLMULTI ) .
.It Dv IFF_DRV_OACTIVE
.Aq D*
The interface's hardware output queue (if any) is full; output packets
@@ -891,18 +1001,6 @@ link-layer overhead.
.It Va ifi_metric
.Pq Vt u_long
A dimensionless metric interpreted by a user-mode routing process.
-.It Va ifi_baudrate
-.Pq Vt u_long
-The line rate of the interface, in bits per second.
-.It Va ifi_hwassist
-.Pq Vt u_long
-A detailed interpretation of the capabilities
-to offload computational tasks for
-.Em outgoing
-packets.
-The interface driver must keep this field in accord with
-the current value of
-.Va if_capenable .
.It Va ifi_epoch
.Pq Vt time_t
The system uptime when interface was attached or the statistics
@@ -961,8 +1059,7 @@ Number of packets received for unknown network-layer protocol.
.It Va ifi_lastchange
.Pq Vt "struct timeval"
The time of the last administrative change to the interface (as required
-for
-.Tn SNMP ) .
+for SNMP ) .
.El
.Ss Interface Types
The header file
@@ -997,7 +1094,7 @@ interface
Serial Line IP
.It Dv IFT_PARA
Parallel-port IP
-.Pq Dq Tn PLIP
+.Pq Dq PLIP
.It Dv IFT_ATM
Asynchronous Transfer Mode
.It Dv IFT_USB
@@ -1062,7 +1159,7 @@ is a macro for
The network mask for multi-access interfaces, and the confusion
generator for point-to-point interfaces.
.It Va ifa_ifp
-.Pq Vt "struct ifnet *"
+.Pq Vt "if_t"
A link back to the interface structure.
.It Va ifa_link
.Pq Fn TAILQ_ENTRY ifaddr
@@ -1183,9 +1280,7 @@ structure to be the first element in that list.
(A pointer to
this address structure is saved in the
.Vt ifnet
-structure and is accessed by the
-.Fn ifaddr_byindex
-function.)
+structure.)
The
.Fa ifp
must have been allocated by
@@ -1326,7 +1421,7 @@ and
appropriately.
.Pp
.It Dv SIOCGIFCAPNV
-.Xr NV 9
+.Xr nv 9
version of the
.Dv SIOCGIFCAP
ioctl.
@@ -1370,7 +1465,7 @@ non-modifiable capability bit in
.Dv if_capabilities .
.Pp
.It Dv SIOCSIFCAPNV
-.Xr NV 9
+.Xr nv 9
version of the
.Dv SIOCSIFCAP
ioctl.
@@ -1502,10 +1597,6 @@ precisely
.Fa addr
will be returned.
.Pp
-.Fn ifaddr_byindex
-returns the link-level address of the interface with the given index
-.Fa idx .
-.Pp
All of these functions return a null pointer if no such address can be
found.
.Ss "Interface Multicast Address Functions"
diff --git a/share/man/man9/intr_event.9 b/share/man/man9/intr_event.9
index d1964ce289a5..ba8faf877e6a 100644
--- a/share/man/man9/intr_event.9
+++ b/share/man/man9/intr_event.9
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 30, 2022
+.Dd January 24, 2025
.Dt INTR_EVENT 9
.Os
.Sh NAME
@@ -295,6 +295,14 @@ from the handler's source triggers.
Presently, the
.Dv INTR_ENTROPY
flag is not valid for software interrupt handlers.
+The
+.Dv INTR_SLEEPABLE
+flag specifies that the interrupt ithread may sleep.
+Presently, the
+.Dv INTR_SLEEPABLE
+flag requires the
+.Dv INTR_EXCL
+flag to be set.
.Ss Handler Callbacks
Each
.Vt struct intr_event
diff --git a/share/man/man9/khelp.9 b/share/man/man9/khelp.9
index 39515eef237c..d619f385d513 100644
--- a/share/man/man9/khelp.9
+++ b/share/man/man9/khelp.9
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 15, 2011
+.Dd October 1, 2024
.Dt KHELP 9
.Os
.Sh NAME
@@ -48,8 +48,8 @@
.Fn "int khelp_destroy_osd" "struct osd *hosd"
.Fn "int32_t khelp_get_id" "char *hname"
.Fn "void * khelp_get_osd" "struct osd *hosd" "int32_t id"
-.Fn "int khelp_add_hhook" "struct hookinfo *hki" "uint32_t flags"
-.Fn "int khelp_remove_hhook" "struct hookinfo *hki"
+.Fn "int khelp_add_hhook" "const struct hookinfo *hki" "uint32_t flags"
+.Fn "int khelp_remove_hhook" "const struct hookinfo *hki"
.Fn KHELP_DECLARE_MOD "hname" "hdata" "hhooks" "version"
.Fn KHELP_DECLARE_MOD_UMA "hname" "hdata" "hhooks" "version" "ctor" "dtor"
.Sh DESCRIPTION
diff --git a/share/man/man9/lock.9 b/share/man/man9/lock.9
index 110fdd68fda0..9cff6e3bd8aa 100644
--- a/share/man/man9/lock.9
+++ b/share/man/man9/lock.9
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\"
-.Dd November 17, 2017
+.Dd June 21, 2024
.Dt LOCK 9
.Os
.Sh NAME
@@ -34,9 +34,14 @@
.Nm lockmgr_args ,
.Nm lockmgr_args_rw ,
.Nm lockmgr_disown ,
+.Nm lockmgr_disowned ,
+.Nm lockmgr_lock_flags ,
.Nm lockmgr_printinfo ,
.Nm lockmgr_recursed ,
.Nm lockmgr_rw ,
+.Nm lockmgr_slock ,
+.Nm lockmgr_unlock ,
+.Nm lockmgr_xlock ,
.Nm lockstatus ,
.Nm lockmgr_assert
.Nd "lockmgr family of functions"
@@ -56,6 +61,10 @@
.Fn lockmgr_args_rw "struct lock *lkp" "u_int flags" "struct rwlock *ilk" "const char *wmesg" "int prio" "int timo"
.Ft void
.Fn lockmgr_disown "struct lock *lkp"
+.Ft int
+.Fn lockmgr_disowned "const struct lock *lkp"
+.Ft int
+.Fn lockmgr_lock_flags "struct lock *lkp" "u_int flags" "struct lock_object *ilk" "const char *file" "int line"
.Ft void
.Fn lockmgr_printinfo "const struct lock *lkp"
.Ft int
@@ -63,6 +72,12 @@
.Ft int
.Fn lockmgr_rw "struct lock *lkp" "u_int flags" "struct rwlock *ilk"
.Ft int
+.Fn lockmgr_slock "struct lock *lkp" "u_int flags" "const char *file" "int line"
+.Ft int
+.Fn lockmgr_unlock "struct lock *lkp"
+.Ft int
+.Fn lockmgr_xlock "struct lock *lkp" "u_int flags" "const char *file" "int line"
+.Ft int
.Fn lockstatus "const struct lock *lkp"
.Pp
.Cd "options INVARIANTS"
@@ -108,10 +123,6 @@ should log messages about duplicate locks being acquired.
Disable
.Xr ktr 4
logging for this lock.
-.It Dv LK_TIMELOCK
-Use
-.Fa timo
-during a sleep; otherwise, 0 is used.
.El
.El
.Pp
@@ -182,6 +193,10 @@ Fail if operation has slept.
.It Dv LK_NOWAIT
Do not allow the call to sleep.
This can be used to test the lock.
+.It Dv LK_TIMELOCK
+Use
+.Fa timo
+during a sleep; otherwise, 0 is used.
.It Dv LK_NOWITNESS
Skip the
.Xr witness 4
@@ -253,12 +268,55 @@ and
.Dv LK_TIMO_DEFAULT .
.Pp
The
+.Fn lockmgr_lock_flags
+function works like
+.Fn lockmgr
+but accepts explicit
+.Fa file
+and
+.Fa line
+arguments for lock tracing.
+.Pp
+The
+.Fn lockmgr_slock ,
+.Fn lockmgr_xlock ,
+and
+.Fn lockmgr_unlock
+functions are lightweight entry points that function like
+.Fn lockmgr
+for the
+.Dv LK_SHARED ,
+.Dv LK_EXCLUSIVE ,
+and
+.Dv LK_RELEASE
+operations respectively.
+They provide functionality similar to
+.Xr sx 9
+locks in that none of the additional
+.Xr lockmgr 9
+features are supported.
+Specifically, these functions do not support unlocking interlocks, the
+.Dv LK_SLEEPFAIL
+flag, or locks with shared locking disabled via
+.Dv LK_NOSHARE .
+They also accept explicit
+.Fa file
+and
+.Fa line
+arguments for lock tracing.
+.Pp
+The
.Fn lockmgr_disown
function switches the owner from the current thread to be
.Dv LK_KERNPROC ,
if the lock is already held.
.Pp
The
+.Fn lockmgr_disowned
+function returns true or false according to whether the lock is held by
+.Dv LK_KERNPROC .
+.Pp
+The
.Fn lockmgr_printinfo
function prints debugging information about the lock.
It is used primarily by
@@ -354,6 +412,8 @@ was requested and another thread had already requested a lock upgrade.
was set, and a sleep would have been required, or
.Dv LK_TRYUPGRADE
operation was not able to upgrade the lock.
+.It Bq Er EDEADLK
+A shared lock was attempted while the thread already held the exclusive lock.
.It Bq Er ENOLCK
.Dv LK_SLEEPFAIL
was set and
@@ -398,6 +458,7 @@ exclusive lock, and a
.Xr panic 9
will be the result of trying.
.Sh SEE ALSO
+.Xr witness 4 ,
.Xr condvar 9 ,
.Xr locking 9 ,
.Xr mtx_assert 9 ,
diff --git a/share/man/man9/make_dev.9 b/share/man/man9/make_dev.9
index 2beb38586593..de56f350faa5 100644
--- a/share/man/man9/make_dev.9
+++ b/share/man/man9/make_dev.9
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 1999 Chris Costello
.\" All rights reserved.
.\"
@@ -22,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd March 2, 2016
+.Dd January 19, 2025
.Dt MAKE_DEV 9
.Os
.Sh NAME
@@ -38,9 +41,7 @@
.Nm destroy_dev_sched_cb ,
.Nm destroy_dev_drain ,
.Nm dev_depends
-.Nd manage
-.Vt cdev Ns 's
-and DEVFS registration for devices
+.Nd create and destroy character devices including devfs registration
.Sh SYNOPSIS
.In sys/param.h
.In sys/conf.h
@@ -81,7 +82,7 @@ structure for a new device, which is returned into the
.Fa cdev
argument.
It also notifies
-.Xr devfs 5
+.Xr devfs 4
of the presence of the new device, that causes corresponding nodes
to be created.
Besides this, a
@@ -105,6 +106,7 @@ struct make_dev_args {
void *mda_si_drv2;
};
.Ed
+.Pp
Before use and filling with the desired values, the structure must be
initialized by the
.Fn make_dev_args_init
@@ -123,7 +125,7 @@ would print it.
The name determines its path under
.Pa /dev
or other
-.Xr devfs 5
+.Xr devfs 4
mount point and may contain slash
.Ql /
characters to denote subdirectories.
@@ -166,10 +168,10 @@ member of the initialized
The
.Va args.mda_flags
argument alters the operation of
-.Fn make_dev_s.
+.Fn make_dev_s .
The following values are currently accepted:
.Pp
-.Bl -tag -width "It Dv MAKEDEV_CHECKNAME" -compact -offset indent
+.Bl -tag -width "MAKEDEV_CHECKNAME" -compact -offset indent
.It Dv MAKEDEV_REF
reference the created device
.It Dv MAKEDEV_NOWAIT
@@ -200,12 +202,13 @@ is specified.
.Pp
The
.Xr dev_clone 9
-event handler shall specify
+event handler shall specify the
.Dv MAKEDEV_REF
-flag when creating a device in response to lookup, to avoid race where
-the device created is destroyed immediately after
-.Xr devfs_lookup 9
-drops his reference to cdev.
+flag when creating a device in response to lookup, to avoid a race where
+the created device is immediately destroyed after
+.Fn devfs_lookup
+drops its reference to
+.Fa cdev .
.Pp
The
.Dv MAKEDEV_ETERNAL
@@ -226,13 +229,14 @@ and the device name is invalid or already exists.
.Pp
The
.Fn make_dev_p
-use of the form
+use of the form:
.Bd -literal -offset indent
struct cdev *dev;
int res;
res = make_dev_p(flags, &dev, cdevsw, cred, uid, gid, perms, name);
.Ed
-is equivalent to the code
+.Pp
+is equivalent to the code:
.Bd -literal -offset indent
struct cdev *dev;
struct make_dev_args args;
@@ -241,7 +245,7 @@ int res;
make_dev_args_init(&args);
args.mda_flags = flags;
args.mda_devsw = cdevsw;
-args.mda_cred = cred;
+args.mda_cr = cred;
args.mda_uid = uid;
args.mda_gid = gid;
args.mda_mode = perms;
@@ -250,10 +254,11 @@ res = make_dev_s(&args, &dev, name);
.Pp
Similarly, the
.Fn make_dev_credf
-function call is equivalent to
+function call is equivalent to:
.Bd -literal -offset indent
- (void) make_dev_s(&args, &dev, name);
+(void) make_dev_s(&args, &dev, name);
.Ed
+.Pp
In other words,
.Fn make_dev_credf
does not allow the caller to obtain the return value, and in
@@ -263,14 +268,14 @@ options, the function asserts that the device creation succeeded.
.Pp
The
.Fn make_dev_cred
-function is equivalent to the call
+function is equivalent to the call:
.Bd -literal -offset indent
make_dev_credf(0, cdevsw, unit, cr, uid, gid, perms, fmt, ...);
.Ed
.Pp
The
.Fn make_dev
-function call is the same as
+function call is the same as:
.Bd -literal -offset indent
make_dev_credf(0, cdevsw, unit, NULL, uid, gid, perms, fmt, ...);
.Ed
@@ -377,7 +382,7 @@ is called, with argument
.Fa arg .
The
.Fn destroy_dev_sched
-function is the same as
+function is the same as:
.Bd -literal -offset indent
destroy_dev_sched_cb(cdev, NULL, NULL);
.Ed
@@ -457,7 +462,7 @@ flag was specified and the provided device name already exists.
.El
.Sh SEE ALSO
.Xr devctl 4 ,
-.Xr devfs 5 ,
+.Xr devfs 4 ,
.Xr dev_clone 9
.Sh HISTORY
The
diff --git a/share/man/man9/malloc.9 b/share/man/man9/malloc.9
index 0ab5b2ed6e8d..01d224fc3cb3 100644
--- a/share/man/man9/malloc.9
+++ b/share/man/man9/malloc.9
@@ -28,7 +28,7 @@
.\"
.\" $NetBSD: malloc.9,v 1.3 1996/11/11 00:05:11 lukem Exp $
.\"
-.Dd October 12, 2022
+.Dd August 4, 2024
.Dt MALLOC 9
.Os
.Sh NAME
@@ -269,6 +269,15 @@ This option should only be used in combination with
.Dv M_NOWAIT
when an allocation failure cannot be tolerated by the caller without
catastrophic effects on the system.
+.It Dv M_NEVERFREED
+This is an internal flag used by the
+.Xr uma 9
+allocator and should not be used in regular
+.Fn malloc
+invocations.
+See the description of VM_ALLOC_NOFREE in
+.Xr vm_page_alloc 9
+for more details.
.El
.Pp
Exactly one of either
diff --git a/share/man/man9/mbuf.9 b/share/man/man9/mbuf.9
index 0b03d697b8bf..c05505716a30 100644
--- a/share/man/man9/mbuf.9
+++ b/share/man/man9/mbuf.9
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd December 28, 2023
+.Dd July 29, 2025
.Dt MBUF 9
.Os
.\"
@@ -1091,7 +1091,7 @@ network code, when data must be encrypted or otherwise
altered prior to transmission.
.El
.Sh HARDWARE-ASSISTED CHECKSUM CALCULATION
-This section currently applies to TCP/IP only.
+This section currently applies to SCTP, TCP, and UDP over IP only.
In order to save the host CPU resources, computing checksums is
offloaded to the network interface hardware if possible.
The
@@ -1117,7 +1117,7 @@ in the
.Vt mbuf chain
containing the packet.
.Pp
-On output, checksum offloading is attempted after the outgoing
+On output, the computation of the checksum is delayed until the outgoing
interface has been determined for a packet.
The interface-specific field
.Va ifnet.if_data.ifi_hwassist
@@ -1135,12 +1135,15 @@ such actions will never be requested through
.Va csum_flags .
.Pp
The flags demanding a particular action from an interface are as follows:
-.Bl -tag -width ".Dv CSUM_TCP" -offset indent
+.Bl -tag -width ".Dv CSUM_SCTP" -offset indent
.It Dv CSUM_IP
The IP header checksum is to be computed and stored in the
corresponding field of the packet.
The hardware is expected to know the format of an IP header
to determine the offset of the IP checksum field.
+.It Dv CSUM_SCTP
+The SCTP checksum is to be computed.
+(See below.)
.It Dv CSUM_TCP
The TCP checksum is to be computed.
(See below.)
@@ -1149,14 +1152,16 @@ The UDP checksum is to be computed.
(See below.)
.El
.Pp
-Should a TCP or UDP checksum be offloaded to the hardware,
+Should a SCTP, TCP, or UDP checksum be offloaded to the hardware,
the field
.Va csum_data
will contain the byte offset of the checksum field relative to the
end of the IP header.
-In this case, the checksum field will be initially
-set by the TCP/IP module to the checksum of the pseudo header
+In the case of TCP or UDP, the checksum field will be initially
+set by the TCP or UDP implementation to the checksum of the pseudo header
defined by the TCP and UDP specifications.
+In the case of SCTP, the checksum field will be initially
+set by the SCTP implementation to 0.
.Pp
On input, an interface indicates the actions it has performed
on a packet by setting one or more of the following flags in
@@ -1187,13 +1192,13 @@ to obtain the final checksum to be used for TCP or UDP validation purposes.
.El
.Pp
If a particular network interface just indicates success or
-failure of TCP or UDP checksum validation without returning
+failure of SCTP, TCP, or UDP checksum validation without returning
the exact value of the checksum to the host CPU, its driver can mark
.Dv CSUM_DATA_VALID
-and
-.Dv CSUM_PSEUDO_HDR
in
-.Va csum_flags ,
+.Va csum_flags
+as well as, for TCP and UDP,
+.Dv CSUM_PSEUDO_HDR
and set
.Va csum_data
to
@@ -1203,6 +1208,13 @@ It is a peculiarity of the algorithm used that the Internet checksum
calculated over any valid packet will be
.Li 0xFFFF
as long as the original checksum field is included.
+Note that for SCTP the value of
+.Va csum_data
+is not relevant and
+.Dv CSUM_PSEUDO_HDR
+in
+.Va csum_flags
+is not set, since SCTP does not use a pseudo header checksum.
.Sh STRESS TESTING
When running a kernel compiled with the option
.Dv MBUF_STRESS_TEST ,
@@ -1212,7 +1224,7 @@ the following
various failure/extreme cases for testing of network drivers
and other parts of the kernel that rely on
.Vt mbufs .
-.Bl -tag -width ident
+.Bl -tag -width indent
.It Va net.inet.ip.mbuf_frag_size
Causes
.Fn ip_output
diff --git a/share/man/man9/mi_switch.9 b/share/man/man9/mi_switch.9
index 549ec497434c..e04c2ee35ace 100644
--- a/share/man/man9/mi_switch.9
+++ b/share/man/man9/mi_switch.9
@@ -31,23 +31,17 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 9, 2023
+.Dd January 7, 2025
.Dt MI_SWITCH 9
.Os
.Sh NAME
-.Nm mi_switch ,
-.Nm cpu_switch ,
-.Nm cpu_throw
+.Nm mi_switch
.Nd switch to another thread context
.Sh SYNOPSIS
.In sys/param.h
.In sys/proc.h
.Ft void
.Fn mi_switch "int flags"
-.Ft void
-.Fn cpu_switch "struct thread *oldtd" "struct thread *newtd" "struct mtx *lock"
-.Ft void
-.Fn cpu_throw "struct thread *oldtd" "struct thread *newtd"
.Sh DESCRIPTION
The
.Fn mi_switch
@@ -168,63 +162,9 @@ running thread
.Fa oldtd
to the chosen thread
.Fa newtd .
-First, it saves the context of
-.Fa oldtd
-to its Process Control Block
-.Po
-PCB,
-.Vt struct pcb
-.Pc ,
-pointed at by
-.Va oldtd->td_pcb .
-The function then updates important per-CPU state such as the
-.Dv curthread
-variable, and activates
-.Fa newtd\&'s
-virtual address space using its associated
-.Xr pmap 9
-structure.
-Finally, it reads in the saved context from
-.Fa newtd\&'s
-PCB.
-CPU instruction flow continues in the new thread context, on
-.Fa newtd\&'s
-kernel stack.
-The return from
-.Fn cpu_switch
-can be understood as a completion of the function call initiated by
-.Fa newtd
-when it was previously switched out, at some point in the distant (relative to
-CPU time) past.
-.Pp
-The
-.Fa mtx
-argument to
-.Fn cpu_switch
-is used to pass the mutex which will be stored as
-.Fa oldtd\&'s
-thread lock at the moment that
-.Fa oldtd
-is completely switched out.
-This is an implementation detail of
-.Fn sched_switch .
-.Pp
-.Fn cpu_throw
-is similar to
-.Fn cpu_switch
-except that it does not save the context of the old thread.
-This function is useful when the kernel does not have an old thread
-context to save, such as when CPUs other than the boot CPU perform their
-first task switch, or when the kernel does not care about the state of the
-old thread, such as in
-.Xr thread_exit 9
-when the kernel terminates the current thread and switches into a new
-thread,
-.Fa newtd .
-The
-.Fa oldtd
-argument is unused.
.Sh SEE ALSO
+.Xr cpu_switch 9 ,
+.Xr cpu_throw 9 ,
.Xr critical_exit 9 ,
.Xr issignal 9 ,
.Xr kern_yield 9 ,
diff --git a/share/man/man9/mod_cc.9 b/share/man/man9/mod_cc.9
index 86d9c7b5312c..09580aa943a9 100644
--- a/share/man/man9/mod_cc.9
+++ b/share/man/man9/mod_cc.9
@@ -370,7 +370,7 @@ LRO system.
So for example if LRO pushed three in-order acknowledgements into
one acknowledgement the variable would be set to three.
.Pp
-The
+The
.Va labc
variable is used in conjunction with the CCF_USE_LOCAL_ABC flag
to override what labc variable the congestion controller will use
diff --git a/share/man/man9/namei.9 b/share/man/man9/namei.9
index 0be73f68cdda..5bdffce8c360 100644
--- a/share/man/man9/namei.9
+++ b/share/man/man9/namei.9
@@ -31,13 +31,14 @@
.\" If you integrate this manpage in another OS, I'd appreciate a note
.\" - eivind@FreeBSD.org
.\"
-.Dd July 8, 2023
+.Dd May 16, 2025
.Dt NAMEI 9
.Os
.Sh NAME
.Nm namei ,
.Nm NDINIT ,
-.Nm NDFREE
+.Nm NDINIT_AT ,
+.Nm NDFREE_PNBUF
.Nd pathname translation and lookup operations
.Sh SYNOPSIS
.In sys/param.h
@@ -47,11 +48,16 @@
.Fn namei "struct nameidata *ndp"
.Ft void
.Fo NDINIT
-.Fa "struct nameidata *ndp" "u_long op" "u_long flags"
-.Fa "enum uio_seg segflg" "const char *namep" "struct thread *td"
+.Fa "struct nameidata *ndp" "enum nameiop op" "u_int64_t flags"
+.Fa "enum uio_seg segflg" "const char *namep"
.Fc
.Ft void
-.Fn NDFREE "struct nameidata *ndp" "const uint flags"
+.Fo NDINIT_AT
+.Fa "struct nameidata *ndp" "enum nameiop op" "u_int64_t flags"
+.Fa "enum uio_seg segflg" "const char *namep" "int dirfd"
+.Fc
+.Ft void
+.Fn NDFREE_PNBUF "struct nameidata *ndp"
.Sh DESCRIPTION
The
.Nm
@@ -71,13 +77,13 @@ flag was specified or not.
.Pp
The
.Fn NDINIT
-function is used to initialize
+macro is used to initialize
.Nm
components.
It takes the following arguments:
.Bl -tag -width ".Fa segflg"
.It Fa ndp
-The
+A pointer to the
.Vt "struct nameidata"
to initialize.
.It Fa op
@@ -95,7 +101,7 @@ will not result in
.Fn VOP_RENAME
being called.
.It Fa flags
-Operation flags.
+Operation flags, described in the next section.
Several of these can be effective at the same time.
.It Fa segflg
UIO segment indicator.
@@ -106,10 +112,35 @@ or in the kernel address space
.It Fa namep
Pointer to the component's pathname buffer
(the file or directory name that will be looked up).
-.It Fa td
-The thread context to use for
-.Nm
-operations and locks.
+.El
+.Pp
+The
+.Fn NDINIT_AT
+macro is similar to
+.Fn NDINIT ,
+but takes one extra argument:
+.Bl -tag -width ".Fa segflg"
+.It Fa dirfd
+File descriptor referencing a directory, or the special value
+.Dv AT_FDCWD
+meaning the calling thread's current working directory.
+Lookups will be performed relative to this directory.
+.El
+.Pp
+The
+.Fn NDFREE_PNBUF
+macro is used to free the pathname buffer.
+It must be called exactly once for each successful
+.Fn namei
+call.
+It takes the following argument:
+.Bl -tag -width ".Fa segflg"
+.It Fa ndp
+A pointer to a
+.Vt "struct nameidata"
+that was used in a successful
+.Fn namei
+call.
.El
.Sh NAMEI OPERATION FLAGS
The
@@ -117,14 +148,32 @@ The
function takes the following set of
.Dq "operation flags"
that influence its operation:
-.Bl -tag -width ".Dv WANTPARENT"
+.Bl -tag -width NC_KEEPPOSENTRY
+.It Dv NC_NOMAKEENTRY
+An alias for
+.Dv NOCACHE .
+.It Dv NC_KEEPPOSENTRY
+Keep the positive-caching entry in cache.
+This flag is typically combined with
+.Dv NOCACHE
+to not cache a new entry,
+but keep existing one, or with
+.Dv MAKEENTRY .
+.It Dv NOCACHE
+Avoid
+.Fn namei
+creating this entry in the namecache if it is not
+already present.
+Normally,
+.Fn namei
+will add entries to the name cache
+if they are not already there.
.It Dv LOCKLEAF
Lock vnode on return with
.Dv LK_EXCLUSIVE
unless
.Dv LOCKSHARED
is also set.
-The
.Xr VOP_UNLOCK 9
should be used
to release the lock (or
@@ -151,40 +200,70 @@ or
.Xr VOP_UNLOCK 9
and
.Xr vrele 9 .
-.It Dv LOCKSHARED
-Lock vnode on return with
-.Dv LK_SHARED .
-The
-.Xr VOP_UNLOCK 9
-should be used
-to release the lock (or
-.Xr vput 9
-which is equivalent to calling
-.Xr VOP_UNLOCK 9
-followed by
-.Xr vrele 9 ,
-all in one).
.It Dv WANTPARENT
This flag allows the
.Fn namei
function to return the parent (directory) vnode in an unlocked state.
The parent vnode must be released separately by using
.Xr vrele 9 .
-.It Dv NOCACHE
-Avoid
-.Fn namei
-creating this entry in the namecache if it is not
-already present.
-Normally,
+.It Dv WANTPARENT
+This flag allows the
.Fn namei
-will add entries to the name cache
-if they are not already there.
+function to return the parent (directory) vnode in an unlocked state.
+The parent vnode must be released separately by using
+.Xr vrele 9 .
+.It Dv FAILIFEXISTS
+Makes the
+.Nm
+operation fail if the target exists.
+It requires that the
+.Dv LOCKPARENT
+flag is set and
+.Dv LOCKLEAF
+is not.
.It Dv FOLLOW
With this flag,
.Fn namei
will follow the symbolic link if the last part
of the path supplied is a symbolic link (i.e., it will return a vnode
for whatever the link points at, instead for the link itself).
+.It Dv EMPTYPATH
+For
+.Nm
+call initialized with
+.Fn NDINIT_AT ,
+allow the
+.Fa namep
+path to be empty.
+In this case, the
+.Fa dirfd
+file descriptor may reference a file of arbitrary type, not
+necessary a directory, and lookup returns the vnode for this file.
+.It Dv LOCKSHARED
+Lock vnode on return with
+.Dv LK_SHARED ,
+if permitted by the file system that owns the vnode.
+The file system must explicitly permit this by setting
+.Dv MNTK_LOOKUP_SHARED
+in
+.Dv mp->mnt_kern_flag
+during mount and by calling
+.Fn VN_LOCK_ASHARE
+when allocating the vnode.
+If
+.Dv LOCKLEAF
+is specified but shared locking is not permitted, then the vnode will be
+returned with
+.Dv LK_EXCLUSIVE .
+.Xr VOP_UNLOCK 9
+should be used
+to release the lock (or
+.Xr vput 9
+which is equivalent to calling
+.Xr VOP_UNLOCK 9
+followed by
+.Xr vrele 9 ,
+all in one).
.It Dv NOFOLLOW
Do not follow symbolic links (pseudo).
This flag is not looked for by the actual code, which looks for
@@ -192,17 +271,131 @@ This flag is not looked for by the actual code, which looks for
.Dv NOFOLLOW
is used to indicate to the source code reader that symlinks
are intentionally not followed.
-.It Dv SAVENAME
-Do not free the pathname buffer at the end of the
-.Fn namei
-invocation; instead, free it later in
-.Fn NDFREE
-so that the caller may access the pathname buffer.
-See below for details.
-.It Dv SAVESTART
-Retain an additional reference to the parent directory; do not free
-the pathname buffer.
-See below for details.
+.It Dv RBENEATH
+Requires that
+.Nm
+did not cross the
+.Fa dirfd
+directory.
+The flag is used to implement
+.Dv O_RESOLVE_BENEATH
+flag for
+.Xr openat 2 .
+.It Dv NAMEILOOKUP
+The component is embedded in a
+.Nm
+lookup structure, and the
+.Fn vfs_lookup_nameidata
+function can be used to obtain that structure.
+This can be useful in
+.Xr VOP_LOOKUP 9
+implementations which need to obtain extra lookup metadata.
+.El
+.Sh PARAMETERS DESCRIPTORS FLAGS
+These flags are used for several purposes.
+Some of them affects the global
+.Nm
+operation, some provide information for processing of the specific
+path element, for instance, by the
+.Dv VOP_LOOKUP
+implementation of the involved filesystem.
+.Bl -tag -width IGNOREWHITEOUT
+.It Dv RDONLY
+Specifies that the lookup should act as if the final node is located on
+read-only mount.
+The flag is typically used by file servers, e.g. NFS,
+to handle read-only exports.
+.It Dv ISRESTARTED
+The
+.Nm
+was restarted with
+.Fn NDRESTART .
+This is used internally for double-root lookups used by ABI subsystems,
+after the lookup with native root failed.
+The components are reset to the original values, and lookup is repeated
+with different root, once.
+.It Dv IGNOREWHITEOUT
+Ignore whiteouts, e.g. when checking if a directory is empty.
+.It Dv ISWHITEOUT
+The result of lookup is whiteout.
+.It Dv DOWHITEOUT
+Handle whiteouts, the instruction for the
+.Fn VOP_LOOKUP
+filesystem methods.
+.It Dv WILLBEDIR
+The lookup is done for creating a new entry that will be directory.
+It allows the trailing slash in the path string.
+.It Dv ISOPEN
+The caller is the code that opens a file.
+This allows to weaken the lock mode of the return vnode, if the
+mount point indicates extended shared lock support.
+.It Dv NOCROSSMOUNT
+Do not cross mount points during lookup.
+.Pp
+For
+.Dq ..
+lookup leading to mount root, returns the root vnode of
+the mount instead of the covered vnode of the filesystem where
+the mount was placed.
+.Pp
+For other lookups passing over mount, do not jump into the mounted
+filesystem.
+This allows to descend into the file hierarchy otherwise shadowed
+by the mount point.
+.It Dv NOMACCHECK
+Do not perform MAC checks during lookup.
+.It Dv AUDITVNODE1
+Audit the looked up vnode information, use the first slot for audit information.
+.It Dv AUDITVNODE2
+Same as
+.Dv AUDITVNODE1
+but use the second slot.
+.It Dv NOCAPCHECK
+Do not perform capability checks.
+If the calling process is in capability mode, lookup is denied outright.
+.It Dv OPENREAD
+The lookup was for open and file will be opened for read.
+.It Dv OPENWRITE
+The lookup was for open and file will be opened for write.
+.It Dv WANTIOCTLCAPS
+Leave ioctl caps for the caller.
+See the description of
+.Nm
+results.
+.It Dv OPENNAMED
+Opening a named attribute (directory).
+.It Dv NOEXECCHECK
+Do not perform check for allowed execution on the starting directory.
+It is used to implement the POSIX-required semantic for
+.Xr openat 2
+lookups that must use the permissions from time the directory was
+opened, and not when used for lookup.
+.It Dv MAKEENTRY
+Looked-up entry is to be added to name cache.
+.It Dv ISSYMLINK
+Current component is symlink, and it needs the interpretation
+according to the
+.Dv FOLLOW
+or
+.Dv NOFOLLOW
+flags.
+.It Dv ISLASTCN
+This is last component of pathname.
+It is handled specially, many flags augment its processing.
+.It Dv ISDOTDOT
+Current component name is
+.Dq .. .
+Usually implies a need to specially handle the vnode locking
+for instantiation of the target vnode.
+The generic
+.Fn vn_vget_ino_gen
+function and its more specialized variant
+.Fn vn_vget_ino
+might be useful.
+.It Dv TRAILINGSLASH
+Path ended in a slash.
+.It Dv CREATENAMED
+Create a named attribute dir.
.El
.Sh ALLOCATED ELEMENTS
The
@@ -251,6 +444,34 @@ It is managed by the
.Xr uma 9
zone allocation interface.
.El
+.Sh RESULTS
+The
+.Vt struct namei
+member
+.Dv ni_resflags
+returns the following flags giving some details of the succesfull operation:
+.Bl -tag -width NIRES_EMPTYPATH
+.It Dv NIRES_ABS
+The path passed was absolute.
+.It Dv NIRES_STRICTREL
+Restricted lookup result.
+Only relative lookups were done to resolve the path to vnode.
+.It Dv NIRES_EMPTYPATH
+The
+.Dv EMPTYPATH
+flag was provided and used.
+In particular, the passed path was empty.
+.El
+.Pp
+If the
+.Dv WANTIOCTLCAPS
+flag was specified, on return the
+.Va ni_filecaps
+member of the
+.Vt struct namei
+contains the capabilities of the file descriptor used as
+the lookup starting point
+.Pq Va dirfd .
.Sh RETURN VALUES
If successful,
.Fn namei
@@ -259,6 +480,24 @@ will return 0, otherwise it will return an error.
.Bl -tag -width Pa
.It Pa src/sys/kern/vfs_lookup.c
.El
+.Sh EXAMPLES
+Assuming the
+.Dv path
+variable contains a pointer to userspace path string, the following
+example looks up the file named by it, and performs required error
+and resource handling:
+.Bd -literal
+ char *path;
+ struct nameidata nd;
+ int error;
+
+ NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | AUDITVNODE1, UIO_USERSPACE,
+ path);
+ if ((error = namei(&nd)) != 0)
+ return (error);
+ NDFREE_PNBUF(&nd);
+ ... use nd.ni_vp vnode
+.Ed
.Sh ERRORS
Errors which
.Fn namei
@@ -296,7 +535,8 @@ An attempt is made to modify a file or directory on a read-only file system.
.Xr VFS 9 ,
.Xr vnode 9 ,
.Xr vput 9 ,
-.Xr vref 9
+.Xr vref 9 ,
+.Xr vrele 9
.Sh AUTHORS
.An -nosplit
This manual page was written by
diff --git a/share/man/man9/nv.9 b/share/man/man9/nv.9
index 67c05247fdfb..8c99f1d12200 100644
--- a/share/man/man9/nv.9
+++ b/share/man/man9/nv.9
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 2, 2023
+.Dd January 3, 2025
.Dt NV 9
.Os
.Sh NAME
@@ -280,11 +280,12 @@
.Sh DESCRIPTION
The
.Nm libnv
-library allows to easily manage name value pairs as well as send and receive
+library permits creating and managing name value pairs as well as
+sending and receiving
them over sockets.
A group (list) of name value pairs is called an
.Nm nvlist .
-The API supports the following data types:
+The API supports the following data types for values:
.Bl -ohang -offset indent
.It Sy null ( NV_TYPE_NULL )
There is no data associated with the name.
@@ -330,7 +331,7 @@ The
.Fn nvlist_create
function allocates memory and initializes an nvlist.
.Pp
-The following flag can be provided:
+The following flags can be provided:
.Pp
.Bl -tag -width "NV_FLAG_IGNORE_CASE" -compact -offset indent
.It Dv NV_FLAG_IGNORE_CASE
@@ -342,28 +343,36 @@ Names in the nvlist do not have to be unique.
The
.Fn nvlist_destroy
function destroys the given nvlist.
-Function does nothing if
-.Dv NULL
-nvlist is provided.
-Function never modifies the
-.Va errno
-global variable.
+This function does nothing if
+.Fa nvl
+is
+.Dv NULL .
+This function never modifies
+.Va errno .
.Pp
The
.Fn nvlist_error
-function returns any error value that the nvlist accumulated.
-If the given nvlist is
-.Dv NULL
-the
+function returns the first error set on
+.Fa nvl .
+If
+.Fa nvl
+is not in the error state,
+this function returns zero.
+If
+.Fa nvl
+is
+.Dv NULL ,
.Er ENOMEM
-error will be returned.
+is returned.
.Pp
The
.Fn nvlist_set_error
-function sets an nvlist to be in the error state.
+function sets an the error value for
+.Fa nvl .
Subsequent calls to
.Fn nvlist_error
-will return the given error value.
+will return
+.Fa error .
This function cannot be used to clear the error state from an nvlist.
This function does nothing if the nvlist is already in the error state.
.Pp
@@ -371,16 +380,24 @@ The
.Fn nvlist_empty
function returns
.Dv true
-if the given nvlist is empty and
+if
+.Fa nvl
+is empty and
.Dv false
otherwise.
-The nvlist must not be in error state.
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_flags
-function returns flags used to create the nvlist with the
-.Fn nvlist_create
-function.
+function returns the flags used to create
+.Fa nvl
+with the
+.Fn nvlist_create ,
+.Fn nvlist_recv ,
+.Fn nvlist_unpack ,
+or
+.Fn nvlist_xfer
+functions.
.Pp
The
.Fn nvlist_in_array
@@ -392,7 +409,8 @@ is part of an array that is a member of another nvlist.
.Pp
The
.Fn nvlist_clone
-functions clones the given nvlist.
+function clones
+.Fa nvl .
The clone shares no resources with its origin.
This also means that all file descriptors that are part of the nvlist will be
duplicated with the
@@ -401,154 +419,170 @@ system call before placing them in the clone.
.Pp
The
.Fn nvlist_dump
-dumps nvlist content for debugging purposes to the given file descriptor
+function dumps nvlist content for debugging purposes to the file descriptor
.Fa fd .
.Pp
The
.Fn nvlist_fdump
-dumps nvlist content for debugging purposes to the given file stream
+dumps nvlist content for debugging purposes to the file stream
.Fa fp .
.Pp
The
.Fn nvlist_size
-function returns the size of the given nvlist after converting it to binary
-buffer with the
+function returns the size of the binary buffer that would be generated by the
.Fn nvlist_pack
function.
.Pp
The
.Fn nvlist_pack
function converts the given nvlist to a binary buffer.
-The function allocates memory for the buffer, which should be freed with the
+The function allocates memory for the buffer which should be freed with the
.Xr free 3
function.
If the
.Fa sizep
argument is not
.Dv NULL ,
-the size of the buffer will be stored there.
-The function returns
+the size of the buffer is stored there.
+This function returns
.Dv NULL
in case of an error (allocation failure).
If the nvlist contains any file descriptors
.Dv NULL
will be returned.
-The nvlist must not be in error state.
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_unpack
-function converts the given buffer to the nvlist.
+function converts a binary buffer to a new nvlist.
The
.Fa flags
-argument defines what type of the top level nvlist is expected to be.
-Flags are set up using the
-.Fn nvlist_create
-function.
-If the nvlist flags do not match the flags passed to
-.Fn nvlist_unpack ,
-the nvlist will not be returned.
-Every nested nvlist list should be checked using
-.Fn nvlist_flags
-function.
-The function returns
+argument has the same meaning as the
+.Fa flags
+argument passed to
+.Fn nvlist_create .
+If
+.Fa flags
+do not match the flags used to create the initial nvlist before it was packed,
+this function will fail.
+The flags of nested nvlists are not validated by this function.
+The caller is responsible for validating the flags on any nested nvlists using
+.Fn nvlist_flags .
+This function returns the new nvlist on success or
.Dv NULL
in case of an error.
.Pp
The
.Fn nvlist_send
-function sends the given nvlist over the socket given by the
-.Fa sock
-argument.
-Note that nvlist that contains file descriptors can only be send over
+function sends
+.Fa nvl
+over the socket
+.Fa sock .
+Note that nvlists that contain file descriptors can only be sent over
.Xr unix 4
domain sockets.
.Pp
The
.Fn nvlist_recv
-function receives nvlist over the socket given by the
-.Fa sock
-argument.
-The
+function receives an nvlist over the socket
+.Fa sock .
+As with
+.Fn nvlist_unpack ,
+the
.Fa flags
-argument defines what type of the top level nvlist is expected to be.
-Flags are set up using the
-.Fn nvlist_create
-function.
-If the nvlist flags do not match the flags passed to
-.Fn nvlist_recv ,
-the nvlist will not be returned.
-Every nested nvlist list should be checked using
-.Fn nvlist_flags
-function.
+argument is used to construct the new nvlist and must match the flags used
+to construct the original nvlist written to
+.Fa sock
+by the peer.
+The flags of nested nvlists are not validated by this function.
+The caller is responsible for validating the flags on any nested nvlists using
+.Fn nvlist_flags .
+This function returns the new nvlist on success or
+.Dv NULL
+in case of an error.
.Pp
The
.Fn nvlist_xfer
-function sends the given nvlist over the socket given by the
+function sends
+.Fa nvl
+over the socket
.Fa sock
-argument and receives nvlist over the same socket.
+argument and then receives a new nvlist over the same socket.
The
.Fa flags
-argument defines what type of the top level nvlist is expected to be.
-Flags are set up using the
-.Fn nvlist_create
-function.
-If the nvlist flags do not match the flags passed to
-.Fn nvlist_xfer ,
-the nvlist will not be returned.
-Every nested nvlist list should be checked using
-.Fn nvlist_flags
-function.
-The given nvlist is always destroyed.
+argument applies to the new nvlist similar to
+.Fn nvlist_recv .
+The nvlist
+.Fa nvl
+is always destroyed.
+This function returns the new nvlist on success or
+.Dv NULL
+in case of an error.
.Pp
The
.Fn nvlist_next
-function iterates over the given nvlist returning names and types of subsequent
+function iterates over
+.Fa nvl
+returning the names and types of subsequent
elements.
The
.Fa cookiep
-argument allows the function to figure out which element should be returned
-next.
-The
+argument determines which element is returned.
+If
.Va *cookiep
-should be set to
-.Dv NULL
-for the first call and should not be changed later.
-Returning
+is
+.Dv NULL ,
+the values for the first element in the list are returned.
+Otherwise,
+.Va *cookiep
+should contain the result of a prior call to
+.Fn nvlist_next
+in which case values for the next element from
+.Fa nvl
+are returned.
+This function returns
.Dv NULL
-means there are no more elements on the nvlist.
+when there are no more elements on
+.Fa nvl .
The
.Fa typep
-argument can be NULL.
-Elements may not be removed from the nvlist while traversing it.
-The nvlist must not be in error state.
-Note that
-.Fn nvlist_next
-will handle
-.Va cookiep
-being set to
+argument can be
.Dv NULL .
-In this case first element is returned or
-.Dv NULL
-if nvlist is empty.
-This behavior simplifies removing the first element from the list.
+Elements may not be removed from
+.Fa nvl
+the nvlist while traversing it.
+.Fa nvl
+must not be in the error state.
+Additional actions can be performed on an element identified by a cookie
+via the
+.Xr cnv 9
+API .
.Pp
The
.Fn nvlist_exists
function returns
.Dv true
-if element of the given name exists (besides of its type) or
+if an element named
+.Fa name
+exists in
+.Fa nvl
+(regardless of type) or
.Dv false
otherwise.
-The nvlist must not be in error state.
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_exists_type
function returns
.Dv true
-if element of the given name and the given type exists or
+if an element named
+.Fa name
+of type
+.Fa type
+exists or
.Dv false
otherwise.
-The nvlist must not be in error state.
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_exists_null ,
@@ -565,11 +599,13 @@ The
.Fn nvlist_exists_descriptor_array
functions return
.Dv true
-if element of the given name and the given type determined by the function name
+if element named
+.Fa name
+with the type determined by the function name
exists or
.Dv false
otherwise.
-The nvlist must not be in error state.
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_add_null ,
@@ -586,18 +622,23 @@ The
.Fn nvlist_add_string_array ,
.Fn nvlist_add_nvlist_array ,
.Fn nvlist_add_descriptor_array
-functions add element to the given nvlist.
-When adding string or binary buffer the functions will allocate memory
-and copy the data over.
-When adding nvlist, the nvlist will be cloned and clone will be added.
-When adding descriptor, the descriptor will be duplicated using the
+functions add an element to
+.Fa nvl .
+When adding a string or binary buffer, these functions allocate memory
+and copy the data.
+When adding an nvlist, the
+.Fa value
+nvlist is cloned and the clone is added to
+.Fa nvl .
+When adding a file descriptor, the descriptor is duplicated via the
.Xr dup 2
-system call and the new descriptor will be added.
-The array functions will fail if there are any
+system call and the new file descriptor is added.
+The array functions fail if there are any
.Dv NULL
elements in the array, or if the array pointer is
.Dv NULL .
-If an error occurs while adding new element, internal error is set which can be
+If an error occurs while adding a new element,
+an internal error is set which can be
examined using the
.Fn nvlist_error
function.
@@ -612,17 +653,27 @@ The
.Fn nvlist_move_string_array ,
.Fn nvlist_move_nvlist_array ,
.Fn nvlist_move_descriptor_array
-functions add new element to the given nvlist, but unlike
+functions add an element to
+.Fa nvl ,
+but unlike the
.Fn nvlist_add_<type>
-functions they will consume the given resource.
-In the case of strings, descriptors, or nvlists every elements must be
-unique, or it could cause a double free.
-The array functions will fail if there are any
+functions they consume the given resource.
+For string, file descriptor, binary buffer, or nvlist values,
+no value should be moved into an nvlist multiple times;
+doing so will cause that value to be freed multiple times.
+Note that strings or binary buffers must be allocated with
+.Xr malloc 3 ,
+and the pointers will be released via
+.Xr free 3
+when
+.Fa nvl
+is destroyed.
+The array functions fail if there are any
.Dv NULL
elements, or if the array pointer is
.Dv NULL .
If an error occurs while adding new element, the resource is destroyed and
-internal error is set which can be examined using the
+an internal error is set which can be examined using the
.Fn nvlist_error
function.
.Pp
@@ -638,37 +689,61 @@ The
.Fn nvlist_get_string_array ,
.Fn nvlist_get_nvlist_array ,
.Fn nvlist_get_descriptor_array
-functions return the value that corresponds to the given key name.
-In the case of strings, nvlists, descriptors, binary, or arrays, the returned
-resource should not be modified - they still belong to the nvlist.
-If an element of the given name does not exist, the program will be aborted.
-To avoid this, the caller should check for the existence of the name before
-trying to obtain the value, or use the
-.Xr dnvlist 3
-extension, which can provide a default value in the case of a missing element.
-The nvlist must not be in error state.
+functions return the value of the first element in
+.Fa nvl
+named
+.Fa name .
+For string, nvlist, file descriptor, binary buffer, or array values,
+the returned resource must not be modified - it still belongs to
+.Fa nvl .
+.Pp
+If an element named
+.Fa name
+does not exist, the program aborts.
+To avoid this, the caller should check for the existence of the element before
+trying to obtain the value or use the
+.Xr dnv 9
+extension which provides a default value in the case of a missing element.
+.Pp
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_get_parent
-function returns the parent nvlist of the nested nvlist.
+function returns the parent nvlist of
+.Fa nvl .
.Pp
The
.Fn nvlist_get_array_next
-function returns the next element from the array or
-.Dv NULL
-if the nvlist is not in array or it is the last element.
-Note that
-.Fn nvlist_get_array_next
-only works if you added the nvlist array using the
-.Fn nvlist_move_nvlist_array
+function returns the next element after
+.Fa nvl
+from an array of nvlists.
+If
+.Fa nvl
+is not in an array of nvlists or it is the last element,
+this function returns
+.Dv NULL .
+An nvlist is only in an nvlist array if it was added to an nvlist array using
+.Fn nvlist_add_nvlist_array ,
+.Fn nvlist_append_nvlist_array ,
or
-.Fn nvlist_add_nvlist_array
-functions.
+.Fn nvlist_move_nvlist_array .
.Pp
The
.Fn nvlist_get_pararr
-function returns the next element in the array, or if not available
-the parent of the nested nvlist.
+function returns the next element after
+.Fn nvl
+from an array of nvlists.
+If
+.Fn nvl
+is the last element in an array of nvlists,
+the parent nvlist of
+.Fa nvl is
+returned.
+If
+.Fn nvl
+is not in an array of nvlists,
+.Dv NULL
+is returned.
.Pp
The
.Fn nvlist_take_bool ,
@@ -682,42 +757,38 @@ The
.Fn nvlist_take_string_array ,
.Fn nvlist_take_nvlist_array ,
.Fn nvlist_take_descriptor_array
-functions return value associated with the given name and remove the element
-from the nvlist.
-In case of string and binary values, the caller is responsible for free returned
-memory using the
+functions return the value of the element named
+.Fa name
+and remove the element from
+.Fa nvl .
+For string and binary buffer values, the caller is responsible for freeing
+the returned value using the
.Xr free 3
function.
-In case of nvlist, the caller is responsible for destroying returned nvlist
+For nvlist values, the caller is responsible for destroying the returned nvlist
using the
.Fn nvlist_destroy
function.
-In case of descriptor, the caller is responsible for closing returned descriptor
+For file descriptor values, the caller is responsible for closing the
+returned descriptor
using the
.Fn close 2
system call.
-If an element of the given name does not exist, the program will be aborted.
-To avoid that the caller should check for the existence of the given name
-before trying to obtain the value, or use the
-.Xr dnvlist 3
-extension, which can provide a default value in the case of a missing element.
-In the case of an array of strings or binary values, the caller is responsible
-for freeing every element of the array using the
+For array values, the caller is responsible for destroying every element of
+the array based on the element type.
+In addition, the caller must also free the pointer to the array using the
.Xr free 3
function.
-In the case of an array of nvlists, the caller is responsible for destroying
-every element of array using the
-.Fn nvlist_destroy
-function.
-In the case of descriptors, the caller is responsible for closing every
-element of array using the
-.Fn close 2
-system call.
-In every case involving an array, the caller must also free the pointer to
-the array using the
-.Xr free 3
-function.
-The nvlist must not be in error state.
+.Pp
+If an element named
+.Fa name
+does not exist, the program aborts.
+To avoid this, the caller should check for the existence of the element before
+trying to obtain the value or use the
+.Xr dnv 9
+extension which provides a default value in the case of a missing element.
+.Pp
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_append_bool_array ,
@@ -725,28 +796,46 @@ The
.Fn nvlist_append_string_array ,
.Fn nvlist_append_nvlist_array ,
.Fn nvlist_append_descriptor_array
-functions append an element to the existing array using the same semantics
-as the add functions (i.e. the element will be copied when applicable).
-If the array for a given key does not exist, then it will be created
+functions append an element to an existing array using the same semantics
+as the add functions (that is, the element will be copied when applicable).
+If the array named
+.Fa name
+does not exist, then it will be created
as if using the
.Fn nvlist_add_<type>_array
function.
-The internal error is set on append failure.
+If an error occurs while appending a new element,
+an internal error is set on
+.Fa nvl .
.Pp
The
.Fn nvlist_free
-function removes element of the given name from the nvlist (besides of its type)
+function removes the first element named
+.Fa name
+from
+.Fa nvl
+(regardless of type)
and frees all resources associated with it.
-If element of the given name does not exist, the program will be aborted.
-The nvlist must not be in error state.
+If no element named
+.Fa name
+exists, the program aborts.
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_free_type
-function removes element of the given name and the given type from the nvlist
+function removes the first element named
+.Fa name
+of type
+.Fa type
+from
+.Fa nvl
and frees all resources associated with it.
-If element of the given name and the given type does not exist, the program
-will be aborted.
-The nvlist must not be in error state.
+If no element named
+.Fa name
+of type
+.Fa type
+exists, the program aborts.
+The nvlist must not be in the error state.
.Pp
The
.Fn nvlist_free_null ,
@@ -761,20 +850,61 @@ The
.Fn nvlist_free_string_array ,
.Fn nvlist_free_nvlist_array ,
.Fn nvlist_free_descriptor_array
-functions remove element of the given name and the given type determined by the
-function name from the nvlist and free all resources associated with it.
-If element of the given name and the given type does not exist, the program
-will be aborted.
-The nvlist must not be in error state.
-.Sh NOTES
+functions remove the first element named
+.Fa name
+with the type determined by the function name from
+.Fa nvl
+free all resources associated with it.
+If no element named
+.Fa name
+with the appropriate type exists, the program aborts.
+The nvlist must not be in the error state.
+.Ss Notes
The
.Fn nvlist_pack
and
.Fn nvlist_unpack
-functions handle the byte-order conversions, so the binary buffer can be
-packed/unpacked by the hosts with the different endianness.
+functions handle byte-order conversions, so binary buffers can be
+packed and unpacked on hosts with different endianness.
+.Pp
+The
+.Fn nvlist_recv ,
+.Fn nvlist_send ,
+and
+.Fn nvlist_xfer
+functions can transfer nvlists between hosts with different endianness.
+.Ss Kernel Considerations
+The
+.Nm nv ,
+.Nm cnv ,
+and
+.Nm dnv
+APIs can be used in the kernel with the following differences:
+.Bl -bullet
+.It
+File descriptor and file descriptor array value types are not supported.
+.It
+.Fn nvlist_recv ,
+.Fn nvlist_send ,
+and
+.Fn nvlist_xfer
+are not supported.
+.It
+All memory allocations use the
+.Dv M_NVLIST
+memory type with
+.Xr malloc 9
+and
+.Xr free 9 .
+As a result, any allocated buffers moved into an nvlist must be allocated with
+.Dv M_NVLIST ,
+and buffers returned by functions such as
+.Fn nvlist_pack
+must be freed with
+.Dv M_NVLIST .
+.El
.Sh EXAMPLES
-The following example demonstrates how to prepare an nvlist and send it over
+The following example demonstrates how to prepare an nvlist and send it over a
.Xr unix 4
domain socket.
.Bd -literal
@@ -786,16 +916,18 @@ if (fd < 0)
err(1, "open(\\"/tmp/foo\\") failed");
nvl = nvlist_create(0);
+
/*
- * There is no need to check if nvlist_create() succeeded,
+ * There is no need to check if nvlist_create() succeeded
* as the nvlist_add_<type>() functions can cope.
* If it failed, nvlist_send() will fail.
*/
nvlist_add_string(nvl, "filename", "/tmp/foo");
nvlist_add_number(nvl, "flags", O_RDONLY);
+
/*
* We just want to send the descriptor, so we can give it
- * for the nvlist to consume (that's why we use nvlist_move
+ * for the nvlist to consume (that is why we use nvlist_move
* not nvlist_add).
*/
nvlist_move_descriptor(nvl, "fd", fd);
@@ -806,7 +938,7 @@ if (nvlist_send(sock, nvl) < 0) {
nvlist_destroy(nvl);
.Ed
.Pp
-Receiving nvlist and getting data:
+Receiving an nvlist and retrieving element values:
.Bd -literal
nvlist_t *nvl;
const char *command;
@@ -817,25 +949,27 @@ nvl = nvlist_recv(sock, 0);
if (nvl == NULL)
err(1, "nvlist_recv() failed");
-/* For command we take pointer to nvlist's buffer. */
+/* For command we accept a pointer to the nvlist's internal buffer. */
command = nvlist_get_string(nvl, "command");
+
/*
* For filename we remove it from the nvlist and take
* ownership of the buffer.
*/
filename = nvlist_take_string(nvl, "filename");
-/* The same for the descriptor. */
+
+/* The same for the file descriptor. */
fd = nvlist_take_descriptor(nvl, "fd");
printf("command=%s filename=%s fd=%d\n", command, filename, fd);
+/* command is freed by nvlist_destroy() */
nvlist_destroy(nvl);
free(filename);
close(fd);
-/* command was freed by nvlist_destroy() */
.Ed
.Pp
-Iterating over nvlist:
+Iterating over an nvlist:
.Bd -literal
nvlist_t *nvl;
const char *name;
@@ -898,7 +1032,7 @@ nvl = nvlist_recv(sock, 0);
if (nvl == null)
err(1, "nvlist_recv() failed");
-cookie = null;
+cookie = NULL;
do {
while ((name = nvlist_next(nvl, &type, &cookie)) != NULL) {
if (type == NV_TYPE_NVLIST) {
diff --git a/share/man/man9/osd.9 b/share/man/man9/osd.9
index 82f279ef17f4..5e0e482914c3 100644
--- a/share/man/man9/osd.9
+++ b/share/man/man9/osd.9
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 26, 2016
+.Dd October 07, 2024
.Dt OSD 9
.Os
.Sh NAME
@@ -49,7 +49,7 @@
.Fo osd_register
.Fa "u_int type"
.Fa "osd_destructor_t destructor"
-.Fa "osd_method_t *methods"
+.Fa "const osd_method_t *methods"
.Fc
.Ft void
.Fo osd_deregister
@@ -396,7 +396,7 @@ API.
.Pp
.Fn osd_get
only acquires an
-.Xr rmlock
+.Xr rmlock 9
in read mode, therefore making it safe to use in the majority of contexts within
the kernel including most fast paths.
.Sh RETURN VALUES
diff --git a/share/man/man9/p_candebug.9 b/share/man/man9/p_candebug.9
index c824db974154..be4710f0a15f 100644
--- a/share/man/man9/p_candebug.9
+++ b/share/man/man9/p_candebug.9
@@ -138,8 +138,8 @@ command
.Pc .
.El
.Sh SEE ALSO
-.Xr prison_check 9 ,
-.Xr mac 9 ,
-.Xr cr_bsd_visible 9 ,
.Xr procctl 2 ,
-.Xr p_cansee 9
+.Xr cr_bsd_visible 9 ,
+.Xr mac 9 ,
+.Xr p_cansee 9 ,
+.Xr prison_check 9
diff --git a/share/man/man9/p_cansee.9 b/share/man/man9/p_cansee.9
index 9fdce460dfea..7de0c9654995 100644
--- a/share/man/man9/p_cansee.9
+++ b/share/man/man9/p_cansee.9
@@ -74,6 +74,6 @@ and cannot see it as determined by
.Xr cr_cansee 9 .
.El
.Sh SEE ALSO
-.Xr ucred 9 ,
.Xr cr_cansee 9 ,
-.Xr p_candebug 9
+.Xr p_candebug 9 ,
+.Xr ucred 9
diff --git a/share/man/man9/pci.9 b/share/man/man9/pci.9
index 3c3e54bf8760..8f772e76ba99 100644
--- a/share/man/man9/pci.9
+++ b/share/man/man9/pci.9
@@ -23,17 +23,19 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 20, 2021
+.Dd March 27, 2025
.Dt PCI 9
.Os
.Sh NAME
.Nm pci ,
.Nm pci_alloc_msi ,
.Nm pci_alloc_msix ,
+.Nm pci_clear_pme ,
.Nm pci_disable_busmaster ,
.Nm pci_disable_io ,
.Nm pci_enable_busmaster ,
.Nm pci_enable_io ,
+.Nm pci_enable_pme ,
.Nm pci_find_bsf ,
.Nm pci_find_cap ,
.Nm pci_find_dbsf ,
@@ -50,6 +52,7 @@
.Nm pci_get_powerstate ,
.Nm pci_get_vpd_ident ,
.Nm pci_get_vpd_readonly ,
+.Nm pci_has_pm ,
.Nm pci_iov_attach ,
.Nm pci_iov_attach_name ,
.Nm pci_iov_detach ,
@@ -81,6 +84,8 @@
.Fn pci_alloc_msi "device_t dev" "int *count"
.Ft int
.Fn pci_alloc_msix "device_t dev" "int *count"
+.Ft void
+.Fn pci_clear_pme "device_t dev"
.Ft int
.Fn pci_disable_busmaster "device_t dev"
.Ft int
@@ -89,6 +94,8 @@
.Fn pci_enable_busmaster "device_t dev"
.Ft int
.Fn pci_enable_io "device_t dev" "int space"
+.Ft void
+.Fn pci_enable_pme "device_t dev"
.Ft device_t
.Fn pci_find_bsf "uint8_t bus" "uint8_t slot" "uint8_t func"
.Ft int
@@ -121,6 +128,8 @@
.Fn pci_get_vpd_ident "device_t dev" "const char **identptr"
.Ft int
.Fn pci_get_vpd_readonly "device_t dev" "const char *kw" "const char **vptr"
+.Ft bool
+.Fn pci_has_pm "device_t dev"
.Ft int
.Fn pci_msi_count "device_t dev"
.Ft int
@@ -355,6 +364,12 @@ When no more instances are located
returns an error.
.Pp
The
+.Fn pci_has_pm
+function returns true if
+.Fa dev
+supports power management.
+.Pp
+The
.Fn pci_find_extcap
function is used to locate the first instance of a PCI-express
extended capability register set for the device
@@ -670,6 +685,16 @@ then the function will fail with
.Er EOPNOTSUPP .
.Pp
The
+.Fn pci_clear_pme
+function is used to clear any pending PME# signal and disable generation
+of power management events.
+.Pp
+The
+.Fn pci_enable_pme
+function is used to enable generation of power management events before
+suspending a device.
+.Pp
+The
.Fn pci_iov_attach
function is used to advertise that the given device
.Pq and associated device driver
diff --git a/share/man/man9/pci_iov_schema.9 b/share/man/man9/pci_iov_schema.9
index 764d357fbaee..99589b59fb91 100644
--- a/share/man/man9/pci_iov_schema.9
+++ b/share/man/man9/pci_iov_schema.9
@@ -38,7 +38,7 @@
.Nm pci_iov_schema_add_unicast_mac
.Nd PCI SR-IOV config schema interface
.Sh SYNOPSIS
-.In machine/stdarg.h
+.In sys/stdarg.h
.In sys/nv.h
.In sys/iov_schema.h
.Ft nvlist_t *
diff --git a/share/man/man9/pfind.9 b/share/man/man9/pfind.9
index 48e34d65d6ab..ebcf7a565150 100644
--- a/share/man/man9/pfind.9
+++ b/share/man/man9/pfind.9
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 11, 2001
+.Dd December 3, 2024
.Dt PFIND 9
.Os
.Sh NAME
@@ -34,7 +34,9 @@
.Ft "struct proc *"
.Fn pfind "pid_t pid"
.Ft "struct proc *"
-.Fn zpfind "pid_t pid"
+.Fn pfind_any "pid_t pid"
+.Ft "struct proc *"
+.Fn pfind_any_locked "pid_t pid"
.Sh DESCRIPTION
.Fn pfind
takes a
@@ -47,36 +49,39 @@ is on the
.Va allproc
list.
.Pp
-.Fn zpfind
+.Fn pfind_any
takes a
.Fa pid
as its argument.
-If
-.Fn zpfind
-finds a process whose PID is equal to that of argument
-and is a zombie process, meaning that it must reside on the
-.Va zombproc
-list,
-.Fn zpfind
-returns a pointer to that
-.Vt proc
-structure.
+.Fn pfind_any
+searches the
+.Va allproc
+list and returns the first process whose PID matches and whose state is
+.Va PRS_ZOMBIE .
.Pp
-Both
-.Fn pfind
+.Fn pfind_any_locked
+is similar to
+.Fn pfind_any
+,but it does not lock the process hash bucket
+for the given
+.Vt pid .
+Instead, it asserts the corresponding process hash bucket is already locked.
+All three functions
+.Fn pfind ,
+.Fn pfind_any ,
and
-.Fn zpfind
+.Fn pgfind_any_locked
lock the
.Vt proc
-structure that is returned using
-.Fn PROC_LOCK "p" .
+structure before returning.
.Sh RETURN VALUES
-.Fn pfind
+.Fn pfind ,
+.Fn pfind_any ,
and
-.Fn zpfind
-return a pointer to a
+.Fn pfind_any_locked
+return pointer to a
.Vt proc
-structure on success and a
+structure on success or
.Dv NULL
on failure.
.Sh SEE ALSO
diff --git a/share/man/man9/pseudofs.9 b/share/man/man9/pseudofs.9
index e076c398c711..d87bbb0030c7 100644
--- a/share/man/man9/pseudofs.9
+++ b/share/man/man9/pseudofs.9
@@ -36,9 +36,9 @@
The
.Nm
module offers an abstract API for pseudo-file systems such as
-.Xr procfs 5
+.Xr procfs 4
and
-.Xr linprocfs 5 .
+.Xr linprocfs 4 .
It takes care of all the hairy bits like interfacing with the VFS
system, enforcing access control, keeping track of file numbers, and
cloning files and directories that are process-specific.
@@ -51,9 +51,9 @@ and callbacks that report file attributes or write the actual file
contents into sbufs.
.\" Insert more info here
.Sh SEE ALSO
-.Xr linprocfs 5 ,
-.Xr linsysfs 5 ,
-.Xr procfs 5 ,
+.Xr linprocfs 4 ,
+.Xr linsysfs 4 ,
+.Xr procfs 4 ,
.Xr sbuf 9 ,
.Xr vnode 9
.Sh HISTORY
diff --git a/share/man/man9/random.9 b/share/man/man9/random.9
index 7fc721564897..f1833c63a2ff 100644
--- a/share/man/man9/random.9
+++ b/share/man/man9/random.9
@@ -24,7 +24,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\" "
-.Dd March 18, 2024
+.Dd May 11, 2025
.Dt RANDOM 9
.Os
.Sh NAME
@@ -133,7 +133,7 @@ The deprecated
.Fn random
function will return a 31-bit value.
It is obsolete and scheduled to be removed in
-.Fx 15.0 .
+.Fx 16.0 .
Consider
.Xr prng 9
instead and see
diff --git a/share/man/man9/refcount.9 b/share/man/man9/refcount.9
index 0c8e4380aed3..78631f9a865a 100644
--- a/share/man/man9/refcount.9
+++ b/share/man/man9/refcount.9
@@ -3,7 +3,7 @@
.\" Written by: John H. Baldwin <jhb@FreeBSD.org>
.\" All rights reserved.
.\"
-.\" Copyright (c) 2019 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2019 The FreeBSD Foundation
.\"
.\" Parts of this documentation was written by
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
diff --git a/share/man/man9/rman.9 b/share/man/man9/rman.9
index 35a2d176233c..d175b60b4010 100644
--- a/share/man/man9/rman.9
+++ b/share/man/man9/rman.9
@@ -40,7 +40,6 @@
.Nm rman_last_free_region ,
.Nm rman_release_resource ,
.Nm rman_reserve_resource ,
-.Nm rman_reserve_resource_bound ,
.Nm rman_make_alignment_flags ,
.Nm rman_get_start ,
.Nm rman_get_end ,
@@ -90,11 +89,6 @@
.Fa "struct rman *rm" "rman_res_t start" "rman_res_t end" "rman_res_t count"
.Fa "u_int flags" "device_t dev"
.Fc
-.Ft "struct resource *"
-.Fo rman_reserve_resource_bound
-.Fa "struct rman *rm" "rman_res_t start" "rman_res_t end" "rman_res_t count"
-.Fa "rman_res_t bound" "u_int flags" "device_t dev"
-.Fc
.Ft uint32_t
.Fn rman_make_alignment_flags "uint32_t size"
.Ft rman_res_t
@@ -266,7 +260,7 @@ and
are set to the bounds of the free region and zero is returned.
.Pp
The
-.Fn rman_reserve_resource_bound
+.Fn rman_reserve_resource
function is where the bulk of the
.Nm
logic is located.
@@ -279,7 +273,7 @@ The caller can specify the
and
.Fa end
of an acceptable range,
-as well as a boundary restriction and required alignment,
+required alignment,
and the code will attempt to find a free segment which fits.
The
.Fa start
@@ -296,15 +290,13 @@ The alignment requirement
.Pq if any
is specified in
.Fa flags .
-The
-.Fa bound
-argument may be set to specify a boundary restriction such that an
-allocated region may cross an address that is a multiple of the
-boundary.
-The
-.Fa bound
-argument must be a power of two.
-It may be set to zero to specify no boundary restriction.
+Often the
+.Dv RF_ALIGNMENT_LOG2
+macro is used to specify alignment to a power-of-2 size, or
+.Fn rman_make_alignment_flags
+can be used to compute the
+.Fa flags
+value at runtime.
A shared segment will be allocated if the
.Dv RF_SHAREABLE
flag is set, otherwise an exclusive segment will be allocated.
@@ -312,15 +304,6 @@ If this shared segment already exists, the caller has its device
added to the list of consumers.
.Pp
The
-.Fn rman_reserve_resource
-function is used to reserve resources within a previously established region.
-It is a simplified interface to
-.Fn rman_reserve_resource_bound
-which passes 0 for the
-.Fa bound
-argument.
-.Pp
-The
.Fn rman_make_alignment_flags
function returns the flag mask corresponding to the desired alignment
.Fa size .
diff --git a/share/man/man9/rtentry.9 b/share/man/man9/rtentry.9
index f9d2b1668da5..3f2e6c9ef656 100644
--- a/share/man/man9/rtentry.9
+++ b/share/man/man9/rtentry.9
@@ -227,7 +227,7 @@ Empty space available for protocol-specific information.
.El
.Sh SEE ALSO
.Xr route 4 ,
-.Xr route 8 ,
+.Xr route 8
.Sh HISTORY
The
.Vt rtentry
diff --git a/share/man/man9/sglist.9 b/share/man/man9/sglist.9
index 49d0cbfd1871..f4930134e7cf 100644
--- a/share/man/man9/sglist.9
+++ b/share/man/man9/sglist.9
@@ -285,7 +285,7 @@ to the scatter/gather list
.Fa sg .
.Pp
The
-.Nm sglist_append_mbuf
+.Nm sglist_append_single_mbuf
function appends the physical address ranges described by a single mbuf
.Fa m
to the scatter/gather list
diff --git a/share/man/man9/style.9 b/share/man/man9/style.9
index 8eb82e3419ec..e9f17392ae0c 100644
--- a/share/man/man9/style.9
+++ b/share/man/man9/style.9
@@ -1,5 +1,5 @@
-.\"-
-.\" Copyright (c) 1995-2022 The FreeBSD Project
+.\"
+.\" Copyright (c) 1995-2025 The FreeBSD Project
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -22,12 +22,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 26, 2024
+.Dd July 28, 2025
.Dt STYLE 9
.Os
.Sh NAME
.Nm style
-.Nd "kernel source file style guide"
+.Nd kernel source file style guide
.Sh DESCRIPTION
This file specifies the preferred style for kernel source files in the
.Fx
@@ -52,35 +52,31 @@ is silent on an issue.
/* Most single-line comments look like this. */
+// Although they may look like this.
+
/*
* Multi-line comments look like this. Make them real sentences. Fill
* them so they look like real paragraphs.
*/
.Ed
.Pp
-The copyright header should be a multi-line comment, with the first
-line of the comment having a dash after the star like so:
+C++ comments may be used in C and C++ code.
+Single-line comments should be consistently either C or C++ within a file.
+Multi-line comments should also be consistently either C or C++, but may differ
+from single-line comments.
+.Pp
+The copyright header should be a multi-line comment like so:
.Bd -literal
-/*-
- * SPDX-License-Identifier: BSD-2-Clause
- *
+/*
* Copyright (c) 1984-2025 John Q. Public
*
- * Long, boring license goes here, but trimmed for brevity
+ * SPDX-License-Identifier: BSD-2-Clause
*/
.Ed
.Pp
-An automatic script collects license information from the tree for
-all comments that start in the first column with
-.Dq Li "/*-" .
-If you desire to flag
-.Xr indent 1
-to not reformat a comment that starts in the first column which is not a
-license or copyright notice, change the dash to a star for those
-comments.
Comments starting in columns other than the first are never
considered license statements.
-Use the appropriate SPDX-License-Identifier line before the copyright.
+Write the copyright lines before the appropriate SPDX-License-Identifier.
If the copyright assertion contains the phrase
.Dq Li "All Rights Reserved"
that should be on the same line as the word
@@ -126,22 +122,17 @@ Only add
in front of foreign VCS IDs if the file is renamed.
Add
.Dq Li "From: "
-and FreeBSD git hash with full path name if the file was derived
-from another FreeBSD file and include relevant copyright info
-from the original file.
-.Bd -literal
-.Ed
+and the
+.Fx
+git hash with full path name if the file was derived from another
+.Fx
+file and include relevant copyright info from the original file.
.Pp
Leave one blank line before the header files.
.Pp
Kernel include files
.Pa ( sys/*.h )
come first.
-If
-.In sys/cdefs.h
-is needed for
-.Fn __FBSDID ,
-include it first.
If either
.In sys/types.h
or
@@ -519,7 +510,7 @@ parts of the
cascade.
Elements in a
.Ic switch
-statement that cascade should have a
+statement that execute some code and then cascade to the next case should have a
.Li FALLTHROUGH
comment.
Numerical arguments should be checked for accuracy.
@@ -745,9 +736,10 @@ not:
!(p = f())
.Ed
.Pp
-Do not use
+Do not test without a comparison, or with unary
.Ic \&!
-for tests unless it is a boolean, e.g., use:
+(except for booleans).
+For example, use:
.Bd -literal
if (*p == '\e0')
.Ed
@@ -757,6 +749,16 @@ not:
if (!*p)
.Ed
.Pp
+Prefer:
+.Bd -literal
+if (count != 0)
+.Ed
+.Pp
+over:
+.Bd -literal
+if (count)
+.Ed
+.Pp
Routines returning
.Vt "void *"
should not have their return values cast
@@ -806,19 +808,15 @@ vaf(const char *fmt, ...)
static void
usage(void)
{
- /* Optional blank line goes here. */
.Ed
.Pp
-Optionally, insert a blank line at the beginning of functions with no local
-variables.
+Functions should have local variable declarations first, followed by one
+blank line, followed by the first statement.
+If no local variables are declared, the first line should be a statement.
Older versions of this
.Nm
-document required the blank line convention, so it is widely used in existing
-code.
-.Pp
-Do not insert a blank line at the beginning of functions with local variables.
-Instead, these should have local variable declarations first, followed by one
-blank line, followed by the first statement.
+document required a blank line before code.
+Such lines should be removed when signficant changes are made to the code.
.Pp
Use
.Xr printf 3 ,
@@ -902,6 +900,178 @@ New code should use
.Fn _Static_assert
instead of the older
.Fn CTASSERT .
+.Pp
+.Fn __predict_true
+and
+.Fn __predict_false
+should only be used in frequently executed code when it makes the code
+measurably faster.
+It is wasteful to make predictions for infrequently run code, like subsystem
+initialization.
+When using branch prediction hints, atypical error conditions should use
+.Fn __predict_false
+(document the exceptions).
+Operations that almost always succeed use
+.Fn __predict_true .
+Only use the annotation for the entire if statement,
+rather than individual clauses.
+Do not add these annotations without empirical evidence of the likelihood of the
+branch.
+.Ss C++
+KNF style was originally defined as a style for C.
+C++ introduces several new idioms which do not have an existing corollary
+in KNF C such as inline function definitions in classes.
+C++ is also not always compatible with some KNF guidelines such as
+enclosing return values in parentheses.
+For C++ code, FreeBSD aims to follow broadly accepted C++ practices while
+also following the general shape of KNF.
+This section enumerates C++ specific guidelines that differ from KNF C.
+.Pp
+The preferred suffixes for C++ source files are
+.Dq .cc
+and
+.Dq .hh .
+Header files should always use a suffix,
+unlike headers from the C++ standard library.
+.Pp
+Return values should not be enclosed in parantheses.
+When converting existing C code to C++,
+existing return values may remain in parantheses.
+.Pp
+The opening curly brace for namespace declarations should be on the first line
+similar to structure and class definitions.
+Nested namespaces should be declared using a single namespace declaration.
+.Bd -literal
+namespace foo::bar {
+}
+.Ed
+.Pp
+Member function declarations should follow the same style used for standalone
+function protoypes except that a space should be used between a function's
+return type and name.
+.Pp
+Function definitions at the top level should use a newline after the function
+type similar to C function definitions.
+.Pp
+Nested member function definitions inside of a class, structure, or union
+should not use a newline after the function type.
+Instead, these should follow the style of member function declarations.
+This is more common C++ style and is more compact for small methods such as
+getters and setters.
+.Pp
+Inline functions whose body consists of a single statement may use a single
+line for the function body.
+Inline functions with an empty body should always use a single line.
+.Bd -literal
+struct widget {
+ int foo() { return 4; }
+ int bar();
+};
+
+int
+widget::bar()
+{
+ return 6;
+}
+.Ed
+.Pp
+Default and deleted methods should be declared as a single line.
+.Bd -literal
+class box {
+ ~box() = default;
+};
+.Ed
+.Pp
+In template declarations, the
+.Ic template
+keyword and list of template parameters should be followed by a newline
+before the templated declaration.
+.Bd -literal
+template <typename T>
+class box {
+ T data;
+};
+.Ed
+.Pp
+The
+.Ic &
+for reference variables should be placed on the variable name rather
+than the type similar to the style used with
+.Ic *
+for pointers.
+.Bd -literal
+ int x;
+ int &xp = x;
+.Ed
+.Pp
+Variables may be declared at any point within a function,
+not just at the start of blocks.
+.Pp
+Standard library containers should be used in preference to
+.Xr queue 3
+or
+.Xr tree 3
+macros.
+.Pp
+.Ic nullptr
+should be used instead of
+.Dv NULL
+or 0.
+.Pp
+Use standard library types for managing strings such as
+.Vt std::string
+and
+.Vt std::string_view
+rather than
+.Vt "char *"
+and
+.Vt "const char *" .
+C types may be used when interfacing with C code.
+.Pp
+The
+.Ic auto
+keyword can be used in various contexts which improve readability.
+Examples include iterators, non-trivial types of ranged-for values,
+and return values of obvious types,
+such as
+.Ic static_cast
+or
+.Fn std::make_unique .
+Place any qualifiers before
+.Ic auto ,
+for example:
+.Ic const auto .
+.Pp
+Use the
+.Vt std::unique_ptr
+and
+.Vt std::shared_ptr
+smart pointers to manage the lifetime of dynamically allocated objects
+instead of
+.Ic new
+and
+.Ic delete .
+Construct smart pointers with
+.Fn std::make_unique
+or
+.Fn std::make_shared .
+Do not use
+.Xr malloc 3
+except when necessary to interface with C code.
+.Pp
+Do not import any namespaces with
+.Ic using
+at global scope in header files.
+Namespaces other than the
+.Ic std
+namespace (for example,
+.Ic std::literals )
+may be imported in source files and in function scope in header files.
+.Pp
+Define type aliases using
+.Ic using
+instead of
+.Ic typedef .
.Sh FILES
.Bl -tag -width indent
.It Pa /usr/src/tools/build/checkstyle9.pl
diff --git a/share/man/man9/sysctl.9 b/share/man/man9/sysctl.9
index 8c4ee71c96c6..92c8532c8ed2 100644
--- a/share/man/man9/sysctl.9
+++ b/share/man/man9/sysctl.9
@@ -931,8 +931,8 @@ Examples of integer, opaque, string, and procedure sysctls follow:
* flags are CTLFLAG_RD, the variable pointer is SYSCTL_NULL_INT_PTR,
* and the value is declared.
*/
-SYSCTL_INT(_debug_sizeof, OID_AUTO, bio, CTLFLAG_RD, SYSCTL_NULL_INT_PTR,
- sizeof(struct bio), "sizeof(struct bio)");
+SYSCTL_INT(_kern, OID_AUTO, hz_max, CTLFLAG_RD, SYSCTL_NULL_INT_PTR, HZ_MAXIMUM,
+ "Maximum hz value supported");
/*
* Example of a variable integer value. Notice that the control
diff --git a/share/man/man9/tcp_functions.9 b/share/man/man9/tcp_functions.9
index eb9b299eae9e..8ba7f21c978c 100644
--- a/share/man/man9/tcp_functions.9
+++ b/share/man/man9/tcp_functions.9
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd March 10, 2017
+.Dd July 13, 2024
.Dt TCP_FUNCTIONS 9
.Os
.Sh NAME
@@ -37,6 +37,7 @@
.Ft int
.Fn register_tcp_functions_as_name "struct tcp_function_block *blk" \
"const char *name" "int wait"
+.Ft int
.Fn register_tcp_functions_as_names "struct tcp_function_block *blk" \
"int wait" "const char *names[]" "int *num_names"
.Ft int
@@ -112,6 +113,7 @@ argument.
The
.Fa num_names
argument provides a pointer to the number of names.
+This number must not exceed TCP_FUNCTION_NAME_NUM_MAX.
This function will either succeed in registering all of the names in the array,
or none of the names in the array.
On failure, the
@@ -176,9 +178,10 @@ struct tcp_function_block {
uint32_t, u_int);
int (*tfb_tcp_timer_active)(struct tcpcb *, uint32_t);
void (*tfb_tcp_timer_stop)(struct tcpcb *, uint32_t);
- /* Optional functions */
+ /* Optional function */
void (*tfb_tcp_rexmit_tmr)(struct tcpcb *);
- void (*tfb_tcp_handoff_ok)(struct tcpcb *);
+ /* Mandatory function */
+ int (*tfb_tcp_handoff_ok)(struct tcpcb *);
/* System use */
volatile uint32_t tfb_refcnt;
uint32_t tfb_flags;
@@ -261,37 +264,21 @@ However, care must be taken to ensure the retransmit timer leaves the
TCP control block in a valid state for the remainder of the retransmit
timer logic.
.Pp
-A user may select a new TCP stack before calling
-.Xr connect 2
-or
-.Xr listen 2 .
-Optionally, a TCP stack may also allow a user to begin using the TCP stack for
-a connection that is in a later state by setting a non-NULL function pointer in
-the
+A user may select a new TCP stack before calling at any time.
+Therefore, the function pointer
.Va tfb_tcp_handoff_ok
-field.
-If this field is non-NULL and a user attempts to select that TCP stack after
-calling
-.Xr connect 2
-or
-.Xr listen 2
-for that socket, the kernel will call the function pointed to by the
+field must be non-NULL.
+If a user attempts to select that TCP stack, the kernel will call the function
+pointed to by the
.Va tfb_tcp_handoff_ok
field.
The function should return 0 if the user is allowed to switch the socket to use
-the TCP stack.
-Otherwise, the function should return an error code, which will be returned to
-the user.
-If the
-.Va tfb_tcp_handoff_ok
-field is
-.Dv NULL
-and a user attempts to select the TCP stack after calling
-.Xr connect 2
-or
-.Xr listen 2
-for that socket, the operation will fail and the kernel will return
-.Er EINVAL .
+the TCP stack. In this case, the kernel will call the function pointed to by
+.Va tfb_tcp_fb_init
+if this function pointer is non-NULL and finally perform the stack switch.
+If the user is not allowed to switch the socket, the function should undo any
+changes it made to the connection state configuration and return an error code,
+which will be returned to the user.
.Pp
The
.Va tfb_refcnt
@@ -343,8 +330,11 @@ must be prepared to wait until all connections have stopped using the
specified TCP stack.
.Sh ERRORS
The
-.Fn register_tcp_functions
-function will fail if:
+.Fn register_tcp_functions ,
+.Fn register_tcp_functions_as_name ,
+and
+.Fn register_tcp_functions_as_names
+functions will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Any of the members of the
@@ -353,7 +343,19 @@ argument are set incorrectly.
.It Bq Er ENOMEM
The function could not allocate memory for its internal data.
.It Bq Er EALREADY
-A function block is already registered with the same name.
+The
+.Fa blk
+is already registered or a function block is already registered with the same
+name.
+.El
+Additionally,
+.Fn register_tcp_functions_as_names
+will fail if:
+.Bl -tag -width Er
+.It Bq Er E2BIG
+The number of names pointed to by the
+.Fa num_names
+argument is larger than TCP_FUNCTION_NAME_NUM_MAX.
.El
The
.Fn deregister_tcp_functions
diff --git a/share/man/man9/vfs_getopt.9 b/share/man/man9/vfs_getopt.9
index 0e68655f540f..ff0f027314c7 100644
--- a/share/man/man9/vfs_getopt.9
+++ b/share/man/man9/vfs_getopt.9
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\"
-.Dd July 31, 2011
+.Dd May 19, 2024
.Dt VFS_GETOPT 9
.Os
.Sh NAME
@@ -46,7 +46,7 @@
.Fa "struct vfsoptlist *opts" "const char *name" "void **buf" "int *len"
.Fc
.Ft "char *"
-.Fn vfs_getops "struct vfsoptlist *opts" "const char *name" "int *error"
+.Fn vfs_getopts "struct vfsoptlist *opts" "const char *name" "int *error"
.Ft int
.Fo vfs_flagopt
.Fa "struct vfsoptlist *opts" "const char *name" "uint64_t *flags" "uint64_t flag"
@@ -177,7 +177,7 @@ function returns 0 if the option was found; otherwise,
is returned.
.Pp
The
-.Fn vfs_getops
+.Fn vfs_getopts
function returns the specified option if it is found, and is
.Dv NUL
terminated.
diff --git a/share/man/man9/vm_map.9 b/share/man/man9/vm_map.9
index 81379a5c347d..d08d54bd1004 100644
--- a/share/man/man9/vm_map.9
+++ b/share/man/man9/vm_map.9
@@ -49,15 +49,15 @@ subordinate maps, created using the
function.
.Bd -literal -offset indent
struct vm_map {
- struct vm_map_entry header;
- struct sx lock;
- struct mtx system_mtx;
+ struct vm_map_entry header;
+ union {
+ struct sx lock;
+ struct mtx system_mtx;
+ };
int nentries;
vm_size_t size;
u_int timestamp;
- u_char needs_wakeup;
- u_char system_map;
- vm_flags_t flags;
+ u_int flags;
vm_map_entry_t root;
pmap_t pmap;
int busy;
@@ -83,12 +83,6 @@ A count of the members in use within the circular map entry list.
Specifies the size of the virtual address space.
.It Va timestamp
Used to determine if the map has changed since its last access.
-.It Va needs_wakeup
-Indicates if a thread is waiting for an allocation within the map.
-Used only by system maps.
-.It Va system_map
-Set to TRUE to indicate that map is a system map; otherwise, it belongs
-to a user process.
.It Va flags
Map flags, described below.
.It Va root
@@ -106,6 +100,12 @@ Possible map flags:
Wire all future pages in this map.
.It Dv MAP_BUSY_WAKEUP
There are waiters for the map busy status.
+.It Va MAP_NEEDS_WAKEUP
+Indicates if a thread is waiting for an allocation within the map.
+Used only by system maps.
+.It Va MAP_SYSTEM_MAP
+If set, indicates that the map is the system map; otherwise, it belongs
+to a user process.
.El
.Pp
The following flags can be passed to
@@ -323,7 +323,6 @@ is backed by a
.Xr vm_map_pmap 9 ,
.Xr vm_map_protect 9 ,
.Xr vm_map_remove 9 ,
-.Xr vm_map_simplify_entry 9 ,
.Xr vm_map_stack 9 ,
.Xr vm_map_submap 9 ,
.Xr vm_map_sync 9 ,
diff --git a/share/man/man9/vm_map_protect.9 b/share/man/man9/vm_map_protect.9
index 21e7b53a6bc6..5ece889a85df 100644
--- a/share/man/man9/vm_map_protect.9
+++ b/share/man/man9/vm_map_protect.9
@@ -1,6 +1,6 @@
.\"
.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
-.\" Copyright (c) 2021 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2021 The FreeBSD Foundation
.\" All rights reserved.
.\"
.\" Parts of this documentation were written by
diff --git a/share/man/man9/vm_page_alloc.9 b/share/man/man9/vm_page_alloc.9
index de225e05d707..4bf8db33a28d 100644
--- a/share/man/man9/vm_page_alloc.9
+++ b/share/man/man9/vm_page_alloc.9
@@ -28,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\"
-.Dd November 11, 2021
+.Dd August 4, 2024
.Dt VM_PAGE_ALLOC 9
.Os
.Sh NAME
@@ -87,17 +87,6 @@
.Fa "vm_page_t mpred"
.Fc
.Ft vm_page_t
-.Fo vm_page_alloc_freelist
-.Fa "int freelist"
-.Fa "int req"
-.Fc
-.Ft vm_page_t
-.Fo vm_page_alloc_freelist_domain
-.Fa "int domain"
-.Fa "int freelist"
-.Fa "int req"
-.Fc
-.Ft vm_page_t
.Fo vm_page_alloc_noobj
.Fa "int req"
.Fc
@@ -212,19 +201,6 @@ or
will carry the machine-dependent encoding of the memory attribute.
Additionally, the direct mapping of the page, if any, will be updated to
reflect the requested memory attribute.
-.Pp
-The
-.Fn vm_page_alloc_freelist
-and
-.Fn vm_page_alloc_freelist_domain
-functions behave identically to
-.Fn vm_page_alloc_noobj
-and
-.Fn vm_page_alloc_noobj_domain ,
-respectively, except that a successful allocation will return a page from the
-specified physical memory freelist.
-These functions are not intended for use outside of the virtual memory
-subsystem and exist only to support the requirements of certain platforms.
.Sh REQUEST FLAGS
All page allocator functions accept a
.Fa req
@@ -331,6 +307,10 @@ pages will be allocated by the caller in the near future.
must be no larger than 65535.
If the system is short of free pages, this hint may cause the kernel
to reclaim memory more aggressively than it would otherwise.
+.It Dv VM_ALLOC_NOFREE
+The caller asserts that the returned page will never be released.
+If this flag is specified, the allocator will try to fetch a page from a
+special per-domain arena in order to curb long-term physical memory fragmentation.
.El
.Sh RETURN VALUES
If the allocation was successful, a pointer to the
diff --git a/share/man/man9/vmem.9 b/share/man/man9/vmem.9
index 1dc74e951cb2..053aec856a78 100644
--- a/share/man/man9/vmem.9
+++ b/share/man/man9/vmem.9
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" $NetBSD: vmem.9,v 1.15 2013/01/29 22:02:17 wiz Exp $
.\"
.\" Copyright (c)2006 YAMAMOTO Takashi,
@@ -74,7 +77,7 @@ other than virtual memory.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Fn vmem_create
creates a new vmem arena.
-.Bl -tag -width qcache_max
+.Bl -tag -offset indent -width "qcache_max"
.It Fa name
The string to describe the vmem.
.It Fa base
@@ -117,7 +120,7 @@ wait flag.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Fn vmem_xalloc
allocates a resource from the arena.
-.Bl -tag -width nocross
+.Bl -tag -offset indent -width "qcache_max"
.It Fa vm
The arena which we allocate from.
.It Fa size
@@ -159,7 +162,7 @@ A bitwise OR of an allocation strategy and a
.Xr malloc 9
wait flag.
The allocation strategy is one of:
-.Bl -tag width indent
+.Bl -tag -width "M_FIRSTFIT"
.It Dv M_FIRSTFIT
Prefer allocation performance.
.It Dv M_BESTFIT
@@ -182,7 +185,7 @@ overwrites it with the start address of the allocated span.
frees resource allocated by
.Fn vmem_xalloc
to the arena.
-.Bl -tag -width addr
+.Bl -tag -offset indent -width "qcache_max"
.It Fa vm
The arena which we free to.
.It Fa addr
@@ -203,7 +206,7 @@ argument used for
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Fn vmem_alloc
allocates a resource from the arena.
-.Bl -tag -width flags
+.Bl -tag -offset indent -width "qcache_max"
.It Fa vm
The arena which we allocate from.
.It Fa size
@@ -228,7 +231,7 @@ overwrites it with the start address of the allocated span.
frees resource allocated by
.Fn vmem_alloc
to the arena.
-.Bl -tag -width addr
+.Bl -tag -offset indent -width "qcache_max"
.It Fa vm
The arena which we free to.
.It Fa addr
@@ -249,7 +252,7 @@ argument used for
.\" ------------------------------------------------------------
.Fn vmem_destroy
destroys a vmem arena.
-.Bl -tag -width vm
+.Bl -tag -offset indent -width "qcache_max"
.It Fa vm
The vmem arena being destroyed.
The caller should ensure that no one will use it anymore.
diff --git a/share/man/man9/vnode.9 b/share/man/man9/vnode.9
index 3d34b48c2ee0..d17492668298 100644
--- a/share/man/man9/vnode.9
+++ b/share/man/man9/vnode.9
@@ -24,7 +24,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 12, 2014
+.Dd July 15, 2025
.Dt VNODE 9
.Os
.Sh NAME
@@ -104,9 +104,21 @@ the vnode.
The
.Va v_op
field is used by the
-.Dv VOP_*
-macros to call functions in the file system which implement the vnode's
+.Fn VOP_*
+functions to call functions in the file system which implement the vnode's
functionality.
+.Pp
+The
+.Fn VOP_*
+function declarations and definitions are generated from
+.Pa sys/kern/vnode_if.src
+by the
+.Pa sys/tools/vnode_if.awk
+script.
+The interfaces are documented in their respective manual pages like
+.Xr VOP_READ 9
+and
+.Xr VOP_WRITE 9 .
.Sh VNODE TYPES
.Bl -tag -width VSOCK
.It Dv VNON
@@ -154,6 +166,16 @@ when holding a
.Nm
interlock, will cause a LOR (Lock Order Reversal) due to the
intertwining of VM Objects and Vnodes.
+.Sh FILES
+.Bl -tag -width "sys/tools/vnode_if.awk" -compact
+.It Pa sys/kern/vnode_if.src
+The input file for
+.Pa sys/tools/vnode_if.awk .
+.It Pa sys/tools/vnode_if.awk
+The script generating the source code of the
+.Fn VOP_*
+functions.
+.El
.Sh SEE ALSO
.Xr malloc 9 ,
.Xr VFS 9 ,
diff --git a/share/man/man9/zone.9 b/share/man/man9/zone.9
index a6b8d2dfedbe..9f13cf0e504a 100644
--- a/share/man/man9/zone.9
+++ b/share/man/man9/zone.9
@@ -341,7 +341,7 @@ Create a zone whose items will be synchronized using the
.Xr smr 9
mechanism.
Upon creation the zone will have an associated
-.Dt smr_t
+.Ft smr_t
structure which can be fetched using
.Fn uma_zone_get_smr .
.El