Split kernel/user trap handler && Fix user tests.

This commit is contained in:
Yifan Wu 2020-12-07 18:57:23 +08:00
parent 1008d92c35
commit 485db04a2b
13 changed files with 45 additions and 161 deletions

View file

@ -113,12 +113,14 @@ impl PageTable {
}
result
}
#[allow(unused)]
pub fn map(&mut self, vpn: VirtPageNum, ppn: PhysPageNum, flags: PTEFlags) {
//println!("mapping {:?} {:?}", vpn, ppn);
let pte = self.find_pte_create(vpn).unwrap();
assert!(!pte.is_valid(), "vpn {:?} is mapped before mapping", vpn);
*pte = PageTableEntry::new(ppn, flags | PTEFlags::V);
}
#[allow(unused)]
pub fn unmap(&mut self, vpn: VirtPageNum) {
let pte = self.find_pte_create(vpn).unwrap();
assert!(pte.is_valid(), "vpn {:?} is invalid before unmapping", vpn);