Changeset 29711 in vbox for trunk/src/VBox/Runtime/r0drv
- Timestamp:
- May 20, 2010 8:33:40 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 61887
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c
r29027 r29711 215 215 } 216 216 217 /* unused: */ 217 #if (__FreeBSD_version >= 900011) || (__FreeBSD_version >= 800505) || (__FreeBSD_version >= 703101) 218 218 case RTR0MEMOBJTYPE_LOW: 219 { 220 kmem_free(kernel_map, (vm_offset_t)pMemFreeBSD->Core.pv, pMemFreeBSD->Core.cb); 221 break; 222 } 223 #else 224 case RTR0MEMOBJTYPE_LOW: /* unused */ 225 #endif 219 226 default: 220 227 AssertMsgFailed(("enmType=%d\n", pMemFreeBSD->Core.enmType)); … … 224 231 return VINF_SUCCESS; 225 232 } 226 227 233 228 234 int rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable) … … 314 320 } 315 321 316 317 322 int rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, bool fExecutable) 318 323 { 324 #if (__FreeBSD_version >= 900011) || (__FreeBSD_version >= 800505) || (__FreeBSD_version >= 703101) 325 /* 326 * Use kmem_alloc_attr, fExectuable is not needed because the 327 * memory will be executable by default 328 */ 329 NOREF(fExecutable); 330 331 /* create the object. */ 332 PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)rtR0MemObjNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb); 333 if (!pMemFreeBSD) 334 return VERR_NO_MEMORY; 335 336 pMemFreeBSD->Core.pv = (void *)kmem_alloc_attr(kernel_map, /* Kernel */ 337 cb, /* Amount */ 338 M_ZERO, /* Zero memory */ 339 0, /* Low physical address */ 340 _4G - PAGE_SIZE, /* Highest physical address */ 341 VM_MEMATTR_DEFAULT); /* Default memory attributes */ 342 if (!pMemFreeBSD->Core.pv) 343 return VERR_NO_MEMORY; 344 345 return VINF_SUCCESS; 346 #else 319 347 /* 320 348 * Try a Alloc first and see if we get luck, if not try contigmalloc. … … 338 366 rc = rtR0MemObjNativeAllocCont(ppMem, cb, fExecutable); 339 367 return rc; 368 #endif 340 369 } 341 370
Note:
See TracChangeset
for help on using the changeset viewer.