MFC r282017:

Allow DSP basename cloning to be disabled or enabled at boot and
runtime. This is useful when implementing OSS sound stacks in
userspace via libcuse for example.
This commit is contained in:
Hans Petter Selasky 2015-05-21 07:48:06 +00:00
parent 0a44f62da2
commit 751c7427e3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/stable/10/; revision=283192

View File

@ -48,6 +48,12 @@ SYSCTL_INT(_hw_snd, OID_AUTO, compat_linux_mmap, CTLFLAG_RW,
&dsp_mmap_allow_prot_exec, 0,
"linux mmap compatibility (-1=force disable 0=auto 1=force enable)");
static int dsp_basename_clone = 1;
SYSCTL_INT(_hw_snd, OID_AUTO, basename_clone, CTLFLAG_RWTUN,
&dsp_basename_clone, 0,
"DSP basename cloning (0: Disable; 1: Enabled)");
TUNABLE_INT("hw.snd.basename_clone", &dsp_basename_clone);
struct dsp_cdevinfo {
struct pcm_channel *rdch, *wrch;
struct pcm_channel *volch;
@ -2359,9 +2365,10 @@ dsp_clone(void *arg,
devname = devcmp;
devhw = dsp_cdevs[i].hw;
devcmax = dsp_cdevs[i].max - 1;
if (strcmp(name, devcmp) == 0)
unit = snd_unit;
else if (dsp_stdclone(name, devcmp, devsep,
if (strcmp(name, devcmp) == 0) {
if (dsp_basename_clone != 0)
unit = snd_unit;
} else if (dsp_stdclone(name, devcmp, devsep,
dsp_cdevs[i].use_sep, &unit, &cunit) != 0) {
unit = -1;
cunit = -1;