Skip site navigation (1)Skip section navigation (2)
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>