* Add a physical memory segment. */
| 450 | * Add a physical memory segment. |
| 451 | */ |
| 452 | void |
| 453 | vm_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. |
no test coverage detected