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

Function vm_phys_avail_split

freebsd/vm/vm_phys.c:1575–1594  ·  view source on GitHub ↗

* Split an entry at the address 'pa'. Return zero on success or errno. */

Source from the content-addressed store, hash-verified

1573 * Split an entry at the address 'pa'. Return zero on success or errno.
1574 */
1575static int
1576vm_phys_avail_split(vm_paddr_t pa, int i)
1577{
1578 int cnt;
1579
1580 vm_phys_avail_check(i);
1581 if (pa <= phys_avail[i] || pa >= phys_avail[i + 1])
1582 panic("vm_phys_avail_split: invalid address");
1583 cnt = vm_phys_avail_count();
1584 if (cnt >= PHYS_AVAIL_ENTRIES)
1585 return (ENOSPC);
1586 memmove(&phys_avail[i + 2], &phys_avail[i],
1587 (cnt - i) * sizeof(phys_avail[0]));
1588 phys_avail[i + 1] = pa;
1589 phys_avail[i + 2] = pa;
1590 vm_phys_avail_check(i);
1591 vm_phys_avail_check(i+2);
1592
1593 return (0);
1594}
1595
1596void
1597vm_phys_early_add_seg(vm_paddr_t start, vm_paddr_t end)

Callers 2

vm_phys_early_allocFunction · 0.85
vm_phys_early_startupFunction · 0.85

Calls 4

vm_phys_avail_checkFunction · 0.85
vm_phys_avail_countFunction · 0.85
panicFunction · 0.50
memmoveFunction · 0.50

Tested by

no test coverage detected