Date: Tue, 12 Jan 2010 18:50:02 +0100 From: Juergen Lock <nox@jelal.kn-bremen.de> To: Alexander Motin <mav@FreeBSD.org> Cc: freebsd-multimedia@FreeBSD.org, netchild@FreeBSD.org, Juergen Lock <nox@jelal.kn-bremen.de>, Ryan Beasley <ryanb@goddamnbastard.org> Subject: Re: native OSS_GETVERSION ioctl doesn't really work Message-ID: <20100112175002.GA8721@triton8.kn-bremen.de> In-Reply-To: <4B4C5C0E.5040301@FreeBSD.org> References: <20100109215928.GA93188@triton8.kn-bremen.de> <4B4C5C0E.5040301@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jan 12, 2010 at 01:25:02PM +0200, Alexander Motin wrote: > Juergen Lock wrote: > > 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 :) > > Fixed it for mixer in HEAD. I see 4Front OSS also implements it for > sndstat and audio devices. Is it right, or it is some kind of bug or > workaround? I'd say it's right, apps depend on the ioctl being available also on /dev/dsp etc. too. (Or at least qemu 0.12 does, thats where I discovered the bug. I haven't looked at other apps so far...) And thank you for the fix! :) Juergen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100112175002.GA8721>