My system is FreeBSD 7-CURRENT amd64.
diff of my and original osscore.c:
Code: Select all
--- osscore.c.orig Tue Apr 3 20:56:31 2007
+++ osscore.c Mon May 7 17:35:45 2007
@@ -31,6 +31,12 @@
#include <vm/vm.h>
#include <vm/pmap.h>
+#ifdef msleep
+#undef msleep
+#endif
+
+int msleep(void *chan, struct mtx *mtx, int pri, const char *wmesg, int timo);
+
typedef struct _oss_device_t oss_device_t;
#include "bsddefs.h"
@@ -51,6 +57,11 @@
extern int soundcard_attach (void);
extern int soundcard_detach (void);
+int msleep(void *chan, struct mtx *mtx, int pri, const char *wmesg, int timo)
+{
+ return msleep_spin(chan, mtx, wmesg, timo);
+}
+
void *
memset (void *t, int val, int l)
{
@@ -164,7 +175,7 @@
}
intr->irq == bus_setup_intr (osdev->dip, intr->irqres,
- INTR_TYPE_AV | INTR_MPSAFE, ossintr, intr,
+ INTR_TYPE_AV | INTR_MPSAFE, NULL, ossintr, intr,
&(intr->cookie));
nintrs++;