Juergen Lock
2010-01-09 21:59:28 UTC
While fixing qemu for the upcoming 0.12.1 (or .2) qemu-devel port
I discovered that the OSS_GETVERSION ioctl added by r164613 in 2006,
http://svn.freebsd.org/viewvc/base?view=revision&revision=164613
is only implemented for the mixer device (other than in the Linuxolator),
and on top of that that code is never reached because OSS_GETVERSION
is defined as an _IOR ('M', ...), which are all handled by an
if ((cmd & MIXER_READ(0)) == MIXER_READ(0)) {
...
here,
http://fxr.watson.org/fxr/source/dev/sound/pcm/mixer.c#L1255
and so even if actually done on a mixer device the ioctl ends up failing
with ENXIO.
JFY... :)
Juergen
PS: I guess I can try to make a patch, but only if its needed :)
I discovered that the OSS_GETVERSION ioctl added by r164613 in 2006,
http://svn.freebsd.org/viewvc/base?view=revision&revision=164613
is only implemented for the mixer device (other than in the Linuxolator),
and on top of that that code is never reached because OSS_GETVERSION
is defined as an _IOR ('M', ...), which are all handled by an
if ((cmd & MIXER_READ(0)) == MIXER_READ(0)) {
...
here,
http://fxr.watson.org/fxr/source/dev/sound/pcm/mixer.c#L1255
and so even if actually done on a mixer device the ioctl ends up failing
with ENXIO.
JFY... :)
Juergen
PS: I guess I can try to make a patch, but only if its needed :)