by cesium » Thu Aug 27, 2009 9:28 pm
I wish you didn't resurrect a 4 year old thread...
Anyway, the problem is that the per-fd data storing api (cdev_set_priv() or something like that) is mostly incompatible with mmap()**, so OSSv4 can't do mmap() unless the per-fd code is disabled (i.e. OSSv4 is recompiled with VDEV_SUPPORT undefined. One would have to edit kernel/OS/FreeBSD/wrapper/bsddef.h to do this properly). This would have the effect of preventing vmix from being able to get multiple clients on /dev/dsp...
** IIRC, they did a sort-of an hack where it works only for a certain type of accesses...
*** The permissions issue in the original post is probably due to some crazy umask? Latest OSS clears umask before creating the nodes.