aboutsummaryrefslogtreecommitdiff
path: root/audio/oss/files
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2012-01-31 21:03:22 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2012-01-31 21:03:22 +0000
commitc65143707c838cf944b2dae39d70a62e5d5271b0 (patch)
tree661e32b7a93bad9add9feaa70669ccf9479fd91d /audio/oss/files
parentd3748ea363bfb16eb3c822abdcb4d517037c70b5 (diff)
Notes
Diffstat (limited to 'audio/oss/files')
-rw-r--r--audio/oss/files/patch-kernel-OS-FreeBSD-os_freebsd.c45
1 files changed, 42 insertions, 3 deletions
diff --git a/audio/oss/files/patch-kernel-OS-FreeBSD-os_freebsd.c b/audio/oss/files/patch-kernel-OS-FreeBSD-os_freebsd.c
index 13a3a42763da..173400a18ec0 100644
--- a/audio/oss/files/patch-kernel-OS-FreeBSD-os_freebsd.c
+++ b/audio/oss/files/patch-kernel-OS-FreeBSD-os_freebsd.c
@@ -1,6 +1,14 @@
---- kernel/OS/FreeBSD/os_freebsd.c.orig 2011-01-05 16:06:40.000000000 -0500
-+++ kernel/OS/FreeBSD/os_freebsd.c 2011-06-21 17:52:41.000000000 -0400
-@@ -315,7 +315,7 @@ oss_get_cardinfo (int cardnum, oss_card_
+--- kernel/OS/FreeBSD/os_freebsd.c.orig 2011-08-11 19:51:27.000000000 -0400
++++ kernel/OS/FreeBSD/os_freebsd.c 2012-01-31 15:16:58.000000000 -0500
+@@ -16,6 +16,7 @@
+ #include "midi_core.h"
+ #include <oss_pci.h>
+ #include <sys/conf.h>
++#include <sys/module.h>
+ #include <sys/proc.h>
+ #include <sys/sx.h>
+ #include <sys/mman.h>
+@@ -315,7 +316,7 @@
if (cards[cardnum]->name != NULL)
strncpy (ci->longname, cards[cardnum]->name, 128);
@@ -9,3 +17,34 @@
if (cards[cardnum]->nick != NULL)
strncpy (ci->shortname, cards[cardnum]->nick, 16);
+@@ -413,8 +414,17 @@
+
+ if (!(flags & CHDEV_VIRTUAL) && (name != NULL))
+ {
++#if __FreeBSD_version >= 801500
++ if (make_dev_p (MAKEDEV_CHECKNAME, &bsd_cdev, &oss_cdevsw, NULL,
++ UID_ROOT, GID_WHEEL, 0666, name, 0))
++ {
++ cmn_err (CE_WARN, "Cannot allocate device node /dev/%s\n", name);
++ return;
++ }
++#else
+ bsd_cdev =
+ make_dev (&oss_cdevsw, num, UID_ROOT, GID_WHEEL, 0666, name, 0);
++#endif
+ cdev->info = bsd_cdev;
+ }
+ }
+@@ -604,6 +614,12 @@
+ {
+ oss_device_t *osdev;
+
++ if (module_lookupbyname("sound") != NULL)
++ {
++ cmn_err (CE_WARN, "Open Sound System conflicts with FreeBSD driver\n");
++ cmn_err (CE_CONT, "Please remove sound(4) from kernel or unload it\n");
++ return EBUSY;
++ }
+ if ((osdev = PMALLOC (NULL, sizeof (*osdev))) == NULL)
+ {
+ return ENOSPC;