diff options
author | Bernhard Froehlich <decke@FreeBSD.org> | 2013-05-02 20:54:04 +0000 |
---|---|---|
committer | Bernhard Froehlich <decke@FreeBSD.org> | 2013-05-02 20:54:04 +0000 |
commit | f211bc094ccd001fd951b88b904823453eaf9d34 (patch) | |
tree | 3416befb42c0483e4c3edd910e13fcdd31681155 /emulators/virtualbox-ose-additions/files | |
parent | a25a60bedddda02305f61a0f3daf9c32d5fab410 (diff) | |
download | ports-f211bc094ccd001fd951b88b904823453eaf9d34.tar.gz ports-f211bc094ccd001fd951b88b904823453eaf9d34.zip |
Notes
Diffstat (limited to 'emulators/virtualbox-ose-additions/files')
2 files changed, 145 insertions, 3 deletions
diff --git a/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c b/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c new file mode 100644 index 000000000000..82d7d1c297d6 --- /dev/null +++ b/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c @@ -0,0 +1,132 @@ +$FreeBSD$ + +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-03-20 19:19:36.795745576 -0700 ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-03-20 19:15:35.164791970 -0700 +@@ -162,7 +162,11 @@ + case RTR0MEMOBJTYPE_PHYS: + case RTR0MEMOBJTYPE_PHYS_NC: + { ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WLOCK(pMemFreeBSD->pObject); ++#else + VM_OBJECT_LOCK(pMemFreeBSD->pObject); ++#endif + vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0); + #if __FreeBSD_version < 900000 + /* See http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037963.html */ +@@ -177,7 +181,12 @@ + #if __FreeBSD_version < 900000 + vm_page_unlock_queues(); + #endif ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); ++#else + VM_OBJECT_UNLOCK(pMemFreeBSD->pObject); ++#endif ++ + vm_object_deallocate(pMemFreeBSD->pObject); + break; + } +@@ -205,10 +214,18 @@ + + while (cTries <= 1) + { ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WLOCK(pObject); ++#else + VM_OBJECT_LOCK(pObject); ++#endif + pPages = vm_page_alloc_contig(pObject, iPIndex, fFlags, cPages, 0, + VmPhysAddrHigh, uAlignment, 0, VM_MEMATTR_DEFAULT); ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WUNLOCK(pObject); ++#else + VM_OBJECT_UNLOCK(pObject); ++#endif + if (pPages) + break; + vm_pageout_grow_cache(cTries, 0, VmPhysAddrHigh); +@@ -228,7 +245,11 @@ + + if (!pPages) + return pPages; ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WLOCK(pObject); ++#else + VM_OBJECT_LOCK(pObject); ++#endif + for (vm_pindex_t iPage = 0; iPage < cPages; iPage++) + { + vm_page_t pPage = pPages + iPage; +@@ -240,7 +261,11 @@ + atomic_add_int(&cnt.v_wire_count, 1); + } + } ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WUNLOCK(pObject); ++#else + VM_OBJECT_UNLOCK(pObject); ++#endif + return pPages; + #endif + } +@@ -264,7 +289,11 @@ + if (!pPage) + { + /* Free all allocated pages */ ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WLOCK(pObject); ++#else + VM_OBJECT_LOCK(pObject); ++#endif + while (iPage-- > 0) + { + pPage = vm_page_lookup(pObject, iPage); +@@ -278,7 +307,11 @@ + vm_page_unlock_queues(); + #endif + } ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WUNLOCK(pObject); ++#else + VM_OBJECT_UNLOCK(pObject); ++#endif + return rcNoMem; + } + } +@@ -411,9 +444,17 @@ + if (fContiguous) + { + Assert(enmType == RTR0MEMOBJTYPE_PHYS); ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WLOCK(pMemFreeBSD->pObject); ++#else + VM_OBJECT_LOCK(pMemFreeBSD->pObject); ++#endif + pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_page_find_least(pMemFreeBSD->pObject, 0)); ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); ++#else + VM_OBJECT_UNLOCK(pMemFreeBSD->pObject); ++#endif + pMemFreeBSD->Core.u.Phys.fAllocated = true; + } + +@@ -823,9 +864,17 @@ + case RTR0MEMOBJTYPE_PHYS_NC: + { + RTHCPHYS addr; ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WLOCK(pMemFreeBSD->pObject); ++#else + VM_OBJECT_LOCK(pMemFreeBSD->pObject); ++#endif + addr = VM_PAGE_TO_PHYS(vm_page_lookup(pMemFreeBSD->pObject, iPage)); ++#if __FreeBSD_version >= 1000030 ++ VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); ++#else + VM_OBJECT_UNLOCK(pMemFreeBSD->pObject); ++#endif + return addr; + } + diff --git a/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h b/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h index 98a8b960508e..c8ab61f1e48a 100644 --- a/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h +++ b/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-the-freebsd-kernel.h @@ -1,6 +1,16 @@ ---- ./src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2012-06-12 02:54:01.440878507 +0400 -+++ ./src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2012-06-12 00:08:55.218232972 +0400 -@@ -64,6 +64,7 @@ +--- src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h.orig 2013-03-05 14:28:07.000000000 +0000 ++++ src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h 2013-03-28 13:10:34.000000000 +0000 +@@ -50,6 +50,9 @@ + #include <sys/unistd.h> + #include <sys/kthread.h> + #include <sys/lock.h> ++#if __FreeBSD_version >= 1000030 ++#include <sys/rwlock.h> ++#endif + #include <sys/mutex.h> + #include <sys/sched.h> + #include <sys/callout.h> +@@ -64,6 +67,7 @@ #include <vm/vm_kern.h> #include <vm/vm_param.h> /* KERN_SUCCESS ++ */ #include <vm/vm_page.h> |