Home
last modified time | relevance | path

Searched refs:vma (Results 1 – 13 of 13) sorted by relevance

/DragonOS/kernel/src/mm/
H A Dfault.rs51 vma: Arc<LockedVMA>, field
68 vma: Arc<LockedVMA>, in new()
73 let guard = vma.lock_irqsave(); in new()
78 vma: vma.clone(), in new()
90 pub fn vma(&self) -> Arc<LockedVMA> { in vma() method
91 self.vma.clone() in vma()
127 let vma = pfm.vma(); in handle_mm_fault() localVariable
133 vma.clone(), in handle_mm_fault()
141 let guard = vma.lock_irqsave(); in handle_mm_fault()
163 let vma = pfm.vma.clone(); in handle_normal_fault() localVariable
[all …]
H A Dmadvise.rs15 let mut vma = self.lock_irqsave(); in do_madvise() localVariable
16 let mut new_flags = *vma.vm_flags(); in do_madvise()
56 if vma.vm_flags().contains(VmFlags::VM_IO) { in do_madvise()
81 vma.set_vm_flags(new_flags); in do_madvise()
H A Ducontext.rs179 for vma in self.mappings.vmas.iter() { in try_clone()
182 let vma_guard: SpinLockGuard<'_, VMA> = vma.lock_irqsave(); in try_clone()
733 for vma in self.mappings.iter_vmas() { in unmap_all()
734 if vma.mapped() { in unmap_all()
735 vma.unmap(&mut self.user_mapper.utable, &mut flusher); in unmap_all()
1032 pub fn insert_vma(&mut self, vma: Arc<LockedVMA>) { in insert_vma()
1033 let region = vma.lock_irqsave().region; in insert_vma()
1038 self.vmas.insert(vma); in insert_vma()
1051 let vma: Arc<LockedVMA> = self in remove_vma() localVariable
1053 .drain_filter(|vma| vma.lock_irqsave().region == *region) in remove_vma()
[all …]
H A Dsyscall.rs404 let vma = current_address_space.read().mappings.contains(old_vaddr); in mremap() localVariable
405 if vma.is_none() { in mremap()
408 let vma = vma.unwrap(); in mremap() localVariable
409 let vm_flags = *vma.lock_irqsave().vm_flags(); in mremap()
591 if let Some(vma) = next_vma.clone() { in msync()
592 let guard = vma.lock_irqsave(); in msync()
H A Dpage.rs191 for vma in page.read_irqsave().anon_vma() { in shrink_list()
192 let address_space = vma.lock_irqsave().address_space().unwrap(); in shrink_list()
196 let virt = vma.lock_irqsave().page_address(&page).unwrap(); in shrink_list()
228 for vma in page.read_irqsave().anon_vma() { in page_writeback()
229 let address_space = vma.lock_irqsave().address_space().unwrap(); in page_writeback()
233 let virt = vma.lock_irqsave().page_address(page).unwrap(); in page_writeback()
369 pub fn insert_vma(&mut self, vma: Arc<LockedVMA>) { in insert_vma()
370 self.anon_vma.insert(vma); in insert_vma()
375 pub fn remove_vma(&mut self, vma: &LockedVMA) { in remove_vma()
376 self.anon_vma.remove(vma); in remove_vma()
/DragonOS/kernel/src/arch/x86_64/mm/
H A Dfault.rs33 pub fn vma_access_error(vma: Arc<LockedVMA>, error_code: X86PfErrorCode) -> bool { in vma_access_error()
34 let vm_flags = *vma.lock_irqsave().vm_flags(); in vma_access_error()
45 vma.clone(), in vma_access_error()
64 if unlikely(!vma.is_accessible()) { in vma_access_error()
232 let vma = space_guard.mappings.find_nearest(address); in do_user_addr_fault() localVariable
235 let vma = match vma { in do_user_addr_fault() localVariable
236 Some(vma) => vma, in do_user_addr_fault()
252 let guard = vma.lock_irqsave(); in do_user_addr_fault()
284 if unlikely(Self::vma_access_error(vma.clone(), error_code)) { in do_user_addr_fault()
292 let message = PageFaultMessage::new(vma.clone(), address, flags, mapper); in do_user_addr_fault()
H A Dpkru.rs18 pub fn vma_pkey(vma: Arc<LockedVMA>) -> u16 { in vma_pkey()
19 let guard = vma.lock_irqsave(); in vma_pkey()
H A Dmod.rs320 vma: Arc<LockedVMA>, in vma_access_permitted()
328 if foreign | vma.is_foreign() { in vma_access_permitted()
331 pkru::pkru_allows_pkey(pkru::vma_pkey(vma), write) in vma_access_permitted()
/DragonOS/kernel/src/ipc/
H A Dsyscall.rs332 let vma = VMA::physmap( in shmat() localVariable
343 address_write_guard.mappings.insert_vma(vma); in shmat()
350 let vma = address_write_guard in shmat() localVariable
354 if vma.lock_irqsave().region().start() != vaddr { in shmat()
371 vma.unmap(&mut address_write_guard.user_mapper.utable, flusher); in shmat()
391 .insert_vma(vma.clone()); in shmat()
398 vma.lock_irqsave().set_mapped(true); in shmat()
425 let vma = address_write_guard in shmdt() localVariable
431 if vma.lock_irqsave().region().start() != vaddr { in shmdt()
460 vma.unmap(&mut address_write_guard.user_mapper.utable, flusher); in shmdt()
H A Dshm.rs450 .map(|vma| vma.id()) in map_count()
/DragonOS/docs/kernel/memory_management/
H A Dmmio.md28 4. 创建VMA,并将VMA标记为`VM_IO|VM_DONTCOPY`。MMIO的vma只绑定在`initial_mm`下,且不会被拷贝。
31 一旦MMIO地址空间分配完成,它就像普通的vma一样,可以使用mmap系列函数进行操作。
188 | mmio_create(size,vm_flags,res_vaddr,res_length) | 创建一块根据size对齐后的大小的mmio区域,并将其vma绑定到initial_mm |
/DragonOS/kernel/src/arch/riscv64/asm/
H A Dhead.S122 sfence.vma
131 sfence.vma
/DragonOS/docs/community/ChangeLog/V0.1.x/
H A DV0.1.10.md97 - fix(mm): 修复vma映射标志错误 (#801)
228 修复vma映射标志错误 (#801)