Changeset View
Changeset View
Standalone View
Standalone View
sys/mips/mips/pmap.c
Context not available. | |||||
mtx_assert(&kernel_map->system_mtx, MA_OWNED); | mtx_assert(&kernel_map->system_mtx, MA_OWNED); | ||||
req_class = VM_ALLOC_INTERRUPT; | req_class = VM_ALLOC_INTERRUPT; | ||||
addr = roundup2(addr, NBSEG); | addr = roundup2(addr, NBSEG); | ||||
if (addr - 1 >= kernel_map->max_offset) | if (addr - 1 >= kernel_map->header.start) | ||||
addr = kernel_map->max_offset; | addr = kernel_map->header.start; | ||||
while (kernel_vm_end < addr) { | while (kernel_vm_end < addr) { | ||||
pdpe = pmap_segmap(kernel_pmap, kernel_vm_end); | pdpe = pmap_segmap(kernel_pmap, kernel_vm_end); | ||||
#ifdef __mips_n64 | #ifdef __mips_n64 | ||||
Context not available. | |||||
pde = pmap_pdpe_to_pde(pdpe, kernel_vm_end); | pde = pmap_pdpe_to_pde(pdpe, kernel_vm_end); | ||||
if (*pde != 0) { | if (*pde != 0) { | ||||
kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK; | kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK; | ||||
if (kernel_vm_end - 1 >= kernel_map->max_offset) { | if (kernel_vm_end - 1 >= kernel_map->header.start) { | ||||
kernel_vm_end = kernel_map->max_offset; | kernel_vm_end = kernel_map->header.start; | ||||
break; | break; | ||||
} | } | ||||
continue; | continue; | ||||
Context not available. | |||||
pte[i] = PTE_G; | pte[i] = PTE_G; | ||||
kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK; | kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK; | ||||
if (kernel_vm_end - 1 >= kernel_map->max_offset) { | if (kernel_vm_end - 1 >= kernel_map->header.start) { | ||||
kernel_vm_end = kernel_map->max_offset; | kernel_vm_end = kernel_map->header.start; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
Context not available. |