opnsense-src/sys/conf
Christos Margiolis e8c0d15a64 sound: Get rid of snd_clone and use DEVFS_CDEVPRIV(9)
Currently the snd_clone framework creates device nodes on-demand for
every channel, through the dsp_clone() callback, and is responsible for
routing audio to the appropriate channel(s). This patch gets rid of the
whole snd_clone framework (including any related sysctls) and instead
uses DEVFS_CDEVPRIV(9) to handle device opening, channel allocation and
audio routing. This results in a significant reduction in code size as
well as complexity.

Behavior that is preserved:

- hw.snd.basename_clone.
- Exclusive access of an audio device (i.e VCHANs disabled).
- Multiple processes can read from/write to the device.
- A device can only be opened as many times as the maximum allowed
  channel number (see SND_MAXHWCHAN in pcm/sound.h).
- OSSv4 compatibility aliases are preserved.

Behavior changes:

Only one /dev/dspX device node is created (on attach) for each audio
device, as opposed to the current /dev/dspX.Y devices created by
snd_clone. According to the sound(4) man page, devices are not meant to
be opened through /dev/dspX.Y anyway, so it is best if we do not create
device nodes for them in the first place. As a result of this, modify
dsp_oss_audioinfo() to print /dev/dspX in the "ai->devnode", instead of
/dev/dspX.Y.

Sponsored by:	The FreeBSD Foundation
MFC after:	2 months
Reviewed by:	dev_submerge.ch, bapt, markj
Differential Revision:	https://reviews.freebsd.org/D44411
2024-04-11 20:06:30 +02:00
..
config.mk config.mk: Add MK_VIMAGE knob 2024-04-09 13:05:56 -04:00
dtb.build.mk sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
dtb.mk sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
files sound: Get rid of snd_clone and use DEVFS_CDEVPRIV(9) 2024-04-11 20:06:30 +02:00
files.amd64 ice_ddp: Update package to 1.3.36.0 2024-02-20 21:13:18 -08:00
files.arm conf: deduplicate dwc config logic 2024-02-27 18:10:14 -04:00
files.arm64 arm64/vmm: Define a dummy _start symbol in vmm_hyp_blob.elf 2024-04-11 11:04:22 -04:00
files.i386 sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
files.powerpc ice_ddp: Update package to 1.3.36.0 2024-02-20 21:13:18 -08:00
files.riscv riscv: Introduce support for APLIC interrupt controller 2024-02-14 11:42:29 -04:00
files.x86 x86/ucode: add support for early loading of CPU ucode on AMD. 2024-02-22 10:04:31 -08:00
kern.mk build: add -Wswitch to clang for more consistency with gcc 2024-03-22 01:39:01 +01:00
kern.opts.mk config.mk: Add MK_VIMAGE knob 2024-04-09 13:05:56 -04:00
kern.post.mk sanitizers: Avoid building genassym.c and genoffset.c with sanitizers 2024-01-12 16:09:14 -05:00
kern.pre.mk Fix GENERIC-KASAN kernel build for amd64 2024-04-07 19:58:52 +02:00
kmod.mk sanitizers: Avoid building genassym.c and genoffset.c with sanitizers 2024-01-12 16:09:14 -05:00
kmod.opts.mk sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
kmod_syms.awk sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
kmod_syms_prefix.awk sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
ldscript.amd64 kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.arm kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.arm64 kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.i386 kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.kmod.amd64 sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ldscript.kmod.i386 sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ldscript.powerpc kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.powerpc64 kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.powerpc64le kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.powerpcspe kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
ldscript.riscv kernel: Sync ldscript files wrt gnu.attributes and .note.GNU-stack 2024-02-29 09:30:37 -07:00
Makefile.amd64 sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
Makefile.arm sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
Makefile.arm64 sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
Makefile.i386 sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
Makefile.powerpc sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
Makefile.riscv sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
newvers.sh sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
NOTES NOTES: Move NVMe entries to MI file 2024-04-09 15:02:58 -07:00
options netinet: add a probe point for IP, IP6, ICMP, ICMP6, UDP and TCP stats counters 2024-04-08 17:29:59 +02:00
options.amd64 uart: Support EARLY_PRINTF on x86 for port-mapped COM ports 2023-10-20 16:07:24 -06:00
options.arm arm: prune imx5 support from the tree 2023-10-26 22:55:17 -05:00
options.arm64 Import the kernel parts of bhyve/arm64 2024-02-21 18:55:32 +00:00
options.i386 uart: Support EARLY_PRINTF on x86 for port-mapped COM ports 2023-10-20 16:07:24 -06:00
options.powerpc sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
options.riscv sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
std.nodebug std.nodebug: remove DIAGNOSTIC from debug configs 2023-08-18 16:39:22 +03:00
sysent.mk sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
systags.sh sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
vdso_amd64.ldscript spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
vdso_amd64_ia32.ldscript spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
WITHOUT_SOURCELESS sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
WITHOUT_SOURCELESS_HOST sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
WITHOUT_SOURCELESS_UCODE sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00