/DragonOS/kernel/src/mm/ |
H A D | fault.rs | 57 mapper: &'a mut PageMapper, field 71 mapper: &'a mut PageMapper, in new() 83 mapper, in new() 164 let mapper = &mut pfm.mapper; in handle_normal_fault() localVariable 165 if mapper.get_entry(address, 3).is_none() { in handle_normal_fault() 166 mapper in handle_normal_fault() 174 if mapper.get_entry(address, level).is_none() { in handle_normal_fault() 177 mapper.map_huge_page(address, page_flags); in handle_normal_fault() 179 } else if mapper.allocate_table(address, level - 1).is_none() { in handle_normal_fault() 201 let mapper = &pfm.mapper; in handle_pte_fault() localVariable [all …]
|
H A D | kernel_mapper.rs | 33 mapper: PageMapper, field 39 fn lock_cpu(cpuid: ProcessorId, mapper: PageMapper) -> Self { in lock_cpu() 61 return Self { mapper, readonly }; in lock_cpu() 68 let mapper = unsafe { PageMapper::current(PageTableKind::Kernel, LockedFrameAllocator) }; in lock() localVariable 69 return Self::lock_cpu(cpuid, mapper); in lock() 78 return Some(&mut self.mapper); in as_mut() 85 return &self.mapper; in as_ref() 117 let flusher = self.mapper.map_phys(vaddr, paddr, flags).unwrap(); in map_phys_with_size()
|
H A D | no_init.rs | 170 let mut mapper = crate::mm::page::PageMapper::<MMArch, _>::new( in pseudo_map_phys_with_flags() localVariable 180 mapper.map_phys(vaddr, paddr, flags).unwrap(); in pseudo_map_phys_with_flags() 184 mapper.make_current(); in pseudo_map_phys_with_flags() 198 let mut mapper = crate::mm::page::PageMapper::<MMArch, _>::new( in pseudo_unmap_phys() localVariable 206 if let Some((_, _, flusher)) = mapper.unmap_phys(vaddr, true) { in pseudo_unmap_phys() 211 mapper.make_current(); in pseudo_unmap_phys()
|
H A D | ucontext.rs | 285 move |page, count, vm_flags, flags, mapper, flusher| { in map_anonymous() 287 VMA::zeroed(page, count, vm_flags, flags, mapper, flusher, None, None) in map_anonymous() 379 move |page, count, vm_flags, flags, mapper, flusher| { in file_mapping() 386 mapper, in file_mapping() 626 let mapper = &mut self.user_mapper.utable; in mprotect() localVariable 640 .extract(intersection, mapper) in mprotect() 664 r_guard.remap(new_flags, mapper, &mut *flusher)?; in mprotect() 687 let mapper = &mut self.user_mapper.utable; in madvise() localVariable 698 .extract(intersection, mapper) in madvise() 707 r.do_madvise(behavior, mapper, &mut *flusher)?; in madvise() [all …]
|
H A D | page.rs | 195 let mapper = &mut guard.user_mapper.utable; in shrink_list() localVariable 198 mapper.unmap(virt, false).unwrap().flush(); in shrink_list() 232 let mapper = &mut guard.user_mapper.utable; in page_writeback() localVariable 236 mapper.unmap(virt, false).unwrap().flush(); in page_writeback() 241 mapper.remap( in page_writeback() 243 mapper.get_entry(virt, 0).unwrap().flags().set_write(false), in page_writeback()
|
/DragonOS/kernel/src/arch/riscv64/mm/ |
H A D | init.rs | 83 let mut mapper: crate::mm::page::PageMapper<MMArch, &mut BumpAllocator<MMArch>> = in riscv_mm_init() localVariable 89 new_page_table = mapper.table().phys(); in riscv_mm_init() 94 let table = mapper.table(); in riscv_mm_init() 113 let flusher = mapper in riscv_mm_init() 122 LowAddressRemapping::remap_at_low_address(&mut mapper); in riscv_mm_init() 147 let mapper = crate::mm::page::PageMapper::<MMArch, _>::new( in riscv_mm_init() localVariable 153 mapper.make_current(); in riscv_mm_init() 181 mapper: &mut crate::mm::page::PageMapper<MMArch, &mut BumpAllocator<MMArch>>, in remap_at_low_address() 192 let flusher = mapper in remap_at_low_address() 202 let mut mapper = KernelMapper::lock(); in unmap_at_low_address() localVariable [all …]
|
/DragonOS/kernel/src/arch/x86_64/kvm/vmx/ |
H A D | ept.rs | 38 mapper: PageMapper, field 46 fn lock_cpu(cpuid: ProcessorId, mapper: PageMapper) -> Self { in lock_cpu() 68 return Self { mapper, readonly }; in lock_cpu() 75 let mapper = unsafe { PageMapper::current(PageTableKind::EPT, LockedFrameAllocator) }; in lock() localVariable 76 return Self::lock_cpu(cpuid, mapper); in lock() 100 self.mapper in walk()
|
H A D | vcpu.rs | 396 let mapper: crate::mm::page::PageMapper<X86_64MMArch, LockedFrameAllocator> = unsafe { in kvm_mmu_load() localVariable 401 let ept_root_hpa = mapper.table().phys(); in kvm_mmu_load()
|
/DragonOS/kernel/src/driver/block/cache/ |
H A D | cached_block_device.rs | 20 unsafe fn mapper() -> Result<&'static mut LockedCacheMapper, BlockCacheError> { in mapper() function 95 let mapper = unsafe { mapper()? }; in check_able_to_read() localVariable 98 match mapper.find(i.lba_id()) { in check_able_to_read() 186 let mapper = unsafe { mapper()? }; in immediate_write() localVariable 189 mapper.remove(i.lba_id()); in immediate_write() 279 let mapper = unsafe { mapper()? }; in insert() localVariable 289 mapper.insert(lba_id, index); in insert() 300 mapper.insert(lba_id, index); in insert() 302 mapper.remove(removed_id); in insert()
|
/DragonOS/kernel/src/virt/kvm/ |
H A D | host_mem.rs | 149 let mut mapper = KernelMapper::lock(); in hva_to_pfn() localVariable 150 let mapper = mapper.as_mut().unwrap(); in hva_to_pfn() localVariable 151 if let Some((hpa, _)) = mapper.translate(hva) { in hva_to_pfn() 155 mapper.map(hva, EntryFlags::mmio_flags()); in hva_to_pfn() 157 let (hpa, _) = mapper.translate(hva).unwrap(); in hva_to_pfn()
|
/DragonOS/kernel/src/arch/x86_64/mm/ |
H A D | fault.rs | 75 let mapper = in show_fault_oops() localVariable 77 if let Some(entry) = mapper.get_entry(address, 0) { in show_fault_oops() 81 } else if mapper.table().phys().data() & MMArch::ENTRY_FLAG_USER != 0 in show_fault_oops() 291 let mapper = &mut space_guard.user_mapper.utable; in do_user_addr_fault() localVariable 292 let message = PageFaultMessage::new(vma.clone(), address, flags, mapper); in do_user_addr_fault()
|
H A D | mod.rs | 478 let mut mapper: crate::mm::page::PageMapper<MMArch, &mut BumpAllocator<MMArch>> = in allocator_init() localVariable 484 new_page_table = mapper.table().phys(); in allocator_init() 489 let table = mapper.table(); in allocator_init() 508 let flusher = mapper in allocator_init() 539 let mapper = crate::mm::page::PageMapper::<MMArch, _>::new( in allocator_init() localVariable 545 mapper.make_current(); in allocator_init() 711 pub unsafe fn remap_at_low_address(mapper: &mut PageMapper) { in remap_at_low_address() 717 let flusher = mapper in remap_at_low_address() 726 pub unsafe fn unmap_at_low_address(mapper: &mut PageMapper, flush: bool) { in unmap_at_low_address() 729 let (_, _, flusher) = mapper in unmap_at_low_address()
|
/DragonOS/kernel/src/mm/allocator/ |
H A D | bump.rs | 111 let mapper = in ensure_early_mapping() localVariable 115 if mapper in ensure_early_mapping()
|