opnsense-src/sys/conf
Christos Margiolis dc831e93ba 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, markj
Differential Revision:	https://reviews.freebsd.org/D44411
2024-03-31 13:20:17 +08:00
..
config.mk sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06: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-03-31 13:20:17 +08: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 vf_i2c: split up and add ACPI attachments in addition to FDT 2024-03-29 23:04:51 +00: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 arm: Introduce MK_KERNEL_BIN to control generation of kernel.bin 2023-10-26 21:10:36 -06: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 conf: Do not set -fno-sanitize-memory-param-retval for old compilers 2024-01-11 14:20:22 -05: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 Add the BBR and RACK stacks to the LINT kernel. 2023-10-18 16:13:12 +02:00
options ath(4): always enable 11n 2024-02-22 22:34:17 +00: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