freebsd-src/share/man
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
..
man1 share: Remove ancient SCCS tags. 2023-11-26 22:23:29 -07:00
man3 assert.3: Update manual page based on mandoc -Tlint 2024-03-21 15:24:02 -03:00
man3lua Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
man4 sound: Get rid of snd_clone and use DEVFS_CDEVPRIV(9) 2024-03-31 13:20:17 +08:00
man5 src.conf(5): regen after addition of nuageinit 2024-03-15 09:22:43 +01:00
man6 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
man7 BSD.usr.dist: remove empty /usr/libdata/gcc directory 2024-03-21 12:22:57 -03:00
man8 rc.subr.8 note when DebugOn will be called 2024-02-10 12:31:10 -08:00
man9 epoch(9): Remove the under-development note 2024-03-26 10:38:41 -04:00
Makefile share/man: Add mandoc.db files to METALOG 2024-01-30 22:17:34 +00:00