source: build-files/ports-overlay/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c @ 1e102bd

9.2-releasereleng/10.0releng/10.0.1
Last change on this file since 1e102bd was 1e102bd, checked in by Kris Moore <kris@…>, 6 months ago

Add a bunch of modified ports for 10.0, so we can fix the building

  • Property mode set to 100644
File size: 3.9 KB
Line 
1$FreeBSD: emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c 317147 2013-05-02 20:54:04Z decke $
2
3--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c       2013-03-20 19:19:36.795745576 -0700
4+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c       2013-03-20 19:15:35.164791970 -0700
5@@ -162,7 +162,11 @@
6         case RTR0MEMOBJTYPE_PHYS:
7         case RTR0MEMOBJTYPE_PHYS_NC:
8         {
9+#if __FreeBSD_version >= 1000030
10+            VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
11+#else
12             VM_OBJECT_LOCK(pMemFreeBSD->pObject);
13+#endif
14             vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0);
15 #if __FreeBSD_version < 900000
16             /* See http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037963.html */
17@@ -177,7 +181,12 @@
18 #if __FreeBSD_version < 900000
19             vm_page_unlock_queues();
20 #endif
21+#if __FreeBSD_version >= 1000030
22+            VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
23+#else
24             VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);
25+#endif
26+
27             vm_object_deallocate(pMemFreeBSD->pObject);
28             break;
29         }
30@@ -205,10 +214,18 @@
31 
32     while (cTries <= 1)
33     {
34+#if __FreeBSD_version >= 1000030
35+        VM_OBJECT_WLOCK(pObject);
36+#else
37         VM_OBJECT_LOCK(pObject);
38+#endif
39         pPages = vm_page_alloc_contig(pObject, iPIndex, fFlags, cPages, 0,
40                                       VmPhysAddrHigh, uAlignment, 0, VM_MEMATTR_DEFAULT);
41+#if __FreeBSD_version >= 1000030
42+        VM_OBJECT_WUNLOCK(pObject);
43+#else
44         VM_OBJECT_UNLOCK(pObject);
45+#endif
46         if (pPages)
47             break;
48         vm_pageout_grow_cache(cTries, 0, VmPhysAddrHigh);
49@@ -228,7 +245,11 @@
50 
51     if (!pPages)
52         return pPages;
53+#if __FreeBSD_version >= 1000030
54+    VM_OBJECT_WLOCK(pObject);
55+#else
56     VM_OBJECT_LOCK(pObject);
57+#endif
58     for (vm_pindex_t iPage = 0; iPage < cPages; iPage++)
59     {
60         vm_page_t pPage = pPages + iPage;
61@@ -240,7 +261,11 @@
62             atomic_add_int(&cnt.v_wire_count, 1);
63         }
64     }
65+#if __FreeBSD_version >= 1000030
66+    VM_OBJECT_WUNLOCK(pObject);
67+#else
68     VM_OBJECT_UNLOCK(pObject);
69+#endif
70     return pPages;
71 #endif
72 }
73@@ -264,7 +289,11 @@
74         if (!pPage)
75         {
76             /* Free all allocated pages */
77+#if __FreeBSD_version >= 1000030
78+            VM_OBJECT_WLOCK(pObject);
79+#else
80             VM_OBJECT_LOCK(pObject);
81+#endif
82             while (iPage-- > 0)
83             {
84                 pPage = vm_page_lookup(pObject, iPage);
85@@ -278,7 +307,11 @@
86                 vm_page_unlock_queues();
87 #endif
88             }
89+#if __FreeBSD_version >= 1000030
90+            VM_OBJECT_WUNLOCK(pObject);
91+#else
92             VM_OBJECT_UNLOCK(pObject);
93+#endif
94             return rcNoMem;
95         }
96     }
97@@ -411,9 +444,17 @@
98         if (fContiguous)
99         {
100             Assert(enmType == RTR0MEMOBJTYPE_PHYS);
101+#if __FreeBSD_version >= 1000030
102+            VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
103+#else
104             VM_OBJECT_LOCK(pMemFreeBSD->pObject);
105+#endif
106             pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_page_find_least(pMemFreeBSD->pObject, 0));
107+#if __FreeBSD_version >= 1000030
108+            VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
109+#else
110             VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);
111+#endif
112             pMemFreeBSD->Core.u.Phys.fAllocated = true;
113         }
114 
115@@ -823,9 +864,17 @@
116         case RTR0MEMOBJTYPE_PHYS_NC:
117         {
118             RTHCPHYS addr;
119+#if __FreeBSD_version >= 1000030
120+            VM_OBJECT_WLOCK(pMemFreeBSD->pObject);
121+#else
122             VM_OBJECT_LOCK(pMemFreeBSD->pObject);
123+#endif
124             addr = VM_PAGE_TO_PHYS(vm_page_lookup(pMemFreeBSD->pObject, iPage));
125+#if __FreeBSD_version >= 1000030
126+            VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject);
127+#else
128             VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);
129+#endif
130             return addr;
131         }
132 
Note: See TracBrowser for help on using the repository browser.