MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vm_phys_add_seg

Function vm_phys_add_seg

freebsd/vm/vm_phys.c:452–480  ·  view source on GitHub ↗

* Add a physical memory segment. */

Source from the content-addressed store, hash-verified

450 * Add a physical memory segment.
451 */
452void
453vm_phys_add_seg(vm_paddr_t start, vm_paddr_t end)
454{
455 vm_paddr_t paddr;
456
457 KASSERT((start & PAGE_MASK) == 0,
458 ("vm_phys_define_seg: start is not page aligned"));
459 KASSERT((end & PAGE_MASK) == 0,
460 ("vm_phys_define_seg: end is not page aligned"));
461
462 /*
463 * Split the physical memory segment if it spans two or more free
464 * list boundaries.
465 */
466 paddr = start;
467#ifdef VM_FREELIST_LOWMEM
468 if (paddr < VM_LOWMEM_BOUNDARY && end > VM_LOWMEM_BOUNDARY) {
469 vm_phys_create_seg(paddr, VM_LOWMEM_BOUNDARY);
470 paddr = VM_LOWMEM_BOUNDARY;
471 }
472#endif
473#ifdef VM_FREELIST_DMA32
474 if (paddr < VM_DMA32_BOUNDARY && end > VM_DMA32_BOUNDARY) {
475 vm_phys_create_seg(paddr, VM_DMA32_BOUNDARY);
476 paddr = VM_DMA32_BOUNDARY;
477 }
478#endif
479 vm_phys_create_seg(paddr, end);
480}
481
482/*
483 * Initialize the physical memory allocator.

Callers 3

pmap_bootstrap_prepareFunction · 0.85
vm_phys_early_startupFunction · 0.85
vm_page_startupFunction · 0.85

Calls 1

vm_phys_create_segFunction · 0.85

Tested by

no test coverage detected