summaryrefslogtreecommitdiff
path: root/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c')
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
new file mode 100644
index 000000000000..f5db6a393cf7
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-semeventmulti-r0drv-freebsd.c
@@ -0,0 +1,41 @@
+Index: src/VBox/Runtime/r0drv/freebsd/semeventmulti-r0drv-freebsd.c
+@@ -215,15 +215,23 @@ static int rtSemEventMultiWait(RTSEMEVEN
+
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_timedwait_sig(pEventMultiInt, 0);
+ else
+ rc = sleepq_timedwait(pEventMultiInt, 0);
++#else
++ if (fInterruptible)
++ rc = sleepq_timedwait_sig(pEventMultiInt);
++ else
++ rc = sleepq_timedwait(pEventMultiInt);
++#endif
+ }
+ else
+ {
+ RTSpinlockRelease(pEventMultiInt->hSpinLock, &Tmp);
+
++#if __FreeBSD_version >=800026
+ if (fInterruptible)
+ rc = sleepq_wait_sig(pEventMultiInt, 0);
+ else
+@@ -231,6 +239,15 @@ static int rtSemEventMultiWait(RTSEMEVEN
+ rc = 0;
+ sleepq_wait(pEventMultiInt, 0);
+ }
++#else
++ if (fInterruptible)
++ rc = sleepq_wait_sig(pEventMultiInt);
++ else
++ {
++ rc = 0;
++ sleepq_wait(pEventMultiInt);
++ }
++#endif
+ }
+
+ RTSpinlockAcquire(pEventMultiInt->hSpinLock, &Tmp);