Lines Matching refs:virt
196 let virt = vma.lock_irqsave().page_address(&page).unwrap(); in shrink_list() localVariable
198 mapper.unmap(virt, false).unwrap().flush(); in shrink_list()
233 let virt = vma.lock_irqsave().page_address(page).unwrap(); in page_writeback() localVariable
236 mapper.unmap(virt, false).unwrap().flush(); in page_writeback()
242 virt, in page_writeback()
243 mapper.get_entry(virt, 0).unwrap().flags().set_write(false), in page_writeback()
521 pub unsafe fn virt(&self) -> VirtAddr { in virt() method
538 return Some(self.virt().add(i * Arch::PAGE_ENTRY_SIZE)); in entry_virt()
1180 virt: VirtAddr, in map()
1198 return self.map_phys(virt, phys, flags); in map()
1204 virt: VirtAddr, in map_phys()
1209 if !(virt.check_aligned(Arch::PAGE_SIZE) && phys.check_aligned(Arch::PAGE_SIZE)) { in map_phys()
1212 virt, phys in map_phys()
1217 let virt = VirtAddr::new(virt.data() & (!Arch::PAGE_NEGATIVE_MASK)); in map_phys() localVariable
1225 let i = table.index_of(virt)?; in map_phys()
1233 return Some(PageFlush::new(virt)); in map_phys()
1247 EntryFlags::new_page_table(virt.kind() == PageTableKind::User); in map_phys()
1262 virt: VirtAddr, in map_huge_page()
1266 if !(virt.check_aligned(Arch::PAGE_SIZE)) { in map_huge_page()
1267 error!("Try to map unaligned page: virt={:?}", virt); in map_huge_page()
1271 let virt = VirtAddr::new(virt.data() & (!Arch::PAGE_NEGATIVE_MASK)); in map_huge_page() localVariable
1275 let i = table.index_of(virt)?; in map_huge_page()
1301 table.index_of(virt)?, in map_huge_page()
1304 Some(PageFlush::new(virt)) in map_huge_page()
1318 virt: VirtAddr, in allocate_table()
1321 let table = self.get_table(virt, level + 1)?; in allocate_table()
1322 let i = table.index_of(virt)?; in allocate_table()
1330 EntryFlags::new_page_table(virt.kind() == PageTableKind::User); in allocate_table()
1345 pub fn get_table(&self, virt: VirtAddr, level: usize) -> Option<PageTable<Arch>> { in get_table()
1356 let i = table.index_of(virt)?; in get_table()
1373 pub fn get_entry(&self, virt: VirtAddr, level: usize) -> Option<PageEntry<Arch>> { in get_entry()
1374 let table = self.get_table(virt, level)?; in get_entry()
1375 let i = table.index_of(virt)?; in get_entry()
1434 let virt: VirtAddr = Arch::phys_2_virt(phys)?; in map_linearly() localVariable
1435 return self.map_phys(virt, phys, flags).map(|flush| (virt, flush)); in map_linearly()
1451 virt: VirtAddr, in remap()
1455 .visit(virt, |p1, i| { in remap()
1460 Some(PageFlush::new(virt)) in remap()
1474 pub fn translate(&self, virt: VirtAddr) -> Option<(PhysAddr, EntryFlags<Arch>)> { in translate()
1475 let entry: PageEntry<Arch> = self.visit(virt, |p1, i| unsafe { p1.entry(i) })??; in translate()
1493 pub unsafe fn unmap(&mut self, virt: VirtAddr, unmap_parents: bool) -> Option<PageFlush<Arch>> { in unmap()
1494 let (paddr, _, flusher) = self.unmap_phys(virt, unmap_parents)?; in unmap()
1511 virt: VirtAddr, in unmap_phys()
1514 if !virt.check_aligned(Arch::PAGE_SIZE) { in unmap_phys()
1515 error!("Try to unmap unaligned page: virt={:?}", virt); in unmap_phys()
1520 return unmap_phys_inner(virt, &table, unmap_parents, self.allocator_mut()) in unmap_phys()
1521 .map(|(paddr, flags)| (paddr, flags, PageFlush::<Arch>::new(virt))); in unmap_phys()
1527 virt: VirtAddr, in visit()
1533 let i = table.index_of(virt)?; in visit()
1615 virt: VirtAddr, field
1620 pub fn new(virt: VirtAddr) -> Self { in new()
1622 virt, in new()
1628 unsafe { Arch::invalidate_page(self.virt) }; in flush()
1640 MMArch::invalidate_page(self.virt); in drop()