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

Function vm_phys_create_seg

freebsd/vm/vm_phys.c:416–447  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

414}
415
416static void
417vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end)
418{
419#ifdef NUMA
420 int i;
421
422 if (mem_affinity == NULL) {
423 _vm_phys_create_seg(start, end, 0);
424 return;
425 }
426
427 for (i = 0;; i++) {
428 if (mem_affinity[i].end == 0)
429 panic("Reached end of affinity info");
430 if (mem_affinity[i].end <= start)
431 continue;
432 if (mem_affinity[i].start > start)
433 panic("No affinity info for start %jx",
434 (uintmax_t)start);
435 if (mem_affinity[i].end >= end) {
436 _vm_phys_create_seg(start, end,
437 mem_affinity[i].domain);
438 break;
439 }
440 _vm_phys_create_seg(start, mem_affinity[i].end,
441 mem_affinity[i].domain);
442 start = mem_affinity[i].end;
443 }
444#else
445 _vm_phys_create_seg(start, end, 0);
446#endif
447}
448
449/*
450 * Add a physical memory segment.

Callers 1

vm_phys_add_segFunction · 0.85

Calls 2

_vm_phys_create_segFunction · 0.85
panicFunction · 0.50

Tested by

no test coverage detected