Changeset 77129 in vbox for trunk/src/VBox
- Timestamp:
- Feb 1, 2019 4:33:23 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 128587
- Location:
- trunk/src/VBox/Runtime/r0drv/freebsd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c
r77120 r77129 188 188 case RTR0MEMOBJTYPE_PHYS_NC: 189 189 { 190 #if __FreeBSD_version >= 1000030191 190 VM_OBJECT_WLOCK(pMemFreeBSD->pObject); 192 #else193 VM_OBJECT_LOCK(pMemFreeBSD->pObject);194 #endif195 191 vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0); 196 192 #if __FreeBSD_version < 1000000 … … 206 202 vm_page_unlock_queues(); 207 203 #endif 208 #if __FreeBSD_version >= 1000030209 204 VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); 210 #else211 VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);212 #endif213 205 vm_object_deallocate(pMemFreeBSD->pObject); 214 206 break; … … 238 230 while (cTries <= 1) 239 231 { 240 #if __FreeBSD_version >= 1000030241 232 VM_OBJECT_WLOCK(pObject); 242 #else243 VM_OBJECT_LOCK(pObject);244 #endif245 233 pPages = vm_page_alloc_contig(pObject, iPIndex, fFlags, cPages, 0, 246 234 VmPhysAddrHigh, uAlignment, 0, VM_MEMATTR_DEFAULT); 247 #if __FreeBSD_version >= 1000030248 235 VM_OBJECT_WUNLOCK(pObject); 249 #else250 VM_OBJECT_UNLOCK(pObject);251 #endif252 236 if (pPages) 253 237 break; … … 269 253 if (!pPages) 270 254 return pPages; 271 #if __FreeBSD_version >= 1000030272 255 VM_OBJECT_WLOCK(pObject); 273 #else274 VM_OBJECT_LOCK(pObject);275 #endif276 256 for (vm_pindex_t iPage = 0; iPage < cPages; iPage++) 277 257 { … … 285 265 } 286 266 } 287 #if __FreeBSD_version >= 1000030288 267 VM_OBJECT_WUNLOCK(pObject); 289 #else290 VM_OBJECT_UNLOCK(pObject);291 #endif292 268 return pPages; 293 269 #endif … … 313 289 { 314 290 /* Free all allocated pages */ 315 #if __FreeBSD_version >= 1000030316 291 VM_OBJECT_WLOCK(pObject); 317 #else318 VM_OBJECT_LOCK(pObject);319 #endif320 292 while (iPage-- > 0) 321 293 { … … 331 303 #endif 332 304 } 333 #if __FreeBSD_version >= 1000030334 305 VM_OBJECT_WUNLOCK(pObject); 335 #else336 VM_OBJECT_UNLOCK(pObject);337 #endif338 306 return rcNoMem; 339 307 } … … 474 442 { 475 443 Assert(enmType == RTR0MEMOBJTYPE_PHYS); 476 #if __FreeBSD_version >= 1000030477 444 VM_OBJECT_WLOCK(pMemFreeBSD->pObject); 478 #else479 VM_OBJECT_LOCK(pMemFreeBSD->pObject);480 #endif481 445 pMemFreeBSD->Core.u.Phys.PhysBase = VM_PAGE_TO_PHYS(vm_page_find_least(pMemFreeBSD->pObject, 0)); 482 #if __FreeBSD_version >= 1000030483 446 VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); 484 #else485 VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);486 #endif487 447 pMemFreeBSD->Core.u.Phys.fAllocated = true; 488 448 } … … 903 863 { 904 864 RTHCPHYS addr; 905 #if __FreeBSD_version >= 1000030 865 906 866 VM_OBJECT_WLOCK(pMemFreeBSD->pObject); 907 #else908 VM_OBJECT_LOCK(pMemFreeBSD->pObject);909 #endif910 867 addr = VM_PAGE_TO_PHYS(vm_page_lookup(pMemFreeBSD->pObject, iPage)); 911 #if __FreeBSD_version >= 1000030912 868 VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); 913 #else914 VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);915 #endif916 869 return addr; 917 870 } -
trunk/src/VBox/Runtime/r0drv/freebsd/the-freebsd-kernel.h
r77120 r77129 130 130 131 131 /** 132 * The VM object lock/unlock wrappers for older kernels. 133 */ 134 #if __FreeBSD_version < 1000030 135 # define VM_OBJECT_WLOCK(a_pObject) VM_OBJECT_LOCK((a_pObject)) 136 # define VM_OBJECT_WUNLOCK(a_pObject) VM_OBJECT_UNLOCK((a_pObject)) 137 #endif 138 139 /** 132 140 * Check whether we can use kmem_alloc_attr for low allocs. 133 141 */
Note:
See TracChangeset
for help on using the changeset viewer.