Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_kern.c
Show First 20 Lines • Show All 753 Lines • ▼ Show 20 Lines | kmem_init(vm_offset_t start, vm_offset_t end) | ||||
vm_map_t m; | vm_map_t m; | ||||
int domain; | int domain; | ||||
m = vm_map_create(kernel_pmap, VM_MIN_KERNEL_ADDRESS, end); | m = vm_map_create(kernel_pmap, VM_MIN_KERNEL_ADDRESS, end); | ||||
m->system_map = 1; | m->system_map = 1; | ||||
vm_map_lock(m); | vm_map_lock(m); | ||||
/* N.B.: cannot use kgdb to debug, starting with this assignment ... */ | /* N.B.: cannot use kgdb to debug, starting with this assignment ... */ | ||||
kernel_map = m; | kernel_map = m; | ||||
(void) vm_map_insert(m, NULL, (vm_ooffset_t) 0, | (void)vm_map_insert(m, NULL, 0, | ||||
#ifdef __amd64__ | #ifdef __amd64__ | ||||
KERNBASE, | KERNBASE, | ||||
#else | #else | ||||
VM_MIN_KERNEL_ADDRESS, | VM_MIN_KERNEL_ADDRESS, | ||||
#endif | #endif | ||||
start, VM_PROT_ALL, VM_PROT_ALL, MAP_NOFAULT); | start, VM_PROT_ALL, VM_PROT_ALL, MAP_NOFAULT); | ||||
/* ... and ending with the completion of the above `insert' */ | /* ... and ending with the completion of the above `insert' */ | ||||
#ifdef __amd64__ | |||||
/* | |||||
* Mark KVA used for the page array as allocated. Other platforms | |||||
* that handle vm_page_array allocation can simply adjust virtual_avail | |||||
* instead. | |||||
*/ | |||||
(void)vm_map_insert(m, NULL, 0, (vm_offset_t)vm_page_array, | |||||
(vm_offset_t)vm_page_array + round_2mpage(vm_page_array_size * | |||||
sizeof(struct vm_page)), | |||||
VM_PROT_RW, VM_PROT_RW, MAP_NOFAULT); | |||||
#endif | |||||
vm_map_unlock(m); | vm_map_unlock(m); | ||||
/* | /* | ||||
* Initialize the kernel_arena. This can grow on demand. | * Initialize the kernel_arena. This can grow on demand. | ||||
*/ | */ | ||||
vmem_init(kernel_arena, "kernel arena", 0, 0, PAGE_SIZE, 0, 0); | vmem_init(kernel_arena, "kernel arena", 0, 0, PAGE_SIZE, 0, 0); | ||||
vmem_set_import(kernel_arena, kva_import, NULL, NULL, KVA_QUANTUM); | vmem_set_import(kernel_arena, kva_import, NULL, NULL, KVA_QUANTUM); | ||||
▲ Show 20 Lines • Show All 86 Lines • Show Last 20 Lines |