/dev/dsp mmap question
avg at freebsd.org
Sat Feb 26 15:18:27 UTC 2011
if we the following on FreeBSD (pseudo-code):
fd = open(/dev/dsp, O_RDWR);
This won't work entirely correctly, right?
I base my question on some observations of how a particular program behaves on
FreeBSD and on the following comment in sys/dev/sound/pcm/dsp.c:
* XXX The linux api uses the nprot to select read/write buffer
* our vm system doesn't allow this, so force write buffer.
* This is just a quack to fool full-duplex mmap, so that at
* least playback _or_ recording works. If you really got the
* urge to make _both_ work at the same time, avoid O_RDWR.
* Just open each direction separately and mmap() it.
* Failure is not an option due to INVARIANTS check within
* device_pager.c, which means, we have to give up one over
is this something that can easily fixed or not?
More information about the freebsd-multimedia