/lk-master/kernel/vm/ |
A D | vmm.c | 44 return (vaddr >= aspace->base && vaddr <= aspace->base + aspace->size - 1); in is_inside_aspace() 60 if (vaddr + size - 1 > aspace->base + aspace->size - 1) in is_region_inside_aspace() 115 aspace, aspace->base, aspace->size, r, r->base, r->size); in add_region_to_aspace() 186 if (gap_beg == (aspace->base + aspace->size)) in check_gap() 188 gap_end = aspace->base + aspace->size - 1; in check_gap() 608 err = arch_mmu_init_aspace(&aspace->arch_aspace, aspace->base, aspace->size, in vmm_create_aspace() 660 if (current_thread->aspace == aspace) { in vmm_free_aspace() 688 if (aspace == t->aspace) in vmm_set_active_aspace() 694 t->aspace = aspace; in vmm_set_active_aspace() 778 get_current_thread()->aspace = aspace; in cmd_vmm() [all …]
|
A D | vm.c | 110 vmm_aspace_t *aspace = vaddr_to_aspace(ptr); in vaddr_to_paddr() local 111 if (!aspace) in vaddr_to_paddr() 115 status_t rc = arch_mmu_query(&aspace->arch_aspace, (vaddr_t)ptr, &pa, NULL); in vaddr_to_paddr() 126 return get_current_thread()->aspace; in vaddr_to_aspace() 153 vmm_aspace_t *aspace = vaddr_to_aspace((void *)argv[2].u); in cmd_vm() local 154 if (!aspace) { in cmd_vm() 169 vmm_aspace_t *aspace = vaddr_to_aspace((void *)argv[2].u); in cmd_vm() local 170 if (!aspace) { in cmd_vm() 180 vmm_aspace_t *aspace = vaddr_to_aspace((void *)argv[2].u); in cmd_vm() local 181 if (!aspace) { in cmd_vm() [all …]
|
/lk-master/arch/riscv/ |
A D | mmu.cpp | 203 DEBUG_ASSERT(aspace); in arch_mmu_init_aspace() 236 aspace->pt_virt = alloc_ptable(aspace, &aspace->pt_phys); in arch_mmu_init_aspace() 249 LTRACEF("pt phys %#lx, pt virt %p\n", aspace->pt_phys, aspace->pt_virt); in arch_mmu_init_aspace() 257 DEBUG_ASSERT(aspace); in arch_mmu_destroy_aspace() 276 aspace->magic = 0; in arch_mmu_destroy_aspace() 317 DEBUG_ASSERT(aspace); in riscv_pt_walk() 406 if (_vaddr < aspace->base || _vaddr > aspace->base + aspace->size - 1) { in arch_mmu_map() 473 if (_vaddr < aspace->base || _vaddr > aspace->base + aspace->size - 1) { in arch_mmu_query() 524 if (_vaddr < aspace->base || _vaddr > aspace->base + aspace->size - 1) { in arch_mmu_unmap() 581 DEBUG_ASSERT(!aspace || aspace->magic == RISCV_ASPACE_MAGIC); in arch_mmu_context_switch() [all …]
|
/lk-master/arch/arm/arm/ |
A D | mmu.c | 140 DEBUG_ASSERT(aspace); in arm_mmu_map_section() 167 DEBUG_ASSERT(aspace); in arm_mmu_unmap_section() 221 if (aspace) { in arch_mmu_context_switch() 238 DEBUG_ASSERT(aspace); in arch_mmu_query() 372 DEBUG_ASSERT(aspace); in get_l2_table() 410 DEBUG_ASSERT(aspace); in put_l2_table() 483 DEBUG_ASSERT(aspace); in arch_mmu_map() 579 DEBUG_ASSERT(aspace); in arch_mmu_unmap() 687 aspace->tt_phys = vaddr_to_paddr(aspace->tt_virt); in arch_mmu_init_aspace() 702 aspace->tt_phys = vaddr_to_paddr(aspace->tt_virt); in arch_mmu_init_aspace() [all …]
|
A D | arch.c | 345 arch_aspace_t *aspace; in arch_chain_load() local 350 aspace = &vmm_get_kernel_aspace()->arch_aspace; in arch_chain_load() 353 aspace = malloc(sizeof(*aspace)); in arch_chain_load() 354 arch_mmu_init_aspace(aspace, loader_pa_section, SECTION_SIZE, 0); in arch_chain_load() 359 arch_mmu_map(aspace, loader_pa_section, loader_pa_section, (2 * SECTION_SIZE / PAGE_SIZE), 0); in arch_chain_load() 360 if (need_context_switch) arch_mmu_context_switch(aspace); in arch_chain_load()
|
/lk-master/arch/arm64/ |
A D | mmu.c | 34 return (vaddr >= aspace->base && vaddr <= aspace->base + aspace->size - 1); in is_valid_vaddr() 95 DEBUG_ASSERT(aspace); in arch_mmu_query() 488 DEBUG_ASSERT(aspace); in arch_mmu_map() 525 DEBUG_ASSERT(aspace); in arch_mmu_unmap() 558 DEBUG_ASSERT(aspace); in arch_mmu_init_aspace() 564 aspace->flags = flags; in arch_mmu_init_aspace() 573 aspace->tt_phys = vaddr_to_paddr(aspace->tt_virt); in arch_mmu_init_aspace() 586 aspace->tt_phys = vaddr_to_paddr(aspace->tt_virt); in arch_mmu_init_aspace() 593 LTRACEF("tt_phys 0x%lx tt_virt %p\n", aspace->tt_phys, aspace->tt_virt); in arch_mmu_init_aspace() 601 DEBUG_ASSERT(aspace); in arch_mmu_destroy_aspace() [all …]
|
/lk-master/arch/or1k/ |
A D | mmu.c | 207 DEBUG_ASSERT(aspace); in arch_mmu_init_aspace() 214 aspace->flags = flags; in arch_mmu_init_aspace() 220 aspace->base = base; in arch_mmu_init_aspace() 221 aspace->size = size; in arch_mmu_init_aspace() 222 aspace->pt_virt = kernel_pgtable; in arch_mmu_init_aspace() 223 aspace->pt_phys = kernel_pgtable_phys; in arch_mmu_init_aspace() 228 LTRACEF("pt phys %#lx, pt virt %p\n", aspace->pt_phys, aspace->pt_virt); in arch_mmu_init_aspace() 234 status_t arch_mmu_destroy_aspace(arch_aspace_t *aspace) { in arch_mmu_destroy_aspace() argument 235 LTRACEF("aspace %p\n", aspace); in arch_mmu_destroy_aspace() 242 void arch_mmu_context_switch(arch_aspace_t *aspace) { in arch_mmu_context_switch() argument [all …]
|
/lk-master/arch/include/arch/ |
A D | mmu.h | 38 status_t arch_mmu_init_aspace(arch_aspace_t *aspace, vaddr_t base, size_t size, uint flags) __NONNU… 39 status_t arch_mmu_destroy_aspace(arch_aspace_t *aspace) __NONNULL((1)); 42 int arch_mmu_map(arch_aspace_t *aspace, vaddr_t vaddr, paddr_t paddr, uint count, uint flags) __NON… 43 int arch_mmu_unmap(arch_aspace_t *aspace, vaddr_t vaddr, uint count) __NONNULL((1)); 44 status_t arch_mmu_query(arch_aspace_t *aspace, vaddr_t vaddr, paddr_t *paddr, uint *flags) __NONNUL… 46 vaddr_t arch_mmu_pick_spot(arch_aspace_t *aspace, 54 void arch_mmu_context_switch(arch_aspace_t *aspace);
|
/lk-master/arch/arm/arm/include/arch/ |
A D | aspace.h | 28 static inline bool arch_mmu_is_valid_vaddr(struct arch_aspace *aspace, vaddr_t vaddr) { in arch_mmu_is_valid_vaddr() argument 29 return (vaddr >= aspace->base && vaddr <= aspace->base + aspace->size - 1); in arch_mmu_is_valid_vaddr()
|
/lk-master/kernel/include/kernel/ |
A D | vm.h | 227 status_t vmm_reserve_space(vmm_aspace_t *aspace, const char *name, size_t size, vaddr_t vaddr) 232 status_t vmm_alloc_physical(vmm_aspace_t *aspace, const char *name, size_t size, void **ptr, uint8_… 236 status_t vmm_alloc_contiguous(vmm_aspace_t *aspace, const char *name, size_t size, void **ptr, uint… 240 status_t vmm_alloc(vmm_aspace_t *aspace, const char *name, size_t size, void **ptr, uint8_t align_l… 244 status_t vmm_free_region(vmm_aspace_t *aspace, vaddr_t va); 250 status_t vmm_create_aspace(vmm_aspace_t **aspace, const char *name, uint flags) 254 status_t vmm_free_aspace(vmm_aspace_t *aspace) 262 void vmm_set_active_aspace(vmm_aspace_t *aspace);
|
A D | thread.h | 87 vmm_aspace_t *aspace; member
|
/lk-master/arch/x86/64/ |
A D | mmu.c | 562 int arch_mmu_unmap(arch_aspace_t *aspace, vaddr_t vaddr, uint count) { in arch_mmu_unmap() argument 565 LTRACEF("aspace %p, vaddr 0x%lx, count %u\n", aspace, vaddr, count); in arch_mmu_unmap() 567 DEBUG_ASSERT(aspace); in arch_mmu_unmap() 621 status_t arch_mmu_query(arch_aspace_t *aspace, vaddr_t vaddr, paddr_t *paddr, uint *flags) { in arch_mmu_query() argument 628 LTRACEF("aspace %p, vaddr 0x%lx, paddr %p, flags %p\n", aspace, vaddr, paddr, flags); in arch_mmu_query() 630 DEBUG_ASSERT(aspace); in arch_mmu_query() 656 DEBUG_ASSERT(aspace); in arch_mmu_map() 724 DEBUG_ASSERT(aspace); in arch_mmu_init_aspace() 733 status_t arch_mmu_destroy_aspace(arch_aspace_t *aspace) { in arch_mmu_destroy_aspace() argument 737 void arch_mmu_context_switch(arch_aspace_t *aspace) { in arch_mmu_context_switch() argument [all …]
|
/lk-master/arch/x86/32/ |
A D | mmu.c | 464 int arch_mmu_unmap(arch_aspace_t *aspace, vaddr_t vaddr, uint count) { in arch_mmu_unmap() argument 467 DEBUG_ASSERT(aspace); in arch_mmu_unmap() 521 status_t arch_mmu_query(arch_aspace_t *aspace, vaddr_t vaddr, paddr_t *paddr, uint *flags) { in arch_mmu_query() argument 527 LTRACEF("aspace %p, vaddr 0x%lx, paddr %p, flags %p\n", aspace, vaddr, paddr, flags); in arch_mmu_query() 529 DEBUG_ASSERT(aspace); in arch_mmu_query() 554 DEBUG_ASSERT(aspace); in arch_mmu_map() 613 status_t arch_mmu_init_aspace(arch_aspace_t *aspace, vaddr_t base, size_t size, uint flags) { in arch_mmu_init_aspace() argument 614 DEBUG_ASSERT(aspace); in arch_mmu_init_aspace() 623 status_t arch_mmu_destroy_aspace(arch_aspace_t *aspace) { in arch_mmu_destroy_aspace() argument 627 void arch_mmu_context_switch(arch_aspace_t *aspace) { in arch_mmu_context_switch() argument [all …]
|
/lk-master/kernel/ |
A D | thread.c | 169 t->aspace = NULL; in thread_create_etc() 587 if (newthread->aspace != oldthread->aspace) { in thread_resched() 588 vmm_context_switch(oldthread->aspace, newthread->aspace); in thread_resched() 978 dprintf(INFO, "\taspace %p\n", t->aspace); in dump_thread()
|